Python中SARIMA和ARIMA对灾难的预测是错误的

2024-10-04 09:26:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用SARIMA来预测未来的预测值。 这是我的数据

2020-01-22 13:30:00 134.808840
2020-01-22 13:45:00 101.113338
2020-01-22 14:00:00 105.134895
2020-01-22 14:15:00 115.315380

我用这种方式建立了一个模型

results = auto_arima(dataSugar['sugarValue'], seasonal=True, m=7, trace = True)
results.summary()

总结如下:

SARIMAX Results
Dep. Variable:  y   No. Observations:   1207
Model:  SARIMAX(0, 1, 3)x(2, 0, [1, 2], 7)  Log Likelihood  -3874.203
Date:   Fri, 06 Mar 2020    AIC 7766.407
Time:   21:57:14    BIC 7812.262
Sample: 0   HQIC    7783.676
- 1207      
Covariance Type:    opg     
coef    std err z   P>|z|   [0.025  0.975]
intercept   0.0298  0.248   0.120   0.905   -0.457  0.516
ma.L1   -0.0624 0.024   -2.581  0.010   -0.110  -0.015
ma.L2   -0.3912 0.023   -17.259 0.000   -0.436  -0.347
ma.L3   -0.0769 0.027   -2.894  0.004   -0.129  -0.025
ar.S.L7 -1.0120 0.024   -42.474 0.000   -1.059  -0.965
ar.S.L14    -0.9861 0.022   -45.078 0.000   -1.029  -0.943
ma.S.L7 1.0219  0.029   34.793  0.000   0.964   1.079
ma.S.L14    0.9794  0.031   31.162  0.000   0.918   1.041
sigma2  35.9620 1.096   32.805  0.000   33.813  38.111
Ljung-Box (Q):  57.10   Jarque-Bera (JB):   231.80
Prob(Q):    0.04    Prob(JB):   0.00
Heteroskedasticity (H): 1.38    Skew:   -0.10
Prob(H) (two-sided):    0.00    Kurtosis:   5.14

所以我申请:

model = SARIMAX(df['sugarValue'], order=(0, 1, 3), seasonal_order=(2, 0, 2, 7), enforce_invertibility=False).fit()

对测试和列车组的预测非常好:

pred = model.predict(start, end)

enter image description here

所以我认为我的模型是正确的(或多或少)…事实上,我不需要严格的精确性

但当我试图用这种方式预测未来的价值时

forecast = model.forecast(steps=96)

我的输出是

enter image description here

我觉得这很糟糕我哪里错了? 我检查了值,结果不一样,但非常相似

    Prediction
2020-01-24 00:00:00 105.357804
2020-01-24 00:15:00 105.574045
2020-01-24 00:30:00 104.963241
2020-01-24 00:45:00 104.783142
2020-01-24 01:00:00 104.356709

Tags: 模型truemodel方式resultsarmaprob