Statsmodel 的 ARIMA 拟合方法估计的 'u' 参数是多少?

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

我很难在以下 ARMAX 模型参数估计示例中找到由 statsmodels

ARIMA.fit
方法返回的 'u' 参数的提及:

import pandas as pd
from statsmodels.tsa.arima.model import ARIMA

# Sample of the full input-output dataset
id_data = pd.DataFrame({
    'u': [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 
          1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    'y': [-1.4369, -0.999, -0.0325, 0.8435, 0.4339, -0.2925, 
          -0.8885, -2.3191, -4.004, -5.4779, -7.053, -7.5489, 
          -8.779, -8.9262, -8.5207, -8.3915, -8.5699, -8.2192, 
          -8.284, -7.6011]
})

arma22 = ARIMA(id_data.y, exog=id_data.u, order=(2, 0, 2), trend='n').fit()
print(arma22.params)
print(arma22.summary())

输出:

u        -0.564553
ar.L1     1.798081
ar.L2    -0.829465
ma.L1    -0.859744
ma.L2     0.998002
sigma2    0.220407
dtype: float64
                               SARIMAX Results                                
==============================================================================
Dep. Variable:                      y   No. Observations:                   20
Model:                 ARIMA(2, 0, 2)   Log Likelihood                 -18.559
Date:                Sun, 25 Feb 2024   AIC                             49.119
Time:                        14:26:11   BIC                             55.093
Sample:                             0   HQIC                            50.285
                                 - 20                                         
Covariance Type:                  opg                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
u             -0.5646      0.303     -1.861      0.063      -1.159       0.030
ar.L1          1.7981      0.158     11.407      0.000       1.489       2.107
ar.L2         -0.8295      0.164     -5.059      0.000      -1.151      -0.508
ma.L1         -0.8597     21.365     -0.040      0.968     -42.735      41.016
ma.L2          0.9980     49.501      0.020      0.984     -96.022      98.018
sigma2         0.2204     10.881      0.020      0.984     -21.106      21.547
===================================================================================
Ljung-Box (L1) (Q):                   1.05   Jarque-Bera (JB):                 0.81
Prob(Q):                              0.31   Prob(JB):                         0.67
Heteroskedasticity (H):               0.78   Skew:                             0.27
Prob(H) (two-sided):                  0.76   Kurtosis:                         2.18
===================================================================================

Warnings:
[1] Covariance matrix calculated using the outer product of gradients (complex-step).

我期望 ARMAX(2, 2) 模型有四个参数(四个自由度)。我已经关闭了趋势 (

const
) 参数,所以不可能是这样。

这里有一个 ARMAX(1, 1) 模型的工作示例,但结果中没有出现 u

 参数。

如果有人可以向我指出文档中提到“u”是什么的部分,我将不胜感激。

python statsmodels arima
1个回答
0
投票
我想我找到了自己问题的答案。

如果您传递原始数据而不是 Pandas 系列,则“u”参数将变为“x1”,如文档中的示例所示。

arma22 = ARIMA(id_data.y.values, exog=id_data.u.values, order=(2, 0, 2), trend='n').fit() print(arma22.params) print(arma22.summary())
输出:

[-0.56455335 1.79808108 -0.82946546 -0.85974377 0.99800247 0.22040651] SARIMAX Results ============================================================================== Dep. Variable: y No. Observations: 20 Model: ARIMA(2, 0, 2) Log Likelihood -18.559 Date: Sun, 25 Feb 2024 AIC 49.119 Time: 14:58:40 BIC 55.093 Sample: 0 HQIC 50.285 - 20 Covariance Type: opg ============================================================================== coef std err z P>|z| [0.025 0.975] ------------------------------------------------------------------------------ x1 -0.5646 0.303 -1.861 0.063 -1.159 0.030 ar.L1 1.7981 0.158 11.407 0.000 1.489 2.107 ar.L2 -0.8295 0.164 -5.059 0.000 -1.151 -0.508 ma.L1 -0.8597 21.365 -0.040 0.968 -42.735 41.016 ma.L2 0.9980 49.501 0.020 0.984 -96.022 98.018 sigma2 0.2204 10.881 0.020 0.984 -21.106 21.547 =================================================================================== Ljung-Box (L1) (Q): 1.05 Jarque-Bera (JB): 0.81 Prob(Q): 0.31 Prob(JB): 0.67 Heteroskedasticity (H): 0.78 Skew: 0.27 Prob(H) (two-sided): 0.76 Kurtosis: 2.18 =================================================================================== Warnings: [1] Covariance matrix calculated using the outer product of gradients (complex-step).
所以

'u'

实际上来自我的外源输入的Pandas系列名称。

所以我猜测

'u'

(或
'x1'
)是以下 ARMAX 模型中参数向量 beta 的第一个元素:

如果有人能证实这一点那就太好了。或者指出文档中解释

model.summary()

 方法和 `model.params' 内容的部分。

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