Régression linéaire simple en R : modéliser un prédicteur

Ajustez une droite entre un prédicteur et une variable réponse numérique, interprétez la pente et le R², et testez si la relation est réelle — lm() de façon pratique

Apprenez la régression linéaire simple en R — modélisez une réponse numérique à partir d’un seul prédicteur avec lm(). Visualisez la relation, lisez et interprétez la sortie complète (ordonnée à l’origine, pente, R², le F-test), obtenez les intervalles de confiance et faites une prédiction. Le fondement de la modélisation par régression.

Date de publication

23 juin 2026

Modifié

7 juillet 2026

AstucePoints clés
  • La régression linéaire simple modélise une réponse numérique comme une droite d’un seul prédicteur : outcome = intercept + slope × predictor.
  • Ajustez-la avec le R de base lm(outcome ~ predictor, data = ...) et lisez le résumé.
  • La pente est la variation de la réponse pour une augmentation d’une unité du prédicteur ; l’ordonnée à l’origine est la réponse lorsque le prédicteur vaut 0 ; le est la part de variation que le modèle explique.
  • Le F-test (et le t-test de la pente) vous indique si la relation est statistiquement significative ; confint() donne l’intervalle de confiance de la pente.
  • Utilisez predict() pour estimer la réponse pour de nouvelles valeurs du prédicteur.

Introduction

La régression linéaire simple ajuste une droite entre un prédicteur (variable explicative) et une réponse numérique, de sorte que vous pouvez décrire et quantifier leur relation — et prédire la réponse à partir du prédicteur. C’est le fondement de la modélisation par régression et le point de départ de tout, de la régression multiple à la régression logistique.

Le scénario : une entreprise veut savoir comment le budget publicitaire stimule les ventes. Ici, nous modélisons les ventes à partir du budget publicitaire YouTube, en utilisant les données marketing — et nous lisons combien vaut chaque dollar supplémentaire de budget.

Les données : publicité et ventes

Nous utilisons le jeu de données marketing de datarium — le budget publicitaire (en milliers de dollars) 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

Regardez d’abord la relation

Tracez toujours avant de modéliser. Un nuage de points de sales en fonction de youtube, avec une droite ajustée, montre une relation positive nette, à peu près linéaire :

library(ggpubr)

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

ggscatter(marketing, x = "youtube", y = "sales", add = "reg.line",
          add.params = list(color = "#3a86d4"),
          xlab = "YouTube budget (k$)", ylab = "Sales")

A scatter plot of sales versus youtube advertising budget for 200 campaigns, with a fitted blue regression line rising steadily; sales increase with budget.

Ajustez le modèle

lm() ajuste la droite ; summary() rapporte la sortie complète :

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

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

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

Residuals:
     Min       1Q   Median       3Q      Max 
-10.0632  -2.3454  -0.2295   2.4805   8.6548 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 8.439112   0.549412   15.36   <2e-16 ***
youtube     0.047537   0.002691   17.67   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.91 on 198 degrees of freedom
Multiple R-squared:  0.6119,    Adjusted R-squared:  0.6099 
F-statistic: 312.1 on 1 and 198 DF,  p-value: < 2.2e-16

Interprétez la sortie complète

Lisez le résumé morceau par morceau — pas seulement la p-value :

  • Coefficients. L’ordonnée à l’origine vaut 8.44 : pour une campagne sans budget youtube, le modèle prédit ~8.4 unités vendues. La pente de youtube vaut 0.0475 : chaque 1 k$ supplémentaire de budget youtube ajoute 0.0475 aux ventes — soit ~$47.5 de ventes par $1000 dépensé en plus.
  • Significativité. Le t-test de la pente a p < 2e-16, tout comme la statistique F globale (F(1, 198) ≈ 312) — la relation est hautement significative ; le budget youtube prédit véritablement les ventes.
  • R². Multiple R-squared = 0.61 — le budget youtube à lui seul explique 61 % de la variation des ventes. Le reste relève d’autres facteurs (facebook, newspaper, bruit).
  • L’erreur standard résiduelle (3.91) est la taille typique d’une erreur de prédiction, en unités de ventes.

Intervalle de confiance pour la pente

confint() donne la plage plausible pour la vraie pente :

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

confint(model)
                 2.5 %     97.5 %
(Intercept) 7.35566312 9.52256140
youtube     0.04223072 0.05284256

L’IC à 95 % pour la pente de youtube est [0.042, 0.053] — confortablement au-dessus de 0, confirmant un effet positif, et donnant la plage de « ventes par k$ » cohérente avec les données.

Prédisez de nouvelles valeurs

Utilisez predict() pour estimer les ventes pour de nouveaux budgets, avec un intervalle de confiance (pour la moyenne) ou un intervalle de prédiction (pour une seule nouvelle campagne) :

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

new <- data.frame(youtube = c(100, 200))
predict(model, newdata = new, interval = "confidence")
       fit      lwr      upr
1 13.19278 12.51317 13.87239
2 17.94644 17.38703 18.50585

Un budget youtube de 200 k$ prédit des ventes de ~18 unités (l’intervalle montrant l’incertitude).

Rapport

Une régression linéaire simple a montré que le budget publicitaire YouTube prédisait significativement les ventes, F(1, 198) = 312, p < 0.001, expliquant 61 % de la variance (R² = 0.61). Chaque 1 k$ supplémentaire de budget était associé à une augmentation de 0.047 unité des ventes (IC à 95 % 0.042–0.053).

Le modèle est \(y = \beta_0 + \beta_1 x + \varepsilon\). Les moindres carrés choisissent \(\beta_0, \beta_1\) pour minimiser la somme des carrés des résidus \(\sum_i (y_i - \hat{y}_i)^2\), donnant la pente \(\hat{\beta}_1 = \dfrac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sum (x_i - \bar{x})^2}\) et l’ordonnée à l’origine \(\hat{\beta}_0 = \bar{y} - \hat{\beta}_1 \bar{x}\). Le est la fraction de variance expliquée, \(R^2 = 1 - \dfrac{\sum (y_i - \hat{y}_i)^2}{\sum (y_i - \bar{y})^2}\), et le F-test compare le modèle à un modèle réduit à la seule ordonnée à l’origine.

Vérifiez les hypothèses

La régression linéaire repose sur quelques hypothèses — linéarité, variance résiduelle constante, résidus normaux, et absence de valeurs aberrantes influentes. Le plot(model) du R de base donne les quatre graphiques de diagnostic :

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

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

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

par(mfrow = c(1, 1))

Une bande résidus-vs-ajustés plate et un Q-Q plot droit signifient que les hypothèses tiennent raisonnablement ici. La leçon sur les hypothèses & diagnostics explique comment lire et corriger chacune d’elles.

Essayez en direct

Ajustez un prédicteur différent — le budget facebook prédit-il les ventes ? Modifiez et relancez ; le bac à sable démarre au premier Run.

🟢 Avec un agent IA

Demandez à Prova « ajuste une régression linéaire de ma réponse sur un prédicteur, interprète la pente et le R², et dis- moi si elle est significative » — elle répond avec du code que vous pouvez exécuter sur vos propres données et vous guide à travers la sortie. The runtime is the judge. Ask Prova →

Problèmes courants

Vous avez interprété l’ordonnée à l’origine littéralement alors que 0 est hors de portée. Si le prédicteur ne prend jamais la valeur 0 (ou une valeur proche), l’ordonnée à l’origine n’est que le point où la droite croise l’axe, pas une prédiction significative — concentrez-vous sur la pente.

Vous avez rapporté le R² mais pas si la pente est significative. Un R² élevé avec une pente non significative (petit échantillon) n’est pas fiable ; rapportez le F-test / la p-value de la pente et l’intervalle de confiance à côté du R².

La relation est courbe. lm() ajuste une ligne droite ; si le nuage de points s’incurve, un modèle linéaire s’ajuste mal — transformez le prédicteur (par ex. log(x)) ou ajoutez un terme polynomial (poly(x, 2)), et vérifiez le graphique résidus-vs-ajustés, qui montrera un motif lorsque la droite est inadaptée.

Questions fréquentes

La pente est la variation attendue de la réponse pour une augmentation d’une unité du prédicteur, rien d’autre n’étant maintenu constant (il n’y a qu’un seul prédicteur). Pour sales ~ youtube avec une pente de 0.047, chaque 1 k$ supplémentaire de budget youtube est associé à une augmentation de 0.047 unité des ventes. Rapportez-la avec son intervalle de confiance.

Le R² (R-squared) est la proportion de variance de la réponse expliquée par le modèle — de 0 (n’explique rien) à 1 (explique tout). R² = 0.61 signifie que le prédicteur rend compte de 61 % de la variation de la réponse ; les 39 % restants relèvent d’autres facteurs et du bruit.

Regardez la p-value de la statistique F (modèle global) et la p-value du t-test du prédicteur (la pente) dans summary() — une valeur inférieure à 0.05 signifie que la relation a peu de chances d’être due au hasard. Confirmez-la avec l’intervalle de confiance de la pente (confint()) ; s’il exclut 0, l’effet est significatif.

Testez vos connaissances

  1. Exécutez-le. Dans la cellule live, ajustez sales ~ facebook et lisez la pente et le R². Remplissez le blanc. Le budget facebook est-il un prédicteur significatif ?
  2. Conceptuel. Le modèle A a R² = 0.61 avec une pente p < 0.001 ; le modèle B a R² = 0.61 avec une pente p = 0.30 (n = 12). Auquel vous fiez-vous, et pourquoi ?

Remplissez le blanc avec facebook. Regardez le Pr(>|t|) de la pente et le R². Pour la question 2, rappelez-vous que le R² et la significativité répondent à des questions différentes.

model <- lm(sales ~ facebook, data = marketing)
summary(model)   #> facebook is a significant positive predictor; R² ≈ 0.33.

Pour la question 2 : fiez-vous au modèle A. Le R² mesure l’ajustement, mais la p-value vous dit si la pente est distinguable de 0. Le R² élevé du modèle B sur seulement 12 points avec p = 0.30 pourrait facilement être dû au hasard — la pente non significative signifie qu’il n’y a aucune preuve fiable d’une relation réelle malgré l’ajustement apparent.

AstuceQuel modèle quand ?

Conclusion

Vous savez maintenant lancer une régression linéaire simple en R : tracer la relation, l’ajuster avec lm(outcome ~ predictor), et interpréter la sortie complète — la pente (effet par unité), l’ordonnée à l’origine, le (variance expliquée), et le F-test / l’intervalle de confiance pour la significativité — puis predict() de nouvelles valeurs et vérifier les graphiques de diagnostic. C’est le fondement sur lequel toute autre régression se construit.

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 simple en R : modéliser un prédicteur},
  date = {2026-06-23},
  url = {https://www.datanovia.com/learn/biostatistics/regression/simple-linear-regression-in-r},
  langid = {fr}
}
Veuillez citer ce travail comme suit :
“Régression linéaire simple en R : modéliser un prédicteur.” 2026. June 23. https://www.datanovia.com/learn/biostatistics/regression/simple-linear-regression-in-r.