y_t = a11*y_{t-1} + u_t
y_t = a21*y_{t-1} + a22*y_{t-2} + u_t ...
y_t = ak1*y_{t-1} + ak2*y_{t-2} + ... + akk*y_{t-k} + u_t
PACF 为 {a11, a22, a33, ... , akk}
相当于控制其它滞后项的影响后,得到的“净”相关系数 2)AR的图示判断
ac y_ar /*AR过程的 ACF 具有“拖尾”特征,长期记忆*/ pac y_ar /*AR过程的 PACF 具有“截尾”特征*/
评论:根据AC和PAC图形可以初步判断某个序列是否为AR过程
具体表现为:
(1) AC 图“拖尾”
(2) PAC 图“截断”(截断处对应的阶数就是AR的滞后阶数P)
2 MA 过程(移动平均过程)
1) MA(1): y_t = theta*u_{t-1} + u_t
MA(q): y_t = theta1*u_{t-1} + theta2*u_{t-2} + ... + thetaq*u_{t-q} + u_t
sim_arma y_ma, ma(0.8) line y_ma _t, yline(0)
2)MA图示判断
ac y_ma /*MA过程的 ACF 具有“截尾”特征,短期记忆*/ pac y_ma /*MA过程的 PACF 具有锯齿型“拖尾”特征*/
3.稳定性与可逆性
定义:协方差稳定(Covariance Stationary) a. E[y_t] 独立于 t;
b. Var[y_t] 是一个有限的正常数,且独立于 t;
c. Cov[y_t,y_{t+s}] 是 s 的有限函数,但与 t 无关。 稳定的AR过程和MA过程可以相互转换
3.4ARIMA 模型
1) y_t = x_t*b + u_t 结构方程
u_t = rho*u_{t-1} + theta*v_{t-1} + v_t 干扰项,ARMA(1,1) 一阶自相关 一阶移动平均 白噪声
很多情况下,模型设定中并不包含解释变量,此时ARMA(1,1)模型可表示为:
y_t = a + rho*y_{t-1} + theta*v_{t-1} + v_t
实例:固定资产投资行为
2)估计
use wpi1.dta, clear d
dfuller wpi
gen d_wpi = D.wpi dfuller d_wpi
ARMA(1,1,1) 模型 由于原始序列包含单位根,所以要采用ARIMA模型
arima wpi, arima(1,1,1)
另一种设定方式,更加灵活
arima d_wpi, ar(1) ma(1)
3)滞后阶数的确定
LL值,AIC准则,BIC准则
LL 越大越好, AIC 和 BIC 越小越好
AIC = -2*ln(L) + 2*k /*ln(L) 对数似然值;k 参数个数; N 样本数*/ BIC = -2*ln(L) + k*ln(N)
BIC 更倾向于筛选出“精简的”模型
4) 产生模拟数据:ARMA(2,1)过程
clear
set seed 1357
sim_arma y_arma21, ar(0.8) ma(0.2) nobs(300)
5) 估计 ARMA(1,1) 模型,MLE
arima y_arma21, ar(1) ma(1) * 列示信息准则 estat ic
6)估计 ARMA(2,1) 模型
arima y_arma21, ar(1 2) ma(1) estat ic ret list
mat list r(S) mat s = r(S)
dis \
7) 根据信息准则筛选模型 例1:模拟数据 tsset _t
mat b = J(6,4,0) local p = 1
forvalues i = 1(1)3{
forvalues j = 1(1)2{ mat b[`p',1] = `i' mat b[`p',2] = `j'
qui arima y_arma21 , ar(1/`i') ma(1/`j') est store arma`i'`j' qui estat ic mat S = r(S)
mat b[`p',3] = (S[1,5], S[1,6]) local p = `p' + 1 } }
mat colnames b = AR MA AIC BIC mat list b
local mm arma11 arma12 arma21 arma22 arma31 arma32
esttab `mm', mtitle(`mm') compress nogap scalar(ll aic bic)
例2:真实数据——美国零售价格指数 use wpi1.dta, clear tsset t line wpi t line D.wpi t line D.ln_wpi t
ac D.ln_wpi /*包含AR过程*/
pac D.ln_wpi /*基本上可以判断是AR(1),或ARMA(1,1)过程*/
8) 采用信息准则筛选滞后阶数
local y \
local a = 3 /*AR(a)*/ local b = 1 /*MA(b)*/ forvalues i = 1(1)`a'{
forvalues j = 0(1)`b'{ if `j' == 0{ local ma \ }
else{
local ma \ }
qui arima `y' , ar(1/`i') `ma' /*填写变量名称*/ est store arma`i'`j' *qui estat ic } }
local mm arma10 arma11 arma20 arma21 arma30 arma31
esttab `mm', mtitle(`mm') compress nogap scalar(ll aic bic)
评论:
(1) 本例中,AIC和BIC判断的结论一致,都是选择 ARMA(1,1) 模型; (2) 多数情况下,ARMA(1,1) 模型都有较好的表现。
* -- 季节效应 --
use wpi1.dta, clear set scheme s2color tsset t line wpi t
line d.wpi t, yline(0)
ac D.ln_wpi, ylabels(-0.4(0.2)0.6) /*注意前四阶*/ pac D.ln_wpi, ylabels(-0.4(0.2)0.6)
arima D.ln_wpi, ar(1) ma(1) est store arma11
arima D.ln_wpi, ar(1) ma(1 4) est store arma114
arima D.ln_wpi, ar(1) ma(1/4) est store arma11234
local mm \
esttab `mm', mtitle(`mm') scalar(ll aic bic)
此时,我们发现,选择 ARMA(1,(1,4)) 模型更加合理 注意资料的特性: 季节资料通常会呈现出“季节效应” 月度资料有时也会呈现出“月度效应”
* -- 预测 --
use wpi1.dta, clear
arima D.ln_wpi, ar(1) ma(1 4) cap drop y_hat0 cap drop y_hat1 cap drop y_hat_dy
* 样本内预测
predict y_hat0 /* y 的拟合值 */
* 样本外预测 list in -15/-1 tsappend, add(8) list in -15/-1
predict y_hat1 /* y 的样本外一步预测值 */ list in -15/-1
gen Dln_wpi = D.ln_wpi sum
predict y_hat_dy0, dynamic(124) /*动态预测*/
解释:
当 t<123 时,采用 y_t 的真实值进行预测;
当 t>=123 时,采用 y_t 的预测值进行进一步的预测
predict y_hat_dy5, dynamic(120)
list in -20/-1