格兰杰因果检验的最优滞后选择



我使用[TS] varsoc来获得Stata中格兰杰因果检验的最佳滞后长度。该命令根据不同的标准(如赤池信息标准(Akaike’s information criterion, AIC))报告最优延迟数。是否有任何方法可以将最佳滞后数(基于AIC获得)存储在变量中,并在下一个命令中使用它来估计因果关系?像这样:

Lag= varsoc X Y
tvgc X Y, p(Lag) d(Lag) trend window(30) prefix(_) graph

这里我改编了varsoc帮助中的第一个示例。您可以对统计数据矩阵进行排序,使最小AIC位于第一行,并读取相关的延迟。

. webuse lutkepohl2, clear 
(Quarterly SA West German macro data, Bil DM, from Lutkepohl 1993 Table E.1)
. varsoc dln_inv dln_inc dln_consump
Lag-order selection criteria
Sample: 1961q2 thru 1982q4                               Number of obs = 87
+---------------------------------------------------------------------------+
| Lag |    LL      LR      df    p     FPE       AIC      HQIC      SBIC    |
|-----+---------------------------------------------------------------------|
|   0 |  696.398                     2.4e-11  -15.9402  -15.9059  -15.8552* |
|   1 |  711.682  30.568    9  0.000 2.1e-11  -16.0846  -15.9477* -15.7445  |
|   2 |  724.696  26.028    9  0.002 1.9e-11* -16.1769* -15.9372  -15.5817  |
|   3 |  729.124  8.8557    9  0.451 2.1e-11  -16.0718  -15.7294  -15.2215  |
|   4 |  738.353  18.458*   9  0.030 2.1e-11  -16.0771   -15.632  -14.9717  |
+---------------------------------------------------------------------------+
* optimal lag
Endogenous: dln_inv dln_inc dln_consump
Exogenous: _cons
. 
. mata 
------------------------------------------------- mata (type end to exit) ---------------
: stats = st_matrix("r(stats)")
: _sort(stats, 7)
: st_numscalar("opt_lag_AIC", stats[1,1])
: end 
-----------------------------------------------------------------------------------------
. 
. di opt_lag_AIC 
2

要自动插入以后的命令,可以使用像

这样的表达式
`=opt_lag_AIC' 

作为选项的参数。

最新更新