如何解决使用 Stata 中存储的回归估计创建矩阵
我正在 Stata 中执行具有以下规范的事件研究:
reghdfe numPixelsLost tee_1##db_1 tee_2##db_1 tee_3##db_1 tee_4##db_1 tee_5##db_1 tee_6##db_1 tee_7##db_1 tee_8##db_1 tee_9##db_1 tee_10##db_1 if biome==6,absorb(year case_id) vce(cluster case_id)
当我检查完整结果时,我可以看到 Stata 估计了所有我感兴趣的变量(交互项)的系数和标准误差。
然后我尝试使用循环来获取这些信息并将其存储为矩阵:
forvalues j = 1/10 {
matrix co1`j' = [_b[1.tee_`j'#1.db_1],_b[1.tee_`j'#1.db_1] - 1.96*_se[1.tee_`j'#1.db_1],_b[1.tee_`j'#1.db_1] + 1.96*_se[1.tee_`j'#1.db_1]]
}
然后我尝试将所有这些矩阵拼接成一个矩阵(我可以用来制作图形),如下所示:
matrix all1 = [co11 \ co12 \ co13 \ co14 \ col5 \ col6 \ col7 \ col8 \ col9 \ col10]
但是 Stata 不会生成矩阵,因为它声称某些向量“未找到”。这很奇怪,因为所有的系数都是估计的。我想帮助理解为什么循环似乎无法识别估计系数以及如何生成矩阵。
解决方法
看起来您的问题已解决,但我将添加一个解决方案,以利用 reghdfe
和一些线性代数的存储结果。另请注意,您使用 1.96 来构建置信区间,这取决于观测值和回归量的数量,可能不是基础 t 分布的良好近似值。
sysuse auto,clear
reghdfe price weight length,absorb(rep78)
* SET T stat
global sig= 0.95
scalar _df = e(df_r) // df scalar
scalar _t = abs(invt(_df,(1 - ${sig})/2)) // t stat scalar
* SET BETA AND SE MATRICES
local names : colfullnames e(b)
matrix B = (e(b))'
mata st_matrix("SD_matrix",sqrt(diagonal(st_matrix("e(V)"))))
* IDENTITY MATRIX FOR CONFORMABILITY
matrix I = I(`= rowsof(B)')
* MAKE Confidence interval MATRICES
matrix CI_low = B - _t*I*SD_matrix
matrix CI_high = B + _t*I*SD_matrix
* Final Results
matrix all1 = [B' \ CI_low' \ CI_high']
matrix rownames all1
weight length _cons
Beta 5.4783091 -109.50651 10154.617
CI_.95_Low 3.162337 -187.98821 1617.9601
CI_.95_High 7.7942812 -31.02482 18691.274
如果您改变回归量的数量,这将允许您重新创建矩阵。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。