我试图在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
参数,所以我认为它应该是可能的。然而;无论我选择results
参数的值是什么,forecast_years
对象似乎都无法改变。
如何获取预测值?
答案 0 :(得分:1)
到现在为止你可能已经拥有了这个。我检索了一些截止日期为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
似乎意味着预测三个月,在这种情况下从七月开始。
答案 1 :(得分:1)
forecast_years=x 对我有用。请注意您正在运行的 statsmodels 版本(“pip freeze | grep statsmodels”),对于 10.2 版,预测范围的正确参数是
一个简单的正则表达式应该可以找到你的预测值:
has_many :reward_follows
belongs_to :shop
has_many :follows, through: :reward_follows
has_many :users, through: :follows
(在结果的每一行上运行)
匹配:
202\d.\w{3}\s{6}\d\d.\d\d\s{5}\d\d.\d\d\s{5}\d\d.\d\d