回归后的循环Postestimation测试

时间:2017-06-27 18:37:51

标签: loops regression stata

执行多个回归的循环。对于每个回归,我们需要进行一些异方差检验。遗憾的是,以下代码不起作用:

gen p_hettest = .

quietly forvalues i = 1/10 {
reg y x if id == `i'
estat hettest if id == `i'
replace p_hettest=r(p) if id == `i'
}

以下是数据样本:

    clear
    input float(y x id)
     -.006994963  -7.015742e-06 1
      .002128173  2.7695405e-06 1
       .01837084  .000015578877 1
     -.018459747 -.000017552491 1
     -.008869853  -8.115663e-06 1
               0              0 1
       .00081374   1.039456e-06 1
        .0192536   .00001801726 1
     -.004777103  -2.800596e-06 1
      .006691461    4.95152e-06 1
     -.015235436 -.000015264517 1
       .03523033  -.00001293428 2
      .037114896   .00001956828 2
     .0041321944  -6.849998e-06 2
     -.000645176  .000012979223 2
     -.015742416  -4.716876e-06 2
      .005813865  -2.943401e-06 2
       .00220989  -4.920239e-06 2
      .003843212   8.216926e-06 2
      .013684767 -4.7989766e-07 2
       .02013146   3.841124e-07 2
        .0714285  2.9144696e-06 3
       .02564108   6.107174e-06 3
      -.01336905   -7.19949e-06 3
       0          .000031617565 3
      .034420278   3.418627e-06 3
      -.04042552   .00004654335 3
       .03571425  .000024398614 3
     -.002500042  -3.514139e-06 3
      -.04651165  -.00004515287 3
       .05263159  -7.449272e-06 3
       .08727269   -7.16101e-06 3
    end   

发生r(101)错误,表示:"if not allowed"

是否有其他方法可以循环回归 - 后评估测试?

1 个答案:

答案 0 :(得分:1)

问题是estat hettest没有if个限定符。我不熟悉该命令,但我猜它只使用回归中的值来执行测试。

如果您将代码修改为:

gen p_hettest = .

quietly forvalues i = 1/10 {
    reg y x if id == `i'
    estat hettest
    replace p_hettest=r(p) if id == `i'
}

你应该全力以赴。

如果您取消quietly,则可以看到每次r(p)

的来电时estat hettest的值都在变化