1  Tabellenexport mit Stata: Grundlagen & Pakete

Es gibt eine ganze Reihe von ados, welche einen Tabellenexport aus Stata erlauben.

Wir werden mit estout/esttab von Ben Jann arbeiten, das einige Vorteile bietet: Zunächst können damit sowohl Deskriptions- als auch Regressionstabellen exportiert werden - man muss also nur eine Syntaxlogik lernen. Dabei sind Exportbefehle für (fast) alle gängigen Deskriptionen und Regressionsmodelle vorhanden, inklusive Outputs von margins. Außerdem können damit Tabellen sowohl in Word-, Latex- und auch Excel-Formate exportiert werden - auch hier ist (fast) die gleiche Syntaxlogik verwendbar. Darüber hinaus bietet esttab die Möglichkeit einiger Formatierungseinstellungen.

Um estout/esttab zu verwenden, müssen wir es zunächst installieren:

ssc install estout, replace

Dies sind die aktuellen Versionen:

which estout // check versions
*! version 3.30  25mar2022  Ben Jann
which esttab // check version
*! version 2.1.0  19may2021  Ben Jann
*! wrapper for estout

Mit estout/esttab können wir Tabellen mit zusammenfassenden Statistiken und Regressionsergebnissen zu erstellen, die leicht in oder importiert werden können oder in Word verwendet werden können. Für die Latex-Verion ergibt sich der Vorteil, dass das ganze System dynamisch ist. Wenn wir etwas in unserem Do-File ändern (z. B. eine bestimmte Gruppe weglassen, eine neue Variabe aufnehmen), dann werden die Ergebnisse automatisch in LaTeX aktualisiert. Das kann eine Menge Zeit sparen, aber die Einrichtung in Latex ist sehr zeitintensiv und deren Details würden den Rahmen unseres Kurses sprengen. Ich stelle daher hier eine (sehr einfache) Latexvorlage zur Verfügung, die versierte Latex-Nutzer*innen gerne an Ihre Bedürfnisse anpassen können.

1.1 Grundlagen: e() und r()

Grundsätzlich baut esttab auf die Postestimates e() auf. Bei jedem Befehl werden im Hintergrund Werte in Matrizen und Skalere (also Zahlen) abgelegt, bspw. bei einem Regressionsmodell. Mit ereturn list können wir uns eine Liste der Postestimates ausgeben lassen:

quietly reg F518_SUF zpalter
ereturn list
scalars:
                  e(N) =  16543
               e(df_m) =  1
               e(df_r) =  16541
                  e(F) =  105.3561454498825
                 e(r2) =  .0063290815436915
               e(rmse) =  3525.162828161657
                e(mss) =  1309236899.97876
                e(rss) =  205551251614.9366
               e(r2_a) =  .0062690083366028
                 e(ll) =  -158590.4618746699
               e(ll_0) =  -158642.9792418738
               e(rank) =  2

macros:
            e(cmdline) : "regress F518_SUF zpalter"
              e(title) : "Linear regression"
          e(marginsok) : "XB default"
                e(vce) : "ols"
             e(depvar) : "F518_SUF"
                e(cmd) : "regress"
         e(properties) : "b V"
            e(predict) : "regres_p"
              e(model) : "ols"
          e(estat_cmd) : "regress_estat"

matrices:
                  e(b) :  1 x 2
                  e(V) :  2 x 2

functions:
             e(sample)   

Das Grundprinzip ist dann immer:

  1. Auswertungsbefehl
  2. Tabelle mit esttab erstellen
  3. Tabelle exportieren (durch Anpassung des esttab-Befehls)

Die Matrizen können wir mit matrix list, die Skalare mit scalar list + Name aufrufen, unter e(b) sind beispielsweise die Koeffizienten abgelegt:

matrix list e(b)
e(b)[1,2]
      zpalter      _cons
y1  24.622534  2381.2797

Bei vielen deskriptiven Befehlen werden die Kennzahlen hingegen als results in r() abgelegt. An die Werte in r() kommen wird mit return list, ereturn list für e() ist dahingegen leer:

quietly su F518_SUF
ereturn list
return list
scalars:
                  r(N) =  16635
              r(sum_w) =  16635
               r(mean) =  3532.108506161707
                r(Var) =  12467451.86889181
                 r(sd) =  3530.927904799503
                r(min) =  1
                r(max) =  72000
                r(sum) =  58756625

Das bringt mit sich, dass wir für Deskriptionen meist mit dem Hilfsbefehl estpost die in r() abgelegten Ergebnisse in e() umwandeln müssen. Grundsätzlich sind aber die Ergebnisse aus e() und r() alle in Tabellen mit esttab exportierbar.

1.2 Kurs-Setup

Um ados mit ssc install installieren zu können, muss die Option Connect through proxy server wie folgt gefüllt (und aktiviert) werden:

  • HTTP proxy host: kessenich.ivbb.bund.de
  • Port: 80

1.3 Übung

  • Generieren Sie einmal BIBBBAuA_2018_suf1.0_clean.dta mit Hilfe von 00_init.do für die weiteren Aufgaben.
  • Testen Sie einmal return list und ereturn list nach reg F518_SUF zpalter bzw. su zpalter