Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Statsmodels: statistical modeling and econometrics in Python

This branch is 4332 commits behind statsmodels:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


What it is

Statsmodels is a Python package that provides a complement to scipy for
statistical computations including descriptive statistics and
estimation of statistical models.

Main Features

* regression: Generalized least squares (including weighted least squares and
  least squares with autoregressive errors), ordinary least squares.
* glm: Generalized linear models with support for all of the one-parameter
  exponential family distributions.
* discrete: regression with discrete dependent variables, including Logit, Probit,
    MNLogit, Poisson, based on maximum likelihood estimators
* rlm: Robust linear models with support for several M-estimators.
* tsa: models for time series analysis
  - univariate time series analysis: AR, ARIMA
  - vector autoregressive models, VAR and structural VAR
  - descriptive statistics and process models for time series analysis
* nonparametric : (Univariate) kernel density estimators
* datasets: Datasets to be distributed and used for examples and in testing.
* stats: a wide range of statistical tests
  - diagnostics and specification tests
  - goodness-of-fit and normality tests
  - functions for multiple testing
  - various additional statistical tests

* iolib: Tools for reading Stata .dta files into numpy arrays. (not yet ported to Python 3)
* iolob: printing table output to ascii, latex, and html

* miscellaneous models

* sandbox: statsmodels contains a sandbox folder with code in various stages of
  developement and testing which is not considered "production ready".
  This covers among others Mixed (repeated measures) Models, GARCH models, general method
  of moments (GMM) estimators, kernel regression, various extensions to scipy.stats.distributions,
  panel data models, generalized additive models and information theoretic measures.

Where to get it

Development branches will be on Github. This is where to go to get the most
up to date code in the trunk branch. Experimental code is hosted here
in branches and in developer forks. This code is merged to master often. We
try to make sure that the master branch is always stable.

Source download of stable tags will be on SourceForge.



Installation from sources

In the top directory, just do::

    python install

See INSTALL.txt for requirements or

For more information.


Simplified BSD


The official documentation is hosted on SourceForge.

The sphinx docs are currently undergoing a lot of work. They are not yet
comprehensive, but should get you started.

Our blog will continue to be updated as we make progress on the code.

Windows Help
The source distribution for Windows includes a htmlhelp file (statsmodels.chm).
This can be opened from the python interpreter ::

>>> import statsmodels.api as sm
>>> sm.open_help()

Discussion and Development

All chatter will take place on the or scipy-user mailing list. We are very
interested in receiving feedback about usability, suggestions for improvements,
and bug reports via the mailing list or the bug tracker at

There is also a google group at

to discuss development and design issues that are deemed to be too specialized
for the scipy-dev/user list.

Python 3

statsmodels has been ported and tested for Python 3.2. Python 3
version of the code can be obtained by running over the entire
statsmodels source. The numerical core of statsmodels worked almost without
changes, however there can be problems with data input and plotting.
The STATA file reader and writer in iolib.foreign has not been ported yet.
And there are still some problems with the matplotlib version for Python 3
that was used in testing. Running the test suite with Python 3.2 shows some
errors related to foreign and matplotlib.
Something went wrong with that request. Please try again.