statsmodels est un module Python visant à complèter SciPy, en terme de statistique descriptive, d’économétrie, d’estimation ou d’inférence (se basant à chaque fois sur un modèle pertinent).

import numpy as np
import statsmodels.api as sm

# Génération de données fictives (2 régresseurs + constante)
nobs = 100
X = np.random.random((nobs, 2))
X = sm.add_constant(X)
beta = [1, .1, .5]
e = np.random.random(nobs)
y = np.dot(X, beta) + e

# Apprentissage
results = sm.OLS(y, X).fit()

# Inspection des résultats
print(results.summary())
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                      y   R-squared:                       0.298
Model:                            OLS   Adj. R-squared:                  0.283
Method:                 Least Squares   F-statistic:                     20.57
Date:                Wed, 22 Jan 2020   Prob (F-statistic):           3.58e-08
Time:                        18:54:03   Log-Likelihood:                -18.273
No. Observations:                 100   AIC:                             42.55
Df Residuals:                      97   BIC:                             50.36
Df Model:                           2                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const          1.4687      0.070     20.862      0.000       1.329       1.608
x1             0.0507      0.096      0.528      0.599      -0.140       0.241
x2             0.6083      0.097      6.269      0.000       0.416       0.801
==============================================================================
Omnibus:                       57.347   Durbin-Watson:                   2.386
Prob(Omnibus):                  0.000   Jarque-Bera (JB):                7.214
Skew:                           0.072   Prob(JB):                       0.0271
Kurtosis:                       1.692   Cond. No.                         4.71
==============================================================================

Fonctionnalités

  • Des modèles de régression linéaire supplémentaires
  • Un modèle linéaire mixte (sur les effets et la variance)
  • Des modèles linéaires généralisés (GLM) avec un support pour les distributions de type exponentiel à un facteur
  • Un GLM Baysésien Mixte pour la distributions polynomiales et de Poisson
  • Une estimations d’équations généralisées (GEE) pour les données longitudinales
  • Des modèles discrets (logit, probit, Poisson, Régression Binomiale Négative)
  • Modèles Linéaires Robustes (RLM)
  • Analyse des séries temporelles (modèles StateSpace, chaînes de Markov, ARIMA, VAR, VECM, …)
  • Analyse de survie (Vox, Kaplan-Meier)
  • Outils supplémentaires d’analyse multivariée
  • Statistiques sans paramètre
  • Tests statistiques additionnels
  • Jeux de données pour exemples et tests
  • MICE
  • Graphiques supplémentaires
  • Outils pour les flux (lecture de .dta, bien qu’en retard sur pandas, export vers ascii, latex et html)
  • Modèles divers
  • Des exemples dans différents stades de développement pour un découverte de la librairie