statsmodels 如何计算 ARIMA 模型的拟合值?

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

我对 statsmodels ARIMA 如何计算拟合值感到困惑。考虑一个适合随机生成的序列的简单 AR(1) 过程

series = array([ 1.76405235,  0.40015721,  0.97873798,  2.2408932 ,  1.86755799,
       -0.97727788,  0.95008842, -0.15135721, -0.10321885,  0.4105985 ])

我们可以拟合模型:

model = sm.tsa.ARIMA(series, order = (1,0,0)).fit()

获取参数的估计:

parameters = model.params

并获得拟合值:

fitted_values = model.fittedvalues

这些fitting_values是如何计算的(根据初始数据和模型估计的参数)?

-- 我尝试了

model.params[0] + model.params[1]*series[i-1]
,但没有成功。

--我也不知道为什么

model.fittedvalues[0]
model.params[0]
相同。

python statsmodels arima
1个回答
0
投票

我还发现 statsmodels 上的自回归模型令人困惑。

首先,看起来 ARIMA 模型位于

sm.tsa.arima.model.ARIMA
而不是代码中的
sm.tsa.ARIMA

这里的问题是,这三个参数是什么:

>>> model.params
array([0.73930757, 0.0181879 , 0.93490084])

找出答案的一种方法是打印模型拟合结果的摘要:

>>> model.summary()
                                SARIMAX Results                                
==============================================================================
Dep. Variable:                      y   No. Observations:                   10
Model:                 ARIMA(1, 0, 0)   Log Likelihood                 -13.853
Date:                Sun, 25 Feb 2024   AIC                             33.706
Time:                        19:27:30   BIC                             34.614
Sample:                             0   HQIC                            32.710
                                 - 10                                         
Covariance Type:                  opg                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const          0.7393      0.401      1.842      0.065      -0.047       1.526
ar.L1          0.0182      0.461      0.039      0.969      -0.886       0.922
sigma2         0.9349      0.624      1.499      0.134      -0.288       2.158
===================================================================================
Ljung-Box (L1) (Q):                   0.00   Jarque-Bera (JB):                 0.40
Prob(Q):                              1.00   Prob(JB):                         0.82
Heteroskedasticity (H):               1.28   Skew:                            -0.08
Prob(H) (two-sided):                  0.85   Kurtosis:                         2.04
===================================================================================

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

在上面,您可以看到三个参数(按顺序)是'const','ar.L1'和'sigma2'

要弄清楚这些是什么,您必须进入文档,您可以在其中找到此模型定义:

虽然没有明确引用名称“const”、“ar.L1”和“sigma2”,但我最好的猜测是:

  • 'const'是模型中显示的'delta_0变量,即恒定趋势
  • 'ar.L1' 是滞后多项式 Phi(L) 中的第一个自回归系数
  • “sigma2”是“sigma-squared”的简写,即噪声的标准差。

至于如何计算这些,我假设它使用的是普通最小二乘法(OLS)。有关更多详细信息,请参阅有关

fit
方法的文档

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