我正在使用 statsmodels.formula.api.mixedlm 来计算类内相关系数和其他指标。
我的数据集非常简单,它包含一个特征值、一个访问日期和一个主题 ID。
我正在使用以下代码块来拟合混合线性模型
mdf = smf.mixedlm("feature_value ~ 1+ visit", data,
groups=data["subject_id"]
)
mdf = mdf.fit()
ICC 定义为:between_subject_variance / (between_subject_variance + within_subject_variance)
我知道如何使用 SAS(使用 Var_bw 和 Var_wt 参数)提取这些指标,但是 我不知道如何使用 python 模型访问那些,尤其是主体内方差(我尝试了 mdf.cov_re / (mdf.cov_re + mdf.scale) 但我不相信结果)。有什么建议么?我真的不关心 ICC 我真正想要的是主体间和主体内的差异。
拟合的
cov_re
属性返回随机效应的协方差矩阵,其中包括主体间方差。 scale
参数的平方根为您提供主体内方差
mdf_fit = mdf.fit()
between_var = mdf_fit.cov_re.diagonal().sum()
within_var = mdf_fit.scale ** 2