Statistik

R-Kurs · Kapitel 8 · Lineare Regression in R

Lineare Regression in R

Die Gerade schätzen

lm(y ~ x) bestimmt die Kleinste-Quadrate-Gerade. coef gibt Achsenabschnitt b0b_0 und Steigung b1b_1, summary(...)$r.squared das Bestimmtheitsmaß.

R
duenger <- c(9, 18, 27, 36, 45, 54, 63, 72)
ertrag  <- c(10, 15, 30, 35, 25, 30, 50, 45)
modell <- lm(ertrag ~ duenger)
coef(modell)                 # b0, b1
summary(modell)$r.squared    # R^2
plot(duenger, ertrag); abline(modell)  # Streudiagramm + Gerade
Ausgabe
(Intercept)     duenger
8.0357143   0.5423280
[1] 0.7697

Vorhersagen

Mit predict sagt man Werte für neue x vorher (Data-Frame mit gleichem Spaltennamen):

R
predict(modell, newdata = data.frame(duenger = 50))
Ausgabe
       1
35.15211
Mini-Aufgabe

Schätze für x <- 1:5 und y <- c(2.1, 3.9, 6.1, 8.0, 9.9) die Regressionsgerade und lies b0b_0 und b1b_1 ab.

💡 Tipp

lm(y ~ x); coef() liefert Achsenabschnitt und Steigung.

Lösung zeigen
R
x <- c(1, 2, 3, 4, 5)
y <- c(2.1, 3.9, 6.1, 8.0, 9.9)
m <- lm(y ~ x)
coef(m)
Ausgabe
(Intercept)           x
     0.09        1.97

Residuenanalyse

Die Residuen e^i=yiy^i\hat e_i = y_i - \hat y_i prüfen die Modellgüte. Ein Residuenplot ohne Muster (zufällig um 0) spricht für ein passendes Modell.

RStruktur (Trichter, Bogen) im Residuenplot deutet auf Modellverletzungen.
resid(modell)     # Residuen
fitted(modell)    # vorhergesagte Werte
plot(fitted(modell), resid(modell))
abline(h = 0, lty = 2)   # Null-Linie

Merke: lm(y ~ x) modelliert y in Abhängigkeit von x. Reihenfolge nicht vertauschen — die Regression von x auf y liefert eine andere Gerade.

Abruf-Quiz

Frage 1 / 2

Wie schätzt man in R eine lineare Regression von y auf x?