如何在python statmodels中使用X-13-ARIMA获得预测

66bbxpm5  于 2023-06-25  发布在  Python
关注(0)|答案(2)|浏览(327)

我试图在python 3中从statmodels库运行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对象似乎都不会改变。
如何获取预测值?

cyvaqqii

cyvaqqii1#

现在你自己可能也有这个了。我检索了一些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月开始。

b4wnujal

b4wnujal2#

forecast_years=x为我工作。注意您正在运行的statmodels版本(“pip freeze| grep statmodels”)对于版本10.2,用于预测地平线的正确参数是,<forecast_years>但是在版本11.0和更高版本中,正确参数是<forecast_periods>。
一个简单的正则表达式应该可以找到预测值:
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

相关问题