(Einen Überblick für diese Aufgabe finden sie auch im Buch von Andy Field in Kapitel 7)
In einer Studie (in einer Zeit vor apple itunes) wurde untersucht, was den Verkauf von Musikalben vorhersagt (Kriterium = Verkaufte Alben in tausend Dollar). Es wurden 3 Prädiktorvariablen untersucht: Die Werbeausgaben (adverts in tausend Dollar), wie häufig Musik aus dem Album im Radio gespielt in der Vorverkaufswoche im Radio gespielt wurde (airplay), und wie attraktiv Jugendliche die Musiker finden (attractiveness). Als Kriteriumsvariable wurden die Verkaufszahlen (sales) der Alben ermittelt.
Die Forscher wissen, dass Werbeausgaben (adverts) und airplay einen positiven Effekt auf die Verkaufszahlen haben. Sie wissen noch nicht, welche Rolle die Attraktivität der Musiker spielt. Sie haben folgende Hypothese aufgestellt
Hypothese: Der Verkauf steigt mit der Attraktivität der Bandmitglieder an.
Überlegen Sie, wie diese Hypothese durch einen Modellvergleich getestet werden kann. Stellen Sie dann eine entsprechende Hypothese auf.
Laden Sie Daten in R-Studio.
Machen Sie eine Streudiagramm-Matrix. Prüfen Sie graphisch, ob die Kriteriumsvariable normalverteilt ist und ob die Prädiktoren einen linearen Zusammenhang mit der Kriteriumsvariable aufweisen. Prüfen Sie ebenfalls anhand der Graphiken, ob die Prädiktoren einen starken Zusammenhang untereinander aufweisen.
Berechnen Sie ein Regressionsmodell nur für die Prädiktoren adverts und airplay und die Kriteriumsvariable sales. Berechnen Sie dann zweites ein Modell für alle drei Prädiktoren (also inklusive attractiveness).
Stellen Sie fest, ob diese Modelle eine Vorhersage der Verkaufszahlen erlauben.
Vergleichen Sie die beiden Regressionsmodelle miteinander. Berechnen Sie dazu eine Varianzanalyse und den AIC.
Entscheiden Sie über die Hypothese mit Hilfe der gemachten Analysen.
Daten <- read.csv("Daten_Albumsales.csv")
library(Rcmdr)
scatterplotMatrix(~adverts+airplay+attract+sales, regLine=TRUE, smooth=list(span=0.5, spread=FALSE),
diagonal=list(method="density"), data=Daten)
Die letzte Zeile zeigt, dass alle Prädiktoren positiv mit dem Kriterium korrelieren. Die Zeilen davor zeigen außerdem, dass die Prädiktoren untereinander nicht oder nur schwach miteinander korrelieren (was gut ist).
RegModel.1 <- lm(sales~adverts+airplay, data=Daten)
summary(RegModel.1)
##
## Call:
## lm(formula = sales ~ adverts + airplay, data = Daten)
##
## Residuals:
## Min 1Q Median 3Q Max
## -113.213 -30.584 4.479 32.778 155.111
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 39.465178 9.405430 4.196 4.13e-05 ***
## adverts 0.085914 0.007341 11.703 < 2e-16 ***
## airplay 3.640856 0.296953 12.261 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 49.09 on 194 degrees of freedom
## Multiple R-squared: 0.634, Adjusted R-squared: 0.6303
## F-statistic: 168.1 on 2 and 194 DF, p-value: < 2.2e-16
Wie ergibt sich dieser F-Wert? Die allgmeine Formel ist:
\(F = \frac{(N - k - 1)R^2}{k(1-R^2)}\),
wobei \(N\) die Anzahl der Beobachtungen, \(k\) die Anzahl der Prädiktoren und \(R^2\) die vom Modell erklärte Varianz ist. Wenn wir die im Output angezeigten Werte in die Formel eingeben, bekommen wir:
N <- 197
k <- 2
Rsq <- 0.634
F_value <- ((N - k - 1)*Rsq)/(k*(1-Rsq))
F_value
## [1] 168.0273
(Dass dort nicht genau 168.1 steht, ergibt sich aus Rundungsfehlern für R-Quadrat.)
Jetzt erstellen wir ein Modell, in das die Attraktivität der Musiker*innen aufgenommen wird
RegModel.2 <- lm(sales~adverts+airplay+attract, data=Daten)
summary(RegModel.2)
##
## Call:
## lm(formula = sales ~ adverts + airplay + attract, data = Daten)
##
## Residuals:
## Min 1Q Median 3Q Max
## -121.52 -27.84 0.21 28.25 144.35
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -27.00504 17.28334 -1.562 0.12
## adverts 0.08442 0.00701 12.044 < 2e-16 ***
## airplay 3.39973 0.28826 11.794 < 2e-16 ***
## attract 10.94679 2.43289 4.500 1.18e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 46.82 on 193 degrees of freedom
## Multiple R-squared: 0.6688, Adjusted R-squared: 0.6636
## F-statistic: 129.9 on 3 and 193 DF, p-value: < 2.2e-16
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: sales ~ adverts + airplay
## Model 2: sales ~ adverts + airplay + attract
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 194 467527
## 2 193 423140 1 44387 20.245 1.175e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Der Output zeigt, dass Modell 2 besser ist als Modell 1. Woran sehen wir das? Natürlich erstens am signifikanten F-Test. Außerdem daran, dass das adjustierte R-quadrat von Modell 2 bereits höher war als das von Modell 1. Weiterhin sehen wir im obigen Output, dass RSS (Residual Sum of Squares, also der Fehler) im zweiten Modell geringer ist als im ersten.
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] 2098.147
AIC(RegModel.2)
## [1] 2080.496
Fehler in Modell 2 ist kleiner als in Modell 1 (niedrige AIC-Werte sind gut), auch wenn die höhere Anzahl an Prädiktoren berücksichtigt wird
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.
All drei Prädiktoren sind signifikant:
Adverts: Wenn man “adverts” um eine Einheit erhöht (also plus 1000 Dollar), dann gehen die Albumverkäufe um 0.084 Einheiten (also plus 84 Alben) nach oben (gegeben, dass man alle anderen Prädiktorwerte konstant hält).
Airplay: Wenn man “airplay” um eine Einheit erhöht (also den Song in der Vorverkaufswoche einmal mehr im Radio spielt), dann gehen die Albumverkäufe um 3.4 Einheiten (also knapp plus 3400 Alben) nach oben (gegeben, dass man alle anderen Prädiktorwerte konstant hält). Das klingt lohnenswert.
Attract: Wen die mittlere eingeschätzte Attraktivität der Bandmitglieder um eine Einheit zunimmt (auf dem Fragegoben), dann erhöht sich die Verkaufszahl um fast 11 Einheiten (das heißt knapp 11000 mehr verkaufte Alben).
Der Vollständigkeit halber hier noch die Standardisierung der Koeffizienten:
library(QuantPsyc)
## Loading required package: boot
##
## Attaching package: 'boot'
## The following object is masked from 'package:car':
##
## logit
## Loading required package: MASS
##
## Attaching package: 'QuantPsyc'
## The following object is masked from 'package:base':
##
## norm
lm.beta(RegModel.2)
## adverts airplay attract
## 0.5048458 0.5025903 0.1902302
Für die (unstandardisierten) Regressionskoeffizienten lassen sich übrigens auch 95%-Konfidenzintervalle angeben über:
confint(RegModel.2)
## 2.5 % 97.5 %
## (Intercept) -61.09351681 7.08343558
## adverts 0.07059819 0.09824985
## airplay 2.83117919 3.96827303
## attract 6.14832735 15.74525843
Eine ähnliche Analyse wie heute kann natürlich auch mit dem letzte Woche verwendeten Jelly-Fish Data-Set gemacht werden.