You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Statsmodels与Stata的ARIMA(0,1,2)结果差异原因问询

Stata 17与statsmodels ARIMA结果差异的原因解析

问题背景

在ARIMA分析过程中,Stata 17与statsmodels(0.13.5版本)的输出结果出现不一致:

  • 运行statsmodels代码ARIMA(df_log, order=(0,1,2))得到的SARIMAX结果,和Stata执行arima log_gdp, arima(0,1,2)的ARIMA回归结果不匹配。
  • 但将一阶差分后的数据传入statsmodels的ARIMA(df_log.diff().dropna(), order=(0,0,2))时,结果与Stata完全一致。

核心差异原因

1. 常数项的处理逻辑不同

  • Stata的arima(0,1,2):本质是对差分后的数据拟合带常数项的MA(2)模型,默认会在差分序列中加入均值项(对应结果中的_cons),即Stata的ARIMA(p,d,q)会自动将常数项绑定在差分后的序列上,而非原始序列。
  • statsmodels的ARIMA(0,1,2):默认不在差分后的序列中添加常数项(假设差分序列均值为0)。若要给差分序列添加常数项,必须显式指定trend='c'参数,否则模型不会包含均值项。

2. 样本量与拟合逻辑的对应

  • Stata的arima(0,1,2)自动使用差分后的61个观测值(样本范围1961-2021),拟合带常数项的MA(2)模型。
  • statsmodels的ARIMA(0,1,2)默认使用原始62个观测值拟合无常数项的模型;而手动差分后传入ARIMA(0,0,2)时,相当于复刻了Stata的逻辑:用差分后的61个观测值,拟合带常数项的MA(2)(statsmodels的ARIMA(0,0,2)默认包含常数项const)。

让statsmodels与Stata结果匹配的方法

如果要让statsmodels的ARIMA(0,1,2)直接输出和Stata一致的结果,只需在模型中指定趋势项参数:

re = ARIMA(df_log, order=(0,1,2), trend='c')
print(re.fit().summary())

此时statsmodels会在差分后的序列中加入常数项,拟合逻辑与Stata完全对齐,结果也会匹配。


附:各结果对比

statsmodels ARIMA(0,1,2)默认结果(无常数项)

SARIMAX Results                                
==============================================================================
Dep. Variable:                    GDP   No. Observations:                   62
Model:                 ARIMA(0, 1, 2)   Log Likelihood                  48.459
Date:                Thu, 11 May 2023   AIC                            -90.918
Time:                        02:21:08   BIC                            -84.585
Sample:                    01-01-1960   HQIC                           -88.436
                         - 01-01-2021                                         
Covariance Type:                  opg                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
ma.L1          0.4751      0.142      3.349      0.001       0.197       0.753
ma.L2         -0.0500      0.151     -0.332      0.740      -0.345       0.245
sigma2         0.0119      0.002      6.720      0.000       0.008       0.015
===================================================================================
Ljung-Box (L1) (Q):                   4.11   Jarque-Bera (JB):                 3.62
Prob(Q):                              0.04   Prob(JB):                         0.16
Heteroskedasticity (H):               0.60   Skew:                             0.37
Prob(H) (two-sided):                  0.27   Kurtosis:                         3.94
===================================================================================

Stata 17 ARIMA(0,1,2)结果(带常数项)

(setting optimization to BHHH)
Iteration 0:   log likelihood =  51.833406  
Iteration 1:   log likelihood =  58.219464  
Iteration 2:   log likelihood =  59.750732  
Iteration 3:   log likelihood =  60.128641  
Iteration 4:   log likelihood =  60.183567  
(switching optimization to BFGS)
Iteration 5:   log likelihood =  60.191613  
Iteration 6:   log likelihood =  60.192693  
Iteration 7:   log likelihood =  60.192721  
Iteration 8:   log likelihood =  60.192721  

ARIMA regression

Sample: 1961 thru 2021                          Number of obs     =         61
                                                Wald chi2(2)      =      17.21
Log likelihood = 60.19272                       Prob > chi2       =     0.0002

------------------------------------------------------------------------------
             |                 OPG
   D.log_gdp | Coefficient  std. err.      z    P>|z|     [95% conf. interval]
-------------+----------------------------------------------------------------
log_gdp      |
       _cons |   .0707899   .0085723     8.26   0.000     .0539885    .0875912
-------------+----------------------------------------------------------------
ARMA         |
          ma |
         L1. |   .1135653    .103465     1.10   0.272    -.0892223    .3163529
         L2. |  -.4008123   .1129969    -3.55   0.000    -.6222821   -.1793425
-------------+----------------------------------------------------------------
      /sigma |   .0899162    .007283    12.35   0.000     .0756417    .1041907
------------------------------------------------------------------------------
Note: The test of the variance against zero is one sided, and the two-sided
      confidence interval is truncated at zero.

匹配的statsmodels ARIMA(0,0,2)结果(手动差分后带常数项)

re = ARIMA(df_log.diff().dropna(), order=(0,0,2))
print(re.fit().summary())
SARIMAX Results                                
==============================================================================
Dep. Variable:                    GDP   No. Observations:                   61
Model:                 ARIMA(0, 0, 2)   Log Likelihood                  60.193
Date:                Thu, 11 May 2023   AIC                           -112.386
Time:                        02:14:30   BIC                           -103.942
Sample:                    01-01-1961   HQIC                          -109.076
                         - 01-01-2021                                         
Covariance Type:                  opg                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const          0.0708      0.009      8.258      0.000       0.054       0.088
ma.L1          0.1136      0.103      1.098      0.272      -0.089       0.316
ma.L2         -0.4008      0.113     -3.548      0.000      -0.622      -0.179
sigma2         0.0081      0.001      6.174      0.000       0.006       0.011
===================================================================================
Ljung-Box (L1) (Q):                   0.00   Jarque-Bera (JB):                 2.57
Prob(Q):                              0.99   Prob(JB):                         0.28
Heteroskedasticity (H):               0.60   Skew:                             0.36
Prob(H) (two-sided):                  0.26   Kurtosis:                         3.71
===================================================================================

内容的提问来源于stack exchange,提问作者Satish Chaudhary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 15:07:00