执行多个回归的循环。对于每个回归,我们需要进行一些异方差检验。遗憾的是,以下代码不起作用:
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"
。
是否有其他方法可以循环回归 - 后评估测试?
答案 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
的值都在变化