Chapitre 5 | Terminale technologique (enseignement commun) | Mathématiques
Dernière mise à jour : 21 octobre 2026
Une série statistique à deux variables associe à chaque individu un couple \((x_i\,;\,y_i)\). Le nuage de points est l'ensemble de ces points représentés dans un repère.
Quand les points semblent alignés, on cherche une droite d'ajustement \(y = ax + b\) qui « résume » le nuage. On peut alors :
Un ressort s'allonge de \(y\) (cm) selon la masse suspendue \(x\) (g). Les points \((10\,;1{,}2),(20\,;2{,}4),(30\,;3{,}5),(40\,;4{,}8)\) sont presque alignés : les rapports \(y/x \approx 0{,}12\) sont quasi constants, un ajustement \(y \approx 0{,}12\,x\) convient (loi de Hooke).
Les écarts de \(y\) sont constants (\(+2\)) pour des écarts de \(x\) de \(+1\) : les points sont alignés, de coefficient directeur \(2\). Quand \(x = 0\), on lit \(y = 1\). Droite : \(y = 2x + 1\).
Souvent, le nuage \((x_i\,; y_i)\) n'est pas aligné : il suit plutôt une courbe (parabole, hyperbole, exponentielle…). L'idée est de changer de variable pour « redresser » le nuage en une droite.
On remplace \(x\) (ou \(y\)) par une nouvelle variable bien choisie, de sorte que le nuage transformé soit aligné. On ajuste alors ce nuage transformé par une droite (ajustement affine), puis on revient aux variables initiales pour écrire le modèle.
| Modèle pressenti | Changement | Nuage à redresser |
|---|---|---|
| \(y = a x^{2} + b\) | \(u = x^{2}\) | \((u\,;\,y)\) affine |
| \(y = \dfrac{a}{x} + b\) | \(u = \dfrac1x\) | \((u\,;\,y)\) affine |
| \(y = a\sqrt{x} + b\) | \(u = \sqrt x\) | \((u\,;\,y)\) affine |
| \(y = k\,10^{\,a x}\) (exponentiel) | \(v = \log(y)\) | \((x\,;\,v)\) affine |
On soupçonne une relation \(y = \dfrac{a}{x} + b\) pour les données :
| \(x\) | \(1\) | \(2\) | \(4\) | \(5\) | \(10\) |
| \(y\) | \(12\) | \(7\) | \(4{,}5\) | \(4\) | \(3\) |
On pose \(u = \dfrac1x\), soit \(u = 1\,;\,0{,}5\,;\,0{,}25\,;\,0{,}2\,;\,0{,}1\). Le nuage \((u\,;\,y)\) est cette fois aligné ; un ajustement affine donne \(y \approx 10u + 2\). En revenant à \(x\) : \(\boxed{y \approx \dfrac{10}{x} + 2}\).
À gauche, le nuage \((x\,;y)\) suit une courbe (allure d'hyperbole) : un ajustement affine serait mauvais. À droite, après le changement \(u = \dfrac1x\), le nuage \((u\,;y)\) est aligné : on l'ajuste par \(y = 10u + 2\), d'où le modèle \(y = \dfrac{10}{x} + 2\).
On pose \(u = x^2\), soit \(u = 1, 4, 9, 16\) pour \(y = 5, 11, 21, 35\). Les écarts de \(y\) (\(+6, +10, +14\)) pour des écarts de \(u\) (\(+3, +5, +7\)) donnent un rapport constant \(\approx 2\) : le nuage \((u\,;y)\) est aligné. Modèle \(\approx y = 2x^2 + 3\).
Si \(y = k\,a^{x}\) (avec \(k \gt 0\) et \(a \gt 0\)), alors en prenant le logarithme décimal :
\[\log(y) = \log(k) + x\,\log(a).\]Donc \(v = \log(y)\) est une fonction affine de \(x\) : le nuage \((x_i\,;\,\log y_i)\) est aligné. Sa pente vaut \(\log(a)\) et son ordonnée à l'origine \(\log(k)\). On retrouve alors :
\[a = 10^{\text{pente}} \qquad\text{et}\qquad k = 10^{\text{ordonnée à l'origine}}.\]Population (en milliers) : \(y = 50, 60, 72, 86\) pour \(x = 0, 1, 2, 3\).
On pose \(v = \log(y) \approx 1{,}699\,;\,1{,}778\,;\,1{,}857\,;\,1{,}934\). Le nuage \((x\,;v)\) est aligné, de pente \(\approx 0{,}0785\) et d'ordonnée à l'origine \(\approx 1{,}699\).
Donc \(a = 10^{0{,}0785} \approx 1{,}2\) et \(k = 10^{1{,}699} \approx 50\). Modèle : \(y \approx 50 \times 1{,}2^{\,x}\) (croissance d'environ \(20\,\%\) par an).
Un nuage exponentiel \((x\,;y)\) qui « décolle » (rouge) devient aligné une fois porté en \((x\,;\,\log y)\) (vert) : c'est ce qui permet un ajustement affine.
\(\log y \approx 0{,}301\,;\,0{,}778\,;\,1{,}255\,;\,1{,}732\). Écart constant \(\approx +0{,}477\) par heure → aligné. Pente \(0{,}477 = \log 3\) donc \(a = 3\) ; ordonnée à l'origine \(0{,}301 = \log 2\) donc \(k = 2\). Modèle : \(y = 2 \times 3^{x}\) (triplement chaque heure).
Parmi toutes les droites \(y = ax + b\), la droite des moindres carrés est celle qui minimise la somme des carrés des écarts verticaux entre les points et la droite :
\[S(a,b) = \sum_{i} \big(y_{i} - (a x_{i} + b)\big)^{2}.\]Chaque écart \(y_i - (ax_i + b)\) est la distance verticale (le « résidu ») entre le point observé et la droite. On les met au carré (pour les rendre positifs et pénaliser les gros écarts), puis on additionne.
La droite des moindres carrés minimise la somme des carrés des résidus : les segments verticaux (pointillés rouges) reliant chaque point observé à la droite. On minimise les écarts verticaux, pas perpendiculaires.
On ne calcule pas \(a\) et \(b\) à la main : la calculatrice (menu « régression linéaire » / « stats ») ou le tableur les fournit directement. La droite obtenue s'appelle droite de régression de \(y\) en \(x\) ou droite des moindres carrés. Aucune formule de \(a\) et \(b\) n'est à connaître ; on sait obtenir la droite avec l'outil et l'utiliser.
\(x \times y = 20\) constant ⇒ \(y = \dfrac{20}{x}\). Avec \(u = \dfrac1x\) : \((1\,;20),(0{,}5\,;10),(0{,}2\,;4),(0{,}1\,;2)\) sont alignés sur \(y = 20u\), donc \(y = \dfrac{20}{x}\).
Une fois le modèle établi, on remplace \(x\) (ou \(u\)) par la valeur voulue. Avec \(y = \dfrac{10}{x} + 2\), la prévision pour \(x = 8\) est \(y = \dfrac{10}{8} + 2 = 3{,}25\).
❌ Choisir un changement de variable sans vérifier.
✅ On teste toujours le changement en regardant si le nuage transformé est effectivement aligné.
❌ Extrapoler très loin des données.
✅ Un ajustement n'est valable que sur la plage des données : extrapoler loin peut donner des valeurs absurdes (population négative, croissance illimitée…).
❌ Croire qu'un bon alignement prouve un lien de cause à effet.
✅ Corrélation n'est pas causalité : un bon ajustement ne prouve pas une cause.
La valeur (\(\approx 7\) milliards de milliers) est irréaliste : aucune population ne croît ainsi indéfiniment (ressources limitées). L'extrapolation lointaine du modèle exponentiel n'est pas valide.
La situation algorithmique du programme automatise le calcul de la somme des carrés des écarts pour un couple \((a,b)\) donné.
def somme_carres_ecarts(X, Y, a, b):
"""Somme des (y_i - (a*x_i + b))^2 pour le nuage (X, Y)."""
S = 0
for x, y in zip(X, Y):
S = S + (y - (a * x + b))**2
return S
X = [1, 2, 4, 5, 10]
Y = [12, 7, 4.5, 4, 3]
# apres changement u = 1/x :
U = [1/x for x in X]
print(somme_carres_ecarts(U, Y, 10, 2)) # ecart pour la droite y = 10u + 2
meilleur = None
for a in [8, 9, 10, 11, 12]:
for b in [1, 1.5, 2, 2.5, 3]:
S = somme_carres_ecarts(U, Y, a, b)
if meilleur is None or S < meilleur[0]:
meilleur = (S, a, b)
print(meilleur) # (S_min, a, b)
Colonne A : \(x\) ; colonne B : \(y\) ; colonne C : =1/A2 (ou =LOG(B2)) pour le changement de variable. Sélectionner le nuage transformé → insérer un graphique nuage de points → ajouter une courbe de tendance linéaire avec affichage de l'équation et du R². Fonctions utiles : =PENTE(plage_y;plage_u) et =ORDONNEE.ORIGINE(plage_y;plage_u).
somme_carres_ecarts, que représente concrètement la valeur renvoyée quand elle est proche de \(0\) ?
Une valeur proche de \(0\) signifie que la somme des carrés des écarts verticaux est très petite : les points sont presque tous sur la droite \(y = ax + b\). L'ajustement est alors excellent.
❌ Oublier de revenir aux variables initiales.
✅ Après ajustement sur \((u\,;y)\), il faut réécrire le modèle en fonction de \(x\).
❌ Se tromper de changement de variable.
✅ Un nuage exponentiel se redresse avec \(\log(y)\) ; un nuage « hyperbolique » avec \(\dfrac1x\). Toujours vérifier l'alignement obtenu.
❌ Confondre les axes après changement.
✅ On trace bien \((u\,; y)\) ou \((x\,; \log y)\), pas le nuage d'origine.
❌ Minimiser des écarts perpendiculaires.
✅ Les moindres carrés minimisent les écarts verticaux \(y_i - (ax_i+b)\).