将反向预测值转换为原始比例(使用python arima模型进行预测)

2024-04-27 21:50:21 发布

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

我想用ARIMA模型做一些预测。我无法将我的预测转换回原始规模。这是我的密码。 有人能帮我找到脚本中的错误吗?我会非常感激的谢谢你

from statsmodels.tsa.arima_model import ARIMA

#arima model
model=ARIMA(ts_logscale,order=(2,1,2))
results_ARIMA=model.fit(disp=-1)
plt.plot(datasetlogdiffshifting)
plt.plot(results_ARIMA.fittedvalues,color='red')
plt.title('RSS: %.4f'% sum((results_ARIMA.fittedvalues-datasetlogdiffshifting["Chargé (T)"])**2))
print('plotting ARIMA model')

PLOTING THE PREDICTIONS

现在,当我尝试转换回:

#converting back
#creating a time serie
predictions_ARIMA_diff=pd.Series(results_ARIMA.fittedvalues,copy=True)
#convert to cumulative sum
predictions_ARIMA_diff_cumsum=predictions_ARIMA_diff.cumsum()

predictions_ARIMA_log=pd.Series(ts_logscale['Chargé (T)'].ix[0],index=ts_logscale.index)
predictions_ARIMA_log=(predictions_ARIMA_log).add(predictions_ARIMA_diff_cumsum,fill_value=0)
#plotting
predictions_ARIMA=np.exp(predictions_ARIMA_log)
plt.plot(ts,color='blue')
plt.plot(predictions_ARIMA,color='red')

plotting predictions after converting back

正如你所看到的,它和第一个情节非常不同


Tags: logmodelplotdiffpltresultscolorts
1条回答
网友
1楼 · 发布于 2024-04-27 21:50:21

ARIMA(2,1,2):是一个具有两(2)个自回归项、一(1)个后移算子和两(2)个移动平均项的模型。现在,当您应用一(1)个后移运算符时,您不必担心,因为statsmodels将转换回您的预测,因此,这里唯一的问题是您之前所做的日志转换,为此,只需使用np.exp对您的预测和问题进行解决

相关问题 更多 >