Multiple lineare Regression
Die multiple lineare Regression ist eine Erweiterung der einfachen linearen Regression auf Situationen mit mehreren Prädiktoren. Das grundlegende Konzept bleibt aber unverändert, wir verwenden nach wie vor folgende allgemeine Modellgleichung:
\[y_i = \hat{y}_i + \varepsilon_i\]
Das Modell mit \(n\) Prädiktoren \(x_{1}\), \(x_{2}\), \(\ldots\), \(x_{n}\) wird nun wie folgt formuliert:
\[y_i = (b_0 + b_1 x_{1i} + b_2 x_{2i} + \ldots + b_n x_{ni}) + \varepsilon_i\]
Jeder Prädiktor erhält also ein eigenes Gewicht bzw. einen eigenen Regressionskoeffizienten. Die Koeffizienten werden mittels Least Squares wieder so berechnet, dass die entstehende “Gerade” (technisch spricht man hier von einer Hyperebene) den mittleren quadratischen Fehler minimiert.
Quadratsummen und Model Fit
Die Quadratsummen SST, SSM und SSR werden analog wie bei der einfachen Regression berechnet. Wieder kann man \(R^2\) berechnen, welches den Anteil der Varianz in der abhängigen Variable angibt, welche durch das Modell erklärt wird. Je höher dieser Wert ist, desto besser kann das Modell die Daten beschreiben. Im Gegensatz zur einfachen Regression kann man aus \(R^2\) nicht die Pearson-Korrelation zwischen den einzelnen Variablen berechnen, sondern die Korrelation zwischen den vorhergesagten Werten und den tatsächlich beobachteten Werten.
Je mehr Prädiktoren man hinzufügt, desto größer wird \(R^2\), d.h. man kann durch Erhöhen der Anzahl der Prädiktoren diesen Wert fast beliebig erhöhen. Dies liefert dann natürlich keine verlässliche Aussage mehr über die Modellqualität. Deswegen gibt es Kriterien, welche die Anzahl der Prädiktoren berücksichtigen, z.B. das Akaike Information Criterion (AIC) oder das Bayesian Information Criterion (BIC). Bei gegebenen Daten kann man so verschiedene Modelle vergleichen; jenes Modell mit dem kleinsten Wert von AIC (oder BIC) ist zu bevorzugen. Weiters kann anstelle von \(R^2\) auch das adjustierte Bestimmtheitsmaß verwendet werden, welches eine bessere Schätzung der vom Modell erklärten Varianz bei mehreren Prädiktoren liefert.
Überprüfen der Datenpunkte
Ein gegebenes Modell sollte man immer darauf überprüfen, wie gut es die gemessenen Daten tatsächlich beschreibt. Lineare Modelle können sehr sensitiv auf einzelne Datenpunkte reagieren, welche nicht zum generellen Trend der Daten passen. Einen tatsächlichen Einfluss auf das Modell üben solche Ausreißer aber nur aus, wenn sie weit weg vom Mittelwert der Prädiktoren liegen – man bezeichnet diesen potentiellen Einfluss jedes Datenpunkts als Leverage.
Kritisch sind also jene Punkte, welche einen potentiellen hohen Einfluss haben (hohe Leverage) und gleichzeitig nicht zum generellen Trend der Daten passen, also Ausreißer sind. Die folgende Grafik veranschaulicht die drei möglichen Situationen. Dabei sind die vier Ausgangsdatenpunkte schwarz dargestellt und die zugehörige Regressionsgerade ist schwarz strichliert. Der zusätzliche fünfte Datenpunkt ist rot dargestellt, und die Regressionsgerade durch alle fünf Datenpunkte ist ebenfalls rot. Durch einen einzigen zusätzlichen Datenpunkt ändert sich also das ursprüngliche Modell mehr oder weniger stark (von schwarz strichliert auf rot durchgezogen).
Je weniger Datenpunkte vorhanden sind, desto größer ist der Einfluss von Ausreißern auf das lineare Modell. Die folgende Grafik veranschaulicht die Auswirkung eines Ausreißers für drei verschiedene Stichprobengrößen. Man erkennt, dass ein Ausreißer das Modell nur wenig verändert, wenn sehr viele Datenpunkte vorhanden sind. Wenn es aber nur wenige Datenpunkte gibt, kann ein einziger Ausreißer das Modell stark verändern.
Ausreißer
Ein Ausreißer ist ein Datenpunkt, welcher sich von den restlichen Daten unterscheidet. Im Falle eines linearen Modells hat ein Ausreißer bei gegebenen \(x\)-Werten einen ungewöhnlichen \(y\)-Wert. Ausreißer erkennt man z.B. an deren Residuen – diese sind typischerweise (aber nicht immer) sehr groß. Es ist allerdings sinnvoll, wenn man sich standardisierte Residuen zu jedem Datenpunkt ansieht (d.h. Residuen geteilt durch ihre Standardabweichung1). Die Funktion rstandard()
berechnet standardisierte Residuen.
Zur Beurteilung des Modells anhand standardisierter Residuen gibt es folgende Daumenregeln:
- Standardisierte Residuen größer als 3 könnten Ausreißer sein und sollten gesondert behandelt werden.
- Wenn mehr als 1% der Daten standardisierte Residuen größer als 2.5 haben, ist das ein Hinweis darauf, dass das Modell die Daten schlecht beschreibt.
- Wenn mehr als 5% der Daten standardisierte Residuen größer als 2 haben, ist das ebenfalls ein Hinweis darauf, dass das Modell die Daten schlecht beschreibt.
Alternativ zu den standardisierten Residuen kann man auch studentisierte Residuen mittels Leave-One-Out berechnen. Dies bedeutet, dass bei der Berechnung der Standardabweichung das Modell ohne den betreffenden Datenpunkt verwendet wird (dieser Datenpunkt wird ausgelassen). Diese studentisierten Residuen werden so für jeden Datenpunkt berechnet. In R verwendet man die Funktion rstudent()
dafür.
Datenpunkte mit hoher Leverage
Datenpunkte, die weit vom Mittelwert der Prädiktorvariablen entfernt sind, können ein lineares Modell potentiell stark beeinflussen. Ein Maß für den potentiellen Einfluss ist die sogenannte Leverage \(h_i\) (wird auch als Hat-Wert bezeichnet). Die Leverage beschreibt den Einfluss eines Messpunktes \(y_i\) auf alle vom Modell vorhergesagten Werte. Für \(n\) Messpunkte gilt:
\[\frac{1}{n} \leq h_i \leq 1\]
Der durchschnittliche Wert für ein Modell mit \(k\) Prädiktoren ist: \[\frac{k + 1}{n}\]
In R kann man die Funktion hatvalues()
benutzen, um die Leverage für jeden Datenpunkt zu berechnen.
Datenpunkte mit großem Einfluss
Tatsächlichen Einfluss auf ein Modell haben Datenpunkte, die gleichzeitig Ausreißer sind und hohe Leverage haben.
Man kann solche Datenpunkte erkennen, indem man einmal ein Modell mit allen Daten und ein zweites Modell mit allen Daten außer den zu untersuchenden Datenpunkt rechnet (Leave-One-Out). Wenn der untersuchte Datenpunkt keinen großen Einfluss auf das Modell ausübt, dann sind die beiden Modelle sehr ähnlich. Folgende konkrete Maße kann man hier für jeden Datenpunkt berechnen:
- DFBeta (
dfbeta()
) beschreibt den Unterschied zwischen den Regressionskoeffizienten, welche aus einem Modell mit allen Daten und einem Modell ohne den jeweiligen Messpunkt berechnet wurden. Der Nachteil ist, dass man hier nicht einen einzigen Wert bekommt, den man leicht beurteilen könnte, sondern einen Wert für jeden Regressionskoeffizienten. - Cook’s Distanz (
cooks.distance()
) berechnet aus den Unterschieden der einzelnen Koeffizienten einen Wert. - Angepasste vorhergesagte Werte (
dffits()
) beschreiben den Unterschied zwischen den vorhergesagten Werten, welche durch die zwei verschiedenen Modelle berechnet wurden (dieses Maß ist auch als DFFit bekannt).
Modellannahmen
Um mit einem linearen Regressionsmodell Vorhersagen auf ungesehene Daten machen zu können, müssen folgende Annahmen erfüllt sein:
Die abhängige Variable muss intervallskaliert sein.
Die unabhängigen Variablen (Prädiktoren) müssen intervallskaliert (oder nominalskaliert in zwei Kategorien) sein.
Die Prädiktoren müssen Varianzen ungleich 0 haben.
Es darf keine Multikollinearität bestehen, d.h. zwei oder mehrere Prädiktoren dürfen nicht linear voneinander abhängig sein. Dies kann z.B. mit der VIF-Statistik (Variance Inflation Factor) überprüft werden.
Homoskedastizität, d.h. die Varianz der Residuen muss konstant über die Werte der Prädiktoren sein (Varianzhomogenität).
Die Residuen müssen normalverteilt sein.
WichtigDiese Voraussetzung der Normalverteilung gilt für die Residuen und nicht für die Prädiktoren!
Die Residuen müssen unabhängig voneinander sein (kann z.B. mit dem Durbin-Watson-Test überprüft werden).
Die Beziehung zwischen unabhängigen Variablen und abhängiger Variable muss linear sein.
Beispiel
Im folgenden Beispiel sehen wir uns wieder die Anzahl der Verkäufe von Musikalben in Abhängigkeit der Höhe des Werbebudgets an. Zusätzlich gibt es jetzt aber zwei weitere Prädiktoren, nämlich die Anzahl an Airplay-Stunden im größten nationalen Radiosender und die Attraktivität der Bandmitglieder. Wir beginnen mit dem Laden der Daten sales2.dat
:
library(readr)
= read_tsv("sales2.dat") album2
Berechnen wir nun ein lineares Regressionsmodell. Als Vergleichsmodell führen wir zuerst eine einfache Regression mit dem einzigen Prädiktor Werbebudget durch:
= lm(sales ~ adverts, data=album2) model1
Zusätzliche Faktoren kann man nun in einem zweiten Modell einfach durch den +
-Operator hinzufügen:
= lm(sales ~ adverts + airplay + attract, data=album2) model2
Anschließend können wir uns die zusammengefassten Ergebnisse der beiden Modelle anzeigen lassen:
summary(model1)
Call:
lm(formula = sales ~ adverts, data = album2)
Residuals:
Min 1Q Median 3Q Max
-152.949 -43.796 -0.393 37.040 211.866
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.341e+02 7.537e+00 17.799 <2e-16 ***
adverts 9.612e-02 9.632e-03 9.979 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 65.99 on 198 degrees of freedom
Multiple R-squared: 0.3346, Adjusted R-squared: 0.3313
F-statistic: 99.59 on 1 and 198 DF, p-value: < 2.2e-16
summary(model2)
Call:
lm(formula = sales ~ adverts + airplay + attract, data = album2)
Residuals:
Min 1Q Median 3Q Max
-121.324 -28.336 -0.451 28.967 144.132
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -26.612958 17.350001 -1.534 0.127
adverts 0.084885 0.006923 12.261 < 2e-16 ***
airplay 3.367425 0.277771 12.123 < 2e-16 ***
attract 11.086335 2.437849 4.548 9.49e-06 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 47.09 on 196 degrees of freedom
Multiple R-squared: 0.6647, Adjusted R-squared: 0.6595
F-statistic: 129.5 on 3 and 196 DF, p-value: < 2.2e-16
Da das erste Modell identisch mit jenem aus der vorigen Einheit ist, kennen wir die Ergebnisse bereits. Wenden wir uns daher dem zweiten Modell zu. \(R^2\) ist hier 0.6647, das heißt das Modell kann nun 66% der Varianz erklären. Im Vergleich zum ersten Modell mit nur einem Prädiktor ist das eine Steigerung um 33%, d.h. die beiden Prädiktoren Airplay und Attraktivität können zusätzliche Varianz im Ausmaß von 33% erklären.
Die Regressionskoeffizienten werden ebenfalls in der Ausgabe dargestellt. Wir können daher das lineare Modell wie folgt schreiben:
\[y = b_0 + b_1 x_1 + b_2 x_2 + b_3 x_3 = -26.613 + 0.085 \cdot x_1 + 3.367 \cdot x_2 + 11.086 \cdot x_3\]
Hier stehen \(b_0\) für den Intercept (d.h. jener Wert von \(y\), wenn alle Prädiktoren 0 sind), \(b_1\) für das Werbebudget adverts
, \(b_2\) für die Airplay-Stunden airplay
und \(b_3\) für die Attraktivität attract
.
Die Regressionskoeffizienten geben Auskunft, um wie viel sich die abhängige Variable ändert, wenn man einen Prädiktor um eine Einheit erhöht und dabei alle anderen Prädiktoren konstant hält. Dies bedeutet im Beispiel:
- Wenn
adverts
um eine Einheit erhöht wird, dann erhöht sichsales
um 0.085 Einheiten. D.h. wenn man 1000 EUR mehr für Werbung ausgibt, verkauft man um 85 Alben mehr. - Wenn
airplay
um eine Einheit erhöht wird, dann erhöht sichsales
um 3.37 Einheiten. D.h. wenn man das Album um eine Stunde mehr im Radio spielt, verkauft man um 3367 Alben mehr. - Wenn
attract
um eine Einheit erhöht wird, dann erhöht sichsales
um 11.086 Einheiten (d.h. 11086 zusätzliche Alben).
Für jeden Regressionskoeffizienten wird ein \(t\)-Test gerechnet, welcher angibt, ob sich der Koeffizient signifikant von 0 unterscheidet (d.h. ob er signifikant zum Modell beiträgt). Die Größe der \(t\)-Statistik lässt auf den Einfluss der Koeffizienten schließen, d.h. adverts
und airplay
haben einen ähnlich großen Einfluss auf das Modell, wo hingegen attract
einen geringeren Einfluss hat.
Oft ist es hilfreich, nicht nur die Regressionskoeffizienten zu analysieren, sondern auch die standardisierten Regressionskoeffizienten. Diese kann man berechnen, in dem man zuerst alle Variablen standardisiert und danach das lineare Modell berechnet. Standardisierte Variablen haben einen Mittelwert von 0 und eine Standardabweichung von 1. Man könnte die Standardisierung daher relativ einfach selbst vornehmen, in dem man für jede Variable zuerst deren Mittelwert subtrahiert und danach durch deren Standardabweichung dividiert.
Die Funktion scale()
kann verwendet werden, um die Spalten eine Data Frames zu standardisieren. Diese liefert aber immer eine Matrix zurück, d.h. wenn man ein Data Frame bzw. Tibble standardisieren möchte, muss man danach noch as.data.frame()
bzw. tibble::as_tibble()
anwenden.
Alternativ kann man dazu auch nachträglich die Funktion lm.beta()
aus dem lm.beta
-Paket benutzen:
library(lm.beta)
lm.beta(model2)
Call:
lm(formula = sales ~ adverts + airplay + attract, data = album2)
Standardized Coefficients::
(Intercept) adverts airplay attract
NA 0.5108462 0.5119881 0.1916834
Die standardisierten Regressionskoeffizienten werden üblicherweise mit \(\beta_i\) bezeichnet. Da alle Variablen nun in Standardabweichungen gemessen werden, kann man diese direkt miteinander vergleichen. Man sieht im Beispiel also:
- Wenn
adverts
um eine Standardabweichung erhöht wird (485655 EUR), dann erhöht sichsales
um 0.511 Standardabweichungen (41240 Alben). - Wenn
airplay
um eine Standardabweichung erhöht wird (12.270), dann erhöht sichsales
um 0.512 Standardabweichungen (41320 Alben). - Wenn
attract
um eine Standardabweichung erhöht wird (1.395), dann erhöht sichsales
um 0.192 Standardabweichungen (15490 Alben).
Konfidenzintervalle für die (nicht standardisierten) Regressionskoeffizienten erhält man mit der Funktion confint()
(standardmäßig werden 95%-Intervalle berechnet):
confint(model2)
2.5 % 97.5 %
(Intercept) -60.82960967 7.60369295
adverts 0.07123166 0.09853799
airplay 2.81962186 3.91522848
attract 6.27855218 15.89411823
Zwei (oder mehrere) Modelle können mit der \(F\)-Statistik verglichen werden. Der \(F\)-Wert, der bei der zusammenfassenden Beschreibung eines Modells angezeigt wird, vergleicht das Modell standardmäßig mit dem einfachsten Mittelwertmodell. Möchte man das Modell mit einem anderen Modell vergleichen, ist zu beachten, dass model2
eine Erweiterung von model1
sein muss, d.h. model2
muss alle Terme von model1
beinhalten plus eventuelle zusätzliche Faktoren. In R gibt man hier folgenden Befehl ein:
anova(model1, model2)
Analysis of Variance Table
Model 1: sales ~ adverts
Model 2: sales ~ adverts + airplay + attract
Res.Df RSS Df Sum of Sq F Pr(>F)
1 198 862264
2 196 434575 2 427690 96.447 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Der \(F\)-Wert beträgt also 96.447 und ist signifikant, d.h. das zweite Modell ist signifikant besser als das erste.
Datenpunkte mit großem Einfluss
Um die diversen Ausreißerstatistiken für jeden einzelnen Wert übersichtlich beurteilen zu können, kann man die Werte mit folgenden Funktionen berechnen:
resid()
: Residuenrstandard()
: Standardisierte Residuenrstudent()
: Studentisierte Residuen (berechnet mit Leave-One-Out)hatvalues()
: Leveragedfbeta()
: Unterschied der Regressionskoeffizienten mittels Leave-One-Outcooks.distance()
: Cook’s Distanzdffits()
: Unterschied im vorhergesagtem Wert mittels Leave-One-Out
Sehr praktisch ist die Funktion influence.measures()
, welche mehrere Ausreißerstatistiken für jeden Datenpunkt übersichtlich aufbereitet ausgibt.
influence.measures(model2)
Influence measures of
lm(formula = sales ~ adverts + airplay + attract, data = album2) :
dfb.1_ dfb.advr dfb.arpl dfb.attr dffit cov.r cook.d hat inf
1 -3.16e-01 -2.42e-01 0.157739 0.353292 0.48929 0.971 5.87e-02 0.04719 *
2 1.26e-02 -1.26e-01 0.009421 -0.018683 -0.21110 0.920 1.09e-02 0.00801 *
3 -3.81e-02 1.75e-01 0.046574 -0.005385 0.21418 0.997 1.14e-02 0.02070
4 -2.58e-03 1.22e-02 0.003444 0.000129 0.01689 1.033 7.17e-05 0.01256
5 -8.58e-03 1.09e-03 -0.014254 0.013554 -0.02020 1.048 1.03e-04 0.02607
6 6.58e-02 2.24e-03 -0.020820 -0.051246 0.07411 1.027 1.38e-03 0.01421
7 -1.45e-01 -1.00e-03 -0.005086 0.147724 -0.15389 1.117 5.94e-03 0.09104 *
8 -2.81e-02 -5.86e-03 -0.019167 0.045204 0.05366 1.040 7.23e-04 0.02092
9 1.12e-02 -8.96e-03 -0.028957 0.014483 0.06154 1.016 9.49e-04 0.00691
10 -1.26e-02 -1.56e-01 0.167721 0.006723 0.26896 0.944 1.78e-02 0.01541
11 8.75e-03 -5.17e-02 -0.003237 0.001001 -0.05723 1.051 8.23e-04 0.03118
12 -2.41e-01 -1.95e-02 0.000943 0.243196 -0.25743 1.069 1.66e-02 0.06410 *
13 8.59e-03 1.70e-02 0.008258 -0.021579 -0.03484 1.032 3.05e-04 0.01303
14 1.29e-02 -2.35e-02 0.022549 -0.013673 0.03943 1.037 3.90e-04 0.01751
15 2.05e-02 -4.65e-02 -0.031639 0.027607 0.12762 0.977 4.04e-03 0.00652
16 -7.91e-02 3.38e-02 -0.004497 0.065656 -0.09386 1.024 2.21e-03 0.01504
17 -1.29e-02 -2.08e-02 -0.010016 0.020810 -0.03286 1.049 2.71e-04 0.02803
18 -9.64e-03 -1.50e-02 0.009564 0.012653 0.02659 1.036 1.78e-04 0.01527
19 -1.73e-02 3.14e-02 -0.007284 0.017893 0.04320 1.039 4.69e-04 0.01930
20 8.61e-02 -1.39e-01 -0.014776 -0.066685 -0.18790 1.007 8.80e-03 0.02051
21 3.57e-03 -9.31e-03 -0.011585 -0.001884 -0.03346 1.024 2.81e-04 0.00655
22 1.24e-02 1.64e-02 0.001698 -0.013572 0.03020 1.028 2.29e-04 0.00941
23 1.55e-02 -2.22e-02 0.002822 -0.013787 -0.02865 1.068 2.06e-04 0.04482 *
24 1.72e-03 -4.69e-04 -0.008513 -0.001144 -0.01913 1.026 9.19e-05 0.00644
25 2.36e-02 1.00e-02 -0.102957 0.008510 -0.11874 1.028 3.53e-03 0.02070
26 -3.05e-02 -3.15e-02 0.038147 0.030725 0.07196 1.030 1.30e-03 0.01575
27 -1.80e-01 3.25e-02 0.018116 0.155755 -0.18840 1.020 8.86e-03 0.02590
28 -5.35e-03 1.80e-02 0.010007 -0.001654 0.02371 1.050 1.41e-04 0.02853
29 3.14e-02 6.82e-02 -0.031088 -0.047175 -0.10295 1.027 2.66e-03 0.01774
30 2.60e-02 1.35e-02 -0.039236 -0.007581 0.04967 1.038 6.20e-04 0.01949
31 1.85e-02 8.55e-02 -0.133634 0.005857 -0.16928 1.028 7.16e-03 0.02759
32 3.96e-02 5.81e-02 0.098406 -0.126250 -0.19909 0.977 9.82e-03 0.01387
33 -1.49e-02 2.72e-02 -0.041884 0.021926 -0.05923 1.037 8.81e-04 0.01909
34 -3.97e-03 -3.94e-03 0.016153 -0.004047 -0.01859 1.044 8.68e-05 0.02266
35 3.04e-02 1.02e-01 0.064906 -0.069895 0.16442 1.003 6.74e-03 0.01601
36 -8.74e-03 3.24e-02 0.022819 0.005440 0.08670 1.004 1.88e-03 0.00666
37 6.83e-02 -8.27e-02 0.019384 -0.042493 0.12718 1.004 4.04e-03 0.01149
38 2.29e-02 4.55e-02 0.016380 -0.054531 -0.08905 1.021 1.99e-03 0.01299
39 4.83e-02 -6.37e-04 -0.024631 -0.052542 -0.09128 1.013 2.08e-03 0.00961
40 -1.55e-02 -1.51e-03 0.008420 0.008903 -0.02331 1.027 1.36e-04 0.00752
41 3.78e-03 -1.21e-02 -0.009467 -0.000679 -0.02647 1.027 1.76e-04 0.00812
42 -3.58e-02 -9.83e-02 0.206271 -0.018746 0.23182 1.065 1.34e-02 0.05823 *
43 -1.04e-02 6.63e-02 0.000144 -0.001539 0.07067 1.068 1.25e-03 0.04593 *
44 -7.70e-04 2.14e-02 -0.007418 0.003410 0.03230 1.028 2.62e-04 0.00967
45 1.29e-02 4.09e-02 -0.083959 0.000910 -0.11410 1.015 3.26e-03 0.01380
46 5.46e-02 -2.30e-01 -0.077306 0.011464 -0.28216 0.978 1.97e-02 0.02380
47 6.64e-02 1.96e-01 0.048288 -0.178574 -0.31469 0.915 2.41e-02 0.01568 *
48 1.05e-02 -4.39e-02 -0.004067 0.012615 0.06877 1.019 1.19e-03 0.00888
49 -4.57e-03 1.34e-02 0.010421 -0.000924 0.02186 1.036 1.20e-04 0.01504
50 -4.22e-02 9.52e-04 0.173808 -0.012978 0.21041 0.983 1.10e-02 0.01649
51 1.51e-02 1.10e-02 0.026222 -0.023993 0.04854 1.027 5.91e-04 0.01033
52 3.53e-01 -2.88e-02 -0.136669 -0.269650 0.36742 0.960 3.32e-02 0.02921
53 4.81e-03 -4.32e-02 -0.123515 0.074557 0.15430 1.048 5.96e-03 0.03793
54 -1.73e-02 -2.36e-03 -0.000888 0.024897 0.03786 1.027 3.60e-04 0.00895
55 1.74e-01 -3.26e-01 -0.023068 -0.124349 -0.40736 0.925 4.04e-02 0.02610 *
56 5.12e-03 -4.60e-02 0.003598 -0.004287 -0.06477 1.023 1.05e-03 0.01035
57 3.51e-02 2.42e-02 -0.050804 -0.012286 0.06839 1.034 1.17e-03 0.01791
58 -2.19e-02 3.40e-02 0.073443 -0.001318 0.12487 0.996 3.89e-03 0.00938
59 -4.05e-02 1.08e-02 0.005168 0.033754 -0.04241 1.048 4.52e-04 0.02713
60 -4.52e-02 -5.95e-02 0.064342 0.022212 -0.10409 1.028 2.71e-03 0.01874
61 8.19e-04 -1.54e-02 0.027926 0.020543 0.15562 0.937 5.95e-03 0.00535 *
62 -3.73e-02 5.94e-02 0.019305 0.021939 0.07937 1.043 1.58e-03 0.02597
63 2.15e-02 -9.71e-03 0.027330 -0.041342 -0.06376 1.024 1.02e-03 0.01109
64 -2.82e-02 3.43e-02 0.004978 0.012469 -0.04889 1.031 6.00e-04 0.01357
65 -3.07e-02 -1.57e-02 -0.021028 0.052067 0.06276 1.040 9.89e-04 0.02206
66 -2.83e-02 6.60e-02 0.051708 -0.029031 -0.12539 0.999 3.92e-03 0.01006
67 -3.54e-02 2.17e-02 0.022872 0.013776 -0.05296 1.026 7.04e-04 0.01068
68 -2.81e-03 2.11e-01 -0.147655 -0.017599 -0.30216 0.924 2.23e-02 0.01571 *
69 3.11e-02 9.69e-02 0.141662 -0.150488 -0.25404 0.966 1.59e-02 0.01775
70 -2.21e-02 -6.36e-03 0.007563 0.028092 0.04557 1.026 5.21e-04 0.00931
71 7.95e-02 -5.18e-02 0.010488 -0.064341 0.10080 1.027 2.55e-03 0.01786
72 -4.36e-02 -2.80e-02 0.050914 0.034896 0.07541 1.060 1.43e-03 0.03995
73 -3.40e-03 1.93e-02 -0.001904 -0.003926 -0.02579 1.032 1.67e-04 0.01174
74 2.78e-04 -7.43e-05 -0.001700 -0.000493 -0.00534 1.026 7.16e-06 0.00573
75 -9.23e-03 1.17e-01 -0.030460 0.006431 0.13429 1.028 4.51e-03 0.02289
76 5.48e-02 -9.54e-02 0.085614 -0.055135 0.15795 1.007 6.22e-03 0.01654
77 -5.40e-02 1.76e-02 0.001946 0.067477 0.10805 1.004 2.91e-03 0.00916
78 2.45e-02 -6.93e-02 -0.039287 0.022734 0.10402 1.019 2.71e-03 0.01411
79 -2.09e-02 3.82e-03 -0.139606 0.069215 -0.16783 1.016 7.03e-03 0.02138
80 1.42e-02 -9.94e-03 -0.001071 -0.010067 0.01755 1.041 7.74e-05 0.01963
81 9.96e-04 6.87e-03 0.015221 -0.011845 -0.02172 1.046 1.19e-04 0.02443
82 1.10e-01 -1.77e-02 -0.075900 -0.067595 0.12366 1.058 3.84e-03 0.04249
83 1.20e-01 -8.51e-02 -0.170752 -0.008363 0.22090 1.026 1.22e-02 0.03356
84 1.38e-02 -2.80e-02 0.026471 -0.014942 0.04518 1.039 5.13e-04 0.01972
85 -1.22e-01 -3.32e-02 0.103319 0.074608 -0.15847 1.024 6.28e-03 0.02372
86 -4.29e-02 1.28e-01 0.098342 -0.006909 0.21451 0.966 1.14e-02 0.01344
87 5.23e-02 2.06e-01 0.042815 -0.113375 0.24366 1.063 1.48e-02 0.05815 *
88 -2.07e-02 -7.81e-02 -0.032203 0.050616 -0.10072 1.074 2.55e-03 0.05328 *
89 -7.74e-03 2.43e-02 0.010067 -0.007857 -0.03730 1.029 3.49e-04 0.01098
90 1.61e-02 2.94e-02 0.004568 -0.033691 -0.05588 1.029 7.84e-04 0.01262
91 -5.37e-03 -8.31e-03 -0.003527 0.007220 -0.01557 1.031 6.09e-05 0.01021
92 -1.78e-03 1.15e-01 -0.057331 0.011664 0.14045 1.029 4.94e-03 0.02397
93 -2.28e-02 3.14e-02 -0.012093 0.024707 0.04441 1.061 4.95e-04 0.03899
94 6.92e-02 -5.21e-02 -0.212508 0.058739 0.24501 1.015 1.49e-02 0.03148
95 -3.17e-02 1.64e-02 0.023713 0.025282 0.05632 1.028 7.96e-04 0.01248
96 -2.78e-02 -3.79e-02 0.004403 0.027559 -0.06543 1.022 1.07e-03 0.00982
97 8.06e-02 -4.92e-02 -0.084344 -0.018812 0.12958 1.018 4.20e-03 0.01703
98 -5.83e-03 -3.05e-03 -0.007200 0.007894 -0.01561 1.029 6.12e-05 0.00894
99 8.85e-02 -1.11e-01 -0.279325 0.038921 -0.33721 0.990 2.81e-02 0.03428
100 6.11e-02 1.45e-01 -0.299835 0.067664 0.35732 0.959 3.14e-02 0.02778
101 -4.37e-02 7.04e-02 -0.046088 0.036563 -0.10779 1.020 2.91e-03 0.01500
102 5.65e-02 -4.70e-02 -0.012821 -0.048374 -0.08237 1.045 1.70e-03 0.02827
103 1.48e-02 7.81e-02 0.125243 -0.113185 -0.20118 1.005 1.01e-02 0.02151
104 -1.08e-02 5.69e-03 0.002933 0.005915 -0.01598 1.028 6.42e-05 0.00790
105 1.40e-02 -5.30e-02 0.156092 -0.060038 0.17773 1.041 7.90e-03 0.03631
106 1.39e-02 -2.65e-02 -0.029883 0.013962 0.05786 1.025 8.40e-04 0.01075
107 -1.26e-03 6.34e-05 0.004387 -0.001138 -0.00488 1.050 5.97e-06 0.02824
108 1.25e-01 -8.62e-02 -0.128198 -0.028115 0.20283 0.992 1.02e-02 0.01779
109 1.13e-02 3.15e-02 -0.003884 -0.023162 -0.04553 1.036 5.20e-04 0.01709
110 2.99e-03 -9.75e-03 -0.003711 0.002983 0.01440 1.032 5.21e-05 0.01167
111 4.76e-02 -6.60e-02 0.067924 -0.048939 0.12645 1.010 3.99e-03 0.01347
112 -7.80e-03 -5.58e-03 0.007208 0.008468 0.01682 1.033 7.11e-05 0.01220
113 -2.35e-01 -7.19e-03 0.082070 0.195385 -0.24220 1.045 1.47e-02 0.04709
114 2.66e-03 -2.34e-03 -0.007962 0.002258 0.00937 1.052 2.20e-05 0.03012
115 2.23e-04 -5.43e-04 0.000890 -0.000624 -0.00127 1.046 4.05e-07 0.02379
116 7.97e-03 1.37e-02 0.028313 -0.027777 -0.04165 1.069 4.36e-04 0.04631 *
117 -1.24e-02 3.25e-03 0.039396 -0.013050 -0.05316 1.028 7.09e-04 0.01182
118 1.82e-03 1.98e-04 -0.000498 -0.001478 0.00208 1.035 1.09e-06 0.01397
119 4.22e-03 -5.44e-02 -0.312272 0.128968 -0.35302 1.001 3.08e-02 0.04009
120 -2.41e-03 -7.02e-03 -0.006771 0.009197 0.01530 1.037 5.88e-05 0.01607
121 9.33e-04 1.73e-03 -0.005990 -0.000649 -0.01174 1.028 3.46e-05 0.00705
122 8.18e-02 -9.35e-03 -0.011522 -0.066988 0.09185 1.022 2.11e-03 0.01347
123 9.50e-03 -1.69e-02 -0.021561 0.009092 0.03728 1.031 3.49e-04 0.01260
124 -5.74e-02 -7.51e-03 0.235677 -0.024053 0.26237 0.997 1.71e-02 0.02696
125 -1.02e-01 7.02e-02 0.134428 0.011323 -0.18024 1.026 8.12e-03 0.02788
126 -1.68e-02 -9.47e-02 -0.002248 0.033586 -0.10949 1.040 3.01e-03 0.02692
127 -1.36e-02 -6.77e-02 0.105225 -0.000936 0.14475 1.012 5.23e-03 0.01670
128 -7.77e-03 7.88e-02 -0.014248 0.003901 0.09226 1.032 2.13e-03 0.01942
129 1.30e-04 4.13e-03 -0.000137 0.003108 0.02172 1.024 1.19e-04 0.00533
130 2.85e-02 -7.23e-03 -0.020753 -0.025406 -0.05111 1.027 6.56e-04 0.01109
131 7.60e-02 -1.04e-02 0.038077 -0.082520 0.10634 1.021 2.83e-03 0.01509
132 2.16e-03 -7.39e-03 -0.004958 -0.000300 -0.01457 1.029 5.33e-05 0.00867
133 3.66e-04 -8.24e-03 0.016324 0.012010 0.09129 0.994 2.08e-03 0.00534
134 -3.25e-03 -1.09e-02 0.016951 -0.004657 -0.02464 1.034 1.53e-04 0.01348
135 -9.34e-03 2.25e-02 0.014838 -0.011282 -0.05087 1.021 6.49e-04 0.00741
136 -1.28e-02 1.47e-02 0.000722 0.012566 0.02598 1.033 1.70e-04 0.01319
137 7.80e-02 -4.58e-02 -0.010743 -0.055318 0.09254 1.029 2.15e-03 0.01796
138 -1.41e-01 3.37e-02 -0.031591 0.147462 -0.15770 1.127 6.24e-03 0.09871 *
139 1.08e-03 1.05e-02 -0.009229 0.002497 0.01687 1.035 7.15e-05 0.01379
140 9.24e-05 -1.78e-03 0.000106 -0.000654 -0.00517 1.027 6.72e-06 0.00583
141 5.27e-02 -4.72e-02 -0.031523 -0.040181 -0.09674 1.022 2.34e-03 0.01425
142 6.32e-03 6.36e-03 -0.000790 -0.005866 0.01322 1.029 4.39e-05 0.00850
143 -1.04e-02 -1.49e-02 0.002184 0.017705 0.03001 1.031 2.26e-04 0.01184
144 -1.11e-02 -2.57e-02 0.053137 -0.013211 -0.06695 1.035 1.13e-03 0.01896
145 -2.34e-02 5.89e-02 0.039273 -0.024562 -0.10848 1.005 2.94e-03 0.00959
146 7.79e-02 2.92e-02 0.084972 -0.145121 -0.17879 1.019 7.98e-03 0.02438
147 -1.08e-02 1.81e-02 0.025799 -0.010021 -0.04087 1.033 4.19e-04 0.01465
148 -4.14e-02 1.45e-01 0.078695 -0.008187 0.20400 0.990 1.03e-02 0.01745
149 -3.38e-02 -3.23e-02 -0.059904 0.055814 -0.11380 1.007 3.23e-03 0.01066
150 2.74e-03 1.27e-02 -0.030423 -0.009358 -0.09254 0.997 2.14e-03 0.00584
151 9.66e-02 -3.49e-02 -0.065682 -0.051438 0.11554 1.034 3.34e-03 0.02372
152 -1.37e-01 1.39e-01 -0.143011 0.152493 -0.26114 1.001 1.69e-02 0.02809
153 1.08e-02 -4.31e-02 -0.007982 0.010878 0.05827 1.028 8.52e-04 0.01247
154 -5.40e-03 -4.87e-02 0.056299 -0.000433 0.08047 1.040 1.63e-03 0.02411
155 1.01e-02 1.24e-01 0.131336 -0.124390 -0.23484 1.003 1.37e-02 0.02529
156 -1.24e-01 -2.18e-02 0.108623 0.057443 -0.19290 0.953 9.17e-03 0.00962
157 3.44e-03 -1.59e-02 -0.005729 -0.001072 -0.02745 1.028 1.89e-04 0.00863
158 1.16e-02 2.40e-02 -0.007368 -0.011078 0.03305 1.034 2.74e-04 0.01458
159 7.36e-02 1.03e-03 -0.124567 -0.008452 0.14107 1.039 4.98e-03 0.03035
160 -2.90e-02 1.84e-02 -0.021230 0.030998 -0.04581 1.039 5.27e-04 0.01999
161 -5.79e-02 1.07e-02 0.000795 0.041824 -0.09080 1.002 2.06e-03 0.00663
162 -7.26e-02 7.90e-02 0.035295 0.025457 -0.12046 1.015 3.63e-03 0.01466
163 -2.70e-04 5.65e-02 -0.020592 0.015578 0.11768 0.986 3.44e-03 0.00683
164 1.80e-01 2.90e-01 -0.400884 -0.117064 -0.54029 0.920 7.08e-02 0.03935 *
165 -4.30e-02 -1.06e-01 0.005805 0.088875 0.16433 1.000 6.73e-03 0.01530
166 1.83e-02 -1.00e-01 0.010106 0.023524 0.14783 0.984 5.43e-03 0.00955
167 -1.36e-01 3.87e-02 0.106300 0.055201 -0.20094 0.949 9.94e-03 0.00986
168 1.88e-02 3.73e-02 0.009157 -0.042344 -0.07011 1.026 1.23e-03 0.01301
169 -1.68e-01 -2.58e-01 0.257392 0.169684 0.46132 0.853 5.09e-02 0.02082 *
170 3.47e-02 3.93e-02 -0.037480 -0.020355 0.07260 1.026 1.32e-03 0.01342
171 -3.76e-02 -1.85e-02 0.029661 0.041013 0.07692 1.021 1.48e-03 0.01101
172 -8.76e-03 -4.09e-02 0.064870 -0.001562 0.08583 1.033 1.85e-03 0.01975
173 -8.34e-04 -1.09e-02 0.008443 -0.002527 -0.01764 1.032 7.81e-05 0.01182
174 3.10e-02 -6.87e-02 -0.063318 0.027601 0.11809 1.020 3.49e-03 0.01641
175 5.08e-02 -1.09e-01 0.016771 -0.044737 -0.13408 1.035 4.50e-03 0.02662
176 -7.34e-02 4.08e-02 -0.009538 0.051372 -0.11874 0.990 3.51e-03 0.00743
177 -4.63e-02 4.60e-02 -0.118434 0.114010 0.19277 0.987 9.22e-03 0.01514
178 3.09e-02 -1.26e-02 -0.007721 -0.034182 -0.05838 1.023 8.55e-04 0.00957
179 -5.65e-02 -2.12e-02 0.046994 0.050514 0.08517 1.044 1.82e-03 0.02723
180 3.27e-03 5.73e-03 -0.006343 -0.002787 -0.00979 1.052 2.41e-05 0.02966
181 4.33e-02 -6.01e-03 0.001171 -0.042352 0.04508 1.124 5.11e-04 0.09260 *
182 3.25e-02 4.86e-02 0.047904 -0.085889 -0.13351 1.004 4.45e-03 0.01248
183 8.87e-02 5.09e-02 -0.108397 -0.066751 -0.15256 1.054 5.83e-03 0.04232
184 -7.16e-03 -3.44e-02 -0.002086 0.015372 -0.03822 1.104 3.67e-04 0.07582 *
185 -1.54e-02 1.47e-02 0.011049 0.010396 0.02841 1.037 2.03e-04 0.01645
186 2.26e-02 1.58e-03 -0.012204 -0.012922 0.03390 1.025 2.89e-04 0.00750
187 1.53e-02 -2.77e-02 0.020912 -0.014033 0.04238 1.036 4.51e-04 0.01713
188 2.92e-03 7.08e-03 -0.012487 0.005095 0.02527 1.026 1.60e-04 0.00734
189 -2.79e-02 2.45e-02 0.099888 -0.007776 0.13080 1.012 4.27e-03 0.01464
190 -2.31e-03 1.19e-02 -0.000326 -0.002549 -0.01581 1.033 6.28e-05 0.01196
191 -7.29e-02 -2.61e-02 0.072042 0.033489 -0.11989 1.004 3.59e-03 0.01068
192 -3.98e-02 6.36e-02 -0.036081 0.031150 -0.09417 1.024 2.22e-03 0.01487
193 9.35e-03 -2.76e-03 -0.003433 -0.010068 -0.01742 1.030 7.62e-05 0.00958
194 -4.73e-03 4.22e-03 0.011991 -0.006051 -0.02565 1.026 1.65e-04 0.00695
195 1.11e-03 -1.62e-05 -0.000258 -0.001204 -0.00153 1.040 5.86e-07 0.01837
196 4.23e-04 -2.41e-02 0.008180 -0.005901 -0.04672 1.022 5.48e-04 0.00716
197 1.04e-01 8.38e-02 -0.127903 -0.047769 0.20005 0.979 9.92e-03 0.01422
198 2.02e-02 1.57e-02 0.025375 -0.028588 0.05704 1.023 8.16e-04 0.00930
199 -2.78e-03 1.06e-02 -0.009404 0.005674 0.01544 1.062 5.99e-05 0.03885 *
200 1.66e-01 -4.64e-02 0.142132 -0.259070 -0.31985 0.954 2.51e-02 0.02254
Um festzustellen, welche Punkte standardisierte Residuen (betragsmäßig) größer als 3 haben (also entweder größer als 3 oder kleiner als −3 sind), kann man folgenden Befehl verwenden:
which(abs(rstandard(model2)) > 3)
169
169
Nur ein Datenpunkt (nämlich der 169.) ist hier also auffällig.
Modellannahmen
Mulitkollinearität kann mit der VIF-Statistik beurteilt werden; in R kann man dazu die Funktion vif()
aus dem car
-Paket verwenden.
library(car)
vif(model2)
adverts airplay attract
1.014593 1.042504 1.038455
Der größte VIF-Wert sollte nicht größer als 10 sein. Der durchschnittliche VIF sollte nicht wesentlich größer als 1 sein, was man wie folgt überprüfen kann:
mean(vif(model2))
[1] 1.03185
Wenn man den plot()
-Befehl auf das Modell anwendet, werden vier diagnostische Plots erstellt.
par(mfrow=c(2, 2), cex=0.75)
plot(model2)
Im Plot links oben sind die vorhergesagten Werte gegen die Residuen aufgetragen. Hier kann man die Linearitätsannahme (die rote Linie sollte immer ungefähr gleich Null sein) sowie die Homoskedastizitätsannahme (die Streuung der Datenpunkte sollte sich entlang der x-Achse nicht ändern) überprüfen. Der Plot links unten ist ähnlich, nur ist hier statt den (absoluten) Residuen die Wurzel aus dem Betrag der standardisierten Residuen aufgetragen. Auch hier lässt sich beurteilen, ob die Annahme der Varianzhomogenität erfüllt ist oder nicht. Im Plot rechts oben lässt sich die Normalverteilungsannahme der Residuen mit einem QQ-Plot überprüfen. Im Plot rechts unten sind Punkte mit großem Einfluss dargestellt (gemessen an der Leverage); Cook’s Distanz ist ebenfalls im Plot ersichtlich.
Die Annahme über die Unabhängigkeit der Residuen kann mit dem Durbin-Watson-Test dwt()
überprüft werden.
dwt(model2)
lag Autocorrelation D-W Statistic p-value
1 0.0026951 1.949819 0.706
Alternative hypothesis: rho != 0
In diesem Beispiel kann man davon ausgehen, dass die Residuen unabhängig sind, da aufgrund von \(p\approx 0.7\) die Nullhypothese nicht verworfen werden kann.
Übungen
Übung 1
Laden Sie die Daten aus der Datei sales2.dat
wie in den Unterlagen gezeigt. Standardisieren Sie danach alle Variablen und berechnen Sie dann ein lineares Regressionsmodell. Vergleichen Sie die Regressionskoeffizienten mit den Ergebnissen der Funktion lm.beta()
, welche auf ein Modell mit nicht standardisierten Daten angewendet werden kann.
Übung 2
Laden Sie den Datensatz aggression.dat
, welcher (komplett erfundene) Daten über Aggressionen unter Kindern enthält. Es wurden 666 Kinder untersucht und folgende Variablen erhoben:
- Erziehungsstil (hoher Wert entspricht schlechtem Stil)
- Computerspielen (hoher Wert entspricht viel Computerspielen)
- Fernsehen (hoher Wert entspricht viel Fernsehen)
- Ernährung (hoher Wert entspricht gesunder Ernährung)
- Aggressionen der Geschwister (hoher Wert entspricht hoher Aggression)
Von früheren Studien weiß man, dass Erziehungsstil sowie Aggressionen der Geschwister signifikante Prädiktoren für das Aggressionslevel eines Kindes sind.
Stellen Sie zwei lineare Regressionsmodelle auf. Das erste soll nur die beiden Faktoren beinhalten, welche erwiesenermaßen einen Einfluss auf die Aggression haben. Das zweite Modell soll alle Faktoren beinhalten. Beantworten Sie anschließend folgende Punkte:
- Bestimmen Sie für beide Modelle das Bestimmtheitsmaß \(R^2\) und geben Sie die Tabelle der Regressionskoeffizienten aus.
- Interpretieren Sie für beide Modelle getrennt die einzelnen Koeffizienten hinsichtlich Relevanz (hier sind standardisierte Koeffizienten hilfreich) und Signifikanz.
- Vergleichen Sie beide Modelle miteinander. Ist das zweite Modell eine signifikante Verbesserung zum ersten?
Übung 3
Überprüfen Sie für das zweite Modell (mit allen Prädiktoren) aus der vorigen Übung folgende Voraussetzungen:
- Sind die unabhängigen Variablen kollinear (VIF)?
- Sind die Residuen unabhängig (Durbin-Watson-Test)?
- Sind die Residuen normalverteilt (QQ-Plot)?
- Sind die Abhängigkeiten linear und ist die Varianz homogen (Plot Residuen vs. vorhergesagte Werte)?
- Gibt es Datenpunkte mit großem Einfluss auf das Modell (Plot Residuen vs. Leverage)?
Hinweis: Sehen Sie sich die Hilfe zur Funktion plot.lm()
an (damit können Sie ein lineares Modell plotten und die Grafiken aus den letzten drei Fragen erstellen; mit dem Argument which
können Sie sich die gewünschte Grafik herauspicken).
Übung 4
Berechnen Sie für das zweite Modell aus dem vorigen Beispiel folgende diagnostische Statistiken für jeden Datenpunkt:
- Cook’s Distanz
- Residuen
- Standardisierte Residuen
- Studentisierte Residuen
- DFBeta
- DFFit
- Leverage
Finden Sie heraus, bei wie vielen Datenpunkten der Betrag der standardisierten Residuen größer als 3 ist (d.h. wie viele Datenpunkte haben standardisierte Residuen größer als 3 oder kleiner als −3). Wie viel Prozent der Daten haben standardisierte Residuen größer als 2 bzw. kleiner als −2?
Hinweise: Die Funktion nrow()
gibt die Anzahl der Zeilen eines Data Frames zurück. Die Funktion abs()
berechnet den Absolutbetrag einer Zahl.
Fußnoten
Manchmal werden die standardisierten Residuen auch als studentisierte Residuen bezeichnet, da die Standardabweichung der Population im Allgemeinen nicht bekannt ist und durch die Standardabweichung der Stichprobe geschätzt wird.↩︎