You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python的statsmodels mixedlm提取组间与组内方差?

提取混合线性模型的组间与组内方差

针对你用statsmodels.formula.api.mixedlm拟合的模型,组间和组内方差可以直接从拟合后的模型对象中提取,对应关系如下:

核心对应关系

  • 组间方差:对应随机效应(这里是不同受试者的截距变异)的方差,存储在mdf.cov_re中。由于你的模型仅包含随机截距(按subject_id分组),cov_re是一个1×1的矩阵,取其唯一元素即可得到组间方差。
  • 组内方差:对应残差的方差,也就是同一受试者不同访视间的变异,直接取mdf.scale即可,这个值对应SAS中Var_wt代表的组内方差。

代码示例

# 提取组间方差(随机截距的方差)
between_subject_var = mdf.cov_re[0, 0]

# 提取组内方差(残差方差)
within_subject_var = mdf.scale

补充说明

你之前尝试的ICC计算逻辑是正确的(组间方差/(组间方差+组内方差)),但既然你只需要两个方差值,直接提取上述变量即可。如果后续模型扩展到包含随机斜率(比如加入visit的随机效应),cov_re会变成对应维度的协方差矩阵,你需要根据随机效应的位置提取对应方差项。

内容的提问来源于stack exchange,提问作者Lord exec

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 19:16:03