Удаление макетов в esttab

#stata

#stata

Вопрос:

Я попытался создать таблицу, используя семейство команд, предоставленное estout сообществом:

 esttab est1 est2 est3 using table3.tex, se label nobaselevels ///
star(* 0.10 ** 0.05 *** 0.01) cell((coef(fmt(%9.2f)) sd(fmt(%9.2f)))) ///
drop(_Iprovince* _Iyear*) stats(year province robust r2 N, ///
label("Year Fixed Effects" "Province Fixed Effects" "Robust SE" "R-squared")) ///
replace booktabs
  

Однако Stata выдает следующую ошибку:

коэффициент _Iprovince * не найден

Это манекены с «фиксированным эффектом», которые я хочу удалить.

Код отлично работает, когда я вынимаю его cell() .

Наконец, как я могу также округлить оценки коэффициентов и стандартные ошибки?

Ответ №1:

Если у вас нет очень старой версии Stata, не используйте xi для создания FEs. Вместо этого используйте обозначение факторной переменной i.province и i.year .

Основная проблема с вашим кодом заключается в том, что вы должны иметь b вместо coef (Stata не может удалять коэффициенты, поскольку они не включены, если вы не сообщите Stata, что они вам нужны):

 sysuse auto
eststo est1: reg price mpg i.rep78
esttab est1, ///
stats(b year province robust r2 N, label("Year Fixed Effects" "Province Fixed Effects" "Robust SE" "R-squared")) ///
replace booktabs drop(*.rep78) se label nobaselevels star(* 0.10 ** 0.05 *** 0.01) cell((b(fmt(%9.2f)) sd(fmt(%9.2f))))
  

Обратите внимание на воспроизводимый пример в общем наборе данных.

Ответ №2:

Код не выполняется, потому что вы используете в esttab подразделе sd вместо se :

 sysuse auto, clear

eststo est1: xi: reg price mpg i.rep78
i.rep78           _Irep78_1-5         (naturally coded; _Irep78_1 omitted)

      Source |       SS           df       MS      Number of obs   =        69
------------- ----------------------------------   F(5, 63)        =      4.39
       Model |   149020603         5  29804120.7   Prob > F        =    0.0017
    Residual |   427776355        63  6790100.88   R-squared       =    0.2584
------------- ----------------------------------   Adj R-squared   =    0.1995
       Total |   576796959        68  8482308.22   Root MSE        =    2605.8

------------------------------------------------------------------------------
       price |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
------------- ----------------------------------------------------------------
         mpg |  -280.2615   61.57666    -4.55   0.000    -403.3126   -157.2103
   _Irep78_2 |   877.6347   2063.285     0.43   0.672     -3245.51     5000.78
   _Irep78_3 |   1425.657   1905.438     0.75   0.457    -2382.057    5233.371
   _Irep78_4 |   1693.841   1942.669     0.87   0.387    -2188.274    5575.956
   _Irep78_5 |   3131.982   2041.049     1.53   0.130    -946.7282    7210.693
       _cons |   10449.99   2251.041     4.64   0.000     5951.646    14948.34
------------------------------------------------------------------------------

esttab est1, cell((coef(fmt(%9.2f)) sd(fmt(%9.2f)))) label nobaselevels ///
star(* 0.10 ** 0.05 *** 0.01) stats(b r2 N) drop(_Irep78*)
coefficient _Irep78* not found
r(111);
  

Если вы используете правильный подраздел se , код выполняется:

 esttab est1, cell((coef(fmt(%9.2f)) se(fmt(%9.2f)))) label nobaselevels ///
star(* 0.10 ** 0.05 *** 0.01) stats(r2 N) drop(_Irep78*)

----------------------------------------------
                              (1)             
                            Price             
                             coef           se
----------------------------------------------
Mileage (mpg)                            61.58
Constant                               2251.04
----------------------------------------------
r2                           0.26             
N                           69.00             
----------------------------------------------
  

Однако подопция coeflabels ( coef в вашем коде) должна только
указывайте метки для бета-коэффициентов, а не включайте их.

Таким образом, вместо этого вам нужно использовать подопцию b , как предложено в ответе @Dimitriy:

 esttab est1, cell((b(fmt(%9.2f)) se(fmt(%9.2f)))) label nobaselevels ///
star(* 0.10 ** 0.05 *** 0.01) stats(r2 N) drop(_Irep78*)

----------------------------------------------
                              (1)             
                            Price             
                                b           se
----------------------------------------------
Mileage (mpg)             -280.26        61.58
Constant                 10449.99      2251.04
----------------------------------------------
r2                           0.26             
N                           69.00             
----------------------------------------------
  

Вот полный вывод в esttab (без удаления чего-либо):

 esttab est1, cell((b(fmt(%9.2f)) se(fmt(%9.2f)))) label nobaselevels ///
star(* 0.10 ** 0.05 *** 0.01) stats(r2 N)

----------------------------------------------
                              (1)             
                            Price             
                                b           se
----------------------------------------------
Mileage (mpg)             -280.26        61.58
rep78==2                   877.63      2063.28
rep78==3                  1425.66      1905.44
rep78==4                  1693.84      1942.67
rep78==5                  3131.98      2041.05
Constant                 10449.99      2251.04
----------------------------------------------
r2                           0.26             
N                           69.00             
----------------------------------------------