Statistik mit R & RStudio

31 Multiple Regression mit dichotomen Prädiktoren mit R

Multiple Regression mit dichotomen Prädiktoren

Bei dieser Art von Regression wird eine (oder mehrere) dichotome Variable(n) als binäre Variable (z. B. 0 oder 1) kodiert und zusammen mit den kontinuierlichen Variablen als Prädiktor in das Modell eingegeben.
In R kann die Funktion lm() verwendet werden, um eine multiple Regression mit einem dichotomen Prädiktor durchzuführen. Die dichotome Variable sollte als Faktorvariable eingegeben werden. Anders als SPSS kann R jedoch auch Faktorvariablen mit mehr als zwei Faktorstufen aufnehmen. Diese werden dann in mehrere dichotome Variablen umgewandelt. Dazu mehr in den Beispielen.

Beispiel

Wir wollen der Fragestellung nachgehen, ob wir die Zufriedenheit mit der Partnerschaft aus der allgemeinen Lebenszufriedenheit vorhersagen können. Zusätzlich wollen wir herausfinden, ob die Hinzunahme des Partnerschaftsstatus (hier ein dichotomer Prädiktor mit ja/nein) noch zusätzliche Vorhersagekraft bringt.
´
## Daten vorbereiten

Wir erstellen wieder ein Subset für die Analyse:

data_dicho <- WPStudis[c("F1_Nummer","F19_Partnerschaft","F21_01_Zufriedenheit_Leben","F21_02_Zufriedenheit_Studium","F21_03_Zufriedenheit_Partnerschaft")]

Missings ausschliessen:

data_dicho <- na.omit(data_dicho)

Vorüberlegungen

Nehmen wir an, wir wollen die Zufriedenheit in der Partnerschaft aus der Zufriedenheit mit dem Leben vorhersagen
Hierfür bauen wir folgendes Model (AV ~ UV).

lm6<- lm(F21_03_Zufriedenheit_Partnerschaft ~ F21_01_Zufriedenheit_Leben  , data=data_dicho)  
summary(lm6)
## 
## Call:
## lm(formula = F21_03_Zufriedenheit_Partnerschaft ~ F21_01_Zufriedenheit_Leben, 
##     data = data_dicho)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.8298 -0.8298  0.1702  0.7925  2.3032 
## 
## Coefficients:
##                            Estimate Std. Error t value  Pr(>|t|)
## (Intercept)                  2.3191     0.5263   4.406 0.0000302
## F21_01_Zufriedenheit_Leben   0.3777     0.1322   2.858   0.00535
##                               
## (Intercept)                ***
## F21_01_Zufriedenheit_Leben ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9463 on 86 degrees of freedom
## Multiple R-squared:  0.08673,    Adjusted R-squared:  0.07611 
## F-statistic: 8.167 on 1 and 86 DF,  p-value: 0.00535

Wir sehen, dass die Zufriedenheit mit dem Leben ein signifikanter Prädiktor ist. Die Varianzaufklärung des Modells liegt bei 0,08 oder 8 %.

Unsere Frage ist nun: Bringt der Partnerschaftsstatus (hier ein dichotomer Prädiktor mit ja/nein) noch zusätzliche Vorhersagekraft?

Hinweis: Normalerweise müssten dichotome Variablen erst dummy-codiert werden. R macht dies bei Faktoren aber automatisch. Faktoren, die mehr als zwei Stufen haben, werden automatisch in mehrere Dummies codiert.

Mit der Funktion contrasts() kann überprüft werden, wie R das macht. Schauen wir uns das mal an.

contrasts(WPStudis$F19_Partnerschaft)
##      JA
## Nein  0
## JA    1

Das sieht sehr einfach aus. Menschen in Partnerschaft bekommen eine 1, Singels eine 0. Schauen wir uns beispielhaft eine Dummy-Codierung für einen Faktor mit mehr als zwei Ausprägungen an.

WPStudis$F6_Sternzeichen
##  [1] Krebs      Zwilling   Jungfrau   Fische     Jungfrau  
##  [6] Skorpion   Krebs      Zwilling   Steinbock  Zwilling  
## [11] Wassermann Loewe      Krebs      Fische     Zwilling  
## [16] Schuetze   Waage      Waage      Stier      Wassermann
## [21] Fische     Zwilling   Waage      Zwilling   Jungfrau  
## [26] Waage      Loewe      Fische     Zwilling   Jungfrau  
## [31] Widder     Fische     Fische     Fische     Fische    
## [36] Jungfrau   Jungfrau   Jungfrau   Jungfrau   Krebs     
## [41] Loewe      Loewe      Loewe      Loewe      Schuetze  
## [46] Schuetze   Skorpion   Skorpion   Stier      Stier     
## [51] Stier      Stier      Waage      Waage      Waage     
## [56] Waage      Wassermann Wassermann Widder     Widder    
## [61] Zwilling   Zwilling   Krebs      Wassermann Waage     
## [66] Skorpion   Loewe      Skorpion   Wassermann Widder    
## [71] Stier      Zwilling   Jungfrau   Widder     Schuetze  
## [76] Widder     Widder     Widder     Skorpion   Zwilling  
## [81] Schuetze   Waage      Wassermann Widder     Wassermann
## [86] Stier      Loewe      Stier      Widder     Skorpion  
## [91] Jungfrau   Skorpion   Stier     
## 12 Levels: Fische Jungfrau Krebs Loewe Schuetze ... Zwilling
contrasts(WPStudis$F6_Sternzeichen)
##            Jungfrau Krebs Loewe Schuetze Skorpion Steinbock Stier
## Fische            0     0     0        0        0         0     0
## Jungfrau          1     0     0        0        0         0     0
## Krebs             0     1     0        0        0         0     0
## Loewe             0     0     1        0        0         0     0
## Schuetze          0     0     0        1        0         0     0
## Skorpion          0     0     0        0        1         0     0
## Steinbock         0     0     0        0        0         1     0
## Stier             0     0     0        0        0         0     1
## Waage             0     0     0        0        0         0     0
## Wassermann        0     0     0        0        0         0     0
## Widder            0     0     0        0        0         0     0
## Zwilling          0     0     0        0        0         0     0
##            Waage Wassermann Widder Zwilling
## Fische         0          0      0        0
## Jungfrau       0          0      0        0
## Krebs          0          0      0        0
## Loewe          0          0      0        0
## Schuetze       0          0      0        0
## Skorpion       0          0      0        0
## Steinbock      0          0      0        0
## Stier          0          0      0        0
## Waage          1          0      0        0
## Wassermann     0          1      0        0
## Widder         0          0      1        0
## Zwilling       0          0      0        1

Hier sieht man, dass R die Variable Sternzeichen mit 12 Faktorstufen in 12 einzelne, dummy-codierte Variablen umwandelt. Hierdurch können wir alle Arten von Faktoren als Prädiktoren in Regressionsmodelle aufnehmen.

Modell erstellen

Nun bauen wir in das Modell den zusätzlichen dichotomen Prädiktor Partnerschaft (ja/nein) ein.

lm7<- lm(F21_03_Zufriedenheit_Partnerschaft ~ F21_01_Zufriedenheit_Leben + F19_Partnerschaft  , data=data_dicho)  
summary(lm7)
## 
## Call:
## lm(formula = F21_03_Zufriedenheit_Partnerschaft ~ F21_01_Zufriedenheit_Leben + 
##     F19_Partnerschaft, data = data_dicho)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.4621 -0.3310 -0.1383  0.6690  2.0871 
## 
## Coefficients:
##                            Estimate Std. Error t value
## (Intercept)                  2.2367     0.4159   5.378
## F21_01_Zufriedenheit_Leben   0.2254     0.1065   2.117
## F19_PartnerschaftJA          1.1927     0.1641   7.270
##                                  Pr(>|t|)    
## (Intercept)                0.000000651486 ***
## F21_01_Zufriedenheit_Leben         0.0372 *  
## F19_PartnerschaftJA        0.000000000162 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7474 on 85 degrees of freedom
## Multiple R-squared:  0.4369, Adjusted R-squared:  0.4237 
## F-statistic: 32.98 on 2 and 85 DF,  p-value: 0.0000000000251

Wir sehen, auch der Partnerschaftsstatus ist ein signifikanter Prädiktor. Mit beiden Prädiktoren steigt die Varianzaufklärung deutlich auf 0,42 oder 42 %.

Wir sehen also, dass das Modell eine bessere Vorhersage als das Modell ohne den dichotomen Prädiktor ermöglicht. Um zu prüfen, ob der Zuwachs an Vorhersagekraft auch signifikant ist, nutzen wir wieder eine hierarchische Regression.

anova(lm6,lm7)
## Analysis of Variance Table
## 
## Model 1: F21_03_Zufriedenheit_Partnerschaft ~ F21_01_Zufriedenheit_Leben
## Model 2: F21_03_Zufriedenheit_Partnerschaft ~ F21_01_Zufriedenheit_Leben + 
##     F19_Partnerschaft
##   Res.Df    RSS Df Sum of Sq     F          Pr(>F)    
## 1     86 77.005                                       
## 2     85 47.479  1    29.526 52.86 0.0000000001624 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Der F-Test wird signifikant. Die Aufnahme des dichotomen Prädiktors erhöht also die Vorhersagequalität des Modells signifikant.

Voraussetzungen prüfen

Auch in diesem Fall müssen wir natürlich noch die Voraussetzungen prüfen. Da dies jedoch dem Vorgehen in den beiden Kapiteln zuvor entspricht, machen wir dies an dieser Stelle nur knapp.

Diagnostik:

par(mfrow=c(2,2))    #4 Graphen pro Seite
plot(lm7)

image

Test auf Multikollinearitaet

vif(lm7)
## F21_01_Zufriedenheit_Leben          F19_Partnerschaft 
##                   1.040259                   1.040259

In diesem Video zeige ich, wie das in R funktioniert:

Übung

Können wir vorhersagen, wann wie viele Passanten auf der Königstrasse sind?

Daten aus Excel laden

library(readxl)
Passanten <- read_excel("Passanten2019.xlsx")
View(Passanten)

Wir wollen aus den Wetterdaten, genauer aus Sonnenscheindauer in Stunden und Regenmenge in Liter, die Besucherfrequenz auf der Königstrasse (Mitte) vorhersagen.

Nun bauen wir das Modell:

lm8 <- lm(Passanten$Koenig_Mitte~Passanten$SONNE_H+Passanten$REGEN)
summary(lm8)
## 
## Call:
## lm(formula = Passanten$Koenig_Mitte ~ Passanten$SONNE_H + Passanten$REGEN)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -40641 -13888  -5324   5217 108880 
## 
## Coefficients:
##                   Estimate Std. Error t value             Pr(>|t|)
## (Intercept)        51893.2     2155.2  24.078 < 0.0000000000000002
## Passanten$SONNE_H   -233.4      269.5  -0.866              0.38704
## Passanten$REGEN     -964.3      292.5  -3.297              0.00108
##                      
## (Intercept)       ***
## Passanten$SONNE_H    
## Passanten$REGEN   ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 23230 on 354 degrees of freedom
## Multiple R-squared:  0.02979,    Adjusted R-squared:  0.02431 
## F-statistic: 5.436 on 2 and 354 DF,  p-value: 0.00473

Da die Besucherfrequenz zwischen Werktagen und Sonn- und Feiertagen sehr unterschiedlich ist, sollten wir dies als weitere dichotome Prädiktoren aufnehmen. Versuchen Sie die nominalskalierte Variable “Tag” noch in das Modell mit aufzunehmen – was passiert, wie ändert sich das Ergebnis?

Die Lösung zu dieser Übungsaufgabe gibt es im neuen Buch Statistik mit R & RStudio.


 

Lizenz

Statistik Grundlagen Copyright © Patrick Planing. Alle Rechte vorbehalten.