Transformer des variables

Introduction à la régression dans R

Richie Cotton

Data Evangelist at DataCamp

Ensemble de données sur les perches

library(dplyr)

perch <- fish %>%
  filter(species == "Perch")
species mass_g length_cm
Perche 5,9 7,5
Perche 32,0 12,5
Perche 40,0 13,8
Perche 51,5 15,0
Perche 70,0 15,7
... ... ...
Introduction à la régression dans R

Il ne s'agit pas d'une relation linéaire.

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

Diagramme en nuage de points représentant la masse des perches en fonction de leur longueur, avec une courbe de tendance. Les perches deviennent plus lourdes plus rapidement que de manière linéaire à mesure qu'elles s'allongent, ce qui entraîne une courbe ascendante.

Introduction à la régression dans R

Brème commune et perche

Quelques brèmes communes nageant. Les brèmes communes sont relativement plates.

Quelques perches nageant. Les perches sont de forme assez ronde.

Introduction à la régression dans R

Graphique de la masse en fonction de la longueur au cube

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

Diagramme en nuage de points représentant la masse des perches en fonction du cube de leur longueur, avec une courbe de tendance. Après cette transformation, les points sont pour la plupart proches de la courbe de tendance.

Introduction à la régression dans R

Modélisation de la masse par rapport à la longueur au cube

mdl_perch <- lm(mass_g ~ I(length_cm ^ 3), data = perch)
Call:
lm(formula = mass_g ~ I(length_cm^3), data = perch)

Coefficients:
   (Intercept)  I(length_cm^3)  
       -0.1175          0.0168
Introduction à la régression dans R

Prévision de la masse par rapport à la longueur au cube

explanatory_data <- tibble(
  length_cm = seq(10, 40, 5)
)
prediction_data <- explanatory_data %>%
  mutate(
    mass_g = predict(mdl_perch, explanatory_data)
  )
# A tibble: 7 x 2
  length_cm mass_g
      <dbl>  <dbl>
1        10   16.7
2        15   56.6
3        20  134. 
4        25  262. 
5        30  453. 
6        35  720. 
7        40 1075.
Introduction à la régression dans R

Graphique de la masse en fonction de la longueur au cube

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

Le diagramme en nuage de points représentant la masse des perches en fonction du cube de leur longueur, avec une courbe de tendance, annoté avec des points calculés à partir de la fonction predict(). Les points suivent parfaitement la courbe de tendance.

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

Le diagramme en nuage de points représentant la masse des perches en fonction de leur longueur, avec une courbe de tendance, annoté avec des points calculés à partir de la fonction predict(). Les points ne suivent pas la courbe de tendance, mais ils suivent la courbe des points de données.

Introduction à la régression dans R

Ensemble de données publicitaires Facebook

Comment fonctionne la publicité

  1. Payez Facebook pour afficher des publicités.
  2. Les personnes voient les publicités (« impressions »).
  3. Certaines personnes qui les voient cliquent dessus.

 

  • 936 lignes
  • Chaque ligne représente une annonce.
spent_usd n_impressions n_clicks
1,43 7 350 1
1,82 17 861 2
1,25 4259 1
1,29 4 133 1
4,77 15 615 3
... ... ...
Introduction à la régression dans R

Le graphique est trop serré.

ggplot(
  ad_conversion, 
  aes(spent_usd, n_impressions)
) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE)

Un diagramme en nuage de points représentant le nombre d'impressions par rapport aux dépenses publicitaires, avec une courbe de tendance. La plupart des points de données sont regroupés dans la partie inférieure gauche du diagramme.

Introduction à la régression dans R

Racine carrée par rapport à racine carrée

ggplot(
  ad_conversion, 
  aes(sqrt(spent_usd), sqrt(n_impressions))
) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE)

Diagramme en nuage de points représentant la racine carrée du nombre d'impressions par rapport à la racine carrée des dépenses publicitaires, avec une courbe de tendance. Les points sont désormais mieux répartis sur le diagramme.

Introduction à la régression dans R

Modélisation et prévision

mdl_ad <- lm(
  sqrt(n_impressions) ~ sqrt(spent_usd), 
  data = ad_conversion
)
explanatory_data <- tibble(
  spent_usd = seq(0, 600, 100)
)
prediction_data <- explanatory_data %>% 
  mutate(
    sqrt_n_impressions = predict(
      mdl_ad, explanatory_data
    ),
    n_impressions = sqrt_n_impressions ^ 2
  )
# A tibble: 7 x 3
  spent_usd sqrt_n_impressions n_impressions
      <dbl>              <dbl>         <dbl>
1         0               15.3          235.
2       100              598.        357289.
3       200              839.        703890.
4       300             1024.       1048771.
5       400             1180.       1392762.
6       500             1318.       1736184.
7       600             1442.       2079202.
Introduction à la régression dans R

Passons à la pratique !

Introduction à la régression dans R

Preparing Video For Download...