statsmodels.regression.rolling.RollingOLS

class statsmodels.regression.rolling.RollingOLS(endog, exog, window=None, *, min_nobs=None, missing='drop', expanding=False)[source]

滚动普通最小二乘法

Parameters:
endogarray_like

一个一维的内生响应变量。因变量。

exogarray_like

一个 nobs x k 的数组,其中 nobs 是观测值的数量,k 是回归变量的数量。默认情况下不包含截距,应由用户添加。请参阅 statsmodels.tools.add_constant

windowint

滚动窗口的长度。必须严格大于模型中的变量数量。

min_nobs{int, None}

当数据缺失时,估计模型所需的最小观测数量。如果为None,最小值取决于模型中的回归变量数量。必须小于窗口大小。

missingstr, default “drop”

可用的选项有“drop”、“skip”和“raise”。如果选择“drop”,任何包含nans的观测值都会被删除,并且估计值会使用每个窗口中的非缺失值来计算。如果选择‘skip’,包含缺失值的块会被跳过,并且相应的结果会包含NaN。如果选择‘raise’,则会引发错误。默认值是‘drop’。

expandingbool, default False

如果为真,则在min_nobs之后的初始观测值将使用扩展方案进行填充,直到window个观测值可用,之后使用滚动方法。

另请参阅

statsmodels.regression.linear_model.OLS

OLS估计和参数检验。

注释

针对OLS进行了准确性测试。

如果此模型包含隐式常数(即,包含所有类别的虚拟变量)而不是显式常数(例如,一列1),则结果可能与应用于数据窗口的OLS不同。

示例

>>> 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)

使用 params_only 跳过所有计算,除了参数估计

>>> rolling_params = mod.fit(params_only=True)

使用扩展和min_nobs来填充初始结果,使用扩展方案直到窗口观察,然后滚动。

>>> mod = RollingOLS(data.endog, exog, window=60, min_nobs=12,
... expanding=True)
>>> rolling_res = mod.fit()

方法

fit([method, cov_type, cov_kwds, reset, ...])

估计模型参数。

from_formula(公式, 数据, 窗口[, ...])

从公式和数据框创建模型。


Last update: Oct 16, 2024