data("marketing", package = "datarium")
model <- lm(sales ~ youtube, data = marketing)
model
Call:
lm(formula = sales ~ youtube, data = marketing)
Coefficients:
(Intercept) youtube
8.43911 0.04754
Une fois le modèle ajusté, vérifiez-le. Lisez les quatre graphiques de diagnostic, testez la linéarité, la normalité et l’homoscédasticité, et repérez les valeurs aberrantes et les points influents — avec la solution lorsqu’une hypothèse n’est pas respectée
Vérifiez les hypothèses d’une régression linéaire avec R : linéarité, normalité des résidus, homogénéité de la variance (homoscédasticité) et observations influentes. Lisez les quatre graphiques de diagnostic de base R (résidus vs valeurs ajustées, Q-Q normal, échelle-localisation, résidus vs effet de levier), détectez les valeurs aberrantes, les points à fort effet de levier et les points influents avec la distance de Cook — et la solution pour chaque violation. Exécutez le tout en direct.
23 juin 2026
8 juillet 2026
plot(model) — vérifient tout cela : Residuals vs Fitted (linéarité), Normal Q-Q (normalité), Scale-Location (homoscédasticité), Residuals vs Leverage (influence).Ajuster une régression linéaire n’est que la moitié du travail — un modèle peut renvoyer une pente, un R² et une p-value tout en violant discrètement les hypothèses sur lesquelles reposent ces nombres. Les diagnostics de régression vérifient si le modèle s’ajuste réellement aux données, pour que vous puissiez faire confiance au résultat (ou le corriger).
La régression linéaire suppose quatre choses. Cette leçon montre comment vérifier chacune avec les graphiques de diagnostic intégrés de R, comment les lire, et — la partie pratique — quoi faire lorsqu’une hypothèse n’est pas respectée.
Nous utilisons le jeu de données marketing de datarium et ajustons un modèle simple prédisant sales à partir du budget publicitaire youtube :
Call:
lm(formula = sales ~ youtube, data = marketing)
Coefficients:
(Intercept) youtube
8.43911 0.04754
La droite ajustée est sales = 8.44 + 0.0475 × youtube. Vérifions maintenant si ce modèle est solide.
Deux concepts sous-tendent chaque diagnostic. La valeur ajustée (prédite) est ce que le modèle attend pour un prédicteur donné ; le résidu est l’écart entre la valeur observée et cette valeur ajustée :
data("marketing", package = "datarium")
model <- lm(sales ~ youtube, data = marketing)
marketing$fitted <- fitted(model)
plot(marketing$youtube, marketing$sales, pch = 19, col = "grey40",
xlab = "YouTube budget (k$)", ylab = "Sales")
abline(model, col = "#3a86d4", lwd = 2)
segments(marketing$youtube, marketing$sales,
marketing$youtube, marketing$fitted, col = "red")
Chaque segment rouge est une erreur résiduelle. Les diagnostics qui suivent examinent tous la distribution de ces résidus — si le modèle est correct, les résidus devraient être sans motif, uniformément répartis et à peu près normaux. Vous pouvez les extraire directement en base R :
data("marketing", package = "datarium")
model <- lm(sales ~ youtube, data = marketing)
diag <- data.frame(
fitted = fitted(model), # predicted sales
resid = residuals(model), # observed - fitted
std_resid = rstandard(model), # standardized residual (outlier check)
hat = hatvalues(model), # leverage (extreme predictor check)
cooksd = cooks.distance(model) # influence (Cook's distance)
)
head(diag, 4) fitted resid std_resid hat cooksd
1 21.564929 4.955071 1.2733486 0.009703067 0.007943433
2 10.977569 1.502431 0.3865746 0.012168549 0.000920434
3 9.420269 1.739731 0.4486150 0.016493630 0.001687550
4 17.081273 5.118727 1.3123012 0.005013546 0.004338753
plot(model) produit les quatre graphiques de diagnostic standard en une fois — le moyen le plus rapide d’examiner un modèle :

Lisez-les comme quatre vérifications :
Chaque graphique étiquette les 3 observations les plus extrêmes par numéro de ligne (ici #26, #36, #179) — à examiner, mais pas automatiquement un problème. Les sections suivantes traitent chaque hypothèse à tour de rôle.
Examinez le graphique Residuals vs Fitted (graphique 1). Idéalement, la ligne rouge est approximativement horizontale à zéro — un motif signale que le modèle en ligne droite est inadapté :

Verdict ici : aucun motif marqué — l’hypothèse de linéarité est raisonnable. Si elle échouait (une courbe nette), la solution est une transformation non linéaire du prédicteur — log(x), sqrt(x), ou un terme polynomial poly(x, 2) — puis réexaminez ce graphique.
Examinez le graphique Scale-Location (graphique 3). Une ligne horizontale avec des points uniformément répartis signifie une variance constante ; une tendance ascendante signifie que la dispersion croît avec la valeur ajustée — l’hétéroscédasticité :

Verdict ici : la ligne tend vers le haut — la variance résiduelle augmente avec les ventes prédites, donc ce modèle a un problème d’hétéroscédasticité. La solution est une transformation logarithmique ou racine carrée de la réponse :

Après avoir modélisé log(sales), la ligne échelle-localisation est bien plus plate — la variance est stabilisée.
Examinez le graphique Normal Q-Q (graphique 2). Si les résidus sont normaux, les points s’alignent sur la ligne de référence pointillée :

Verdict ici : les points suivent la ligne de près — la normalité est une hypothèse sûre. Avec un grand échantillon, les F-test et t-test sont de toute façon robustes aux écarts légers ; ne vous inquiétez que d’une forte courbure ou de queues lourdes. Si elle échouait, une transformation de la réponse aide souvent (et corrige fréquemment l’hétéroscédasticité par la même occasion).
Deux types différents d’observation extrême, lus sur le graphique Residuals vs Leverage (graphique 5) :
p = nombre de prédicteurs, n = observations).
Verdict ici : les trois points étiquetés (#26, #36, #179) ont des résidus standardisés compris entre −2 et −3 — extrêmes mais aucun au-delà de ±3, donc aucune véritable valeur aberrante. Et chaque valeur du chapeau est inférieure à 2(p + 1)/n = 4/200 = 0.02, donc il n’y a pas non plus de point à fort effet de levier.
Un point influent est un point dont l’inclusion ou l’exclusion modifierait le résultat de la régression. Il combine effet de levier et taille du résidu, mesuré par la distance de Cook — signalé lorsqu’il dépasse 4/(n − p − 1). Tracez la distance de Cook et Residuals vs Leverage côte à côte :

Inspectez directement les lignes à plus forte distance de Cook en base R :
youtube facebook newspaper sales
36 348.84 4.92 10.20 15.36
179 332.04 2.76 28.44 14.16
26 315.48 4.20 23.40 14.40
Verdict ici : aucun point influent. Les lignes de contour de la distance de Cook n’apparaissent même pas sur le graphique Residuals-vs-Leverage parce que chaque point se situe confortablement à l’intérieur — exclure une seule observation déplacerait à peine l’ajustement.
Pour voir le contraste, ajoutez deux points extrêmes et réajustez — maintenant les diagnostics s’allument :

Les observations #201 et #202 se situent bien au-delà des lignes de la distance de Cook — elles sont influentes. Les exclure déplace la pente (ici de ~0.065 vers ~0.048). Lorsqu’un point a à la fois une forte distance de Cook et se trouve au bord du graphique d’effet de levier, décidez délibérément : est-ce une erreur de saisie (à corriger ou supprimer) ou une observation réelle et importante (à conserver, en rapportant la sensibilité) ?
| Hypothèse | Graphique | Bon signe | Solution si violée |
|---|---|---|---|
| Linéarité | Residuals vs Fitted | ligne rouge plate | transformer le prédicteur : log(x), poly(x, 2) |
| Normalité | Normal Q-Q | points sur la ligne | transformer la réponse ; un grand n est robuste |
| Homoscédasticité | Scale-Location | plate, dispersion uniforme | transformer la réponse : log(y), sqrt(y) |
| Aucune influence | Residuals vs Leverage + Cook | à l’intérieur des contours | examiner / exclure le point |
Le résidu standardisé est \(r_i = \dfrac{e_i}{s\sqrt{1 - h_i}}\), où \(e_i\) est le résidu brut, \(s\) l’erreur standard résiduelle, et \(h_i\) l’effet de levier (valeur du chapeau). L’effet de levier \(h_i\) est le \(i\)-ème élément diagonal de la matrice chapeau \(H = X(X^\top X)^{-1}X^\top\), avec \(\sum_i h_i = p + 1\) — d’où la règle 2(p+1)/n (deux fois la moyenne). La distance de Cook combine résidu et effet de levier, \(D_i = \dfrac{r_i^2}{p + 1}\cdot\dfrac{h_i}{1 - h_i}\) — grande lorsqu’un point est à la fois loin de la ligne et extrême parmi les prédicteurs.
Réajustez avec le logarithme des ventes et relancez les diagnostics — le graphique échelle-localisation s’aplatit-il ? Le bac à sable démarre au premier Run.
Demandez à Prova « vérifie les hypothèses de ma régression et dis-moi laquelle est violée et comment la corriger » — elle lit vos graphiques de diagnostic et répond avec du code que vous pouvez exécuter sur votre propre modèle. The runtime is the judge. Demander à Prova →
Vous avez traité un point étiqueté comme une valeur aberrante automatique. plot(model) étiquette par défaut les 3 lignes les plus extrêmes — ce n’est qu’un « regardez ici », pas un « supprimez-les ». Vérifiez les seuils réels : résidu standardisé > 3 (valeur aberrante), chapeau > 2(p+1)/n (effet de levier), distance de Cook > 4/(n−p−1) (influence).
Vous avez vu un motif dans les résidus et paniqué. Un motif n’est pas un signal d’arrêt — c’est une information. Une courbe dans Residuals-vs-Fitted suggère une transformation ou un terme manquant ; un entonnoir dans Scale-Location suggère une réponse en log/sqrt. Corrigez le modèle, ne l’abandonnez pas.
Hétéroscédasticité avec un modèle valide. Si une transformation n’est pas souhaitable, conservez le modèle mais utilisez des erreurs standards robustes (cohérentes à l’hétéroscédasticité) pour l’inférence (par ex. sandwich + lmtest), afin que les p-values et les intervalles de confiance restent valides.
Quatre : la linéarité (la relation prédicteur–réponse est une droite), l’indépendance des erreurs résiduelles, la normalité des résidus, et l’homoscédasticité (variance résiduelle constante). Vous vérifiez aussi la présence d’observations influentes qui faussent l’ajustement. Toutes se diagnostiquent en examinant les résidus.
Ajustez le modèle avec lm(), puis appelez plot(model) pour les quatre graphiques de diagnostic : Residuals vs Fitted (linéarité), Normal Q-Q (normalité), Scale-Location (homoscédasticité) et Residuals vs Leverage (points influents). Lisez chaque graphique au regard de son hypothèse ; appuyez-les avec rstandard(), hatvalues() et cooks.distance().
Une valeur aberrante a un résidu standardisé (rstandard()) au-delà de ±3. Un point à fort effet de levier a une valeur du chapeau (hatvalues()) supérieure à 2(p+1)/n. Un point influent a une distance de Cook (cooks.distance()) supérieure à 4/(n−p−1) — c’est celui qui modifie réellement l’ajustement lorsqu’on le retire. Le graphique Residuals-vs-Leverage montre les trois à la fois.
Cela dépend de laquelle : non-linéarité → transformer le prédicteur (log, sqrt, poly) ; hétéroscédasticité → transformer la réponse (log(y), sqrt(y)) ou utiliser des erreurs standards robustes ; résidus non normaux → transformer la réponse (les grands échantillons sont assez robustes) ; un point influent → l’examiner (erreur de données vs réel) et rapporter l’analyse avec et sans lui.
lm(sales ~ youtube) avec lm(log(sales) ~ youtube). Lequel montre une variance constante ?Remplissez le blanc avec sales, puis log(sales), et observez la ligne rouge dans le graphique échelle-localisation. Pour la question 2, rappelez-vous que la distance de Cook combine à la fois la taille du résidu et l’effet de levier.
Le modèle log(sales) a la variance la plus constante. Pour la question 2 : probablement pas influent. La distance de Cook multiplie la taille du résidu par l’effet de levier ; un grand résidu à faible effet de levier (une valeur de prédicteur typique) reçoit peu de poids, donc retirer le point déplace à peine la ligne. L’influence requiert à la fois une réponse inhabituelle et une valeur de prédicteur inhabituelle.
Vous savez maintenant diagnostiquer une régression linéaire avec R : lire les quatre diagnostics plot(model), vérifier la linéarité (Residuals vs Fitted), la normalité (Q-Q), l’homoscédasticité (Scale-Location) et l’influence (Residuals vs Leverage + distance de Cook) — et appliquer la bonne solution à chaque violation, de la transformation d’une variable au traitement d’un point influent. Un modèle que vous avez vérifié est un modèle que vous pouvez rapporter.
Prouvez que vous savez le faire. Maîtrisez toute la série Régression en R — suivez votre parcours, construisez des projets et obtenez un certificat.
Passez à Pro — Prova illimité sur vos propres données et un certificat vérifiable qui atteste la compétence.
dès 15 $/mois facturé annuellement
✓ Vous êtes Pro — continuez. The runtime is the judge.
Prêt à passer à la vitesse supérieure ?
Recevez les nouvelles leçons R & Python par e-mail
Pratique, reproductible, sans spam. Désinscription à tout moment.
Double opt-in. Nous ne partageons jamais votre e-mail.
Chaque résultat de cette page a été produit par le code montré, exécuté au moment du build contre un environnement R figé — modifiez n’importe quel bloc et faites Run pour le reproduire vous-même.
@online{2026,
author = {},
title = {Hypothèses et diagnostics de la régression linéaire avec R},
date = {2026-06-23},
url = {https://www.datanovia.com/learn/biostatistics/regression/linear-regression-assumptions-and-diagnostics-in-r},
langid = {fr}
}