esttab中具有均值的子组

时间:2018-09-13 17:51:56

标签: formatting format latex output stata

这是我尝试过的Stata代码:

eststo clear
sysuse auto, clear
eststo Dom: estpost sum rep78 mpg turn trunk weight length if foreign==0
eststo For: estpost sum rep78 mpg turn trunk weight length if foreign==1
esttab Dom For, cells("mean(fmt(2))" "sd") ///
    nonumber nodepvars noobs se collabels(none) mlabels(, lhs("Var") title)

下面也是输出:

--------------------------------------
Var                   Dom          For
--------------------------------------
rep78                3.02         4.29
                     0.84         0.72
mpg                 19.83        24.77
                     4.74         6.61
turn                41.44        35.41
                     3.97         1.50
trunk               14.75        11.41
                     4.31         3.22
weight            3317.12      2315.91
                   695.36       433.00
length             196.13       168.55
                    20.05        13.68
--------------------------------------

这是使用summarize计算多个变量的平均值和标准偏差。这是根据条件单独完成的(一次用于外国观察,一次用于非外国观察)。

然后通过esttab显示结果(均值和标准差)。我最终将要在LaTeX中获得此结果,但是此示例为简单起见显示了Stata中的结果。

我有两个问题:

  1. 如何获得括号中显示的标准偏差?

  2. 是否可以在变量之间包含任何行以分隔两个不同的组?

我有这样的想法:

--------------------------------------
Var                   Dom          For
--------------------------------------
Variable Group 1:
--------------------------------------
rep78                3.02         4.29
                    (0.84)       (0.72)
mpg                 19.83        24.77
                    (4.74)       (6.61)
turn                41.44        35.41
                    (3.97)       (1.50)
--------------------------------------
Variable Group 2:
--------------------------------------
trunk               14.75        11.41
                   (4.31)       (3.22)
weight            3317.12      2315.91
                 (695.36)      (433.00)
length             196.13       168.55
                  (20.05)       (13.68)
--------------------------------------

如果可能,我想使用eststo等。我希望它尽可能自动化,但是我愿意将矩阵从Stata导出到LaTeX或使用片段(如果需要的话)。如果这不可能,我也欢迎其他解决方案。

1 个答案:

答案 0 :(得分:3)

关于第一个问题,您需要在par内的sd中指定选项cells()

sysuse auto, clear

eststo clear

eststo Dom: estpost sum rep78 mpg turn trunk weight length if foreign==0
eststo For: estpost sum rep78 mpg turn trunk weight length if foreign==1
esttab Dom For, cells("mean(fmt(2))" "sd(par)") ///
    nonumber nodepvars noobs se collabels(none) mlabels(, lhs("Var") title)

关于第二个问题,您可以执行以下操作:

eststo clear

eststo Dom: estpost sum rep78 mpg turn if foreign==0
eststo For: estpost sum rep78 mpg turn if foreign==1
esttab Dom For using output.txt, cells("mean(fmt(2))" "sd(par)") ///
    nonumber nodepvars noobs collabels(none) mlabels(, lhs("Vars") title) ///
    posthead("@hline" "Variable Group 1:" "@hline" ) postfoot(" ") replace

eststo clear

eststo Dom: estpost sum trunk weight length if foreign==0
eststo For: estpost sum trunk weight length if foreign==1
esttab Dom For using output.txt, cells("mean(fmt(2))" "sd(par)") ///
    nonumber nodepvars noobs collabels(none) mlabels(none)  ///
    prehead("@hline" "Variable Group 2:") append

这将产生所需的输出:

type output.txt

--------------------------------------
Vars                  Dom          For
--------------------------------------
Variable Group 1:
--------------------------------------
rep78                3.02         4.29
                   (0.84)       (0.72)
mpg                 19.83        24.77
                   (4.74)       (6.61)
turn                41.44        35.41
                   (3.97)       (1.50)

--------------------------------------
Variable Group 2:
--------------------------------------
trunk               14.75        11.41
                   (4.31)       (3.22)
weight            3317.12      2315.91
                 (695.36)     (433.00)
length             196.13       168.55
                  (20.05)      (13.68)
--------------------------------------