Régression linéaire multiple en R : plusieurs prédicteurs

Modélisez un résultat numérique à partir de plusieurs prédicteurs avec lm(), interprétez chaque coefficient en maintenant les autres constants, et décidez quels prédicteurs comptent vraiment — la méthode pratique

Apprenez la régression linéaire multiple en R — modélisez un résultat numérique à partir de plusieurs prédicteurs avec lm(). Interprétez chaque coefficient (l’effet d’un prédicteur en maintenant les autres constants), lisez le R² et le F-test, écartez les prédicteurs qui ne contribuent pas, et prédisez de nouvelles valeurs.

Date de publication

23 juin 2026

Modifié

7 juillet 2026

AstucePoints clés
  • La régression linéaire multiple modélise un résultat numérique à partir de plusieurs prédicteurs à la fois : outcome = b0 + b1·x1 + b2·x2 + ….
  • Ajustez-la avec lm(outcome ~ x1 + x2 + x3, data = ...) et lisez le résumé.
  • Chaque coefficient est l’effet de ce prédicteur en maintenant les autres constants — la différence essentielle par rapport à plusieurs régressions simples menées séparément.
  • Le augmente toujours quand on ajoute des prédicteurs ; utilisez le R² ajusté pour comparer les modèles, et les t-tests par prédicteur pour voir lesquels contribuent réellement.
  • Écartez les prédicteurs non significatifs, revérifiez le R² ajusté, puis prédisez de nouvelles valeurs avec predict().

Introduction

La régression linéaire multiple étend la régression linéaire simple à plusieurs prédicteurs, ce qui vous permet de modéliser un résultat qui dépend de plus d’une chose — et, surtout, d’isoler l’effet de chaque prédicteur tout en maintenant les autres constants.

Le scénario : une entreprise répartit son budget publicitaire entre youtube, facebook et newspaper, et veut savoir quels canaux génèrent réellement des sales — et dans quelle mesure, en contrôlant les autres. Une régression multiple répond exactement à cette question.

Les données : trois canaux publicitaires

Nous utilisons le jeu de données marketing de datarium — le budget (en milliers de dollars) dépensé sur youtube, facebook et newspaper, et les sales qui en résultent, pour 200 campagnes :

data("marketing", package = "datarium")
head(marketing, 4)
  youtube facebook newspaper sales
1  276.12    45.36     83.04 26.52
2   53.40    47.16     54.12 12.48
3   20.64    55.08     83.16 11.16
4  181.80    49.56     70.20 22.20

Ajuster le modèle

Ajoutez des prédicteurs avec +. lm() ajuste le modèle ; summary() en présente le résultat complet :

data("marketing", package = "datarium")

model <- lm(sales ~ youtube + facebook + newspaper, data = marketing)
summary(model)

Call:
lm(formula = sales ~ youtube + facebook + newspaper, data = marketing)

Residuals:
     Min       1Q   Median       3Q      Max 
-10.5932  -1.0690   0.2902   1.4272   3.3951 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)  3.526667   0.374290   9.422   <2e-16 ***
youtube      0.045765   0.001395  32.809   <2e-16 ***
facebook     0.188530   0.008611  21.893   <2e-16 ***
newspaper   -0.001037   0.005871  -0.177     0.86    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.023 on 196 degrees of freedom
Multiple R-squared:  0.8972,    Adjusted R-squared:  0.8956 
F-statistic: 570.3 on 3 and 196 DF,  p-value: < 2.2e-16

Interpréter le résultat complet

Lisez le résumé morceau par morceau — chaque coefficient est un effet ajusté pour les autres prédicteurs :

  • pente youtube = 0.046 — chaque 1 k$ supplémentaire sur youtube ajoute 0.046 aux sales, en maintenant facebook et newspaper fixes. Hautement significatif (p < 2e-16).
  • pente facebook = 0.189 — chaque 1 k$ supplémentaire sur facebook ajoute 0.189 aux sales, le canal le plus fort par dollar, lui aussi hautement significatif.
  • pente newspaper = −0.001 — pratiquement nulle et non significative (p = 0.86). Une fois youtube et facebook dans le modèle, newspaper n’apporte rien. (Une régression simple des sales sur newspaper seul paraît positive — parce que les budgets newspaper sont corrélés aux autres ; les contrôler dissipe l’illusion.)
  • R² = 0.897 / R² ajusté = 0.896 — le modèle explique ~90 % de la variation des sales, un bond important par rapport à youtube seul (61 %).
  • Statistique F F(3, 196) = 570, p < 2e-16 — le modèle dans son ensemble est hautement significatif.
Note

Chaque coefficient est un effet partiel. « Maintenir les autres constants » est ce qui distingue la régression multiple de trois régressions simples séparées — c’est pourquoi l’effet apparent de newspaper s’évanouit ici.

Voir les coefficients d’un coup d’œil

Un graphique des coefficients (estimation ± IC à 95 %) rend l’histoire évidente — youtube et facebook se situent nettement au-dessus de zéro, newspaper le chevauche :

library(ggpubr)
library(broom)

data("marketing", package = "datarium")
model <- lm(sales ~ youtube + facebook + newspaper, data = marketing)

est <- tidy(model, conf.int = TRUE)
est <- est[est$term != "(Intercept)", ]

ggdotchart(est, x = "term", y = "estimate",
           add = "segments", rotate = TRUE, sorting = "descending",
           color = "#3a86d4", dot.size = 6,
           ggtheme = theme_pubr()) +
  geom_hline(yintercept = 0, linetype = "dashed", color = "grey50") +
  geom_errorbar(aes(ymin = conf.low, ymax = conf.high), width = 0.2,
                color = "#3a86d4")

A coefficient plot of the three advertising predictors with 95% confidence intervals: youtube and facebook are clearly above zero, newspaper is centred on zero.

Intervalles de confiance

confint() donne la plage plausible de chaque coefficient. L’intervalle de newspaper inclut 0 — le signe qu’il ne contribue pas :

data("marketing", package = "datarium")
model <- lm(sales ~ youtube + facebook + newspaper, data = marketing)

confint(model)
                  2.5 %     97.5 %
(Intercept)  2.78851474 4.26481975
youtube      0.04301371 0.04851558
facebook     0.17154745 0.20551259
newspaper   -0.01261595 0.01054097

Simplifier : écarter le prédicteur inutile

Newspaper est non significatif : réajustez donc sans lui et comparez. Le R² ajusté change à peine — un modèle plus simple qui s’ajuste tout aussi bien :

data("marketing", package = "datarium")

model2 <- lm(sales ~ youtube + facebook, data = marketing)
summary(model2)$adj.r.squared        # ≈ 0.896, unchanged
[1] 0.8961505
anova(model2, lm(sales ~ youtube + facebook + newspaper, data = marketing))
Analysis of Variance Table

Model 1: sales ~ youtube + facebook
Model 2: sales ~ youtube + facebook + newspaper
  Res.Df    RSS Df Sum of Sq      F Pr(>F)
1    197 801.96                           
2    196 801.83  1   0.12775 0.0312 0.8599

Le F-test de anova() comparant les deux modèles est non significatif (p = 0.86) — conserver newspaper n’améliore pas l’ajustement, donc le modèle à deux prédicteurs est préférable (plus simple, même pouvoir explicatif).

Prédire de nouvelles valeurs

Utilisez predict() sur le modèle retenu pour estimer les sales pour une nouvelle répartition de budget :

data("marketing", package = "datarium")
model2 <- lm(sales ~ youtube + facebook, data = marketing)

new <- data.frame(youtube = 200, facebook = 40)
predict(model2, newdata = new, interval = "confidence")
       fit      lwr      upr
1 20.17605 19.83156 20.52055

Une campagne dépensant 200 k$ sur youtube et 40 k$ sur facebook devrait, selon la prédiction, vendre ~20 unités.

Rapport

Une régression linéaire multiple a prédit les sales à partir des budgets publicitaires youtube, facebook et newspaper. Le modèle était significatif, F(3, 196) = 570, p < 0.001, expliquant 90 % de la variance (R² ajusté = 0.90). youtube (b = 0.046, IC à 95 % 0.043–0.049, p < 0.001) et facebook (b = 0.189, IC à 95 % 0.172–0.206, p < 0.001) étaient des prédicteurs positifs significatifs ; newspaper ne l’était pas (p = 0.86).

Le modèle est \(y = \beta_0 + \beta_1 x_1 + \dots + \beta_p x_p + \varepsilon\). Les moindres carrés choisissent les coefficients pour minimiser \(\sum_i (y_i - \hat{y}_i)^2\) ; sous forme matricielle \(\hat{\boldsymbol\beta} = (X^\top X)^{-1} X^\top y\). Chaque \(\hat{\beta}_j\) est l’effet de \(x_j\) ajusté pour tous les autres prédicteurs. Le R² ajusté pénalise le R² selon le nombre de prédicteurs \(p\), \(R^2_{adj} = 1 - (1 - R^2)\dfrac{n - 1}{n - p - 1}\), de sorte qu’il n’augmente que lorsqu’un nouveau prédicteur mérite sa place.

Vérifiez les hypothèses

Les mêmes hypothèses que la régression simple — linéarité, variance résiduelle constante, résidus normaux, absence de valeurs aberrantes influentes — auxquelles s’ajoute l’absence de multicolinéarité sévère entre prédicteurs. La fonction plot(model) de base R donne les graphiques de diagnostic :

data("marketing", package = "datarium")
model <- lm(sales ~ youtube + facebook + newspaper, data = marketing)

par(mfrow = c(2, 2))
plot(model)

The four base-R regression diagnostic plots for the multiple regression model: residuals vs fitted, normal Q-Q, scale-location, and residuals vs leverage.

par(mfrow = c(1, 1))

Voir hypothèses et diagnostics pour savoir comment lire et corriger chacune, et multicolinéarité et VIF pour vérifier que les prédicteurs ne sont pas trop corrélés entre eux.

Essayez en direct

Écartez ou ajoutez un prédicteur et observez le R² ajusté et les coefficients changer. Le bac à sable démarre au premier Run.

🟢 Avec un agent IA

Demandez à Prova « ajuste une régression multiple sur mes données, interprète chaque coefficient en maintenant les autres constants, et dis-moi quels prédicteurs garder » — elle répond avec du code que vous pouvez exécuter et vous guide à travers le résultat. The runtime is the judge. Ask Prova →

Problèmes courants

Vous avez interprété un coefficient sans « maintenir les autres constants ». En régression multiple, chaque pente est un effet partiel — la variation du résultat par unité de ce prédicteur les autres prédicteurs étant fixes. Il peut différer en taille, voire en signe, de la pente de la régression simple.

Vous avez comparé des modèles avec le R² au lieu du R² ajusté. Le R² brut ne diminue jamais quand vous ajoutez un prédicteur, donc il favorise toujours le modèle le plus grand. Utilisez le R² ajusté (ou anova() / AIC) pour comparer — il ne récompense que les prédicteurs qui aident vraiment.

Un prédicteur a changé de signe ou perdu sa significativité quand vous en avez ajouté un autre. C’est de la multicolinéarité ou un facteur de confusion — les prédicteurs partagent de l’information. C’est attendu (newspaper ici) ; vérifiez le VIF quand c’est sévère.

Questions fréquentes

Chaque coefficient est la variation attendue du résultat pour une augmentation d’une unité de ce prédicteur, en maintenant tous les autres prédicteurs constants. Pour sales ~ youtube + facebook, le coefficient de youtube est l’effet du budget youtube à budget facebook fixé — un effet partiel et ajusté, et non la relation brute.

Le R² est la part de variance expliquée ; il augmente toujours quand vous ajoutez un prédicteur, même inutile. Le R² ajusté pénalise le nombre de prédicteurs, de sorte qu’il ne monte que lorsqu’un nouveau prédicteur améliore le modèle plus que le hasard ne le ferait. Utilisez le R² ajusté pour comparer des modèles de tailles différentes.

Partez du modèle complet, regardez la p-value du t-test de chaque prédicteur, et écartez les non significatifs, en revérifiant le R² ajusté et une comparaison de modèles par anova() à chaque étape. Gardez les prédicteurs significatifs ou que vous avez une raison de fond de contrôler. (La sélection automatisée — pas à pas, pénalisée — relève de la modélisation prédictive dans le pilier Machine Learning.)

Parce que les prédicteurs sont corrélés : une fois que vous en contrôlez un, la contribution propre de l’autre peut se réduire à rien (newspaper ici). C’est tout l’intérêt de la régression multiple — elle montre l’effet ajusté pour les autres. Quand les prédicteurs sont fortement corrélés, vérifiez la multicolinéarité / VIF.

Testez vos connaissances

  1. Exécutez-le. Dans la cellule interactive, ajustez sales ~ youtube + facebook + newspaper, puis sales ~ youtube + facebook. Écarter newspaper change-t-il le R² ajusté ?
  2. Conceptuel. Une régression simple donne à newspaper une pente positive significative, mais dans le modèle multiple newspaper est non significatif. Quel résultat décrit la contribution réelle de newspaper aux sales, et pourquoi ?

Remplissez le blanc avec newspaper, puis réajustez sans lui. Comparez les lignes Adjusted R-squared. Pour la question 2, rappelez-vous que le coefficient du modèle multiple est l’effet en maintenant les autres canaux constants.

lm(sales ~ youtube + facebook + newspaper, data = marketing)  # newspaper p = 0.86
lm(sales ~ youtube + facebook, data = marketing)              # adj R² ≈ 0.896, unchanged

Écarter newspaper laisse le R² ajusté pratiquement inchangé — il ne contribue à rien. Pour la question 2 : le résultat de la régression multiple décrit la contribution réelle de newspaper. Sa pente en régression simple est positive seulement parce que les budgets newspaper sont corrélés aux dépenses youtube/facebook ; une fois ces canaux contrôlés, l’effet propre de newspaper est nul.

AstuceQuel modèle, quand ?

Conclusion

Vous savez maintenant mener une régression linéaire multiple en R : ajuster plusieurs prédicteurs avec lm(outcome ~ x1 + x2 + x3), interpréter chaque coefficient comme un effet partiel en maintenant les autres constants, comparer les modèles avec le R² ajusté et anova(), écarter les prédicteurs qui ne méritent pas leur place, et prédire de nouvelles valeurs avec predict(). C’est le cheval de bataille de la modélisation appliquée — et la base pour les prédicteurs catégoriels, les interactions et les diagnostics.

Leçons connexes

Cette page vous a-t-elle été utile ?

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.

Commencer gratuitement →

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

Passer à Pro →

✓ Vous êtes Pro — continuez. The runtime is the judge.

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.

Partager cette pageXLinkedInRedditHN
Note

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.

Réutilisation

Citation

BibTeX
@online{2026,
  author = {},
  title = {Régression linéaire multiple en R : plusieurs prédicteurs},
  date = {2026-06-23},
  url = {https://www.datanovia.com/learn/biostatistics/regression/multiple-linear-regression-in-r},
  langid = {fr}
}
Veuillez citer ce travail comme suit :
“Régression linéaire multiple en R : plusieurs prédicteurs.” 2026. June 23. https://www.datanovia.com/learn/biostatistics/regression/multiple-linear-regression-in-r.