statsmodels.regression.mixed_linear_model.MixedLM

class statsmodels.regression.mixed_linear_model.MixedLM(endog, exog, groups, exog_re=None, exog_vc=None, use_sqrt=True, missing='none', **kwargs)[source]

线性混合效应模型

Parameters:
endog1d array_like

因变量

exog2d array_like

用于确定均值结构(“固定效应”协变量)的协变量矩阵。

groups1d array_like

一个标签向量,用于确定分组 – 来自不同组的数据是独立的

exog_re2d array_like

用于确定方差和协方差结构(“随机效应”协变量)的协变量矩阵。如果为None,则默认为每个组的随机截距。

exog_vcVCSpec instance or dict-like (deprecated)

VCSPec 实例定义了模型中方差分量的结构。或者,请参阅下面的字典格式说明。字典格式已被弃用,并可能在未来的某个时间点被移除。

use_sqrtbool

如果为真,优化将使用随机效应协方差矩阵的平方根的下三角部分进行,否则将使用随机效应协方差矩阵的下三角部分进行。

missingstr

处理缺失数据的方法

Attributes:
endog_names

内生变量的名称。

exog_names

外生变量的名称。

注释

如果 exog_vc 不是 VCSpec 实例,那么它必须是一个字典的字典。具体来说,exog_vc[a][g] 是一个矩阵,其列使用独立的随机系数进行线性组合。这个随机项随后会贡献给组 g 的数据的方差结构。所有随机系数的均值为零,并且具有相同的方差。该矩阵必须是 m x k,其中 m 是组 g 中的观测数量。列数可能在顶级组之间有所不同。

exogexog_reexog_vc 中的协变量可能(但不需要)部分或完全重叠。

use_sqrt 几乎总是应该设置为 True。当协方差结构中设置了复杂的固定值模式(使用 free 参数传递给 fit),而这些模式无法用 Cholesky 因子 L 表示时,主要使用 use_sqrt=False。

示例

一个包含固定效应的混合模型,用于exog列,并为每个不同的group值提供随机截距:

>>> model = sm.MixedLM(endog, exog, groups)
>>> result = model.fit()

一个混合模型,具有exog列的固定效应和exog_re列的相关随机系数:

>>> model = sm.MixedLM(endog, exog, groups, exog_re=exog_re)
>>> result = model.fit()

一个混合模型,具有exog列的固定效应和exog_re列的独立随机系数:

>>> free = MixedLMParams.from_components(
                 fe_params=np.ones(exog.shape[1]),
                 cov_re=np.eye(exog_re.shape[1]))
>>> model = sm.MixedLM(endog, exog, groups, exog_re=exog_re)
>>> result = model.fit(free=free)

指定exog_re列的独立随机系数的另一种方法。在这个例子中,groups必须是一个与exog_re具有兼容索引的Pandas Series,并且exog_re有两列。

>>> g = pd.groupby(groups, by=groups).groups
>>> vc = {}
>>> vc['1'] = {k : exog_re.loc[g[k], 0] for k in g}
>>> vc['2'] = {k : exog_re.loc[g[k], 1] for k in g}
>>> model = sm.MixedLM(endog, exog, groups, vcomp=vc)
>>> result = model.fit()

方法

fit([start_params, reml, niter_sa, do_cg, ...])

拟合一个线性混合模型到数据中。

fit_regularized([start_params, method, ...])

拟合一个模型,其中固定效应参数受到惩罚。

from_formula(formula, data[, re_formula, ...])

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

get_distribution(params, scale, exog)

get_fe_params(cov_re, vcomp[, tol])

使用GLS更新固定效应参数估计。

get_scale(fe_params, cov_re, vcomp)

返回基于给定的斜率和随机效应协方差矩阵估计的误差方差估计值。

group_list(数组)

返回 数组 根据分组结构拆分成的子数组。

hessian(params)

返回模型的Hessian矩阵。

information(params)

模型的费舍尔信息矩阵。

initialize()

初始化(可能重新初始化)一个模型实例。

loglike(params[, profile_fe])

评估线性混合效应模型的(轮廓)对数似然性。

predict(params[, exog])

从设计矩阵返回预测值。

score(params[, profile_fe])

返回轮廓对数似然函数的得分向量。

score_full(params, calc_fe)

返回相对于未转换参数的得分。

score_sqrt(params[, calc_fe])

返回相对于转换参数的分数。

属性

endog_names

内生变量的名称。

exog_names

外生变量的名称。


Last update: Oct 16, 2024