Python 在进行新的n步超前预测之前,向SARIMAX模型添加新观测值时出现值错误
我在timeseries上构建了一个SARIMAX模型。现在的目标是使用该模型定期对未来12周进行预测 我的训练数据有152次观察。我可以建立预测,然后预测未来12个观测值。然而,现在我们还有3周的时间,我想将这3周内生变量和外生变量的实际值添加到我的traindata中,并在不重新调整模型的情况下,根据这些155个观测值获得未来9周的更新预测 在上,我发现一个人应该能够通过使用:Python 在进行新的n步超前预测之前,向SARIMAX模型添加新观测值时出现值错误,python,statsmodels,arima,forecast,Python,Statsmodels,Arima,Forecast,我在timeseries上构建了一个SARIMAX模型。现在的目标是使用该模型定期对未来12周进行预测 我的训练数据有152次观察。我可以建立预测,然后预测未来12个观测值。然而,现在我们还有3周的时间,我想将这3周内生变量和外生变量的实际值添加到我的traindata中,并在不重新调整模型的情况下,根据这些155个观测值获得未来9周的更新预测 在上,我发现一个人应该能够通过使用: append_newobs = <fitted model>.append(endog=detrend
append_newobs = <fitted model>.append(endog=detrended_test.loc[153:155],
exog=exog_test.loc[153:155], refit=False)
fcast = append_newobs.get_forecast(9, exog=exog_test[156:])
问题解决了。这是因为我的去渲染值是一个列表,然后去渲染测试是一个dataframeIt解决了。这是因为我的去渲染值是一个列表,然后去渲染测试是一个数据帧
# =============================================================================
# ------------------------------ FIT SARIMAX ON DETRENDED DATA-----------------
# =============================================================================
exog=train[['fl_has_publicholiday', 'fl_krokusvakantie', 'fl_paasvakantie',
'jul', 'aug', 'fl_herfstvakantie', 'Christmas_week', 'Newyears_week', 'jan', 'mei',
'sep']]
modx8 = sm.tsa.statespace.SARIMAX(endog=detrended, trend='n', order=(0,0,1), seasonal_order=(0,0,1,52), exog=exog)
resx8 = modx8.fit(disp=False)
# =============================================================================
# ------------------------------ PRODUCE 12 WEEKS FORECAST -----------------
# =============================================================================
exog_test=test[['fl_has_publicholiday', 'fl_krokusvakantie', 'fl_paasvakantie',
'jul', 'aug', 'fl_herfstvakantie', 'Christmas_week', 'Newyears_week', 'jan', 'mei',
'sep']]
pred_test=resx8.get_forecast(12, exog=exog_test) #Forecast fluctuations around the trend
print('Forecast:')
print(pred_test.predicted_mean)
print('Confidence intervals:')
print(pred_test.conf_int())
# ==================================================================================================
# -----------ADD NEW OBSERVED DATA AND BUILD FORECAST ON LONGER TIMESERIES WITHOUT REFIT ------------
# ==================================================================================================
append_newobs = resx8.append(endog=detrended_test.loc[153:155], exog=exog_test.loc[153:155],
refit=False)
fcast = append_newobs.get_forecast(9, exog=exog_test[156:])
This fails with the value error stated above.