Stata:estadd加权相关变量均值(ysumm)

时间:2013-09-17 02:45:23

标签: latex stata mean weighted

我想添加一行来列出回归表底部的因变量的加权平均值。通常情况下,我会运行

reg y x1 x2 x3
estadd ysumm, mean
eststo r1
esttab r1 using results.tex, replace label title("Title") long nomtitles cells("b(fmt(a3) star)" t(par fmt(2))) stats(r2 N ymean, labels("R-squared" "Observations" "Mean of Y"))

但是,我尝试了两种方法来获得加权平均值而没有成功。 第一:

reg y x1 x2 x3
estadd ysumm [aw=pop], mean

我收到错误:

weights not allowed
r(101);

其次,我手动将加权平均值输入矩阵,然后用estadd保存:

matrix define wtmeans=(mean1, mean2, mean3)
estadd matrix wtmeans

esttab r1 using results.tex, replace label title("Title") long nomtitles cells("b(fmt(a3) star)" t(par fmt(2))) stats(r2 N wtmeans, labels("R-squared" "Observations" "Mean of Y"))

生成的tex文件包含标签“Y的平均值”,但该行为空白。

如何将这些加权方式显示在tex表中?

1 个答案:

答案 0 :(得分:1)

我今天遇到了类似的问题。部分解决方案是使用标量命令,然后在esttab, stat()选项中引用该标量矩阵。

这是我用于类似问题的语法。你可能会略微不同,因为你正在拉一个不同的标量(我正在抓取特定联合F检验的p值),但实际上它应该是相同的:

eststo clear
eststo ALL: reg treatment var1 var2 var3 var4 if experiment
qui test var1 var2 var3 
estadd scalar pvals=r(p)

...重复其他规格...

esttab _all using filename.csv, replace se r2 ar2 pr2 stat(pvals) star( + .1 ++ .05 +++ .01) b(%9.3f) se(%9.3f) drop(o.*) label indicate()

所以你可以做到以下几点:

eststo clear
eststo r1: reg y x1 x2 x3
qui sum y [aw=pop]
estadd scalar YwtdMean=r(mean)
esttab r1 using results.tex, replace label title("Title") long nomtitles cells("b(fmt(a3) star)" t(par fmt(2))) stats(r2 N YwtdMean, labels("R-squared" "Observations" "Weighted Mean of Y"))

让我知道这是否有效。