Использование esttab с ttest - PullRequest
1 голос
/ 11 июня 2019

Я запускаю команду ttest и экспортирую результаты в LaTeX, используя estpost и команду , предоставленную сообществом esttab.

Я проверяю разницу для средних (переменной height, child gender) в течение нескольких лет и хотел бы, чтобы годы отображались по вертикали (в строках), а не по горизонтали.

Мой код и указан ниже:

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

Данные за 2009 г .:

* 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

Данные за 2010 год:

* 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

Данные за 2013 год:

* 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

Я бы хотел, чтобы выходные данные были расположены следующим образом (но в LaTeX):

enter image description here

Любые предложения о том, как сделать эту работу?

1 Ответ

1 голос
/ 11 июня 2019

Способ сделать это можно найти ниже.Вам нужно поиграть с опциями для дальнейшей полировки стола.

Сначала определите программу append_ttests, которая является быстро модифицированной версией 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.

...