statsmodels.genmod.bayes_mixed_glm.BinomialBayesMixedGLM

class statsmodels.genmod.bayes_mixed_glm.BinomialBayesMixedGLM(endog, exog, exog_vc, ident, vcp_p=1, fe_p=2, fep_names=None, vcp_names=None, vc_names=None)[source]

广义线性混合模型与贝叶斯估计

该类实现了后验分布的拉普拉斯近似(fit_map)和变分贝叶斯近似(fit_vb)。请参阅两种拟合方法的文档字符串以获取有关拟合方法的更多信息。

Parameters:
endogarray_like

响应值的向量。

exogarray_like

固定效应部分均值结构的协变量数组。

exog_vcarray_like

随机部分的模型的协变量数组。可以提供一个scipy.sparse数组,否则传递的数组将在内部转换为稀疏格式。

identarray_like

显示哪些随机项(exog_vc 的列)具有共同方差的整数标签数组。

vcp_pfloat

方差分量参数的先验标准差(随机效应标准差的对数(s)的先验标准差为vcp_p,其中s是随机效应的标准差)。

fe_pfloat

固定效应参数的先验标准差。

familystatsmodels.genmod.families instance

广义线性模型(GLM)族。

fep_nameslist[str]

固定效应参数的名称(对应于exog的列)。如果为None,则构建默认名称。

vcp_nameslist[str]

方差分量参数的名称(对应于ident中的不同标签)。如果为None,则构建默认名称。

vc_nameslist[str]

随机效应实现的名称。

Attributes:
endog_names

内生变量的名称。

exog_names

外生变量的名称。

Returns:
MixedGLMResults object

注释

后验分布中有三种类型的值: 固定效应参数(fep),对应于exog的列,随机效应实现(vc),对应于exog_vc的列,以及随机效应实现的标准差(vcp),对应于ident中的唯一整数标签。

所有随机效应都被建模为独立的正态分布值(给定方差结构参数)。exog_vc的每一列都有一个不同的实现的随机效应,用于形成线性预测因子。ident的元素决定了不同的方差结构参数。具有相同ident值的两个随机效应实现具有相同的方差。当使用公式进行拟合时,ident是内部构造的(vc_formulas的每个元素在ident中产生一个不同的标签)。

随机效应标准差参数(vcp)具有对数正态先验分布,均值为0,标准差为vcp_p

请注意,对于某些分布族,例如二项分布,如果将 vcp_p 设置为过大的值,后验模式可能难以通过数值方法找到。将 vcp_p 设置为 0.5 似乎效果良好。

固定效应参数的先验是均值为0且标准差为fe_p的高斯分布。建议对定量协变量进行标准化。

参考文献

广义线性混合模型简介: https://stats.idre.ucla.edu/other/mult-pkg/introduction-to-generalized-linear-mixed-models

SAS 文档: https://support.sas.com/documentation/cdl/en/statug/63033/HTML/default/viewer.htm#statug_intromix_a0000000215.htm

二元结果的广义线性混合模型估计方法评估 https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3866838/

示例

一个带有随机截距的二项式(逻辑回归)随机效应模型,适用于村庄,以及每个村庄内每年的随机斜率:

>>> random = {"a": '0 + C(Village)', "b": '0 + C(Village)*year_cen'}
>>> model = BinomialBayesMixedGLM.from_formula(
               'y ~ year_cen', random, data)
>>> result = model.fit_vb()

方法

fit([method, minim_opts])

fit 等同于 fit_map。

fit_map([method, minim_opts, scale_fe])

构建后验分布的拉普拉斯近似。

fit_vb([mean, sd, fit_method, minim_opts, ...])

使用变分贝叶斯均值场近似拟合模型。

from_formula(公式, vc_formulas, 数据[, ...])

使用公式拟合一个BayesMixedGLM。

logposterior(params)

总体对数密度:log p(y, fe, vc, vcp)。

logposterior_grad(参数)

对数后验的梯度。

predict(params[, exog, linear])

返回拟合的均值结构。

vb_elbo(vb_mean, vb_sd)

返回模型的证据下界(ELBO)。

vb_elbo_base(h, tm, fep_mean, vcp_mean, ...)

返回模型的证据下界(ELBO)。

vb_elbo_grad(vb_mean, vb_sd)

返回模型证据下界(ELBO)的梯度。

vb_elbo_grad_base(h, tm, tv, fep_mean, ...)

返回ELBO函数的梯度。

属性

endog_names

内生变量的名称。

exog_names

外生变量的名称。

rng

verbose


Last update: Oct 16, 2024