格兰杰因果检验中最优滞后阶数的选择与调用问题
在Stata中提取varsoc的AIC最优滞后阶数并自动调用
完全可以实现,Stata的varsoc命令会把结果存储在返回值(r-class)里,直接提取对应准则的最优阶数即可,不用手动复制粘贴。
具体操作步骤:
运行varsoc并提取AIC最优阶数
先执行varsoc命令,直接从返回值中提取AIC对应的最优滞后阶数,存为局部宏(后续命令调用更便捷):varsoc X Y // 可加maxlag()参数指定最大滞后范围,比如maxlag(10) local opt_lag = r(k_aic) // r(k_aic)就是AIC准则下的最优滞后阶数在后续命令中自动调用
把局部宏opt_lag直接代入tvgc命令的参数中:tvgc X Y, p(`opt_lag') d(`opt_lag') trend window(30) prefix(_) graph
补充说明:
- 如果需要把最优阶数存为数据集中的永久变量(而非临时局部宏),可以执行:
gen opt_lag_aic = `opt_lag' varsoc的返回值里还包含其他准则的最优阶数,比如r(k_bic)对应BIC准则、r(k_hqic)对应HQIC准则,按需提取即可。
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

