Visualiser l'ajustement du modèle

Introduction à la régression avec statsmodels en Python

Maarten Van den Broeck

Content Developer at DataCamp

Bon ajustement : propriétés des résidus

  • Les résidus suivent une loi normale
  • La moyenne des résidus est zéro
Introduction à la régression avec statsmodels en Python

Brèmes et perches, encore

Brème : le « bon » modèle

mdl_bream = ols("mass_g ~ length_cm", data=bream).fit()

Le nuage de points des masses de brèmes selon leur longueur, avec une droite de tendance, déjà montré.

Perche : le « mauvais » modèle

mdl_perch = ols("mass_g ~ length_cm", data=perch).fit()

Le nuage de points des masses de perches selon leur longueur, avec une droite de tendance, déjà montré.

Introduction à la régression avec statsmodels en Python

Résidus vs valeurs ajustées

Brème

Nuage de points des résidus du modèle des brèmes selon les valeurs ajustées, avec une courbe LOWESS. La courbe reste près de l'axe des x.

Perche

Nuage de points des résidus du modèle des perches selon les valeurs ajustées, avec une courbe LOWESS. La courbe forme un V.

Introduction à la régression avec statsmodels en Python

Diagramme Q-Q

Brème

Diagramme Q-Q des résidus normalisés du modèle des brèmes selon les quantiles théoriques. Les points suivent de près la ligne d'égalité, sauf deux valeurs aberrantes.

Perche

Diagramme Q-Q des résidus normalisés du modèle des perches selon les quantiles théoriques. Les points suivent peu la ligne d'égalité, surtout à droite du graphique.

Introduction à la régression avec statsmodels en Python

Graphique échelle‑position

Brème

Nuage de points de la racine carrée des résidus normalisés du modèle des brèmes selon les valeurs ajustées, avec une courbe LOWESS. La courbe monte légèrement quand les valeurs ajustées augmentent.

Perche

Nuage de points de la racine carrée des résidus normalisés du modèle des perches selon les valeurs ajustées, avec une courbe LOWESS. La courbe monte et descend à plusieurs reprises quand les valeurs ajustées augmentent.

Introduction à la régression avec statsmodels en Python

residplot()

sns.residplot(x="length_cm", y="mass_g", data=bream, lowess=True)
plt.xlabel("Fitted values")
plt.ylabel("Residuals")

Nuage de points des résidus du modèle des brèmes selon les valeurs ajustées, avec une courbe LOWESS. La courbe reste près de l'axe des x.

Introduction à la régression avec statsmodels en Python

qqplot()

from statsmodels.api import qqplot
qqplot(data=mdl_bream.resid, fit=True, line="45")

Diagramme Q-Q des brèmes, comme précédemment

Introduction à la régression avec statsmodels en Python

Graphique échelle‑position

model_norm_residuals_bream = mdl_bream.get_influence().resid_studentized_internal

model_norm_residuals_abs_sqrt_bream = np.sqrt(np.abs(model_norm_residuals_bream))
sns.regplot(x=mdl_bream.fittedvalues, y=model_norm_residuals_abs_sqrt_bream, ci=None, lowess=True)
plt.xlabel("Fitted values") plt.ylabel("Sqrt of abs val of stdized residuals")

Graphique échelle‑position des brèmes, comme précédemment

Introduction à la régression avec statsmodels en Python

Passons à la pratique !

Introduction à la régression avec statsmodels en Python

Preparing Video For Download...