1

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

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 表中?

4

1 回答 1

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"))

让我知道这个是否奏效。

于 2013-09-17T18:11:03.090 回答