Статистические данные: взвешенное по эстадду зависимое среднее значение переменной (ysumm)

Я хочу добавить строку для перечисления средневзвешенного значения зависимой переменной в нижней части таблицы регрессии. Обычно я бегал

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

Результирующий текстовый файл содержит метку «Среднее значение Y», но строка пуста.

Как я могу получить эти взвешенные средние значения в текстовой таблице?


person user32881    schedule 17.09.2013    source источник
comment
Этот ответ сработал для вас или вы все еще застряли?   -  person SOConnell    schedule 19.09.2013


Ответы (1)


У меня была аналогичная проблема, чтобы решить сегодня. Часть решения состоит в том, чтобы использовать скалярную команду, а затем обратиться к этой матрице скаляров в опции esttab, stat().

Вот синтаксис, который я использую для аналогичной проблемы. Для вас это может немного отличаться, поскольку вы используете другой скаляр (я беру p-значения для конкретного совместного F-теста), но по сути это должно быть то же самое:

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

Дайте мне знать, если это работает.

person SOConnell    schedule 17.09.2013
comment
Небольшой комментарий: используйте обобщение только тогда, когда это все, что вам нужно. - person Nick Cox; 18.09.2013