python-3.x - 具有外生变量和线性时间趋势的 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'))
因为我还没有找到任何可以控制时间趋势行为的参数,有什么建议吗?
解决方案
推荐阅读
- java - 我需要 JRE_HOME 吗?Tomcat java环境版本差异
- matrix - Inv() 与 JULIA 上的 '\'
- javascript - 将区域js变量映射到输入中的php
- python - 使用 Python 在 word docx 中编辑表格
- python - 如何为 ipython 创建项目特定的启动脚本
- performance - 对于处理大量数据的应用程序来说,Electron 是一个不错的选择吗?
- sql-server - 从 XML 提取数据时复制的条目
- python - 如何在不使用全局上下文的情况下舍入十进制数?
- algorithm - 27^n 的大 Θ?9^n 怎么不是答案?
- git - 使 USB 驱动器像 github 一样工作 - 一个远程存储库