Stata 使用outreg2时如何添加因变量的平均值?
我有一组回归,使用社区贡献的Stata命令Stata 使用outreg2时如何添加因变量的平均值?,stata,Stata,我有一组回归,使用社区贡献的Stata命令estout以以下格式导出: foreach yvar of varlist yvar1 yvar2 { eststo: quietly regress `yvar' xvar1 xvar2, robust estadd ysumm } esttab using mydoc.csv, se stats(N ymean r2_a) replace 然而,我发现社区贡献的命令outreg2可以创建更好的回归表,所以我想改用它 当使用out
estout
以以下格式导出:
foreach yvar of varlist yvar1 yvar2 {
eststo: quietly regress `yvar' xvar1 xvar2, robust
estadd ysumm
}
esttab using mydoc.csv, se stats(N ymean r2_a) replace
然而,我发现社区贡献的命令outreg2
可以创建更好的回归表,所以我想改用它
当使用outreg2
时,我想包括因变量(ymean
)的平均值,但我不能调用e(ymean)
,因为没有创建相关的标量
下面是我的代码:
local first_loop yes
foreach yvar of varlist yvar1 yvar2 {
quietly regress `yvar' xvar1 xvar2, robust
if "`first_loop'"=="yes"{
outreg2 using outreg2_test.xls, replace ctitle(`yvar') ///
addstat(Mean, e(ymean)) label
local first_loop no
}
else {
outreg2 using outreg2_test.xls, append ctitle(`yvar') ///
addstat(Mean, e(ymean)) label
}
}
我上面的代码不起作用,因为outreg2
无法识别e(ymean)
我的问题是:
- 此标量是否特定于
estadd
- 当使用
时,是否有办法在回归输出表中包含因变量的平均值outreg2
e(ymean)
不是回归的标准回归输出
最简单的方法可能是指定您希望报告因变量(depvar
选项),以及您希望报告平均值、系数和标准误差
例如:
outreg2 using outreg2_test.xls, replace ctitle(`yvar') depvar stats(coef se mean) label
请注意,此方法还将报告自变量的平均值
或者,要仅报告列底部的ymean
,您可以汇总因变量并手动添加平均值:
local first_loop yes
foreach yvar of varlist yvar1 yvar2 {
quietly regress `yvar' xvar1 xvar2, robust
quietly summ `yvar'
if "`first_loop'"=="yes"{
outreg2 using outreg2_test.xls, replace ctitle(`yvar') addstat(Mean, r(mean)) label
local first_loop no
}
else {
outreg2 using outreg2_test.xls, append ctitle(`yvar') addstat(Mean, r(mean)) label
}
}
如果愿意,您还可以将ymean
添加到本地宏中,并在addstat()
选项中使用它,并且根据您的回归分析,您可能希望添加if e(示例)
到您的汇总
命令。在调用outreg2
之前,也可以使用命令estadd ysumm
:
local first_loop yes
foreach yvar of varlist yvar1 yvar2 {
quietly regress `yvar' xvar1 xvar2, robust
estadd ysumm
if "`first_loop'"=="yes"{
outreg2 using outreg2_test.xls, replace ctitle(`yvar') ///
addstat(Mean of dependent variable, e(ymean)) label
local first_loop no
}
else {
outreg2 using outreg2_test.xls, append ctitle(`yvar') ///
addstat(Mean of dependent variable, e(ymean)) label
}
}
@布伦丹:谢谢你的解决方案。第一个解决方案给出了我想要的结果,但它创建了太多行(每个平均值都在一行中)。然而,第二个解决方案创建了因变量所有观测值的平均值,而不仅仅是回归中使用的观测值。有没有办法解决这个问题?如前所述,尝试将if e(sample)
添加到summ
命令中(请确保summ
在回归后执行)。@brendan如果我的问题太基本,请原谅我。如何将if(esample)
添加到summ
命令中?