从ARIMA mod重新缩放预测

2024-05-13 07:33:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我是时间序列预测的新手。
我有一个非平稳时间序列,我先取对数,然后从指数加权平均值中减去,将其转换为平稳时间序列。然后用ARIMA模型对序列进行拟合,并进行了12个月的预测。现在我要把比例转换回原来的比例。换句话说,我如何基本上重新缩放预测值?你知道吗

我尝试重新缩放一个月的预测,然后再次计算过去6个月的ewma,并将此值添加到下个月的预测中,等等,我认为这不是很有效。将序列转换为平稳数据的代码:

airline_data_log = np.log(airline_data)
expweighted_avg = airline_data_log.ewm(halflife = 0.5).mean()
stationary_data = airline_data_log - expweighted_avg
model_ARIMA = sm.tsa.arima_model.ARIMA(stationary_data,order = (2,0,2))
p = result.forecast(steps = 12)
output = p[0]


ewma = expweighted_avg

现在我想重新缩放输出。我试过这样的方法:

for i in range(0,12):
     forecasted_values.iloc[i][0] = forecasted_values.iloc[i][0] + 
     ewma.iloc[-1][0]
     airline_data_log = airline_data_log + forecasted_values_p.iloc[i]
     ewma = airline_data_log.ewm(halflife = 0.5).mean() 

我认为这是低效的,甚至可能是错误的。有什么有效的方法吗?你知道吗


Tags: logdata时间序列比例avgvaluesewma