This sandbox contains code that is for various reasons not ready to be included in statsmodels proper. It contains modules from the old stats.models code that have not been tested, verified and updated to the new statsmodels structure: cox survival model, mixed effects model with repeated measures, generalized additive model and the formula framework. The sandbox also contains code that is currently being worked on until it fits the pattern of statsmodels or is sufficiently tested.

All sandbox modules have to be explicitly imported to indicate that they are not yet part of the core of statsmodels. The quality and testing of the sandbox code varies widely.


There are some examples in the sandbox.examples folder. Additional examples are directly included in the modules and in subfolders of the sandbox.

Module Reference

Time Series analysis tsa

In this part we develop models and functions that will be useful for time series analysis. Most of the models and function have been moved to statsmodels.tsa.

Moving Window Statistics

Most moving window statistics, like rolling mean, moments (up to 4th order), min, max, mean, and variance, are covered by the functions for Moving (rolling) statistics/moments in Pandas.

movstat.movorder(x[, order, windsize, lag])

moving order statistics

movstat.movmean(x[, windowsize, lag])

moving window mean

movstat.movvar(x[, windowsize, lag])

moving window variance

movstat.movmoment(x, k[, windowsize, lag])

non-central moment

Regression and ANOVA

The following two ANOVA functions are fully tested against the NIST test data for balanced one-way ANOVA. anova_oneway follows the same pattern as the oneway anova function in scipy.stats but with higher precision for badly scaled problems. anova_ols produces the same results as the one way anova however using the OLS model class. It also verifies against the NIST tests, with some problems in the worst scaled cases. It shows how to do simple ANOVA using statsmodels in three lines and is also best taken as a recipe.

anova_oneway(y, x[, seq])

anova_ols(y, x)

The following are helper functions for working with dummy variables and generating ANOVA results with OLS. They are best considered as recipes since they were written with a specific use in mind. These function will eventually be rewritten or reorganized.

try_ols_anova.data2dummy(x[, returnall])

convert array of categories to dummy variables by default drops dummy variable for last category uses ravel, 1d only

try_ols_anova.data2groupcont(x1, x2)

create dummy continuous variable


creates product dummy variables from 2 columns of 2d array

try_ols_anova.dropname(ss, li)

drop names from a list of strings, names to drop are in space delimited list does not change original list

try_ols_anova.form2design(ss, data)

convert string formula to data dictionary

The following are helper functions for group statistics where groups are defined by a label array. The qualifying comments for the previous group apply also to this group of functions.

try_catdata.cat2dummy(y[, nonseq])

try_catdata.convertlabels(ys[, indices])

convert labels based on multiple variables or string labels to unique index labels 0,1,2,...,nk-1 where nk is the number of distinct labels

try_catdata.groupsstats_1d(y, x, labelsunique)

use ndimage to get fast mean and variance

try_catdata.groupsstats_dummy(y, x[, nonseq])

try_catdata.groupstatsbin(factors, values)

uses np.bincount, assumes factors/labels are integers

try_catdata.labelmeanfilter(y, x)

try_catdata.labelmeanfilter_nd(y, x)

try_catdata.labelmeanfilter_str(ys, x)

Additional to these functions, sandbox regression still contains several examples, that are illustrative of the use of the regression models of statsmodels.

Systems of Regression Equations and Simultaneous Equations

The following are for fitting systems of equations models. Though the returned parameters have been verified as accurate, this code is still very experimental, and the usage of the models will very likely change significantly before they are added to the main codebase.

SUR(sys[, sigma, dfk])

Seemingly Unrelated Regression

Sem2SLS(sys[, indep_endog, instruments])

Two-Stage Least Squares for Simultaneous equations


Descriptive Statistics Printing

descstats.sign_test(samp[, mu0])

Signs test

descstats.descstats(data[, cols, axis])

Prints descriptive statistics for one or multiple variables.

Original stats.models

None of these are fully working. The formula framework is used by cox and mixed.

Mixed Effects Model with Repeated Measures using an EM Algorithm


Cox Proportional Hazards Model


Generalized Additive Models




Last update: Dec 14, 2023