我正在尝试预测一个线性时间趋势为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'))
因为我还没有找到任何参数可以控制时间趋势的行为,所以有什么建议吗?