首页 > 解决方案 > 具有外生变量和线性时间趋势的 StatsModels SARIMAX

问题描述

我正在尝试预测具有线性时间趋势的 SARIMAX 模型,其中第一个数据点的值为 1,并且每个连续观察值增加 1,直到 N = 样本大小。引入趋势项是因为它显着提高了模型的预测能力,但我们希望将其冻结为样本外预测的最后一个观察值。也就是说,如果样本内大小为 100,我们希望在预测中的每一步都使用这个值,每一步都增加 1

该模型已安装如下

from statsmodels.tsa.statespace.sarimax import SARIMAX

model = SARIMAX(endog=Unemployment_series,exog=sm.add_constant(insample['GDP_yoy'].values),order=(1,0,0),trend ='t').fit(disp=-1)

根据https://www.statsmodels.org/dev/generated/statsmodels.tsa.statespace.sarimax.SARIMAX.html中的 statsmodels 文档,参数趋势允许我们修复线性时间趋势。

尝试使用 get_forecast 或 get_prediction 方法进行预测时会出现问题

forecast = model.get_forecast(steps=len(outsample),exog = sm.add_constant(outsample['GDP_yoy'].values,has_constant='add'))

或者

forecast = model.get_prediction(start=len(insample),end=len(insample)+len(outsample)-1,exog = sm.add_constant(outsample['GDP_yoy'].values,has_constant='add'))

因为我还没有找到任何可以控制时间趋势行为的参数,有什么建议吗?

标签: python-3.xtime-seriesstatsmodelsforecasting

解决方案


推荐阅读