Deux variables explicatives numériques

Régression intermédiaire en R

Richie Cotton

Data Evangelist at DataCamp

Visualiser 3 variables numériques

  • Nuage de points 3D
  • Nuage de points 2D avec la réponse en couleur
Régression intermédiaire en R

Une autre colonne pour l'ensemble de données des poissons

species mass_g length_cm height_cm
Bream 1000 33.5 18.96
Bream 925 36.2 18.75
Roach 290 24.0 8.88
Roach 390 29.5 9.48
Perch 1100 39.0 12.80
Perch 1000 40.2 12.60
Pike 1250 52.0 10.69
Pike 1650 59.0 10.81
Régression intermédiaire en R

Nuage de points 3D

library(plot3D)

scatter3D(fish$length_cm, fish$height_cm, fish$mass_g)
library(plot3D)
library(magrittr)

fish %$%
  scatter3D(length_cm, height_cm, mass_g)
Régression intermédiaire en R

Nuage de points 3D

library(plot3D)
library(magrittr)

fish %$%
  scatter3D(length_cm, height_cm, mass_g)

Nuage de points 3D : longueur, hauteur et masse des poissons

Régression intermédiaire en R

Nuage 2D : couleur = réponse

ggplot(
  fish, 
  aes(length_cm, height_cm, color = mass_g)
) +
  geom_point()

Nuage de points 2D coloré par la masse

Régression intermédiaire en R

Palettes de couleurs Viridis

ggplot(
  fish, 
  aes(length_cm, height_cm, color = mass_g)
) +
  geom_point() +
  scale_color_viridis_c(option = "inferno")

Nuage 2D avec palette Viridis « inferno »

Régression intermédiaire en R

Modéliser avec 2 variables explicatives numériques

mdl_mass_vs_both <- lm(mass_g ~ length_cm + height_cm, data = fish)
Call:
lm(formula = mass_g ~ length_cm + height_cm, data = fish)

Coefficients:
(Intercept)    length_cm    height_cm  
    -622.16        28.97        26.34
Régression intermédiaire en R

Le déroulement de la prédiction

explanatory_data <- expand_grid(
  length_cm = seq(5, 60, 5),
  height_cm = seq(2, 20, 2)
)

prediction_data <- explanatory_data %>% 
  mutate(
    mass_g = predict(mdl_mass_vs_both, explanatory_data)
  )
Régression intermédiaire en R

Tracer les prédictions

ggplot(
  fish, 
  aes(length_cm, height_cm, color = mass_g)
) +
  geom_point() +
  scale_color_viridis_c(option = "inferno") +
  geom_point(
    data = prediction_data, shape = 15, size = 3
  )

Points de prédiction superposés

Régression intermédiaire en R

Inclure une interaction

mdl_mass_vs_both_inter <- lm(mass_g ~ length_cm * height_cm, data = fish)
Call:
lm(formula = mass_g ~ length_cm * height_cm, data = fish)

Coefficients:
        (Intercept)            length_cm            height_cm  length_cm:height_cm  
           159.1144               0.3001             -78.1234               3.5455
Régression intermédiaire en R

Le déroulement de la prédiction (bis)

explanatory_data <- expand_grid(
  length_cm = seq(5, 60, 5),
  height_cm = seq(2, 20, 2)
)

prediction_data <- explanatory_data %>% 
  mutate(
    mass_g = predict(mdl_mass_vs_both_inter, explanatory_data)
  )
Régression intermédiaire en R

Tracer les prédictions

ggplot(
  fish, 
  aes(length_cm, height_cm, color = mass_g)
) +
  geom_point() +
  scale_color_viridis_c(option = "inferno") +
  geom_point(
    data = prediction_data, shape = 15, size = 3
  )

Prédictions avec interaction

Régression intermédiaire en R

Passons à la pratique !

Régression intermédiaire en R

Preparing Video For Download...