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
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.
23 juin 2026
7 juillet 2026
outcome = intercept + slope × predictor.lm(outcome ~ predictor, data = ...) et lisez le résumé.confint() donne l’intervalle de confiance de la pente.predict() pour estimer la réponse pour de nouvelles valeurs du prédicteur.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.
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 :
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 :
lm() ajuste la droite ; summary() rapporte la sortie complète :
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
Lisez le résumé morceau par morceau — pas seulement la p-value :
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.confint() donne la plage plausible pour la vraie pente :
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.
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) :
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).
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 R² 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.
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 :

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.
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.
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 →
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.
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.
sales ~ facebook et lisez la pente et le R². Remplissez le blanc. Le budget facebook est-il un prédicteur significatif ?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.
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.
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 R² (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.
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 = {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}
}