使用esttab按组生成汇总统计信息,其中包含平均差异和显着性的列

时间:2013-03-21 19:07:57

标签: stata

我想使用esttabssc install estout)按组生成汇总统计信息,其中包含平均差异和显着性的列。使用estpostsummarizettest生成这两个表非常容易,并手动组合,但我希望自动完成整个过程。

以下代码生成所需表的两个组件。

sysuse auto, clear

* summary statistics by group
eststo clear
by foreign: eststo: quietly estpost summarize ///
    price mpg weight headroom trunk
esttab, cells("mean sd") label nodepvar   

* difference in means
eststo: estpost ttest price mpg weight headroom trunk, ///
    by(foreign) unequal 
esttab ., wide label   

我可以打印两张桌子并将其粘贴到一张桌子上。

* can generate similar tables and append horizontally
esttab, cells("mean sd") label
esttab, wide label


* manual, cut-and-paste solution
-------------------------------------------------------------------------------------------------------
                              (1)                       (2)                         (3)                

                             mean           sd         mean           sd         
-------------------------------------------------------------------------------------------------------
Price                    6072.423     3097.104     6384.682     2621.915         -312.3         (-0.44)
Mileage (mpg)            19.82692     4.743297     24.77273     6.611187         -4.946**       (-3.18)
Weight (lbs.)            3317.115     695.3637     2315.909     433.0035         1001.2***       (7.50)
Headroom (in.)           3.153846     .9157578     2.613636     .4862837          0.540**        (3.30)
Trunk space (.. ft.)        14.75     4.306288     11.40909     3.216906          3.341***       (3.67)
-------------------------------------------------------------------------------------------------------
Observations                   52                        22                          74                
-------------------------------------------------------------------------------------------------------
t statistics in parentheses
* p<0.05, ** p<0.01, *** p<0.001

似乎我应该能够通过一次esttab调用获得所需的表格而不需要剪切和粘贴,但我无法理解。有没有办法生成所需的表而无需手动剪切和粘贴?

我更喜欢输出一个LaTeX表,但任何消除剪切和粘贴的东西都是一大步,甚至是通过分隔的文本文件。

3 个答案:

答案 0 :(得分:8)

如果您仍想使用esttab,可以使用单元格和模式。可以使用以下代码复制原始帖子中的表:

sysuse auto, clear

eststo domestic: quietly estpost summarize ///
    price mpg weight headroom trunk if foreign == 0
eststo foreign: quietly estpost summarize ///
    price mpg weight headroom trunk if foreign == 1
eststo diff: quietly estpost ttest ///
    price mpg weight headroom trunk, by(foreign) unequal

esttab domestic foreign diff, ///
cells("mean(pattern(1 1 0) fmt(2)) sd(pattern(1 1 0)) b(star pattern(0 0 1) fmt(2)) t(pattern(0 0 1) par fmt(2))") ///
label

产生

-----------------------------------------------------------------------------------------------------
                              (1)                       (2)                       (3)                

                             mean           sd         mean           sd            b               t
-----------------------------------------------------------------------------------------------------
Price                     6072.42      3097.10      6384.68      2621.92      -312.26         (-0.44)
Mileage (mpg)               19.83         4.74        24.77         6.61        -4.95**       (-3.18)
Weight (lbs.)             3317.12       695.36      2315.91       433.00      1001.21***       (7.50)
Headroom (in.)               3.15         0.92         2.61         0.49         0.54**        (3.30)
Trunk space (.. ft.)        14.75         4.31        11.41         3.22         3.34***       (3.67)
-----------------------------------------------------------------------------------------------------
Observations                   52                        22                        74                
-----------------------------------------------------------------------------------------------------

答案 1 :(得分:3)

我认为通过esttab(来自estout的{​​{1}}包)可以做到这一点,但我有{{1}的解决方案(还有ssc)和listtab。这里的表与我上面提到的表略有不同,但这种方法足够通用,你可以修改它以满足你的需要。

此解决方案还使用LaTeX的ssc包。

postfile

这产生以下结果。

enter image description here

答案 2 :(得分:1)

选择的答案很好,但有点减少。只有estpost ttest才能达到相同的效果。

sysuse auto, clear
estpost ttest price mpg weight headroom trunk, by(foreign)
esttab, cells("mu_1 mu_2 b(star)"

输出如下:

             mu_1          mu_2         b   

c_score     43.33858    42.034       1.30458***
nc_a4_17    4.007524    3.924623    .0829008*