ARIMA的非正常预测值,其中d> 0,但具有自动对数功能,

问题描述 投票:0回答:1

因此,我试图获得5种Arima模型(以预测从未来1天到5天)。使用statsmodels,如果我使用d> 0或q> 0,则arima类无法正常工作。使用自动Arima时,其工作方式(pmdarima)。

例如(Statsmodel)

p,d,q = 1, 1, 0

models = []
for dayidx in range(0,5):
    models.append(ARIMA(exog=X_train[dayidx], endog=y_train[dayidx],order=(p,d,q)).fit())

models[0].forecast(exog=X_test[0],steps=157)[0]

如果我使用p> 0,d> 0和q = 0的预测,则我得不到预期的目标值(只是增加了值,并且像x2-x10一样高)。如果我使用预测p> 0,d = 0,q = 0,我得到可膨胀的值。如果我对q使用任何值,则会收到以下错误,这表明数据是不稳定的,为什么在im使用q> 0的情况下im使用d> 0却应该起作用,但确实起作用了...

The computed initial AR coefficients are not stationary
You should induce stationarity, choose a different model order, or you can
pass your own start_params.

这里是pmarima模型的代码

auto_arima = {'adf': [], 'kpss': []}
stattests = ('adf','kpss')
for stattest in stattests:
    print(stattest)
    for dayidx in range(0,5):
        auto_arima[stattest].append(pm.auto_arima(y=y_train[dayidx], exogenous=X_train[dayidx],
                             stepwise=True,
                             suppress_warnings=True, 
                             error_action="ignore",
                             test=stattest,
                             start_p=0,
                             start_d=0,
                             start_q=0,
                             max_p=6,
                             max_d=3,
                             max_q=3,
                             max_order=None, 
                             trace=False))
    print('done')

[使用自动Arima(pmdarima)时,它应该像应该的那样工作(我从d-> d> 0获得了值]] >>

Training with adf
(1, 0, 1)
(4, 0, 1)
(1, 0, 1)
(2, 0, 2)
(2, 0, 0)
Training with kpss
(1, 1, 2)
(1, 1, 2)
(2, 1, 1)
(1, 1, 2)
(2, 1, 1)

这些是Arima模型用来训练的参数(pmarima)。所以q应该> 0

有人知道为什么statsmodels的ARIMA对我不起作用,而pmarima的自动对我有用吗?

因此,我试图获得5种Arima模型(以预测从未来1天到5天)。使用statsmodels,如果我使用d> 0或q> 0,则arima类无法正常工作。使用自动Arima时,它的工作(pmdarima)。...

python statsmodels pmdarima
1个回答
0
投票

[pmdarima使用Statsmodels类sm.tsa.SARIMAX,而不是类sm.tsa.ARIMA类。

© www.soinside.com 2019 - 2024. All rights reserved.