如何使用estout堆叠方程式?

时间:2018-02-22 17:01:22

标签: stata

我正在使用社区提供的命令estout创建摘要统计信息表。

代码如下所示:

sysuse auto, clear
eststo clear
eststo: estpost ttest price mpg weight headroom trunk if rep78 ==3, by(foreign)
eststo: estpost ttest price mpg weight headroom trunk if rep78 ==4, by(foreign)
estout, cells("mu_1 mu_2 b(star)") 

结果如下:

--------------------------------------------------------------------------------------------
                 est1                                      est2                             
                 mu_1         mu_2            b            mu_1         mu_2            b   
--------------------------------------------------------------------------------------------
price        6607.074     4828.667     1778.407        5881.556     6261.444    -379.8889   
mpg                19     23.33333    -4.333333        18.44444     24.88889    -6.444444** 
weight       3442.222         2010     1432.222***     3532.222     2207.778     1324.444***
headroom     3.222222     2.666667     .5555556        3.444444          2.5     .9444444*  
trunk        15.59259     12.33333     3.259259        16.66667     10.33333     6.333333** 

--------------------------------------------------------------------------------------------

我想知道如何将est1est2叠加在一起。

1 个答案:

答案 0 :(得分:3)

命令estout 不能自动堆叠存储的估计结果。因此,使用eststo是多余的。在这种情况下,获得所需输出的最简单方法是简单地创建两个带有结果的矩阵,然后将一个矩阵堆叠在另一个矩阵之上。

例如:

sysuse auto, clear

matrix A = J(5, 3, .)

local i 0
foreach var of varlist price mpg weight headroom trunk {
    local ++i
    ttest `var'  if rep78 == 3, by(foreign)
    matrix A[`i', 1] = r(mu_1)
    matrix A[`i', 2] = r(mu_2)
    matrix A[`i', 3] = r(mu_1) - r(mu_2)
    local matnamesA `matnamesA' "rep78==3:`var'"
}

matrix rownames A = `matnamesA'

matrix B = J(5, 3, .)

local i 0
foreach var of varlist price mpg weight headroom trunk {
    local ++i
    ttest `var'  if rep78 == 4, by(foreign)
    matrix B[`i', 1] = r(mu_1)
    matrix B[`i', 2] = r(mu_2)
    matrix B[`i', 3] = r(mu_1) - r(mu_2)
    local matnamesB `matnamesB' "rep78==4:`var'"
}

matrix rownames B = `matnamesB'

matrix C = A \ B

esttab matrix(C), nomtitles collabels("mu_1" "mu_2" "diff")

---------------------------------------------------
                     mu_1         mu_2         diff
---------------------------------------------------
rep78==3                                            
price            6607.074     4828.667     1778.407
mpg                    19     23.33333    -4.333333
weight           3442.222         2010     1432.222
headroom         3.222222     2.666667     .5555556
trunk            15.59259     12.33333     3.259259
---------------------------------------------------
rep78==4                                            
price            5881.556     6261.444    -379.8889
mpg              18.44444     24.88889    -6.444444
weight           3532.222     2207.778     1324.444
headroom         3.444444          2.5     .9444444
trunk            16.66667     10.33333     6.333333
---------------------------------------------------