statsmodel

Statsmodels : Tout savoir sur la bibliothèque Python

Louis F

Louis F

3 min

Si vous avez déjà cherché à modéliser des séries temporelles vous avez sûrement entendu parler des modèles ARMA ou ARIMA. En Python la bibliothèque la plus utilisée pour cela est statsmodels.

Dans cet article nous allons vous présenter rapidement les usages de statsmodels et quelques exemples d’utilisation.

Que faire avec statsmodels ?

Statsmodels est une bibliothèque d’analyse et de modélisation de données statistiques. Elle propose un certain nombre de fonctionnalités absentes de bibliothèques plus classiques comme sklearn.

Régression Linéaire

Tout d’abord, statsmodels complète largement la régression linéaire classique en proposant de nouveaux estimateurs des moindres carrés. Habituellement on utilise les moindres carrés ordinaires (OLS) pour estimer la régression linéaire. Cependant dans le cas où certains résidus sont corrélés, la régression linéaire n’est plus efficace. Les moindres carrés généralisés (GLS)  peuvent alors venir résoudre ce problème.

Exemple de régression linéaire OLS

En parallèle de cette méthode, statsmodels présente deux autres estimateurs des moindres carrés ordinaires plus complexes : les moindres carrés récursifs (RLS) et les moindres carrés mobiles (MLS).

Par ailleurs, la régression linéaire classique impose un certain nombre d’hypothèses qui doivent être vérifiées pendant le processus. Statsmodels présente différents tests statistiques permettant de vérifier : 

  • la non multicolinéarité des variables
  • l’homoscédasticité (test de Breusch-Pagan)
  • la normalité des résidus (test de Jarque-Bera)

Voyons un exemple d’application sur Python : 

Modèles linéaires généralisés 

En parallèle, la bibliothèque statsmodels permet d’utiliser les modèles linéaires généralisés (GLM) qui sont une généralisation de la régression linéaire classique.  

En effet la régression linéaire suppose que la variable à expliquer suit une distribution normale (hypothèse imposée par la normalité des résidus). Dans le cas du GLM, on peut utiliser une distribution quelconque issue de la famille des exponentielles. 

De plus, le GLM relie la variable à expliquer au modèle via une fonction de lien ce qui permet d’assouplir encore plus la régression linéaire classique.

Un cas particulier de modèle linéaire généralisé est la régression logistique. La variable à expliquer suit une distribution binomiale et l’on utilise une fonction de lien logit.

Exemple de régression logistique

Séries temporelles :

Statsmodels présente en particulier de nombreux outils très utiles et complets lors de l’étude des séries temporelles. 

Tout d’abord la décomposition tendance-saisonnalité-résidu. Si vous ne connaissez pas ces composantes classiques des séries temporelles, nous vous invitons à aller voir notre article sur les séries temporelles.

Exemple de décomposition

Cette fonctionnalité permet de prendre connaissance en un coup d’œil de l’influence des différentes composantes dans notre modèle mais aussi de visualiser les résidus afin d’avoir une première idée sur leur stationnarité.

Statsmodels implémente aussi deux tests statistiques permettant de vérifier la stationnarité des séries temporelles: Augmented Dickey-Fuller test (ADF) et le test KPSS (Kwiatkowski-Phillips-Schmidt-Shin).

Enfin le dernier mais pas le moindre, statsmodels offre toute une déclinaison des modèles classiques de modélisation des séries temporelles:

  • Les processus autorégressifs
  • Les moyennes mobiles
  • Les ARMA et ARIMA 
  • Les SARIMA, SARIMAX, VARIMAX

La SARIMAX est tout simplement un processus SARIMA qui utilise en parallèle des variables exogènes pour prédire la série temporelle. Tandis que le processus VARIMAX est un ARIMAX vectorisé qui permet donc de prédire plusieurs valeurs à la fois.

En plus des fonctionnalités présentées dans cet article, la bibliothèque statsmodels offre de nombreuses possibilités supplémentaires et continue à s’étoffer. Pour en savoir plus, leur documentation est fournie et présente de nombreux exemples détaillés.

Conclusion

Statsmodels est un outil incontournable du statisticien ou du data scientist en particulier lors de l’étude des séries temporelles. Sa syntaxe simple à comprendre et à reproduire permet d’utiliser de modéliser et d’explorer des séries statistiques sans difficultés.

Cependant les outils à maîtriser pour un data scientist recouvrent des sujets bien plus larges (data vizualisation, machine learning, deep learning, …) que nous vous invitons à découvrir dans notre formation Data Scientist.