在 Stata 中存储回归系数

问题描述 投票:0回答:1

我试图将模拟回归的系数存储在下面代码中的变量 b1 和 b2 中,但我不太确定如何进行此操作。我尝试过使用

return scalar b1 = _b[x1]
函数中的
return scalar b2 = _b[x2]
rclass()
,但这不起作用。然后我尝试使用
scalar b1 = e(x1)
函数中的
scalar b2 = e(x2)
eclass()
,但也没有成功。

目标是使用这些存储的系数来估计某个值(例如 rhat)并测试 rhat 的标准误差。

下面是我的代码:

program montecarlo2, eclass  
    clear  
    version 11  
    drop _all  
    set obs 20  
    gen x1 = rchi2(4) - 4  
    gen x2 = (runiform(1,2) + 3.5)^2  
    gen u = 0.3*rnormal(0,25) + 0.7*rnormal(0,5)  
    gen y = 1.3*x1 + 0.7*x2 + 0.5*u  
* OLS Model  
    regress y x1 x2             
    scalar b1 = e(x1)  
    scalar b2 = e(x2)  
end  

我想做一些类似的事情,

rhat = b1 + b2,然后测试rhat的标准误。

regression least-squares stata
1个回答
0
投票

让我们稍微修改一下你的程序:

版本 1

program montecarlo2
    clear  
    version 11  
    set obs 20  
    gen x1 = rchi2(4) - 4  
    gen x2 = (runiform(1,2) + 3.5)^2  
    gen u = 0.3*rnormal(0,25) + 0.7*rnormal(0,5)  
    gen y = 1.3*x1 + 0.7*x2 + 0.5*u  
* OLS Model  
    regress y x1 x2             
end  

考虑到

drop _all
,我将
clear
删除为不必要的。我剪了
eclass
。这样做的原因之一是
regress
无论如何都会留下 e 级成绩。另外,如果您愿意,也可以添加

scalar b1 = _b[x1] 
scalar b2 = _b[x2] 
scalar r = b1 + b2 

regress
之后的程序内或在程序运行后立即。

版本 2

program montecarlo2, eclass 
    clear  
    version 11  
    set obs 20  
    gen x1 = rchi2(4) - 4  
    gen x2 = (runiform(1,2) + 3.5)^2  
    gen u = 0.3*rnormal(0,25) + 0.7*rnormal(0,5)  
    gen y = 1.3*x1 + 0.7*x2 + 0.5*u  
* OLS Model  
    regress y x1 x2         
    * stuff to add    
end  

再次,考虑到

drop _all
,我将
clear
删除为不必要的。现在声明
eclass
是一把双刃剑。它为程序员提供了保存 e-class 结果的程序范围,但您必须说明它们将是什么。这就是上面评论所指出的要添加的内容。

警告:我没有测试过这些。我不是在谈论更广泛的背景。无论您遇到什么问题,@Dimitriy V. Masterov 的

lincom
建议可能都是一个非常好的主意。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.