89  mtcars-regr01

lm
mtcars
association
regression
string
Veröffentlichungsdatum

8. Mai 2023

Schlüsselwörter

Aufgaben, Statistik, Prognose, Modellierung, R, Datenanalyse, Regression

89.1 Aufgabe

data("mtcars")

Betrachten Sie folgendes Modell (Datensatz mtcars):

mpg ~ disp

Anders gesagt: Wie gut kann man den Spritverbrauch vorhersagen auf Basis des Hubraums eines Autos?

  1. Berechnen Sie die Modellkoeffizienten! Tipp: lm()
  2. Berechnen Sie im Anschluss die Vorhersagen dieses Modells. Tipp: predict() mit mutate()
  3. Visualisieren Sie dann das Modell Tipp: ggplot() und geom_smooth() oder mittels einer anderer Methode.
  4. Berechnen Sie die Residuen: e = echtem Y-Wert und vorhergesagtem Y-Wert. Tipp: mutate().
  5. Berechnen Sie die Korrelation zwischen Spritverbrauch und Hubraum! Tipp: summarise() mitcor()`.

89.2 Lösung

89.3 Vorbereitung

89.4 Ad 1

lm1 <- lm(mpg ~ disp, data = mtcars)
lm1
## 
## Call:
## lm(formula = mpg ~ disp, data = mtcars)
## 
## Coefficients:
## (Intercept)         disp  
##    29.59985     -0.04122

89.5 Ad 2

Nicht einfach nur predicten:

predict(lm1)
##           Mazda RX4       Mazda RX4 Wag          Datsun 710      Hornet 4 Drive 
##            23.00544            23.00544            25.14862            18.96635 
##   Hornet Sportabout             Valiant          Duster 360           Merc 240D 
##            14.76241            20.32645            14.76241            23.55360 
##            Merc 230            Merc 280           Merc 280C          Merc 450SE 
##            23.79677            22.69220            22.69220            18.23272 
##          Merc 450SL         Merc 450SLC  Cadillac Fleetwood Lincoln Continental 
##            18.23272            18.23272            10.14632            10.64090 
##   Chrysler Imperial            Fiat 128         Honda Civic      Toyota Corolla 
##            11.46520            26.35622            26.47987            26.66946 
##       Toyota Corona    Dodge Challenger         AMC Javelin          Camaro Z28 
##            24.64992            16.49345            17.07046            15.17456 
##    Pontiac Firebird           Fiat X1-9       Porsche 914-2        Lotus Europa 
##            13.11381            26.34386            24.64168            25.68030 
##      Ford Pantera L        Ferrari Dino       Maserati Bora          Volvo 142E 
##            15.13335            23.62366            17.19410            24.61283

Sondern die Predictions als neue Spalte in mtcars anlegen. Viel sauberer!

mtcars2  <- 
  mtcars %>% 
  mutate(preds_lm1 = predict(lm1))

89.6 Ad 3

ggplot(mtcars2) +
  aes(y = mpg, x = disp) +
  geom_point() +
  geom_smooth(method = "lm")

Andere Visualisierung:

mtcars2 %>% 
  ggplot(aes(x = disp, y = preds_lm1)) +
  geom_point(size = 2, alpha = .8, color = "pink") +
  geom_line() +
  labs(y = "Vorhergesagte MPG-Werte",
       title = "Vorhersage-Modell lm1")

Oder so:

library(easystats)
estimate_expectation(lm1, by = "disp") %>% plot()

89.7 Ad 4

mtcars2 <- 
  mtcars2 %>% 
  mutate(e = abs(mpg - preds_lm1))  # abs steht für "Absolutwert"

Der “Absolutwert” kickt das Vorzeichen weg. Das machen wir, wenn wir meinen, dass das Vorzeichen egal ist.

89.8 Bonus-Aufgabe

Berechnen Sie den mittleren Fehler über alle e!

mtcars2 %>% 
  summarise(e_avg = mean(e))

89.9 Ad 5

mtcars %>% 
  summarise(cor_mpg_disp = cor(mpg, disp))

Categories:

  • lm
  • mtcars
  • correlation
  • regression
  • string