Logo

Welcome to Statsmodels’s Documentation

statsmodels is a Python module that provides classes and functions for the estimation of many different statistical models, as well as for conducting statistical tests, and statistical data exploration. An extensive list of result statistics are avalable for each estimator. The results are tested against existing statistical packages to ensure that they are correct. The package is released under the open source Modified BSD (3-clause) license. The online documentation is hosted at sourceforge.

Minimal Examples

Since version 0.5.0 of statsmodels, you can use R-style formulas together with pandas data frames to fit your models. Here is a simple example using ordinary least squares:

import numpy as np
import statsmodels.api as sm
import statsmodels.formula.api as smf

# Load data
dat = sm.datasets.get_rdataset("Guerry", "HistData").data

# Fit regression model (using the natural log of one of the regressors)
results = smf.ols('Lottery ~ Literacy + np.log(Pop1831)', data=dat).fit()

# Inspect the results
print results.summary()

You can also use numpy arrays instead of formulas:

import numpy as np
import statsmodels.api as sm

# Generate artificial data (2 regressors + constant)
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

# Fit regression model
results = sm.OLS(y, X).fit()

# Inspect the results
print results.summary()

Have a look at dir(results) to see available results. Attributes are described in results.__doc__ and results methods have their own docstrings.

Table of Contents

Expand all. Collapse all.

Indices and tables

Download

This documentation is for version 0.7.0.dev-a3939d8, which is not released yet. Grab the source code from Github to install this version. You can go to the documentation for the last release here.

Participate

Join the Google Group:

Grab the source from Github. Report bugs to the Issue Tracker. Have a look at our Developer and Get Involved Pages.

Follow statsmodels on Twitter Blog