【问题标题】:Storing coefficients from a Regression in Stata在Stata中存储回归系数
【发布时间】:2018-02-13 01:01:51
【问题描述】:

我试图将来自模拟回归的系数存储在下面代码中的变量 b1 和 b2 中,但我不太确定如何去做。我已经尝试使用rclass() 函数中的return scalar b1 = _b[x1]return scalar b2 = _b[x2],但这不起作用。然后我尝试使用eclass() 函数中的scalar b1 = e(x1)scalar b2 = e(x2),但也没有成功。

目标是使用这些存储的系数来估计一些值(比如 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的标准误。

【问题讨论】:

  • 这里有很多幻想语法,例如e(x1)。但是scalar b1 = _b[x1] 等可以在程序内或之后工作。如果您只想访问系数估计值,您是否需要声明程序 eclassrclass 尚不清楚。无论如何,CV 都跑题了,所以我投票赞成迁移到 SO。请参阅 CV 帮助中心中有关软件特定问题的帮助。 .
  • 感谢尼克的澄清!现在可以了。但是一个快速跟进的问题,我试图将标量存储在一个变量中,例如 rhat。我正在尝试 rhat = display b1 + b2,但我收到一条错误消息,提示无法识别该命令。有关如何解决此问题的任何建议?
  • 使用 lincom 命令获取总和,然后您可以将其用于假设检验。无需将其存储为变量。

标签: regression least-squares stata


【解决方案1】:

让我们稍微破解一下你的程序:

版本 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  

鉴于clear,我将drop _all 删减为不必要的。我剪掉了eclass。这样做的一个原因是regress 将以任何方式留下 e-class 结果。另外,如果你愿意,你可以添加

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  

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

警告:我没有测试过这些。我不是在讨论更广泛的背景。 @Dimitriy V. Masterov 对lincom 的建议对于您遇到的任何问题都可能是一个非常好的主意。

【讨论】:

    猜你喜欢
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-28
    • 2012-12-19
    相关资源
    最近更新 更多