0

我正在尝试使用 auto_arima,它提供了用于时间序列预测的最佳模型的良好输出。

from pmdarima import auto_arima

stepwise_fit = auto_arima(hourly_avg['kW'], start_p=0, start_q=0,
                          max_p=2, max_q=2, m=4,
                          seasonal=False,
                          d=None, trace=True,
                          error_action='ignore',   # we don't want to know if an order does not work
                          suppress_warnings=True,  # we don't want convergence warnings
                          stepwise=True)           # set to stepwise

stepwise_fit.summary()

输出:

Performing stepwise search to minimize aic
 ARIMA(0,0,0)(0,0,0)[0]             : AIC=778.328, Time=0.01 sec
 ARIMA(1,0,0)(0,0,0)[0]             : AIC=inf, Time=0.07 sec
 ARIMA(0,0,1)(0,0,0)[0]             : AIC=inf, Time=0.07 sec
 ARIMA(1,0,1)(0,0,0)[0]             : AIC=138.016, Time=0.12 sec
 ARIMA(2,0,1)(0,0,0)[0]             : AIC=135.913, Time=0.16 sec
 ARIMA(2,0,0)(0,0,0)[0]             : AIC=inf, Time=0.11 sec
 ARIMA(2,0,2)(0,0,0)[0]             : AIC=135.302, Time=0.27 sec
 ARIMA(1,0,2)(0,0,0)[0]             : AIC=138.299, Time=0.14 sec
 ARIMA(2,0,2)(0,0,0)[0] intercept   : AIC=121.020, Time=0.36 sec
 ARIMA(1,0,2)(0,0,0)[0] intercept   : AIC=123.032, Time=0.36 sec
 ARIMA(2,0,1)(0,0,0)[0] intercept   : AIC=119.824, Time=0.28 sec
 ARIMA(1,0,1)(0,0,0)[0] intercept   : AIC=125.968, Time=0.31 sec
 ARIMA(2,0,0)(0,0,0)[0] intercept   : AIC=118.512, Time=0.15 sec
 ARIMA(1,0,0)(0,0,0)[0] intercept   : AIC=130.956, Time=0.12 sec

Best model:  ARIMA(2,0,0)(0,0,0)[0] intercept
Total fit time: 2.547 seconds

这里没有太多的智慧,我为此道歉,但是否可以将变量分配给最适合的模型?或者是否必须从上面的输出中手动选择ARIMA(2,0,0)才能继续使用他们的时间序列预测方法?

例如一些变量,比如best_model = Best model: ARIMA(2,0,0)最好的选择是什么......

4

1 回答 1

1

查看他们给出示例的文档

model = pm.auto_arima(train, seasonal=False)

# make your forecasts
forecasts = model.predict(24)  # predict N steps into the future
于 2020-10-16T17:57:33.893 回答