当前位置: 首页 > article >正文

Python线性混合效应回归LMER分析大鼠幼崽体重数据、假设检验可视化|数据分享...

全文链接:https://tecdat.cn/?p=38816

在数据分析领域,当数据呈现出层次结构时,传统的一般线性模型(GLM)可能无法充分捕捉数据的特征。混合效应回归作为GLM的扩展,能够有效处理这类具有层次结构的数据,如聚类数据、重复测量数据和纵向数据等。本文将深入探讨混合效应回归的基本原理、关键概念、不同模型类型的差异,以及如何使用Python进行建模和分析点击文末“阅读原文”获取完整代码数据)。

混合效应回归基础

(一)定义与模型公式

混合效应回归是对一般线性模型的扩展,它考虑了数据的层次结构 。一般线性回归方程为:
9f5802565fc1f5ea38fc060bbc671220.png
其中,XX 是一个 N×pN×p 的设计矩阵,包含每个个体(NN)对于模型中每个自变量(pp)的观测值;ββ 是一个 p×1p×1 的列向量,包含模型中每个自变量的回归系数;ϵϵ 是一个 N×1N×1 的列向量,包含模型的误差(残差)。
而混合效应模型方程为:
dd179f7d2fa0135a0048ede1122dd032.png
其中,ZZ 是一个 N×qN×q 的设计矩阵,包含每个个体(NN)对于随机效应的每个协变量(qq)的观测值;uu 是一个 q×1q×1 的向量,包含矩阵 ZZ 中 qq 个协变量的随机效应。

(二)层次结构

在混合效应模型中,数据的层次结构通常用“层级”或“聚类”来描述。例如,在研究学生标准化考试成绩时,假设没有统一的课程和指导方针,数据是从不同学区的不同学校随机抽取的,每个数据行代表一个学生。这里,第1层是分析的基本单位,即学生;第2层是学校,将第1层的所有学生聚类到不同学校;第3层是学区,将第2层的学校进一步聚类。第2层及以上层级是被建模的随机效应。
图1展示了这种层次结构:
2931402917415c82c52470e4739ba227.png
图1 数据层次结构可视化

(三)固定因素与随机因素

固定效应参数描述了整个总体中协变量与因变量之间的关系,而随机效应则特定于总体中的主体聚类。固定因素是研究感兴趣的自变量,如治疗类别、性别等;随机因素是分析单位所属的分类变量,通常定义了第2层、第3层或更高层级。例如,在上述学校研究中,学校(第2层)是随机因素,因为它是学生(第1层)的聚类变量 。变量被定义为固定效应还是随机效应,取决于研究目标和分析方法。

(四)混合效应模型类型差异

混合效应模型主要有随机截距模型、随机斜率模型和随机截距与斜率模型。随机截距模型允许基于聚类变量有不同的截距;随机斜率模型允许基于某个变量有不同的斜率;随机截距与斜率模型则同时允许基于聚类变量有不同的截距和基于某个变量有不同的斜率。
如图2所示,展示了随机截距模型和随机截距与斜率模型的差异:

ed698db3016e0271eb9be1291253dc0b.png
图2 随机截距模型和随机截距与斜率模型差异

混合效应回归的假设与检验

(一)假设条件

  • 误差独立性:各观测值的误差之间相互独立。

  • 误差方差齐性:不同观测值的误差方差相等。

  • 误差正态性:误差服从正态分布。

(二)假设检验

  • 固定效应假设检验:

  • 多个固定效应检验:2a19e3da98fbd0509f647e87f1524fb0.png

  • 单个固定效应检验:35d94e72cfa7a17640cc68bd4e60809b.png

  • 协方差参数似然比检验:假设嵌套模型和参考模型具有相同的固定效应,但协方差参数不同。计算参考模型和嵌套模型的 -2 REML对数似然的正差值,然后根据适当的 χ2χ2 分布查找 pp 值。
    d567405a288e6e3660127bc44102e269.png
    当计算的检验统计量小于指定显著 pp 值的临界值时,拒绝原假设。

Python实现混合效应回归

(一)数据准备

本研究使用的数据集,旨在比较不同窝中大鼠幼崽的出生体重查看文末了解数据免费获取方式。在这些窝中,一些雌性母鼠接受了“高剂量”“低剂量”和“对照”的实验处理。原设计中每个处理条件分配了10只雌性大鼠,但“高剂量”处理中有3只死亡,导致研究设计不平衡。在本研究中,窝将作为聚类变量(第2层),大鼠幼崽作为分析单位(第1层)。

import pandas as pd
import researchpy as rp

fef75b3fd10c174e97f41d3798f331cc.png

(二)数据探索

查看数据集中的变量信息:

e13643528e37e08f29c7e955acf60cea.png 

分析大鼠幼崽体重基于性别和处理组的情况:

6165cc28f5c0d23c4a6cda5cf390f82e.png 

可视化体重按处理组和性别的分布:

boxplot = data.boxplot
  • 7b640dc18398dec6a1e324147e0bc560.png
    图3 体重按处理组和性别的箱线图

(三)模型构建

  1. 随机截距模型

import statsmodels.formula.api as smf

model.summary()

b87263eaec26da33c0b1360f4f51cdcd.png 

52b67f4e69dd72a50b6eff1ff2e54bc7.png


点击标题查阅往期内容

d2cf9ea17432c496106c66864b945a2f.jpeg

R语言用Rshiny探索lme4广义线性混合模型(GLMM)和线性混合模型(LMM)

outside_default.png

左右滑动查看更多

outside_default.png

01

d5a9c1bc868a33edb65077389a62a671.png

02

34c23ae02f271c27581b22c0ebf9632c.png

03

455e582c09726378edc5185d558e9ba7.png

04

4272a1b34eaf3c0f48056f897d165c29.png

移除不显著的交互项后重新建模:

"weight ~ litsize + C(treatment) + C(sex, Treatment('Male'))", data,

de12313f27f914d095af8049d3bfb2be.png

计算组内相关系数(ICC):
8fec31a56ebb570712a07e3fb3f3ad4b.png
这表明同一窝中体重之间存在中等程度的相关性。

  1. 随机斜率模型

  • 随机截距和斜率不相关

"weight ~ litsize + C(treatment) + C(sex)", data, groups= "litter",
 vc_formula = {"sex" : "0 + C(sex)"}).fit()

21ab80b3ed458579da32746f2a0c2c39.png

  • 随机截距和斜率相关

"weight ~ litsize + C(treatment) + C(sex)", data, groups= "litter",
 re_formula = "1 + C(sex)").fit()

01472d4c5574462dddde1b09f1d6372b.png 

计算随机截距和随机斜率之间的估计相关系数:
86a93d8399d9c6511c6536864ca4ca78.png
这表明体重较高的窝中,雄性大鼠幼崽往往体重也较高。

(四)假设检验

  • 正态性检验

  • 可视化残差的核密度估计图和Q-Q图:

3ca1223548fcda37aeefffc0b73cebd6.png
图4 模型残差的KDE图

817014d169aae964733dca97406eb464.png
图5 模型残差的Q-Q图

  • 正式的Shapiro-Wilk正态性检验:

结果显示残差的正态性假设被违反。

  • 方差齐性检验

  • 可视化残差与拟合值的散点图(RVF图)和残差按窝的箱线图:

fig = plt.figure(figsize = (16, 9))
ax = sns.scatterplot(y = model.resid,

1bdb3397ced783a0dc255f3a543bdd4a.png
图6 RVF图

a502d4fa3d5bc64db0dad7a938efa663.png
图7 残差按窝的箱线图

  • 正式的White’s拉格朗日乘数异方差检验:

t p-value"\]
for key, val in dict(zip(labels, het\_white\_res)).items():
 print(key, val)

bff936dcb98c41e6dd6929c5e9feff1c.png 

正式检验表明方差齐性假设被违反。

结论

本文全面介绍了混合效应回归模型,从理论基础到Python实现,包括模型的构建、假设检验以及结果分析。通过对大鼠幼崽体重数据的分析,展示了混合效应回归在处理具有层次结构数据时的有效性。在实际应用中,需根据数据特点和研究目的选择合适的混合效应模型类型,并严格检验模型假设,以确保分析结果的可靠性。未来的研究可以进一步探索如何更好地处理假设违反的情况,以及将混合效应回归应用于更复杂的数据场景。

数据获取

在公众号后台回复“大鼠数”,可免费获取完整数据。

72fce207385e92ca8dae8b8d4ba24e5d.jpeg

本文中分析的数据、代码分享到会员群,扫描下面二维码即可加群! 

0cd047fef98165e33bef38f2382f54b9.png


资料获取

在公众号后台回复“领资料”,可免费获取数据分析、机器学习、深度学习等学习资料。

73e75a068388b46237f05bbff5ea200d.jpeg

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《Python线性混合效应回归LMER分析大鼠幼崽体重数据、假设检验可视化》。

点击标题查阅往期内容

R语言用Rshiny探索lme4广义线性混合模型(GLMM)和线性混合模型(LMM)

R语言用潜类别混合效应模型(Latent Class Mixed Model ,LCMM)分析老年痴呆年龄数据

R语言贝叶斯广义线性混合(多层次/水平/嵌套)模型GLMM、逻辑回归分析教育留级影响因素数据

R语言估计多元标记的潜过程混合效应模型(lcmm)分析心理测试的认知过程

R语言因子实验设计nlme拟合非线性混合模型分析有机农业施氮水平

R语言非线性混合效应 NLME模型(固定效应&随机效应)对抗哮喘药物茶碱动力学研究

R语言用线性混合效应(多水平/层次/嵌套)模型分析声调高低与礼貌态度的关系

R语言LME4混合效应模型研究教师的受欢迎程度

R语言nlme、nlmer、lme4用(非)线性混合模型non-linear mixed model分析藻类数据实例

R语言混合线性模型、多层次模型、回归模型分析学生平均成绩GPA和可视化

R语言线性混合效应模型(固定效应&随机效应)和交互可视化3案例

R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析教育留级调查数据

R语言 线性混合效应模型实战案例

R语言混合效应逻辑回归(mixed effects logistic)模型分析肺癌数据

R语言如何用潜类别混合效应模型(LCMM)分析抑郁症状

R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

R语言建立和可视化混合效应模型mixed effect model

R语言LME4混合效应模型研究教师的受欢迎程度

R语言 线性混合效应模型实战案例

R语言用Rshiny探索lme4广义线性混合模型(GLMM)和线性混合模型(LMM)

R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

R语言如何解决线性混合模型中畸形拟合(Singular fit)的问题

基于R语言的lmer混合线性回归模型

R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型

R语言分层线性模型案例

R语言用WinBUGS 软件对学术能力测验(SAT)建立分层模型

使用SAS,Stata,HLM,R,SPSS和Mplus的分层线性模型HLM

R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型

SPSS中的多层(等级)线性模型Multilevel linear models研究整容手术数据

用SPSS估计HLM多层(层次)线性模型模型 

56adf0cbb5a95d06c4c21c9b894d8098.jpeg

4c384f5016573b6a5c2f4e9de01c65bf.png

595c48eac9d7ca2bbc6eebf6178e1062.png

9f5f89943ef3b4a70c924ced926c17e9.jpeg

701860291fa987d49c600f0c3adce928.png


http://www.kler.cn/a/505294.html

相关文章:

  • 1️⃣Java中的集合体系学习汇总(List/Map/Set 详解)
  • vscode 扩展Cline、Continue的差别?
  • 【Hive】新增字段(column)后,旧分区无法更新数据问题
  • ETL 数据抽取
  • 【make】makefile 函数全解
  • 【华为云开发者学堂】基于华为云 CodeArts CCE 开发微服务电商平台
  • 如何使用淘宝URL采集商品详情数据及销量
  • python设置键值对
  • Linux网络知识——路由表
  • 少一点If/Else - 状态模式(State Pattern)
  • SQL记录
  • Spring Boot 3.x 整合 Logback 日志框架(支持异步写入)
  • 59_Redis键值设计
  • 音视频文件提供流式传输之HTTP Range 请求
  • 【PHP】双方接口通信校验服务
  • 永久免费不限速下载器支持市面上大部分BT链接
  • vue中 子组件在父组件中因为异步问题导致的的underfind报错问题
  • 通用仓库管理系统开发书 Pyside6 + Sqlite3
  • 工业界主流大语言模型后训练技术综述:偏好对齐与能力提升
  • 【Block总结】ELGCA模块,池化-转置(PT)注意力和深度卷积有效聚合局部和全局上下文信息
  • 2025-01-08 - 通用人工智能技术 - RAG - 双系统 GPU直通 - 流雨声
  • LeetCode 3066.超过阈值的最少操作数 II:模拟 - 原地建堆O(1)空间 / 优先队列O(n)空间
  • WEB 攻防-通用漏-XSS 跨站脚本攻击-反射型/存储型/DOMBEEF-XSS
  • 书生大模型基础岛第四关
  • 批量识别图片型PDF指定区域内容识别保存表格+PDF批量改名:技术难题与项目实战总结
  • 【Sql递归查询】Mysql、Oracle、SQL Server、PostgreSQL 实现递归查询的区别与案例(详解)