In einer Studie wurde untersucht, ob die Lernzeit, das Geschlecht, und/oder die Prüfungsangst die Leistung in einer Prüfung vorhersagen.
Die Forscher*innen haben folgende Hypothesen aufgestellt:
Als Prädiktorvariablen wurden die Lernzeit, das Geschlecht und die Prüfungsangst erhoben. Die Lernzeit und die Prüfungsangst sind kontinuierliche Variablen, Gender wurde dichotom erhoben. Die Kriteriumsvariable Prüfungsleistung ist ebenfalls eine kontinuierliche Variable. Es ist anzunehmen, dass diese in der Population normalverteilt ist.
Aufgaben:
Berechnen Sie eine multiple Regressionsanalyse mit allen drei Prädiktoren und entscheiden Sie, ob das Modell eine statistisch signifikante Vorhersage der Kriteriumsvariable erlaubt.
Entfernen Sie eventuelle nicht-signifikante Prädiktoren aus dem Modell und testen Sie durch einen Modellvergleich, welches Modell die Kriteriumsvariable besser vorhersagt. Berechnen Sie hierfür eine Varianzanalyse und den AIC.
Die daten werden mit dem “read.csv” Befehl eingelesen, welcher in R-Stuio bei “Import Dataset” über “From text (readr)” angesteuert werden kann. Bei Verwendung von R-Code muss der Dateipfad entsprechend dem Speicherort der CSV-Datei angepasst werden. Der Speicherort kann bei jedem Rechner natürlich ander sein (siehe unten).
Daten <- read.csv("Daten_Pruefungsleistung2.csv", sep=";")
Anstelle des Commanders kann natürlich auch der unten angeführte Code ausgeführt werden.
library(Rcmdr)
RegModel.1 <- lm(Y_Pruefungsleistung~X1_Lernzeit+X2_Pruefungsangst+X3_Gender_num,
data=Daten)
summary(RegModel.1)
##
## Call:
## lm(formula = Y_Pruefungsleistung ~ X1_Lernzeit + X2_Pruefungsangst +
## X3_Gender_num, data = Daten)
##
## Residuals:
## Min 1Q Median 3Q Max
## -46.632 -16.960 -0.619 21.653 40.088
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 87.9867 17.1423 5.133 1.43e-06 ***
## X1_Lernzeit 0.2461 0.1824 1.349 0.1803
## X2_Pruefungsangst -0.4814 0.1921 -2.506 0.0138 *
## X3_Gender_num -1.0396 4.6478 -0.224 0.8235
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 23.42 on 99 degrees of freedom
## Multiple R-squared: 0.2091, Adjusted R-squared: 0.1851
## F-statistic: 8.722 on 3 and 99 DF, p-value: 3.442e-05
Jetzt erstellen wir ein Modell, in dem beide nicht-signifikanten Prädiktoren weggelassen werden.
RegModel.2 <- lm(Y_Pruefungsleistung~X2_Pruefungsangst,
data=Daten)
summary(RegModel.2)
##
## Call:
## lm(formula = Y_Pruefungsleistung ~ X2_Pruefungsangst, data = Daten)
##
## Residuals:
## Min 1Q Median 3Q Max
## -49.297 -15.373 1.727 20.202 41.557
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 106.0706 10.2855 10.313 < 2e-16 ***
## X2_Pruefungsangst -0.6658 0.1348 -4.938 3.13e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 23.4 on 101 degrees of freedom
## Multiple R-squared: 0.1945, Adjusted R-squared: 0.1865
## F-statistic: 24.38 on 1 and 101 DF, p-value: 3.128e-06
Eine Frage, die sich nun stellt ist, ob das “sparsamere” Modell überhaupt signifikant schlechter ist als das Modell, in dem alle Prädiktoren berücksichtigt werden. Man kann also nun einen Signifikanztest beider Modelle durchführen. Über R-Commander geht das wie folgt:
Commander: Modelle -> Hypothesenthests -> Modellvergleich
Alternativ kann man auch direkt den anova() Befehl nehmen. Achtung: Der “anova”-Befehl muss kleingeschrieben werden. Mit großem A wird eine andere Funktion ausgeführt).
anova(RegModel.1, RegModel.2) # hier in () die Namen der beiden Reg-Modelle schreiben.
## Analysis of Variance Table
##
## Model 1: Y_Pruefungsleistung ~ X1_Lernzeit + X2_Pruefungsangst + X3_Gender_num
## Model 2: Y_Pruefungsleistung ~ X2_Pruefungsangst
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 99 54288
## 2 101 55289 -2 -1000.7 0.9125 0.4049
anova(RegModel.2, RegModel.1) # hier in () die Namen der beiden Reg-Modelle schreiben.
## Analysis of Variance Table
##
## Model 1: Y_Pruefungsleistung ~ X2_Pruefungsangst
## Model 2: Y_Pruefungsleistung ~ X1_Lernzeit + X2_Pruefungsangst + X3_Gender_num
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 101 55289
## 2 99 54288 2 1000.7 0.9125 0.4049
Der Output zeigt, dass Modell 2 nicht schlechter ist als Modell 1, obwohl es weniger Prädiktoren beinhaltet. Das Weglassen von zwei Prädiktoren hat also nicht zu einem signifikant schlechterem Modell geführt. Das einfachere Modell sollte daher bevorzugt werden.
# R²-Change bestimmen
0.2091 - 0.1945
## [1] 0.0146
Desweiteren sollte man sich auch noch die AICs ansehen, um für beide Modelle die Fehler in der Vorhersagegüte zu vergleichen. Das geht in R-Commander wie folgt:
Commander: Oben rechts das jeweilige Modell auswählen (analog zur Auswahl der aktuellen Datenmatrix). Dann: Modelle -> AIC
AIC(RegModel.1)
## [1] 947.8368
AIC(RegModel.2)
## [1] 945.7181
Fehler in Modell 2 ist kleiner als in Modell 1, selbst mit der niedrigeren Anzahl an Prädiktoren.
Zur Erinnerung: AIC ist ein Maß dafür, wie weit die tatsächlichen Werte von den vorhergesagten Werten entfernt sind, unter Berücksichtigung der Anzahl der im Modell enthaltenen Prädiktoren.
Hier die Post-hoc Teststärkenbestimmung via G-Power:
Unter “Determine” wird bei “Direct” im Feld “Partial R²” das R²-increase eingegben. “Number of tested predictors” bezieht sich auf die im aktuellen Modell neu hinzugekommenen Prädiktoren.
Erstellen eines dritten Modells und Vergleich mit Reg.Model2 (dem bisher besten Modell, mit nur einem der Prädiktoren)
RegModel.3 <- lm(Y_Pruefungsleistung~X1_Lernzeit+X2_Pruefungsangst,
data=Daten)
summary(RegModel.3)
##
## Call:
## lm(formula = Y_Pruefungsleistung ~ X1_Lernzeit + X2_Pruefungsangst,
## data = Daten)
##
## Residuals:
## Min 1Q Median 3Q Max
## -46.181 -16.949 -0.834 21.757 40.556
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 87.8326 17.0469 5.152 1.3e-06 ***
## X1_Lernzeit 0.2413 0.1803 1.339 0.1837
## X2_Pruefungsangst -0.4849 0.1905 -2.545 0.0124 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 23.31 on 100 degrees of freedom
## Multiple R-squared: 0.2087, Adjusted R-squared: 0.1928
## F-statistic: 13.18 on 2 and 100 DF, p-value: 8.285e-06
anova(RegModel.2,RegModel.3)
## Analysis of Variance Table
##
## Model 1: Y_Pruefungsleistung ~ X2_Pruefungsangst
## Model 2: Y_Pruefungsleistung ~ X1_Lernzeit + X2_Pruefungsangst
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 101 55289
## 2 100 54316 1 973.28 1.7919 0.1837
AIC(RegModel.2)
## [1] 945.7181
AIC(RegModel.3)
## [1] 945.8888
Der Output zeigt, dass das Modell mit zwei (Lernzeit und Angst) Prädiktoren nicht signifkant besser ist als das mit nur einem Prädiktor (Angst). Bei dem Modell mit nur einem Prädiktor ist das AIC sogar noch etwas kleiner. Daher sollte das Modell mit dem einen Prädiktor bevorzugt werden.
Zum Vorgehen bei multipler Regression: Wir haben mit allen drei Prädiktoren angefangen, die uns aus theoretischen Gründen interessiert haben. Dann haben wir entweder einen oder zwei nicht-signifikante Prädiktoren entfernt und über Modellvergleiche bestimmt, ob das Modell dadurch besser oder schlechter wird. Diese Methode kann als Variante der rückwärtsgerichteten schrittweise Selektion beschrieben werden (rückwärts, weil: erst alle Prädiktoren aufgenommen und dann geschaut, ob Entfernen von einzelnen Prädiktoren das Modell verschlechtert. Genau genommen würde eine rückwärtsgerichtete schrittweise Selektion das für alle Prädiktoren prüfen, egal ob signifikant oder nicht.)
Mehr zu Methoden der Regression und jeweiligen Vor- und Nachteilen z.B. im Buch von Andy Field, Kapitel 7.6.4 (“Methods of Regression”).
Ein anderes Vorgehen wäre, zuerst den Prädiktor aufzunehmen, der aus theoretischer Perspektive am wichtigsten ist und dann zu prüfen, ob das Hinzunehmen weiterer Prädiktoren (in der Reihenfolge ihrer angenommenen theoretischen Bedeutung) das Modell verbessert (dieses Vorgehen nennt man hierarchische Regression).