GNU R: Regression
Einleitung
BearbeitenMit Regressionen wird versucht eine abhängige, metrische Variable in Abhängigkeit von einer oder mehreren unabhängigen Variablen zu beschreiben. Die abhängige Variable soll dadurch üblicherweise kausal auf die Effekte andere Variablen zurückgeführt werden.(Bspw. Regression der persönlichen Laune abhängig vom Wetter) Es gibt zum Teil recht unterschiedliche Regressionsverfahren und R stellt eine Vielzahl an Methoden bereit. Die einfachste Variante eines Regressionsmodells ist die lineare Regression.
Lineare Regression
BearbeitenEin erstes Beispiel: Lebensalter und Gewicht
BearbeitenAls erstes Beispiel verwenden wir den Datensatz aus Beispiel 5, welcher das Gewicht eines Babys an verschiedenen Lebenstagen enthält. Es werden die Befehle plot()
, abline
, lm
, install.packages
, library
, xyplot
, geom_point
, geom_line
und geom_smooth
verwendet.
Zunächst stellen wir die Daten mit plot()
graphisch dar:
plot(bsp5, type="o", main="Gewicht des Babys", ylab="Gewicht in Gramm", xlab="Lebenstag", col="blue", lwd=2)
Nun fügen wir die Regressionsgeraden hinzu, indem wir die Funktion lm(Y~X)
mit dem Befehl abline()
in die Graphik integrieren.
Y
ist in diesem Falle die Spalte des Gewichts (also hier:bsp5[,2]
)X
ist in diesem Falle die Spalte der Lebenstage (also hier:bsp5[,1]
)
Der Befehl lautet demzufolge:
abline(lm(bsp5[,2]~bsp5[,1]))
Alternative mit xyplot
BearbeitenUm eine Regressionsgerade durch eine Punktwolke zu ziehen, kann auch der Befehl xyplot
aus dem Zusatzpaket lattice
verwendet werden.
Falls lattice
noch nicht installiert ist, muss dies natürlich nun nachgeholt werden:
install.packages("lattice", dependencies = T)
Anschließend aktivieren wir das lattice
-Paket:
library(lattice)
Eine Regressionsgerade erhält man durch:
xyplot(y~x, type=c("p","r"))
Angewendet auf Beispiel 5 lautet der Befehl:
xyplot(bsp5[,2]~bsp5[,1], type=c("p","r"))
Wir erhalten nun eine Punktwolke (type="p"
) der Daten, durch welche die Regressionsgerade (type="r"
) verläuft.
Alternative mit ggplot
BearbeitenFür ggplot()
muß die Bibliothek ggplot2
geladen werden
library("ggplot2")
Mit den Daten von Beispiel 5 wird ein ggplot()
-Objekt erstellt:
g <- ggplot(bsp5, aes(x = Lebenstag, y = Gewicht)) +
geom_point(colour="blue", size = 2.5) + # Daten als Punkte
geom_line(colour="blue", size = 0.8) # Linie, die die Punkte verbindet
Schließlich wird die Regressionsgerade hinzugefügt. Das ebenfalls mögliche Konfidenzintervall um die Gerade wird ausgeblendet.
# Regressionsgerade, ohne Konfidenzintervall (level=0)
g + geom_smooth(method = "lm", colour = "black", level = 0)
Lineare Modelle mit R
BearbeitenBei linearer Modellierung wird angenommen, dass die Effekte verschiedener unabhängiger Variablen folgendermassen addiert werden können:
In können zur Berechnung linearer Modelle zum Beispiel die Funktionen lm (für "linear model") oder glm (für "generalized linear model") genutzt werden. Diese verwenden für den obigen Ausdruck die folgende Formelnotation:
Y ~ Variable_X1 + Variable_X2 + …
Die Funktion lm berechnet eine Reihe von Statistiken für dieses Modell, die allerdings in der für diese Funktion voreingestellten Ausgabemethode print.lm
unterdrückt werden. Ausgegeben werden standardmäßig nur die Aufrufbedingungen ("Call:") und die Koeffizienten:
R> lm(bsp5$Gewicht~bsp5$Lebenstag)
Call: lm(formula = bsp5$Gewicht ~ bsp5$Lebenstag)
Coefficients: (Intercept) bsp5$Lebenstag 2971.1 37.5
Eine sehr viel detailliertere Auswertung bekommt man zum Beispiel durch Verwendung der Funktion summary:
R> summary ( lm (bsp5$Gewicht ~ bsp5$Lebenstag) )
Call: lm(formula = bsp5$Gewicht ~ bsp5$Lebenstag)
Residuals:
Min 1Q Median 3Q Max
-167.0 -90.3 20.4 79.7 171.4
Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 2971.13 43.69 68.0 < 2e-16 *** bsp5$Lebenstag 37.48 1.19 31.5 2.1e-14 ***
--- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 104 on 14 degrees of freedom Multiple R-Squared: 0.986, Adjusted R-squared: 0.985 F-statistic: 991 on 1 and 14 DF, p-value: 2.15e-14
Residuals
- Hier sind die Quartile der Residuen angegeben.
Coefficients
- In der ersten Spalte werden die Konstante (
Intercept
) und die Regressionskoeffizienten des Modells ausgegeben. (Vorsicht beim Vergleich: Dabei handelt es sich nicht um Beta-Werte)
In den folgenden Spalte werden (für die Beispieldaten selbstverständlich sinnlose) inferenzstatistische Masse (Masse für die Verallgemeinerbarkeit der Stichprobe auf die Grundgesamtheit) angezeigt:
- Für jeden der Koeffizienten wird neben der Berechnung Standardfehler (
Std. Error
) ein t-Test mit der Null-Hypothese durchgeführt, für den der entsprechende t-Wert und die SignifikanzPr(>|t|)
angegeben wird.
Größen, die das Gesamtmodell betreffen
:
- Der Standardfehler der Gesamtschätzung (
Residual standard error
). - Das Bestimmtheitsmass (
Multiple R-Square
) und das um die Anzahl der Modellvariablen Korrigierte Bestimmtheitsmass (Adjusted R-squared
) geben an wieviel Prozent der Varianz der Residuen von den realen Werten durch das Modell erklärt wird (in welchem Umfang also die Schätzung von von den realen Werten abweicht). Bei einem Wert von 1 liegen alle Punkte auf der Gerade bzw. Fläche. Je näher an 0 sich der Wert annähert, umso mehr streuen die Messwerte um den angenommenen Verlauf. - Die Ergebnisse des F-Test in der letzten Zeile prüfen die Verallgemeinerbarkeit des Gesamtmodells (F-Wert, Freiheitsgrade und Signifikanz).
InhaltsverzeichnisBearbeiten
|