Vorhersagen

Einführung in Regression mit R

Richie Cotton

Data Evangelist at DataCamp

Der Fisch-Datensatz: Brassen

bream <- fish %>% 
  filter(species == "Bream")
Art length_cm mass_g
Brassen 23,2 242
Brassen 24,0 290
Brassen 23,9 340
Brassen 26,3 363
Brassen 26,5 430
... ... ...
Einführung in Regression mit R

Masse und Länge visualisieren

ggplot(bream, aes(length_cm, mass_g)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE)

Ein Streudiagramm der Masse von Brassen im Vergleich zu ihrer Länge, mit einer linearen Trendlinie. Die Punkte liegen alle ziemlich nah an der Trendlinie.

Einführung in Regression mit R

Das Modell ausführen

mdl_mass_vs_length <- lm(mass_g ~ length_cm, data = bream)
Call:
lm(formula = mass_g ~ length_cm, data = bream)

Coefficients:
(Intercept)    length_cm  
   -1035.35        54.55 
Einführung in Regression mit R

Erklärende Werte zur Vorhersage

Wenn ich die erklärenden Variablen auf diese Werte setze,
welchen Wert hätte dann die Antwortvariable?

library(dplyr)
explanatory_data <- tibble(length_cm = 20:40)
Einführung in Regression mit R

predict() aufrufen

library(tibble)
explanatory_data <- tibble(length_cm = 20:40)
predict(mdl_mass_vs_length, explanatory_data)
         1          2          3          4          5          6 
  55.65205  110.20203  164.75202  219.30200  273.85198  328.40196 
         7          8          9         10         11         12 
 382.95194  437.50192  492.05190  546.60188  601.15186  655.70184 
        13         14         15         16         17         18 
 710.25182  764.80181  819.35179  873.90177  928.45175  983.00173 
        19         20         21 
1037.55171 1092.10169 1146.65167 
Einführung in Regression mit R

Vorhersagen innerhalb eines Data Frame

library(dplyr)
explanatory_data <- tibble(length_cm = 20:40)
prediction_data <- explanatory_data %>% 
  mutate(
    mass_g = predict(
      mdl_mass_vs_length, explanatory_data
    )
  )
# A tibble: 21 x 2
   length_cm mass_g
       <int>  <dbl>
 1        20   55.7
 2        21  110. 
 3        22  165. 
 4        23  219. 
 5        24  274. 
 6        25  328. 
 7        26  383. 
 8        27  438. 
 9        28  492. 
10        29  547. 
# ... with 11 more rows
Einführung in Regression mit R

Prognosen visualisieren

ggplot(bream, aes(length_cm, mass_g)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE) +
  geom_point(
    data = prediction_data, 
    color = "blue"
  )

Das Streudiagramm der Brassenmassen im Verhältnis zu ihrer Länge mit einer linearen Trendlinie. Das Diagramm wurde mit den mit predict() berechneten Punkten versehen. Diese Punkte folgen alle genau der Trendlinie.

Einführung in Regression mit R

Extrapolieren

Extrapolieren heißt, Vorhersagen zu erstellen, die über die beobachteten Daten hinausgehen.

explanatory_little_bream <- tibble(length_cm = 10)
explanatory_little_bream %>% 
  mutate(
    mass_g = predict(
      mdl_mass_vs_length, explanatory_little_bream
    )
  )
# A tibble: 1 x 2
  length_cm mass_g
      <dbl>  <dbl>
1        10  -490.

scatter-bream-mass-vs-length-extrapolate.png

Einführung in Regression mit R

Lass uns üben!

Einführung in Regression mit R

Preparing Video For Download...