【问题标题】:How to get predictions using X-13-ARIMA in python statsmodels如何在 python statsmodels 中使用 X-13-ARIMA 获得预测
【发布时间】:2017-09-13 10:51:32
【问题描述】:

我正在尝试从 python 3 中的 statsmodels 库运行 X-13-ARIMA 模型。

我在 statsmodels 文档中找到了这个示例:

dta = sm.datasets.co2.load_pandas().data
dta.co2.interpolate(inplace=True)
dta = dta.resample('M').sum()

res = sm.tsa.x13_arima_select_order(dta.co2)
print(res.order, res.sorder)

results = sm.tsa.x13_arima_analysis(dta.co2)

fig = results.plot()
fig.set_size_inches(12, 5)
fig.tight_layout()

这很好用,但我还需要预测这个时间序列的未来值。 tsa.x13_arima_analysis() 函数包含 forecast_years 参数,所以我想应该是可能的。然而;无论我选择什么 forecast_years 参数值,results 对象似乎都不会改变。

如何获得预测值?

【问题讨论】:

    标签: python python-3.x statsmodels


    【解决方案1】:

    forecast_years=x 为我工作。注意您正在运行的 statsmodels 版本(“pip freeze | grep statsmodels”),对于 10.2 版,预测范围的正确参数是 ,但在 11.0 及更高版本中,正确的参数是

    一个简单的正则表达式应该可以找到您的预测值:

    202\d.\w{3}\s{6}\d\d.\d\d\s{5}\d\d.\d\d\s{5}\d\d.\d\d(在结果的每一行上运行)

    哪个匹配:

    2020.Feb      18.04     32.25     46.47
    

    【讨论】:

      【解决方案2】:

      现在你可能自己也有这个了。我检索了一些截至 2012 年 7 月的月度天气数据。我输入了这个语句来进行分析。

      results = sm.tsa.x13_arima_analysis(s, forecast_years=3)
      

      然后(发现results.results 很大)我输入了这个。

      open('c:/scratch/result.txt', 'w').write(results.results)
      

      通过此文件查看“预测”,我发现了以下部分。

       FORECASTING
        Origin  2012.Jul
        Number         3
      
        Forecasts and Standard Errors of the Prior Adjusted Data
         ------------------------------
                               Standard
             Date   Forecast      Error
         ------------------------------
         2012.Aug      33.02      2.954
         2012.Sep      28.31      2.954
         2012.Oct      21.54      2.954
         ------------------------------
      
        Confidence intervals with coverage probability ( 0.95000
         ---------------------------------------
             Date      Lower  Forecast     Upper
         ---------------------------------------
         2012.Aug      27.23     33.02     38.82
         2012.Sep      22.52     28.31     34.10
         2012.Oct      15.75     21.54     27.33
         ---------------------------------------
      

      forecast_years=3 似乎被理解为对三个月的预测,在这种情况下从 7 月开始。

      【讨论】:

      • 谢谢。您甚至不需要保存输出 - 此输出会自动保存在临时文件中作为“.out”文件。但是,我还需要预测时间序列的季节性调整值,我发现使用 X11 规范是不可能的,我必须使用 SEATS 规范。所以我改变了'x13_arima_analysis()'函数。
      猜你喜欢
      • 2016-02-13
      • 1970-01-01
      • 1970-01-01
      • 2021-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-17
      相关资源
      最近更新 更多