Stata--上证综指的GARCH预测及其与宏观经济变量的关系研究

将上证综指进行自回归的GARCH建模,再检验其与宏观变量之间的关系,进行向量VAR模型建模,以下是stata实现全部代码:

上证综指的日数据建模

use index_daily
gen date2=date(date,"DMY")
format %td date2
sort date2
gen t=_n
tsset t
tsline ln_index
corrgram ln_index
ac ln_index
pac ln_index
*选择滞后阶数,做ADF检验单位根
arima ln_index,arima(4 0 0)
estat ic                          //结果显示应该选择4阶
dfuller ln_index, lags(4)
dfuller ln_index,regress lags(4)  //均不显著,存在单位根
*差分
gen d_index=D.ln_index
tsline d_index
corrgram d_index
*对差分数据进行ADF检验
arima d_index,arima(5 0 0)
estat ic
dfuller d_index, lags(5)   
dfuller d_index,regress lags(5)     //差分平稳
*对d_index进行AR(5)回归
arima d_index,arima(5 0 0)  
predict e,res
wntestq e    //白噪声检验,非白噪声
gen e2=e^2
corrgram e      //一定阶数后相关
corrgram e2    //相关
*ARCH效应
regress d_index
estat archlm, lags(1 2 3 4)  //存在ARCH 效应 
arch d_index,arima(3 0 0)arch(1) garch(1)nolog
estat ic                  //选择AR(3)-GARCH(1,1)
predict et,res
predict ht,var
*标准化残差
gen zt=et/sqrt(ht)
gen zt2=zt^2
wntestq zt        //残差成为白噪声
corrgram zt       //残差不再相关
corrgram zt2      //方差也不相关
*预测
tsappend,add(1)
predict d
tsline d d_index

上证综指与价格指数、货币供给的向量自回归分析:

use index_micro.dta
summarize
gen date2=mofd(date(date,"DMY")) 
format %tm date2
tsset date2
**观察基本时序图
line ln_index date2
line lncpi date2
line lnm1 date2
line lnnl date2
summarize ln_index lncpi lnm1 lnnl //看起来不平稳,做AC\PAC图
corrgram ln_index
ac ln_index
pac ln_index
corrgram lncpi
ac lncpi
pac lncpi
corrgram lnm1
ac lnm1
pac lnm1   //观察自相关偏自相关系数,确定是否有时间趋势、季节趋势,确定ADF检验形式
**AIC、BIC原则确定滞后阶数
arima ln_index,arima(2 0 3)
estat ic                                   //  la_index选择2阶
arima lncpi,arima(2 0 1)
estat ic                                   //lncpi 选择2阶     
**单位根检验,平稳性检验
dfuller ln_index, lags(2)
dfuller ln_index,regress lags(2)
dfuller lncpi,lags(2)
dfuller lncpi,regress lags(2)
dfuller lnm1, lags(7) trend
dfuller lnm1,regress lags(7) trend    //均平稳
*对ln_index进行AR(2)回归
arima ln_index,arima(2 0 0)  
tsappend,add(2)
predict ln_index2
tsline ln_index2 ln_index     //拟合效果较好
*残差检验,是否自相关
predict e2,res
gen e3=e^2
corrgram e2       //残差不存在自相关
corrgram e3       //残差平方也不相关
wntestq e2         //为白噪声
*predict

**与宏观经济因素的相互影响,进行格兰杰因果检验
clear 
use index_micro.dta     //重新引入数据,因为之前做过预测
gen date2=mofd(date(date,"DMY")) 
format %tm date2
tsset date2
varsoc ln_index lncpi lnm1, maxlag(12)
var ln_index lncpi lnm1,lags(1/2) 
matlist e(Sigma)
varlmar             //5%置信水平不相关
varstable,graph     //平稳
predict ln_indexhat
tsline ln_indexhat ln_index
xcorr ln_index lnm1    //互相关系数
vargranger       //存在一定的因果关系
append using 2019new.dta
fcast compute F_, step(6)
fcast graph F_ln_index F_lnm1 F_lncpi, observed lpattern(dash)   //动态预测
irf create oder1,step(12) set(myirf1) replace  //脉冲响应分析
irf graph oirf,impulse(ln_index lncpi lnm1) response(ln_index lncpi lnm1)

你可能感兴趣的:(Stata--上证综指的GARCH预测及其与宏观经济变量的关系研究)