1. Einleitung

In diesem letzten Tutorial werden wir lernen, wie man übersichtliche Regressionstabellen erstellt und sich im R-Output anzeigen lässt. Hierfür verwenden wir das Paket stargazer, dessen Output so gestaltet ist, dass es dem von wissenschaftlichen Tabellen sehr nahe kommt. stargazer erlaubt einen Output in Form von Text, welcher dann als gut lesbare Tabelle in der Console angezeigt wird, aber in Form von html-Code und LateX-Code.

2. Pakete laden, Daten einlesen und Variablen transformieren

Wir werden den Lijphart-Datensatz verwenden und anhand der in Sitzungen 8 und 10 besprochenen OLS-Regression die Erstellung von Regressionstabellen diskutieren. Zuerst werden wir, wie immer, die nötigen Pakete und Daten laden und einige Variablen umkodieren.

# Pakete laden
library(stargazer) # falls Sie dieses Paket noch nicht installiert haben, führen Sie bite vorher install.packages("stargazer") aus
getwd()
setwd("eigener Pfad")
library(foreign)
gles <- read.spss(file = "ZA6801_de_v4-0-1.sav", to.data.frame = TRUE)
lijphart <- read.csv2("Lijphart_Data_recode.csv")
# Lijphart
# ENPP
lijphart$enpp4510 <- as.numeric(lijphart$enpp4510)

# Gallagher-Index
lijphart$disprop4510 <- as.numeric(lijphart$disprop4510)

# Bikameralismus-Index
lijphart$bicam4510 <- as.numeric(lijphart$bicam4510)

# Minimal-Gewinn-Koalition mit einer Partei
lijphart$minwin_one_part4510 <- as.numeric(lijphart$minwin_one_part4510)

# Exekutivdominanz (Kabinettsdauer)
lijphart$exe_dom4510 <- as.numeric(lijphart$exe_dom4510)

3. Regression berechnen

Für unser Beispiel berechnen wir eine OLS-Regression um den Zusammenhang zwischen der effektiven Parteienanzahl (enpp4510) - unserer abhängigen Variable - und dem Gallagher-Index (disprop4510), der Exekutivdominanz (exe_dom4510) und dem Kabinettstyp (minwin_one_part4510) - unseren unabhängigen Variablen. Über den theoretischen Sinn dieser Variablenauswahl lässt sich natürlich streiten. Der Grund, warum wir in diesem Beispiel drei unabhängige Variablen verwenden, ist, dass wir damit die unterschiedlichen Vorteile und Funktionen von stargazer besser darstellen können.

Wir speichern die Regression mit dem Objektnamen lm_lijphart und verwenden, wie in Sitzungen 8 und 10, die lm-Funktion.

lm_lijphart <- lm(enpp4510 ~ disprop4510
                  + exe_dom4510 
                  + minwin_one_part4510
                  , data = lijphart)

Wir nutzen summary(), um die Ergebnisse in der Standardausgabe von R anzeigen zu lassen.

summary(lm_lijphart)
## 
## Call:
## lm(formula = enpp4510 ~ disprop4510 + exe_dom4510 + minwin_one_part4510, 
##     data = lijphart)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.56166 -0.27976 -0.02584  0.27019  1.43149 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          5.219973   0.221419  23.575  < 2e-16 ***
## disprop4510         -0.012436   0.019871  -0.626 0.535861    
## exe_dom4510         -0.122576   0.056421  -2.173 0.037333 *  
## minwin_one_part4510 -0.020995   0.005175  -4.057 0.000298 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.576 on 32 degrees of freedom
## Multiple R-squared:  0.7657, Adjusted R-squared:  0.7437 
## F-statistic: 34.86 on 3 and 32 DF,  p-value: 3.365e-10

4. Übersichtliche Tabellen mit stargazer

Zunächst verwenden wir die Funktion stargazer() und lassen uns einen ersten Output für das Objekt lm_lijphart ausgeben. Bitte beachten Sie, dass wir das Argument type = "text" hinzufügen. Dieses Argument definiert, dass wir eine direkt les- und interpretierbare Ausgabe in der Console erhalten.

stargazer(lm_lijphart, type = "text")
## 
## ===============================================
##                         Dependent variable:    
##                     ---------------------------
##                              enpp4510          
## -----------------------------------------------
## disprop4510                   -0.012           
##                               (0.020)          
##                                                
## exe_dom4510                  -0.123**          
##                               (0.056)          
##                                                
## minwin_one_part4510          -0.021***         
##                               (0.005)          
##                                                
## Constant                     5.220***          
##                               (0.221)          
##                                                
## -----------------------------------------------
## Observations                    36             
## R2                             0.766           
## Adjusted R2                    0.744           
## Residual Std. Error       0.576 (df = 32)      
## F Statistic           34.858*** (df = 3; 32)   
## ===============================================
## Note:               *p<0.1; **p<0.05; ***p<0.01

Im Gegensatz zu der Standardausgabe mit summary(), gibt uns stargazer() eine geordnete Ausgabe mit der Anzahl der Untersuchungen, MacFadden-R2, Signifikanzniveaus u.v.m.

Wollen wir diese Tabelle als html-Code, dann müssen wir lediglich das Argument type dementsprechend ändern.

stargazer(lm_lijphart, type = "html")
## 
## <table style="text-align:center"><tr><td colspan="2" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"></td><td><em>Dependent variable:</em></td></tr>
## <tr><td></td><td colspan="1" style="border-bottom: 1px solid black"></td></tr>
## <tr><td style="text-align:left"></td><td>enpp4510</td></tr>
## <tr><td colspan="2" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">disprop4510</td><td>-0.012</td></tr>
## <tr><td style="text-align:left"></td><td>(0.020)</td></tr>
## <tr><td style="text-align:left"></td><td></td></tr>
## <tr><td style="text-align:left">exe_dom4510</td><td>-0.123<sup>**</sup></td></tr>
## <tr><td style="text-align:left"></td><td>(0.056)</td></tr>
## <tr><td style="text-align:left"></td><td></td></tr>
## <tr><td style="text-align:left">minwin_one_part4510</td><td>-0.021<sup>***</sup></td></tr>
## <tr><td style="text-align:left"></td><td>(0.005)</td></tr>
## <tr><td style="text-align:left"></td><td></td></tr>
## <tr><td style="text-align:left">Constant</td><td>5.220<sup>***</sup></td></tr>
## <tr><td style="text-align:left"></td><td>(0.221)</td></tr>
## <tr><td style="text-align:left"></td><td></td></tr>
## <tr><td colspan="2" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">Observations</td><td>36</td></tr>
## <tr><td style="text-align:left">R<sup>2</sup></td><td>0.766</td></tr>
## <tr><td style="text-align:left">Adjusted R<sup>2</sup></td><td>0.744</td></tr>
## <tr><td style="text-align:left">Residual Std. Error</td><td>0.576 (df = 32)</td></tr>
## <tr><td style="text-align:left">F Statistic</td><td>34.858<sup>***</sup> (df = 3; 32)</td></tr>
## <tr><td colspan="2" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"><em>Note:</em></td><td style="text-align:right"><sup>*</sup>p<0.1; <sup>**</sup>p<0.05; <sup>***</sup>p<0.01</td></tr>
## </table>

Ähnliches gilt für die Ausgabe als Latex-Code

stargazer(lm_lijphart, type = "latex")
## 
## % Table created by stargazer v.5.2.2 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu
## % Date and time: Di, Nov 01, 2022 - 14:18:30
## \begin{table}[!htbp] \centering 
##   \caption{} 
##   \label{} 
## \begin{tabular}{@{\extracolsep{5pt}}lc} 
## \\[-1.8ex]\hline 
## \hline \\[-1.8ex] 
##  & \multicolumn{1}{c}{\textit{Dependent variable:}} \\ 
## \cline{2-2} 
## \\[-1.8ex] & enpp4510 \\ 
## \hline \\[-1.8ex] 
##  disprop4510 & $-$0.012 \\ 
##   & (0.020) \\ 
##   & \\ 
##  exe\_dom4510 & $-$0.123$^{**}$ \\ 
##   & (0.056) \\ 
##   & \\ 
##  minwin\_one\_part4510 & $-$0.021$^{***}$ \\ 
##   & (0.005) \\ 
##   & \\ 
##  Constant & 5.220$^{***}$ \\ 
##   & (0.221) \\ 
##   & \\ 
## \hline \\[-1.8ex] 
## Observations & 36 \\ 
## R$^{2}$ & 0.766 \\ 
## Adjusted R$^{2}$ & 0.744 \\ 
## Residual Std. Error & 0.576 (df = 32) \\ 
## F Statistic & 34.858$^{***}$ (df = 3; 32) \\ 
## \hline 
## \hline \\[-1.8ex] 
## \textit{Note:}  & \multicolumn{1}{r}{$^{*}$p$<$0.1; $^{**}$p$<$0.05; $^{***}$p$<$0.01} \\ 
## \end{tabular} 
## \end{table}

Zur besseren Darstellung werden wir in den folgenden Schritten die type-Option bei = "text" belassen.

4.1 Tabellen modifizieren

Das stargazer-Paket erlaubt sehr viele kleinere und größere Modifikationen. Die wichtigsten sind sicherlich die Veränderung der Variablennamen. Zur Erinnerung hier noch einmal der nicht-modifizierte stargazer-Output:

stargazer(lm_lijphart, type = "text")
## 
## ===============================================
##                         Dependent variable:    
##                     ---------------------------
##                              enpp4510          
## -----------------------------------------------
## disprop4510                   -0.012           
##                               (0.020)          
##                                                
## exe_dom4510                  -0.123**          
##                               (0.056)          
##                                                
## minwin_one_part4510          -0.021***         
##                               (0.005)          
##                                                
## Constant                     5.220***          
##                               (0.221)          
##                                                
## -----------------------------------------------
## Observations                    36             
## R2                             0.766           
## Adjusted R2                    0.744           
## Residual Std. Error       0.576 (df = 32)      
## F Statistic           34.858*** (df = 3; 32)   
## ===============================================
## Note:               *p<0.1; **p<0.05; ***p<0.01

4.1.1 Beschriftungen

Wir können in stargazer einen Tabellentitel hinzufügen und alle Variablen mit konkreten Beschriftungen versehen. Hierbei ist es ganz besonders wichtig, dass Sie genau wissen, in welcher Reihenfolge Sie Ihre Variablen in das Modell eingeben haben. Stargazer kontrolliert nicht (das kann es auch gar nicht), ob die Variablennamen der unabhängigen Variablen inhaltlich übereinstimmen. In unserem Modell ist die Reihenfolge der unabhängigen Variablen wie folgt: disprop4510 + exe_dom4510 + minwin_one_part4510

stargazer(lm_lijphart, type = "text", 
          title            = "Großartige Lijphart-Ergebnisse",
          dep.var.caption  = "Abhängige Variable:",
          dep.var.labels   = "Effektive Parteienanzahl (ENP)",
          covariate.labels = c("Gallagher-Index", "Exekutivdominanz", "Kabinettsdauer")
          )
## 
## Großartige Lijphart-Ergebnisse
## ==================================================
##                          Abhängige Variable:      
##                     ------------------------------
##                     Effektive Parteienanzahl (ENP)
## --------------------------------------------------
## Gallagher-Index                 -0.012            
##                                (0.020)            
##                                                   
## Exekutivdominanz               -0.123**           
##                                (0.056)            
##                                                   
## Kabinettsdauer                -0.021***           
##                                (0.005)            
##                                                   
## Constant                       5.220***           
##                                (0.221)            
##                                                   
## --------------------------------------------------
## Observations                      36              
## R2                              0.766             
## Adjusted R2                     0.744             
## Residual Std. Error        0.576 (df = 32)        
## F Statistic             34.858*** (df = 3; 32)    
## ==================================================
## Note:                  *p<0.1; **p<0.05; ***p<0.01

Natürlich kann Stargazer auch mehrere Regressionsmodelle handhaben. Das ist wichtig, um Modellvergleiche zu veranschaulichen, weil Bestimmtheitsmaße und F-Statistik jeweils unterhalb der Modelle gegenübergestellt werden. Um das zu demonstrieren, rechnen wir jetzt beispielhaft ein zweites Modell, in welchem wir die Variable bezüglich des Bikameralismus (bicam4510) hinzufügen. Dieses zweite Modell wird in dem Objekt lm_lijphart_2 gespeichert.

lm_lijphart_2 <- lm(enpp4510 ~ disprop4510
                  + exe_dom4510 
                  + minwin_one_part4510
                  + bicam4510
                  , data = lijphart)

Für einen stargazer-Output mit beiden Modellen, müssen wir das zweite Modell lediglich in den stargazer()-Befehl einfügen.

stargazer(lm_lijphart, lm_lijphart_2
          , type = "text", 
          title            = "Großartige Lijphart-Ergebnisse",
          dep.var.caption  = "Abhängige Variable:",
          dep.var.labels   = "Effektive Parteienanzahl (ENP)",
          covariate.labels = c("Gallagher-Index", "Exekutivdominanz", "Kabinettsdauer", "Bikameralismus")
          )
## 
## Großartige Lijphart-Ergebnisse
## =================================================================
##                                  Abhängige Variable:             
##                     ---------------------------------------------
##                            Effektive Parteienanzahl (ENP)        
##                              (1)                    (2)          
## -----------------------------------------------------------------
## Gallagher-Index             -0.012                 -0.015        
##                            (0.020)                (0.020)        
##                                                                  
## Exekutivdominanz           -0.123**               -0.135**       
##                            (0.056)                (0.057)        
##                                                                  
## Kabinettsdauer            -0.021***              -0.020***       
##                            (0.005)                (0.005)        
##                                                                  
## Bikameralismus                                     0.124         
##                                                   (0.094)        
##                                                                  
## Constant                   5.220***               4.957***       
##                            (0.221)                (0.296)        
##                                                                  
## -----------------------------------------------------------------
## Observations                  36                     36          
## R2                          0.766                  0.778         
## Adjusted R2                 0.744                  0.750         
## Residual Std. Error    0.576 (df = 32)        0.569 (df = 31)    
## F Statistic         34.858*** (df = 3; 32) 27.188*** (df = 4; 31)
## =================================================================
## Note:                                 *p<0.1; **p<0.05; ***p<0.01

Wir sehen jetzt hier zwei Spalten, die die zwei unterschiedlichen Modelle beinhalten. Natürlich können wir die Spaltennamen ebenfalls verändern.

stargazer(lm_lijphart, lm_lijphart_2
          , type = "text", 
          title            = "Großartige Lijphart-Ergebnisse",
          dep.var.caption  = "Abhängige Variable:",
          dep.var.labels   = "Effektive Parteienanzahl (ENP)",
          column.labels = c("Model 1", "Model 2"),
          covariate.labels = c("Gallagher-Index", "Exekutivdominanz", "Kabinettsdauer", "Bikameralismus")
          )
## 
## Großartige Lijphart-Ergebnisse
## =================================================================
##                                  Abhängige Variable:             
##                     ---------------------------------------------
##                            Effektive Parteienanzahl (ENP)        
##                            Model 1                Model 2        
##                              (1)                    (2)          
## -----------------------------------------------------------------
## Gallagher-Index             -0.012                 -0.015        
##                            (0.020)                (0.020)        
##                                                                  
## Exekutivdominanz           -0.123**               -0.135**       
##                            (0.056)                (0.057)        
##                                                                  
## Kabinettsdauer            -0.021***              -0.020***       
##                            (0.005)                (0.005)        
##                                                                  
## Bikameralismus                                     0.124         
##                                                   (0.094)        
##                                                                  
## Constant                   5.220***               4.957***       
##                            (0.221)                (0.296)        
##                                                                  
## -----------------------------------------------------------------
## Observations                  36                     36          
## R2                          0.766                  0.778         
## Adjusted R2                 0.744                  0.750         
## Residual Std. Error    0.576 (df = 32)        0.569 (df = 31)    
## F Statistic         34.858*** (df = 3; 32) 27.188*** (df = 4; 31)
## =================================================================
## Note:                                 *p<0.1; **p<0.05; ***p<0.01

4.1.2 Statistiken und weitere Informationen hinzufügen

Haben wir ein Modell, welches beispielsweise mittels fixed effects berechnet wurde, dann können wir diese zusätzliche Information ebenfalls in unserem Output darstellen. Hierfür nutzen wir ganz einfach die add.lines-Option und modifizieren unsere Tabelle. Die Reihenfolge in der wir unsere Modelle eingeben, bestimmt die Reihenfolge in der wir unsere zusätzlichen Informationen eingeben (ähnlich wie bei der Beschriftung der unabhängigen Variablen). Für unser Beispiel bestimmen wir, dass das zweite Modell mit fixed effects gerechnet wurde (obwohl das nicht stimmt, sondern lediglich Anschauungszwecken dient).

Um die add.lines-Option noch etwas mehr auszureizen, fügen wir eine Zeile hinzu.

stargazer(lm_lijphart, lm_lijphart_2
          , type = "text", 
          title            = "Großartige Lijphart-Ergebnisse",
          dep.var.caption  = "Abhängige Variable:",
          dep.var.labels   = "Effektive Parteienanzahl (ENP)",
          column.labels = c("Model 1", "Model 2"),
          covariate.labels = c("Gallagher-Index", "Exekutivdominanz", "Kabinettsdauer", "Bikameralismus"),
           add.lines = list(c("Fixed effects?", "Nein", "Ja"),
                            c("Ergebnisse nur Anschauungszwecken", "Ja", "Ja"))
          )
## 
## Großartige Lijphart-Ergebnisse
## ===============================================================================
##                                                Abhängige Variable:             
##                                   ---------------------------------------------
##                                          Effektive Parteienanzahl (ENP)        
##                                          Model 1                Model 2        
##                                            (1)                    (2)          
## -------------------------------------------------------------------------------
## Gallagher-Index                           -0.012                 -0.015        
##                                          (0.020)                (0.020)        
##                                                                                
## Exekutivdominanz                         -0.123**               -0.135**       
##                                          (0.056)                (0.057)        
##                                                                                
## Kabinettsdauer                          -0.021***              -0.020***       
##                                          (0.005)                (0.005)        
##                                                                                
## Bikameralismus                                                   0.124         
##                                                                 (0.094)        
##                                                                                
## Constant                                 5.220***               4.957***       
##                                          (0.221)                (0.296)        
##                                                                                
## -------------------------------------------------------------------------------
## Fixed effects?                             Nein                    Ja          
## Ergebnisse nur Anschauungszwecken           Ja                     Ja          
## Observations                                36                     36          
## R2                                        0.766                  0.778         
## Adjusted R2                               0.744                  0.750         
## Residual Std. Error                  0.576 (df = 32)        0.569 (df = 31)    
## F Statistic                       34.858*** (df = 3; 32) 27.188*** (df = 4; 31)
## ===============================================================================
## Note:                                               *p<0.1; **p<0.05; ***p<0.01

Standardfehler werden von stargazer berichtet. Wollen wir uns stattdessen die Konfidenzintervalle anzeigen lassen, nutzen wir das (logische) ci-Argument.

stargazer(lm_lijphart, lm_lijphart_2
          , type = "text", ci = TRUE,
          title            = "Großartige Lijphart-Ergebnisse",
          dep.var.caption  = "Abhängige Variable:",
          dep.var.labels   = "Effektive Parteienanzahl (ENP)",
          column.labels = c("Model 1", "Model 2"),
          covariate.labels = c("Gallagher-Index", "Exekutivdominanz", "Kabinettsdauer", "Bikameralismus"),
           add.lines = list(c("Fixed effects?", "Nein", "Ja"),
                            c("Ergebnisse nur Anschauungszwecken", "Ja", "Ja"))
          )
## 
## Großartige Lijphart-Ergebnisse
## ===============================================================================
##                                                Abhängige Variable:             
##                                   ---------------------------------------------
##                                          Effektive Parteienanzahl (ENP)        
##                                          Model 1                Model 2        
##                                            (1)                    (2)          
## -------------------------------------------------------------------------------
## Gallagher-Index                           -0.012                 -0.015        
##                                      (-0.051, 0.027)        (-0.054, 0.024)    
##                                                                                
## Exekutivdominanz                         -0.123**               -0.135**       
##                                      (-0.233, -0.012)       (-0.246, -0.024)   
##                                                                                
## Kabinettsdauer                          -0.021***              -0.020***       
##                                      (-0.031, -0.011)       (-0.030, -0.009)   
##                                                                                
## Bikameralismus                                                   0.124         
##                                                             (-0.060, 0.308)    
##                                                                                
## Constant                                 5.220***               4.957***       
##                                       (4.786, 5.654)         (4.378, 5.537)    
##                                                                                
## -------------------------------------------------------------------------------
## Fixed effects?                             Nein                    Ja          
## Ergebnisse nur Anschauungszwecken           Ja                     Ja          
## Observations                                36                     36          
## R2                                        0.766                  0.778         
## Adjusted R2                               0.744                  0.750         
## Residual Std. Error                  0.576 (df = 32)        0.569 (df = 31)    
## F Statistic                       34.858*** (df = 3; 32) 27.188*** (df = 4; 31)
## ===============================================================================
## Note:                                               *p<0.1; **p<0.05; ***p<0.01

Zusätzlich können wir mit omit.stat bestimmen, welche der deskriptiven Statistiken nicht angezeigt werden sollen.

stargazer(lm_lijphart, lm_lijphart_2
          , type = "text", omit.stat = c("rsq", "f"),
          title            = "Großartige Lijphart-Ergebnisse",
          dep.var.caption  = "Abhängige Variable:",
          dep.var.labels   = "Effektive Parteienanzahl (ENP)",
          column.labels = c("Model 1", "Model 2"),
          covariate.labels = c("Gallagher-Index", "Exekutivdominanz", "Kabinettsdauer", "Bikameralismus"),
           add.lines = list(c("Fixed effects?", "Nein", "Ja"),
                            c("Ergebnisse nur Anschauungszwecken", "Ja", "Ja"))
          )
## 
## Großartige Lijphart-Ergebnisse
## =================================================================
##                                         Abhängige Variable:      
##                                   -------------------------------
##                                   Effektive Parteienanzahl (ENP) 
##                                       Model 1         Model 2    
##                                         (1)             (2)      
## -----------------------------------------------------------------
## Gallagher-Index                       -0.012          -0.015     
##                                       (0.020)         (0.020)    
##                                                                  
## Exekutivdominanz                     -0.123**        -0.135**    
##                                       (0.056)         (0.057)    
##                                                                  
## Kabinettsdauer                       -0.021***       -0.020***   
##                                       (0.005)         (0.005)    
##                                                                  
## Bikameralismus                                         0.124     
##                                                       (0.094)    
##                                                                  
## Constant                             5.220***        4.957***    
##                                       (0.221)         (0.296)    
##                                                                  
## -----------------------------------------------------------------
## Fixed effects?                         Nein             Ja       
## Ergebnisse nur Anschauungszwecken       Ja              Ja       
## Observations                            36              36       
## Adjusted R2                            0.744           0.750     
## Residual Std. Error               0.576 (df = 32) 0.569 (df = 31)
## =================================================================
## Note:                                 *p<0.1; **p<0.05; ***p<0.01

Letztlich können wir auch Notizen am Ende der Tabelle einfügen und linksbündig ausrichten.

stargazer(lm_lijphart, lm_lijphart_2
          , type = "text", omit.stat = c("rsq", "f"),
          title            = "Großartige Lijphart-Ergebnisse",
          dep.var.caption  = "Abhängige Variable:",
          dep.var.labels   = "Effektive Parteienanzahl (ENP)",
          column.labels = c("Model 1", "Model 2"),
          covariate.labels = c("Gallagher-Index", "Exekutivdominanz", "Kabinettsdauer", "Bikameralismus"),
           add.lines = list(c("Fixed effects?", "Nein", "Ja"),
                            c("Ergebnisse nur Anschauungszwecken", "Ja", "Ja")),
          notes = "Das sieht doch wirklich gut aus!", 
          notes.align = "l"
          )
## 
## Großartige Lijphart-Ergebnisse
## ===================================================================
##                                          Abhängige Variable:       
##                                   ---------------------------------
##                                    Effektive Parteienanzahl (ENP)  
##                                       Model 1          Model 2     
##                                         (1)              (2)       
## -------------------------------------------------------------------
## Gallagher-Index                        -0.012           -0.015     
##                                       (0.020)          (0.020)     
##                                                                    
## Exekutivdominanz                      -0.123**         -0.135**    
##                                       (0.056)          (0.057)     
##                                                                    
## Kabinettsdauer                       -0.021***        -0.020***    
##                                       (0.005)          (0.005)     
##                                                                    
## Bikameralismus                                          0.124      
##                                                        (0.094)     
##                                                                    
## Constant                              5.220***         4.957***    
##                                       (0.221)          (0.296)     
##                                                                    
## -------------------------------------------------------------------
## Fixed effects?                          Nein              Ja       
## Ergebnisse nur Anschauungszwecken        Ja               Ja       
## Observations                             36               36       
## Adjusted R2                            0.744            0.750      
## Residual Std. Error               0.576 (df = 32)  0.569 (df = 31) 
## ===================================================================
## Note:                             *p<0.1; **p<0.05; ***p<0.01      
##                                   Das sieht doch wirklich gut aus!

Wie Sie unschwer erkennen können, sind die Modifikationsoptionen bei stargazer sehr umfangreich. So könnten wir uns z.B. auch robuste Standardfehler anzeigen lassen und vieles Weitere mehr. Da das aber den Rahmen dieses Tutorials sprengen würde, bleibt uns nur der Hinweis, dass Sie über eine google-Suche sehr viele hilfreiche Tipps und Tricks finden können.

4.2 Tabellenausgaben speichern

stargazer-Tabellen lassen sich problemlos als html oder als tex (LateX) Dateien speichern. Hierfür verwenden wir das out-Argument und definieren gleichzeitig den Namen der Datei. In unserem Beispiel wollen wir eine html-Datei mit dem Namen "lijphart-regression.htm" speichern (html-Dateien werden standardmäßig über Ihren jeweiligen Browser geöffnet).

stargazer(lm_lijphart, lm_lijphart_2
          , type = "text", omit.stat = c("rsq", "f"),
          title            = "Großartige Lijphart-Ergebnisse",
          dep.var.caption  = "Abhängige Variable:",
          dep.var.labels   = "Effektive Parteienanzahl (ENP)",
          column.labels = c("Model 1", "Model 2"),
          covariate.labels = c("Gallagher-Index", "Exekutivdominanz", "Kabinettsdauer", "Bikameralismus"),
          add.lines = list(c("Fixed effects?", "Nein", "Ja"),
                            c("Ergebnisse nur Anschauungszwecken", "Ja", "Ja")),
          notes = "Das sieht doch wirklich gut aus!", 
          notes.align = "l", 
          out = "lijphart-regression.htm"
          )

Dieser Schritt ist natürlich nur wirklich hilfreich, wenn Sie entweder mit LateX arbeiten oder Ihre Ergebnisse auf einer Internetseite bzw. für eine Präsentation speichern wollen. Für eine Hausarbeit z.B. ist es einfacher den text-Output mittels Copy-and-Paste in eine Word-Tabelle zu übertragen!

5. Zusammenfassung

Oft stehen wir vor dem Problem, dass die Ergebnisse z.B. einer Regressionsanalyse von R nicht übersichtlich dargestellt werden. Die klassische summary()-Funktion ist hier ein sehr gutes Beispiel. Das stargazer-Paket, welches in diesem Tutorial vorgestellt wurde, bietet hier eine sehr effiziente und zeitsparende Möglichkeit Regressionsanalysen in einer übersichtlichen und leicht verständlichen Tabellenform darzustellen. Weiterhin können die Ergebnisstabellen mittels verschiedener Argumente (z.B. notes =, omit.stat =, title =, u.s.w.) individuell angepasst werden.

6. Aufgaben

Bearbeiten Sie bitte die folgende Aufgabe:

Erstellen Sie eine Regressionstabelle mit stargazer für das binäre logistische Regressionsmodell aus Sitzung 11. Beschriften Sie die Variablen und lassen Sie sich die Konfidenzintervalle ausgeben.