【问题标题】:ARIMA model not working properly in new statsmodels ARIMA for pythonARIMA 模型在新的 statsmodels ARIMA for python 中无法正常工作
【发布时间】:2022-04-19 09:04:08
【问题描述】:

我以前用过

from statsmodels.tsa.arima_model import ARIMA
model = ARIMA(log_air_passengers, order=(2, 1, 0))  
results_AR = model.fit(disp=-1)  
plt.plot(log_air_passengers_diff)
plt.plot(results_AR.fittedvalues, color='red')
plt.title('RSS: %.4f'% sum((results_AR.fittedvalues-log_air_passengers_diff)**2))

我会得到的情节是:

但现在他们有了更新版本的 ARIMA,并且在 0.12 发布后旧版本将被删除。所以,我正在尝试更新的:

from statsmodels.tsa.arima.model import ARIMA as ARIMA2
model = ARIMA2(log_air_passengers, order=(2, 1, 0), missing='drop')  
results_AR = model.fit()  
plt.plot(log_air_passengers_diff)
plt.plot(results_AR.fittedvalues, color='red')
plt.title('RSS: %.4f'% sum((results_AR.fittedvalues-log_air_passengers_diff)**2))

而且情节也很糟糕: 但它不起作用。我试图摆弄它,但它没有多大帮助。如何更改代码以使其正常工作?

【问题讨论】:

  • 你能提供一些样本数据来重现吗?
  • 这可能与您的安装有关,我复制了您的示例并使用新版本的模型获得了更好的结果,您可以使用!pip install --upgrade statsmodels 尝试一下吗?

标签: python time-series statsmodels arima


【解决方案1】:

你应该使用 SARIMAX

from statsmodels.tsa.statespace.sarimax import SARIMAX

model = SARIMAX(log_air_passengers,order=(1,1,0),simple_differencing=True)
result_AR = model.fit()
plt.plot(log_air_passengers_diff)
plt.plot(result_AR.fittedvalues,color='red')
plt.title('RSS: %.4f'%sum((result_AR.fittedvalues[1:] - log_air_passengers_diff)**2))

【讨论】:

  • simple_differencing 仍然与旧 ARIMA 版本不完全匹配,需要添加常量 c 'model=SARIMAX(log_air_passengers, order=(1,1,0), simple_differencing=True, trend='c',趋势偏移=log_air_passengers[0])'
猜你喜欢
  • 2020-04-09
  • 2016-02-13
  • 2022-07-06
  • 2021-03-01
  • 2015-10-19
  • 2018-08-20
  • 1970-01-01
  • 2021-04-26
  • 2017-02-14
相关资源
最近更新 更多