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 smfmodel.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.rhkb.cn/news/2144.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大疆机场及无人机上云

最近基于大疆上云api进行二次开发,后面将按照开发步骤对其进行说明!

【WEB】网络传输中的信息安全 - 加密、签名、数字证书与HTTPS

文章目录 1. 概述2. 网络传输安全2.1.什么是中间人攻击2.2. 加密和签名2.2.1.加密算法2.2.2.摘要2.2.3.签名 2.3.数字证书2.3.1.证书的使用2.3.2.根证书2.3.3.证书链 2.4.HTTPS 1. 概述 本篇主要是讲解讲一些安全相关的基本知识(如加密、签名、证书等)&…

SpringMVC

开发模式: (1)前后端不分离:服务端渲染 数据和结构并不分离,客户端发送请求后访问指定路径资源,服务端业务处理之后将数据组装到页面,并返回带数据的完整页面。 (2)前…

uni-app编写微信小程序使用uni-popup搭配uni-popup-dialog组件在ios自动弹出键盘。

uni-popup-dialog 对话框 将 uni-popup 的type属性改为 dialog&#xff0c;并引入对应组件即可使用对话框 &#xff0c;该组件不支持单独使用 示例 <button click"open">打开弹窗</button> <uni-popup ref"popup" type"dialog"…

UML系列之Rational Rose笔记九:组件图

一、新建组件图 二、组件图成品展示 三、工作台介绍 最主要的还是这个component组件&#xff1b; 然后还有这几个&#xff0c;正常是用不到的&#xff1b;基本的使用第四部分介绍一下&#xff1a; 四、基本使用示例 这些&#xff0c;主要是运用package还有package specifica…

数据结构《MapSet哈希表》

文章目录 一、搜索树1.1 定义1.2 模拟实现搜索 二、Map2.1 定义2.2 Map.Entry2.3 TreeMap的使用2.4 Map的常用方法 三、Set3.1 定义3.2 TreeSet的使用3.3 Set的常用方法 四、哈希表4.1 哈希表的概念4.2 冲突4.2.1 冲突的概念4.2.2 冲突的避免1. 选择合适的哈希函数2. 负载因子调…

赛灵思(Xilinx)公司Artix-7系列FPGA

苦难从不值得歌颂&#xff0c;在苦难中萃取的坚韧才值得珍视&#xff1b; 痛苦同样不必美化&#xff0c;从痛苦中开掘出希望才是壮举。 没有人是绝对意义的主角&#xff0c; 但每个人又都是自己生活剧本里的英雄。滑雪&#xff0c;是姿态优雅的“贴地飞行”&#xff0c;也有着成…

qt vs ios开发应用环境搭建和上架商店的记录

qt 下载链接如下 https://download.qt.io/new_archive/qt/5.14/5.14.2/qt-opensource-mac-x64-5.14.2.dmg 安装选项全勾选就行&#xff0c;这里特别说明下qt5.14.2/qml qt5.14.2对qml支持还算成熟&#xff0c;但很多特性还得qt6才行&#xff0c;这里用qt5.14.2主要是考虑到服…

JavaSE学习心得(反射篇)

反射 前言 获取class对象的三种方式 利用反射获取构造方法 利用反射获取成员变量 利用反射获取成员方法 练习 保存信息 跟配置文件结合动态创建 前言 接上期文章&#xff1a;JavaSE学习心得&#xff08;多线程与网络编程篇&#xff09; 教程链接&#xff1a;黑马…

FPGA 串口与HC05蓝牙模块通信

介绍 关于接线&#xff1a;HC-05蓝牙模块一共有6个引脚&#xff0c;但经过我查阅资料以及自己的实操&#xff0c;实际上只需要用到中间的4个引脚即可&#xff08;即RXD,TXD,GND,VCC&#xff09;。需要注意的是&#xff0c;蓝牙模块的RXD引脚需要接单片机的TXD引脚&#xff0c;同…

基于CiteSpace的知网专利文献计量分析与可视化

CiteSpace是一款可视化学术文献分析软件&#xff0c;它可以帮助用户分析和可视化研究领域的文献数据。适用于分析大量文献数据&#xff0c;例如由 Web of Science、Scopus 和知网等学术数据库生成的数据。图为来自CiteSpace的成图&#xff0c;是不是很美观&#xff1f;接下来我…

Gitee图形界面上传(详细步骤)

目录 1.软件安装 2.安装顺序 3.创建仓库 4.克隆远程仓库到本地电脑 提交代码的三板斧 1.软件安装 Git - Downloads (git-scm.com) Download – TortoiseGit – Windows Shell Interface to Git 2.安装顺序 1. 首先安装git-2.33.1-64-bit.exe&#xff0c;顺序不能搞错2. …

深入了解生成对抗网络(GAN):原理、实现及应用

生成对抗网络&#xff08;GAN, Generative Adversarial Networks&#xff09;是由Ian Goodfellow等人于2014年提出的一种深度学习模型&#xff0c;旨在通过对抗训练生成与真实样本相似的数据。GAN在图像生成、图像修复、超分辨率等领域取得了显著的成果。本文将深入探讨GAN的基…

Git的基本命令以及其原理(公司小白学习)

从 Git 配置、代码提交与远端同步三部分展开&#xff0c;重点讲解 Git 命令使用方式及基本原理。 了解这些并不是为了让我们掌握&#xff0c;会自己写版本控制器&#xff0c;更多的是方便大家查找BUG&#xff0c;解决BUG &#xff0c;这就和八股文一样&#xff0c;大多数都用…

信号与系统初识---信号的分类

文章目录 0.引言1.介绍2.信号的分类3.关于周期大小的求解4.实信号和复信号5.奇信号和偶信号6.能量信号和功率信号 0.引言 学习这个自动控制原理一段时间了&#xff0c;但是只写了一篇博客&#xff0c;其实主要是因为最近在打这个华数杯&#xff0c;其次是因为在补这个数学知识…

【初识扫盲】厚尾分布

厚尾分布&#xff08;Fat-tailed distribution&#xff09;是一种概率分布&#xff0c;其尾部比正态分布更“厚”&#xff0c;即尾部的概率密度更大&#xff0c;极端值出现的概率更高。 一、厚尾分布的特征 尾部概率大 在正态分布中&#xff0c;极端值&#xff08;如距离均值很…

--- 多线程编程 基本用法 java ---

随着时代的发展&#xff0c;单核cpu的发展遇到了瓶颈&#xff0c;而要提高算力就要发展多核cpu&#xff0c;他能允许多个程序同时运行&#xff0c;这时并发编程他能利用到多核的优势&#xff0c;于是就成为了时代所趋了 其实多进程编程也能进行实现并发编程&#xff0c;只不过…

Linux网络_套接字_UDP网络_TCP网络

一.UDP网络 1.socket()创建套接字 #include<sys/socket.h> int socket(int domain, int type, int protocol);domain (地址族): AF_INET网络 AF_UNIX本地 AF_INET&#xff1a;IPv4 地址族&#xff0c;适用于 IPv4 协议。用于网络通信AF_INET6&#xff1a;IPv6 地址族&a…

idea分支合并代码

步骤一 首先把两个分支的代码都提交了&#xff0c;保持和远程仓库一致&#xff0c;不要有任何没提交的代码。如果一些程序的yml配置文件&#xff0c;不想提交&#xff0c;可以复制一个&#xff0c;不受git管理。如果有没有提交的代码&#xff0c;合并分支的时候就会提示那些代…

Java安全—SPEL表达式XXESSTI模板注入JDBCMyBatis注入

前言 之前我们讲过SpringBoot中的MyBatis注入和模板注入的原理&#xff0c;那么今天我们就讲一下利用以及发现。 这里推荐两个专门研究java漏洞的靶场&#xff0c;本次也是根据这两个靶场来分析代码&#xff0c;两个靶场都是差不多的。 https://github.com/bewhale/JavaSec …