将esttab与ttest一起使用

时间:2019-06-11 15:25:41

标签: latex stata

我正在运行HttpClientHandler命令,并使用ttest community-contributed 命令estpost将结果导出到LaTeX。

我正在测试数年(变量esttab,按height)的均值差异,并希望年份显示 vertical (按行)而不是水平。

我的代码如下:

child gender

2009年数据:

foreach i in 2009 2010 2013 {
    use "`i'.dta", clear
    global year `i'
    eststo _$year : estpost ttest height, by(child_gender)
}

esttab . using "trends.tex", nonumber append

2010年数据:

* Example generated by -dataex-. To install: ssc install dataex
clear
input float(child_gender height)
0 156
1 135
0 189
1 168
0 157
1 189
1 135
1 145
0 124
1 139
end

2013年数据:

* Example generated by -dataex-. To install: ssc install dataex
clear
input float(child_gender height)
0 151
1 162
0 157
1 134
0 157
1 189
1 135
1 145
0 143
1 166
end

我希望输出安排如下(但在* Example generated by -dataex-. To install: ssc install dataex clear input float(child_gender height) 0 177 0 135 0 189 0 168 0 157 1 189 1 135 1 145 1 124 1 127 end 中):

enter image description here

关于如何进行这项工作的任何建议?

1 个答案:

答案 0 :(得分:1)

执行此操作的方法可以在下面找到。您需要使用一些选项来进一步完善桌子。

首先定义程序append_ttests,它是Ben Jann的program for stacking models appendmodels的快速修改版本:

program append_ttests, eclass
    version 8
    syntax namelist
    tempname b V tmp
    foreach name of local namelist {
        qui est restore `name'
        mat `tmp' = e(b)
        local eq1: coleq `tmp'
        gettoken eq1 : eq1
        mat `tmp' = `tmp'[1,"`eq1':"]
        local cons = colnumb(`tmp',"_cons")
        if `cons'<. & `cons'>1 {
            mat `tmp' = `tmp'[1,1..`cons'-1]
        }
        mat `b' = nullmat(`b') , `tmp'

        mat `tmp' = e(t)
        mat `tmp' = `tmp'["`eq1':","`eq1':"]
        if `cons'<. & `cons'>1 {
            mat `tmp' = `tmp'[1..`cons'-1,1..`cons'-1]
        }
        capt confirm matrix `V'
        if _rc {
            mat `V' = `tmp'
        }
        else {
            mat `V' = ///
            ( `V'  \ ///
             `tmp' )
        } 
    }
    mat `b' = `b''
    mat A = `b' , `V'
    mat rown A = `0'
    ereturn matrix results = A
    eret local cmd "append_ttests"
end

然后运行您的循环并附加t检验:

foreach i in 2009 2010 2013 {
    use "`i'.dta", clear
    estpost ttest height, by(child_gender)
    estimates store year`i' 
 }

append_ttests year2009 year2010 year2013

查看结果如下:

esttab e(results), nonumber mlabels(none) ///
                   varlabels(year2009 2009 year2010 2010 year2013 2013) ///
                   collabels("Height" "t statistic")

--------------------------------------
                   Height  t statistic
--------------------------------------
2009             4.666667     .3036859
2010            -3.166667    -.2833041
2013                 21.2     1.415095
--------------------------------------

添加tex选项以查看LaTeX的输出。