Politikwissenschaft

 

Webseite durchsuchen

Lineare Multilevel Regression in R - Teil 2

Benjamin Schlegel | 19. Dezember 2016

PDF

Dieser Artikel ist eine Forsetzung des Artikels Lineare Multilevel Regression in R - Teil 1. Darin wurden die Daten vorbereitet und gezeigt, wie ein Anova Modell gerechnet und daraus die Intraclass Korrelation berechnet werden kann.

Im diesem Artikel wird darauf aufgebaut und gezeigt, wie man fixed und random Effekte spezifizieren kann.

Als fixed Effekt wird ein Effekt spezifiziert, bei dem man davon ausgeht (Theorie), dass er nicht vom Macro-Level abhängt, sondern bei allen Individuen der gleich e Effekt hat. Wenn wir davon ausgehen, dass die Abstimmungsthemen bei allen Gemeinden den gleichen Effekt auf die Stimmbeteiligung hat und der Effekt nicht vom Kanton abhängt, nehmen wir das Thema als fixed Effekt ins Modell hinein. Der Typ der Abstimmung und die Anzahl Vorlagen des Abstimmungstermins werden als fixed Effekte Kontrollvariablen ins Modell aufgenommen. Als random wird nur den Achsenabschnitt aufgenommen, um auf generelle Abweichungen zwischen den Kantonen zu kontrollieren.


model.fixed = lmer(Stimmbeteiligung ~ Thema + Typ + anzahl.vorlagen + (1 | Kanton), 
  data=abstimmungen, REML=F)
summary(model.fixed)

Linear mixed model fit by maximum likelihood  ['lmerMod']
Formula: Stimmbeteiligung ~ Thema + Typ + anzahl.vorlagen + (1 | Kanton)
   Data: abstimmungen

      AIC       BIC    logLik  deviance  df.resid 
1015498.6 1015636.2 -507735.3 1015470.6    136868 

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-4.6494 -0.6468 -0.0056  0.6360  5.4339 

Random effects:
 Groups   Name        Variance Std.Dev.
 Kanton   (Intercept) 31.29    5.594   
 Residual             97.46    9.872   
Number of obs: 136882, groups:  Kanton, 26

Fixed effects:
                                      Estimate Std. Error t value
(Intercept)                           37.03592    1.10535   33.51
ThemaGrundlagen der Staatsordnung      1.10833    0.12690    8.73
ThemaInfrastruktur und Lebensraum     -2.39967    0.14210  -16.89
ThemaLandesverteidigung                4.70860    0.15091   31.20
ThemaÖffentliche Finanzen              0.62213    0.18199    3.42
ThemaSchweizerische Aussenpolitik     12.71399    0.13030   97.57
ThemaSozialpolitik                     5.72500    0.11367   50.36
ThemaWirtschaft                       -1.76297    0.15394  -11.45
TypObligatorisches Referendum         -4.12810    0.11073  -37.28
TypVolksinitiative                     4.67175    0.06398   73.02
TypVolksinitiative mit Gegenvorschlag  7.73104    0.16359   47.26
anzahl.vorlagen                        1.05310    0.02268   46.44

Correlation of Fixed Effects:
            (Intr) ThmGdS ThmIuL ThmLnd ThmÖfF ThmScA ThmSzl ThmWrt TypObR TypVlk TypVmG
ThmGrndlgdS -0.076                                                                      
ThmInfrstuL -0.057  0.585                                                               
ThmLndsvrtd -0.063  0.547  0.572                                                        
ThmÖffntlcF -0.052  0.469  0.446  0.405                                                 
ThmSchwzrsA -0.087  0.645  0.576  0.563  0.469                                          
ThemSzlpltk -0.088  0.733  0.704  0.665  0.529  0.748                                   
ThmWrtschft -0.071  0.550  0.491  0.472  0.403  0.574  0.643                            
TypOblgtrsR -0.040 -0.018  0.111  0.165  0.089  0.221  0.155  0.157                     
TypVlksnttv -0.023 -0.069  0.010  0.112 -0.109  0.045  0.087 -0.018  0.326              
TypVlksntmG -0.003 -0.018  0.024  0.041 -0.021  0.010 -0.027 -0.253  0.098  0.248       
anzhl.vrlgn -0.046  0.040 -0.284 -0.170  0.002  0.108 -0.075  0.087  0.100 -0.280 -0.122

An den t-Werten sehen wir, dass alle Effekte signifikat sind. Noch besser sehen wir es aber, wenn wir die fixed Effekte plotten. Dazu kann wiederum die Funktion sjp.lmer aus der Bibliothek sjPlot verwendet werden. Diesmal aber mit dem Typ "fe" für fixed Effekte (Sonst würden wir wieder einen random Intercept Plot bekommen).


library(sjPlot)
sjp.lmer(model.fixed,type = "fe",p.kr=FALSE, y.offset = 0.5)
fixed effects plot

Wir sehen, dass Abstimmungen zu aussenpolitischen Themen generell stärker mobilisieren und bei Abstimmungen zu Infrastruktur und Lebensraum oder zur Wirtschaft die Bürgerinnen und Bürger eher zu Hause bleiben im Vergleich zu Bildung, Kultur, Medien. Auch sehen wir, dass Initiativen stärker mobilisieren als fakultative Referenden und diese wiederum mehr als obligatorischen Referenden.

Im nächsten Modell nehmen wir die Themen als random Effekte hinein. Wir gehen also jetzt davon aus, dass die Themen einen anderen Effekt auf die Stimmbeteiligung haben, je nach dem in welchem Kanton sich eine Gemeinde befindet.


model.random = lmer(Stimmbeteiligung ~ Typ + anzahl.vorlagen + (1 + Thema| Kanton), 
  data=abstimmungen)
summary(model.random)

Linear mixed model fit by REML ['lmerMod']
Formula: Stimmbeteiligung ~ Typ + anzahl.vorlagen + (1 + Thema | Kanton)
   Data: abstimmungen

REML criterion at convergence: 1013172

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-4.5854 -0.6458 -0.0103  0.6343  5.3311 

Random effects:
 Groups   Name                              Variance Std.Dev. Corr                                     
 Kanton   (Intercept)                       615.414  24.808                                            
          ThemaGrundlagen der Staatsordnung   6.589   2.567   -0.35                                    
          ThemaInfrastruktur und Lebensraum  12.539   3.541    0.77  0.04                              
          ThemaLandesverteidigung            26.064   5.105   -0.88  0.58 -0.49                        
          ThemaÖffentliche Finanzen           8.914   2.986    0.04 -0.04  0.17  0.07                  
          ThemaSchweizerische Aussenpolitik 167.520  12.943   -0.98  0.37 -0.76  0.89 -0.04            
          ThemaSozialpolitik                 28.093   5.300   -0.95  0.45 -0.62  0.92  0.12  0.95      
          ThemaWirtschaft                    11.339   3.367    0.60  0.01  0.71 -0.28  0.42 -0.60 -0.47
 Residual                                    95.492   9.772                                            
Number of obs: 136882, groups:  Kanton, 26

Fixed effects:
                                      Estimate Std. Error t value
(Intercept)                           61.52223    0.91502   67.24
TypObligatorisches Referendum         -4.13141    0.10936  -37.78
TypVolksinitiative                     4.67095    0.06313   73.99
TypVolksinitiative mit Gegenvorschlag  7.73134    0.16086   48.06
anzahl.vorlagen                        1.05186    0.02220   47.39

Correlation of Fixed Effects:
            (Intr) TypObR TypVlk TypVmG
TypOblgtrsR -0.002                     
TypVlksnttv  0.006  0.327              
TypVlksntmG -0.003  0.101  0.248       
anzhl.vrlgn -0.025  0.104 -0.277 -0.111
convergence code: 0
maxfun < 10 * length(par)^2 is not recommended.

Wir sehen, dass das Model nicht konvergiert hat. Die Anzahl Parameter die wir haben sind 5 (fixed) + 36 (random) = 41. $10 \cdot 41^2 = 16810$. Deshalb setzen wir maxfun auf 17'000.


model.random2 = lmer(Stimmbeteiligung ~ Typ + anzahl.vorlagen + (1 + Thema| Kanton), 
  data=abstimmungen,control=lmerControl(optCtrl=list(maxfun=17000)))
summary(model.random2)

Linear mixed model fit by REML ['lmerMod']
Formula: Stimmbeteiligung ~ Typ + anzahl.vorlagen + (1 + Thema | Kanton)
   Data: abstimmungen
Control: lmerControl(optCtrl = list(maxfun = 17000))

REML criterion at convergence: 1013172

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-4.5854 -0.6458 -0.0103  0.6343  5.3311 

Random effects:
 Groups   Name                              Variance Std.Dev. Corr                                     
 Kanton   (Intercept)                       615.414  24.808                                            
          ThemaGrundlagen der Staatsordnung   6.589   2.567   -0.35                                    
          ThemaInfrastruktur und Lebensraum  12.539   3.541    0.77  0.04                              
          ThemaLandesverteidigung            26.064   5.105   -0.88  0.58 -0.49                        
          ThemaÖffentliche Finanzen           8.914   2.986    0.04 -0.04  0.17  0.07                  
          ThemaSchweizerische Aussenpolitik 167.520  12.943   -0.98  0.37 -0.76  0.89 -0.04            
          ThemaSozialpolitik                 28.093   5.300   -0.95  0.45 -0.62  0.92  0.12  0.95      
          ThemaWirtschaft                    11.339   3.367    0.60  0.01  0.71 -0.28  0.42 -0.60 -0.47
 Residual                                    95.492   9.772                                            
Number of obs: 136882, groups:  Kanton, 26

Fixed effects:
                                      Estimate Std. Error t value
(Intercept)                           61.52223    0.91502   67.24
TypObligatorisches Referendum         -4.13141    0.10936  -37.78
TypVolksinitiative                     4.67095    0.06313   73.99
TypVolksinitiative mit Gegenvorschlag  7.73134    0.16086   48.06
anzahl.vorlagen                        1.05186    0.02220   47.39

Correlation of Fixed Effects:
            (Intr) TypObR TypVlk TypVmG
TypOblgtrsR -0.002                     
TypVlksnttv  0.006  0.327              
TypVlksntmG -0.003  0.101  0.248       
anzhl.vrlgn -0.025  0.104 -0.277 -0.111

Wie man leicht erkennen kann, hat sich beim Output nichts geändert. Die maxfun zu erhöhen, wäre also nicht notwendig gewesen. Nun wollen wir noch die random Effekte plotten und verwenden dazu wieder sjp.lmer.


sjp.lmer(model.random,axis.title="Kanton",show.values = F)
random effects plot

Wir können nun im Plot ablesen, welche Kantone bei welchen Themen im Vergleich zu Bildung, Kultur, Medien stärker, resp. weniger stark abstimmen gegangen sind. So interessieren sich Beispielsweise die Schwyzer und die Freiburger am stärksten für die Landesverteidigung im Vergleich zu Bildung, Kultur, Medien.

Will man die Zahlen anschauen, kann dies mit der Funktion ranef(model) gemacht werden.