Annexe E — Statsmodels

E.1 Modèle linéaire

E.1.1 smf.ols()

Documentation officielle

Objectif: définir une régression linéaire à partir des noms de colonnes d’un DataFrame.

Arguments principaux:

  • formula (str): formule écrivant la réponse à gauche de ~ et les prédicteurs à droite;
  • data (DataFrame): tableau contenant toutes les colonnes nommées dans la formule.

Exemple:

import statsmodels.formula.api as smf

modele = smf.ols(
    "log10_permeability_md ~ porosity_pct",
    data=analyse,
).fit()
1
Construit un modèle par formule.
2
Définit la réponse et le prédicteur.
3
Indique le tableau contenant les deux colonnes.
4
Estime l’ordonnée à l’origine et la pente.

À retenir: une formule décrit une association statistique; elle ne transforme pas automatiquement le prédicteur en cause.

E.1.2 get_prediction() et summary_frame()

Documentation officielle

Objectif: calculer les valeurs prédites, l’intervalle de confiance de la réponse moyenne et l’intervalle de prédiction d’une nouvelle observation.

Arguments principaux:

  • exog (DataFrame): nouvelles valeurs des prédicteurs, avec les mêmes noms de colonnes que lors de l’ajustement;
  • alpha (float): risque exclu de l’intervalle; 0.05 produit des intervalles à 95 % dans summary_frame().

Exemple:

prediction = modele.get_prediction(nouvelles_valeurs)
table_prediction = prediction.summary_frame(alpha=0.05)
1
Applique le modèle à de nouvelles valeurs du prédicteur.
2
Produit une table contenant estimations et intervalles.

À retenir: mean_ci_lower et mean_ci_upper encadrent la moyenne; obs_ci_lower et obs_ci_upper encadrent une nouvelle observation et sont donc plus éloignés.

E.1.3 Résidus et valeurs ajustées

Objectif: comparer les observations aux valeurs décrites par le modèle.

Arguments principaux:

  • fittedvalues et resid sont des attributs du modèle ajusté: ils ne reçoivent aucun argument et renvoient une Series contenant une valeur par observation.

Exemple:

analyse["prediction"] = modele.fittedvalues
analyse["residu"] = modele.resid
1
Enregistre la réponse moyenne estimée par le modèle.
2
Enregistre observation - prédiction.

À retenir: un résidu positif indique une observation supérieure à la valeur prévue; une structure dans les résidus signale une information que la droite ne décrit pas.

Le graphique sm.qqplot(residus, line="45") compare les quantiles des résidus à ceux d’une distribution normale. Dans un petit échantillon, il sert à repérer des écarts marqués, pas à démontrer une normalité exacte.

E.1.4 get_influence().summary_frame()

Documentation officielle

Objectif: résumer l’influence de chaque observation sur le modèle ajusté.

Arguments principaux:

  • get_influence() ne reçoit aucun argument dans le cours;
  • summary_frame() ne reçoit aucun argument et renvoie un DataFrame contenant les diagnostics pour chaque observation.

Exemple:

influence = modele.get_influence().summary_frame()
analyse["cooks_d"] = influence["cooks_d"]
1
Calcule plusieurs diagnostics d’influence.
2
Conserve la distance de Cook dans la table analysée.

À retenir: une grande distance de Cook invite à examiner l’observation et sa provenance; elle ne justifie pas automatiquement sa suppression.