Fonctionnement de la régression linéaire

Régression intermédiaire en R

Richie Cotton

Data Evangelist at DataCamp

Graphique standard d'une régression linéaire simple

Nuage de points avec une droite de tendance de régression linéaire.

Régression intermédiaire en R

Visualiser les résidus

Nuage de points avec la droite de tendance et des segments reliant les points à la droite, représentant les résidus.

Régression intermédiaire en R

Une mesure pour le meilleur ajustement

L'idée la plus simple (qui ne fonctionne pas)

  • Additionner tous les résidus.
  • Certains résidus sont négatifs.

L'idée simple suivante (qui fonctionne)

  • Mettre chaque résidu au carré et additionner ces carrés.
  • C'est la somme des carrés.
Régression intermédiaire en R

Parenthèse sur l'optimisation numérique

Graphique d'une équation quadratique

xy_data <- tibble(
  x = seq(-4, 5, 0.1),
  y = x ^ 2 - x + 10
)

ggplot(xy_data, aes(x, y)) + 
  geom_line()

line-quad.png

Régression intermédiaire en R

Résoudre l'équation par le calcul différentiel

$y = x ^ 2 - x + 10$

$\frac{\partial y}{\partial x} = 2 x - 1$

$0 = 2 x - 1$

$x = 0.5$

$y = 0.5 ^ 2 - 0.5 + 10 = 9.75$

  • On ne peut pas résoudre toutes les équations ainsi.
  • Vous pouvez laisser R le faire.

line-quad-soln.png

Régression intermédiaire en R

optim()

calc_quadratic <- function(x) {
  x ^ 2 - x + 10
}
optim(par = 3, fn = calc_quadratic)
$par
[1] 0.4998047

$value
[1] 9.75

$counts
function gradient 
      30       NA 

$convergence
[1] 0

$message
NULL
Régression intermédiaire en R

Légers raffinements

calc_quadratic <- function(coeffs) {
  x <- coeffs[1]
  x ^ 2 - x + 10
}
optim(par = c(x = 3), fn = calc_quadratic)
$par
        x 
0.4998047 

$value
[1] 9.75

$counts
function gradient 
      30       NA 

$convergence
[1] 0

$message
NULL
Régression intermédiaire en R

Algorithme de régression linéaire

  1. Définir une fonction qui calcule la mesure « somme des carrés ».
  2. Appeler optim() pour trouver les coefficients qui minimisent cette fonction.
calc_sum_of_squares <- function(coeffs) {

intercept <- coeffs[1] slope <- coeffs[2]
# Plus de calculs !
}
optim(
  par = ???,
  fn = ???
)
Régression intermédiaire en R

Passons à la pratique !

Régression intermédiaire en R

Preparing Video For Download...