Introduction de la standardisation des variables explicatives et du centrage de la cible dans le contexte de la régression Ridge.

This commit is contained in:
Pierre-Edouard Portier 2021-11-30 18:40:04 +01:00
parent 5e269edbef
commit 8d94107206
2 changed files with 24 additions and 4 deletions

View File

@ -2,9 +2,14 @@
# un polynôme de degré fixé et avec l'ajout d'un facteur de régularisation en
# norme L2 dont l'importance est contrôlée par l'hyperparamètre alpha.
ridge <- function(alpha, data, degre) {
xs <- c(data$X)
A <- outer(xs, 0:degre, "^")
A <- scale(outer(c(data$X), 1:degre, "^"))
Y <- data$Y
Ym <- mean(Y)
Y <- Y - Ym
gram <- t(A) %*% A
diag(gram) <- diag(gram) + alpha
solve(gram, as.vector(t(A) %*% data$Y))
coef <- solve(gram, as.vector(t(A) %*% Y))
coef <- coef / attr(A,"scaled:scale")
inter <- Ym - coef %*% attr(A,"scaled:center")
coef <- c(inter, coef)
}

View File

@ -51,7 +51,22 @@ En pratique, il s'agit donc d'ajouter une petite valeur positive $\lambda$ aux
# Standardisation
Remarquons que l'effet de la régression Ridge est de contraindre les coefficients de la régression linéaire en les contractant vers 0. Comme cette contraction se fait en fonction des carrés des valeurs des coefficients, il est important que les différentes variables soient sur une même échelle, sans quoi l'importance de l'influence d'une variable sur la régularisation dépendrait de son échelle.
La régression Ridge contraint les coefficients de la régression linéaire en les contractant vers 0. L'importance de la contraction est proportionnelle au carré des valeurs des coefficients. Ainsi, il est important que les domaines des différentes variables partage une même échelle. Sinon, l'intensité de l'influence d'une variable sur la régularisation dépendrait de son échelle.
Avant d'inférer les valeurs des paramètres du modèle linéaire, nous standardisons les variables pour qu'elles soient toutes sur une échelle comparable. Chaque variable $\mathbf{x_j}$ est centrée par soustraction de sa moyenne $\bar{x_j}$ puis standardisée par division par son écart type $\sigma_j$. Notons $\mathbf{z_j}$ la version standardisée de la variable $\mathbf{x_j}$.
$$
z_{ij} = \frac{x_{ij}-\bar{x_j}}{\sigma_j}
$$
Nous pouvons également centrer ou standardiser la cible. Supposons que nous choisissions de seulement centrer la cible. Nous exprimons la relation entre les paramètres inférés sur les variables standardisées et leurs valeurs sur l'échelle des variables non transformées.
\begin{align*}
& \mathbf{\hat{y_i}} - \mathbf{\bar{y}} = \sum_{j=1}^{p} \hat{\beta_j} \left( \frac{x_{ij}-\bar{x_j}}{\sigma_j} \right) \\
= \{& \text{arithmétique} \} \\
& \mathbf{\hat{y_i}} = \left( \mathbf{\bar{y}} - \sum_{j=1}^{p} \hat{\beta_j} \frac{\bar{x_j}}{\sigma_j} \right) +
\sum_{j=1}^{p} \frac{\hat{\beta_j}}{\sigma_j} x_{ij} \\
\end{align*}
Pour passer du modèle inféré sur les variables standardisées et la cible normalisée aux valeurs des paramètres sur les domaines originaux des variables, il faut donc ajouter une ordonnée à l'origine ("intercept") $\beta_0 = \mathbf{\bar{y}} - \sum_{j=1}^{p} \hat{\beta_j} \frac{\bar{x_j}}{\sigma_j}$ et remettre à l'échelle chaque paramètre $\beta_j$ en le multipliant par le facteur $\frac{1}{\sigma_j}$.
# Visulation de l'effet sur les paramètres de différents niveaux de régularisation