statsmodels.regression.rolling.RollingOLS¶
-
class statsmodels.regression.rolling.RollingOLS(endog, exog, window=
None
, *, min_nobs=None
, missing='drop'
, expanding=False
)[source]¶ Rolling Ordinary Least Squares
- Parameters:¶
- endogarray_like
A 1-d endogenous response variable. The dependent variable.
- exogarray_like
A nobs x k array where nobs is the number of observations and k is the number of regressors. An intercept is not included by default and should be added by the user. See
statsmodels.tools.add_constant
.- window
int
Length of the rolling window. Must be strictly larger than the number of variables in the model.
- min_nobs{
int
,None
} Minimum number of observations required to estimate a model when data are missing. If None, the minimum depends on the number of regressors in the model. Must be smaller than window.
- missing
str
,default
“drop” Available options are “drop”, “skip” and “raise”. If “drop”, any observations with nans are dropped and the estimates are computed using only the non-missing values in each window. If ‘skip’ blocks containing missing values are skipped and the corresponding results contains NaN. If ‘raise’, an error is raised. Default is ‘drop’.
- expandingbool,
default
False
If True, then the initial observations after min_nobs are filled using an expanding scheme until
window
observations are available, after which rolling is used.
See also
statsmodels.regression.linear_model.OLS
OLS estimation and parameter testing.
Notes
Tested against OLS for accuracy.
Results may differ from OLS applied to windows of data if this model contains an implicit constant (i.e., includes dummies for all categories) rather than an explicit constant (e.g., a column of 1s).
Examples
>>> from statsmodels.regression.rolling import RollingOLS >>> from statsmodels.datasets import longley >>> data = longley.load() >>> exog = add_constant(data.exog, prepend=False) >>> mod = RollingOLS(data.endog, exog) >>> rolling_res = mod.fit(reset=50)
Use params_only to skip all calculations except parameter estimation
>>> rolling_params = mod.fit(params_only=True)
Use expanding and min_nobs to fill the initial results using an expanding scheme until window observation, and the roll.
>>> mod = RollingOLS(data.endog, exog, window=60, min_nobs=12, ... expanding=True) >>> rolling_res = mod.fit()
Methods
fit
([method, cov_type, cov_kwds, reset, ...])Estimate model parameters.
from_formula
(formula, data, window[, ...])Create a Model from a formula and dataframe.