Faire des prévisions

Introduction à la régression dans R

Richie Cotton

Data Evangelist at DataCamp

Ensemble de données sur les poissons : brème commune

bream <- fish %>% 
  filter(species == "Bream")
species length_cm mass_g
Brème commune 23,2 24,2
Brème commune 24,0 290
Brème commune 23,9 340
Brème commune 26,3 363
Brème commune 26,5 430
... ... ...
Introduction à la régression dans R

Graphique de la masse en fonction de la longueur

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

Diagramme en nuage de points représentant la masse des brèmes communes en fonction de leur longueur, avec une courbe de tendance linéaire. Tous les points se trouvent à proximité de la courbe de tendance.

Introduction à la régression dans R

Exécution du modèle

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 
Introduction à la régression dans R

Données sur les valeurs explicatives permettant la prévision

Si je définis les variables explicatives sur ces valeurs,
quelle valeur aurait la variable de réponse ?

library(dplyr)
explanatory_data <- tibble(length_cm = 20:40)
Introduction à la régression dans R

Appeler predict()

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 
Introduction à la régression dans R

Prévision à l'intérieur d'un 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
Introduction à la régression dans R

Affichage des prévisions

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

Le nuage de points représentant le rapport entre le poids et la longueur des brèmes communes, avec une courbe de tendance linéaire. Le graphique a été annoté avec les points calculés à l'aide de la fonction predict(). Ces points suivent tous exactement la courbe de tendance.

Introduction à la régression dans R

Extrapolation

Extrapoler signifie faire des prédictions en dehors de la plage des données observées.

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

Introduction à la régression dans R

Passons à la pratique !

Introduction à la régression dans R

Preparing Video For Download...