为了使模型更好地拟合数据,可以将 AR(p) 与 MA(q) 结合起来,得到 ARMA(p,q) :
yt=β0+β1yt−1+⋯+βpyt−p+εt+θ1εt−1+⋯+θqεt−q其中,{εt} 为白噪声。在给定 {y1,y2,⋯,yp} 与“ε0=ε−1=⋯=ε−q+1=0”的条件下,可以使用条件 MLE 来估计 ARMA(p,q)。为了估计 ARMA(p,q),首先必须确定 (p,q),而经济理论通常不能提供这些信息,故只能根据数据来估计 (p,q)。 在实践中,常常先考察数据的自相关函数(ACF)与偏自相关函数(PACF),以判断是否存在 p=0 或 q=0 的情形。
from statsmodels.tsa.arima_model import ARMA
import pandas as pd
data = pd.read_excel('../数据/上证指数与沪深300.xlsx')
res = ARMA(data['sz'], order=(1,1)).fit()
res.summary()
Dep. Variable: | sz | No. Observations: | 460 |
---|---|---|---|
Model: | ARMA(1, 1) | Log Likelihood | -2294.749 |
Method: | css-mle | S.D. of innovations | 35.352 |
Date: | Fri, 29 May 2020 | AIC | 4597.498 |
Time: | 21:03:01 | BIC | 4614.023 |
Sample: | 0 | HQIC | 4604.006 |
coef | std err | z | P>|z| | [0.025 | 0.975] | |
---|---|---|---|---|---|---|
const | 2987.0655 | 142.111 | 21.019 | 0.000 | 2708.533 | 3265.597 |
ar.L1.sz | 0.9902 | 0.006 | 161.182 | 0.000 | 0.978 | 1.002 |
ma.L1.sz | 0.0012 | 0.047 | 0.025 | 0.980 | -0.090 | 0.093 |
Real | Imaginary | Modulus | Frequency | |
---|---|---|---|---|
AR.1 | 1.0099 | +0.0000j | 1.0099 | 0.0000 |
MA.1 | -842.3029 | +0.0000j | 842.3029 | 0.5000 |