R语言混合模型回归GBTM群组轨迹模型绘图可视化研究
全文链接:https://tecdat.cn/?p=38581
在回归分析的广袤领域中,面对具有多条未知函数线的复杂数据时,传统方法常常捉襟见肘。混合模型作为一种强有力的分析手段应运而生,其在处理此类复杂情境时展现出独特的优势与潜力(点击文末“阅读原文”获取完整代码数据)。
在实际应用中,如重复测量基于群组的轨迹类型混合模型,诸多因素如样本量大小、时间周期长短、数据分布类型等都会对模型效果产生深刻影响,而这些影响在模型应用前往往难以确切预估。因此,通过模拟数据来深入探究混合模型在不同条件下的表现成为关键研究路径。
混合模型在回归分析中的应用:基于R语言的研究
本文探讨了混合模型在处理具有多条线的回归模型中的应用,通过在R语言中进行实验,展示了混合模型在不同情境下的表现,包括恢复正确的基础方程、AIC/BIC准则在确定群组数量时的局限性以及随机效应模型与潜在群组模型的对比等,为相关领域的研究和实践提供了参考。
在处理回归模型时,当需要拟合具有多条线且事先未知特定函数或线的识别情况时,混合模型是一种有效的解决方案。在测试不同算法时,模拟数据是一种重要的手段,因为通常难以知晓估计器在特定数据上的表现。在混合模型的诸多情形中,例如重复测量基于群组的轨迹类型混合模型,很难预先知道其效果。
例如,是大样本量NN和小时间周期TT,还是小NN和大TT?(如Erosheva等人在2014年指出,较大样本量往往会导致识别出更多的混合成分)。数据是稀疏泊松分布还是高计数泊松分布?有大量数据点时,数据规模和计算时间的关系如何?这些情况都适合通过模拟来观察在已知正确答案时模型的表现。这些问题与特定算法无关,例如对于k - 中心点算法(Adepeju等人,2021;Curman等人,2015)或在这种情况下使用的任何聚类算法都存在。
本文将展示一些不同的结果,包括基于群组的轨迹模型(GBTM)能够恢复正确的基础方程、AIC/BIC拟合统计量难以区分正确的群组数量以及当基础模型是随机效应而非潜在群组时,AIC/BIC表现良好等。
R语言中的示例
(一)数据
首先设置随机种子,三个不同泊松模型的纵向数据。需要注意的是,混合模型不会将一个观测值100%分配给一个基础混合成分,但此处模拟的数据是100%属于特定群组的。
# 设置基础的3个模型
time <- dat$t
# 模型1的参数方程
p1 <- 3.5 - time
# 模型2的参数方程
p2 <- 1.3 + (-1 * time) + 0.1 * time^2
# 模型3的参数方程
p3 <- 0.15 * time
(二)模型拟合与评估
拟合3混合模型
接着拟合一个3混合模型,将后验概率最高的值分配回原始数据集,并查看结果。
# 拟合flexmix模型
mod3 <- flexmix(obs_pois ~ time + I(time^2) | id,
model = FLXMRglm(family = "poisson"),data = dat, k = 3)
dat$mix3 <- clusters(mod3)
# 查看与真实标签的重叠情况
table(dat$lat, dat$mix3)/num\_time\_periods
从结果(如图1所示)可以看出,识别出的群组效果较好,在这个例子中200个样本仅有4个群组被错误分类。
图1:
检查基础方程的恢复情况
然后检查基础方程是否被正确恢复(可能存在群组间分离良好,但多项式拟合不佳的情况)。
结果(如图2所示)表明方程的估计效果达到预期。标准误差较大是因为对于广义线性模型而言,数据样本量并非足够大。
图2:
AIC/BIC在确定群组数量时的表现
当不知道正确的群组数量时,拟合1到8个群组的模型,并使用典型的AIC/BIC准则来确定所选群组。
结果(如图3所示)显示,对于3/5个群组实际上拟合了相同的模型(有时即使告诉
flexmix
拟合5个群组,它也可能只返回较少的数量)。可以看到从群组4开始的拟合统计量几乎相同。所以虽然在这个模拟示例中AIC/BIC在技术上选择了正确的数量,但在选择3个群组还是4个群组时界限很模糊。图3:
(三)随机效应模型的模拟与对比
模拟随机效应模型
模拟随机效应模型,包括随机截距和随时间的简单线性趋势。
# 模拟随机效应模型
library(lme4)re\_mod <- glmer(re\_pois ~ 1 + time + (1 | id),
结果(如图4所示)表明随机效应模型运行良好,能够恢复固定系数并估计随机截距的正确方差。
图4:
AIC/BIC在随机效应模型与GBTM模型中的对比
比较随机效应模型与GBTM模型在1到8个群组下的AIC/BIC。
################################################
# 测试随机效应与GBTM的AIC/BICdata = dat, k = i)aic\[i + 1\] <- AIC(mod)bic\[i + 1\] <- BIC(mod)
}
结果(如图5所示)表明
flexmix
最多给出2个群组的解,且随机效应模型的拟合(无论是AIC还是BIC)比GBTM小很多,不太可能出现错误选择。图5:
基于R语言的群组轨迹模型相关绘图分析
接下来我们聚焦于基于R语言的群组轨迹模型,详细阐述了如何利用ggplot2
包进行数据处理与绘图分析。通过一系列自定义函数,对模型预测值、加权均值等进行计算与可视化展示,包括个体轨迹图、预测值与加权均值图等多种绘图类型,深入探讨了模型在绝对拟合度评估方面的表现,为相关研究与实践提供了全面且实用的参考。
数据加载与模型拟合
out1 <- crimCV(TO1adj,
首先加载数据,使用crimCV
函数拟合基于群组的模型,并绘制基础图(如图1所示)。
此步骤为后续的深入分析与绘图奠定了基础,通过拟合模型得到初步的结果呈现。
点击标题查阅往期内容
R语言混合效应逻辑回归(mixed effects logistic)模型分析肺癌数据
左右滑动查看更多
01
02
03
04
绘图分析
(一)个体轨迹图
结果图(如图2所示)展示了个体轨迹,可观察其与预测模型的拟合程度以及是否存在异常值。通过设置透明度,能在一定程度上缓解数据重叠问题。
(二)预测值与加权均值图
# 绘制预测值与加权均值图
p2 <- ggplot() + geom\_line(data = pred, aes(x = x, y = pred\_mean, col = as.factor(Group))) +
该图(如图3所示)呈现了预测均值与加权均值,weighted_means
函数利用群组后验概率计算观测群组平均值,有助于对比分析模型预测与实际数据的关系。
(三)预测值、加权均值与非加权均值图
此图(如图4所示)展示了预测值、加权均值与非加权均值,可发现非加权均值与加权均值在某些群组中几乎相同,反映了数据的一些内在特征。
(四)预测值叠加个体轨迹图
pred$GMax <- pred$Group
结果图(如图5所示)将预测群组均值叠加在个体轨迹上,直观展示了预测值与个体数据的分布关系。
(五)最大后验概率图
p5 <- ggplot(data = subD, aes(x =
该图(如图6所示)为抖动点图,展示了每个群组的最大后验概率,可看出不同群组的概率分布差异,反映了群组分类的模糊性程度。
(六)散点图矩阵
散点图矩阵(如图7所示)展示了个体概率之间的关系,可观察到群组之间的分离情况,边缘点表示较好的群组分离,中间点则暗示分类的模糊性。
(七)堆叠面积图
堆叠面积图(如图8所示)呈现了不同群组数据的累积情况,从另一个角度展示了数据在群组间的分布特征。
结论
本文通过一系列函数的定义与应用,结合多种绘图分析,深入探讨了基于R语言的群组轨迹模型在数据处理与可视化方面的表现。从个体轨迹到各种均值对比图,再到反映模型拟合度指标的相关绘图,全面展示了模型的特性与数据的内在规律。这些分析方法与绘图结果有助于研究人员在相关领域更好地理解和应用群组轨迹模型,为进一步的研究与决策提供有力支持。同时,模型的绝对拟合度评估指标如平均最大后验概率和正确分类优势比等,为衡量模型性能提供了量化依据,可指导模型的优化与改进。在未来研究中,可进一步探索模型在不同数据场景下的应用与拓展,以及与其他分析方法的结合使用,以提升对复杂数据的处理与理解能力。
参考文献
Adepeju, M., Langton, S., & Bannister, J. (2021). Anchored k-medoids: a novel adaptation of k-medoids further refined to measure long-term instability in the exposure to crime. _Journal of Computational Social Science_, 1-26.
Grün, B., & Leisch, F. (2007). Fitting finite mixtures of generalized linear regressions in R. _Computational Statistics & Data Analysis_, 51(11), 5247-5252, 5247-5252").
Curman, A. S., Andresen, M. A., & Brantingham, P. J. (2015). Crime and place: A longitudinal examination of street segment patterns in Vancouver, BC. _Journal of Quantitative Criminology_, 31(1), 127-147, 127-147").
Erosheva, E. A., Matsueda, R. L., & Telesca, D. (2014). Breaking bad: Two decades of life-course data analysis in criminology, developmental psychology, and beyond. _Annual Review of Statistics and Its Application_, 1, 301-332.
本文中分析的数据、代码分享到会员群,扫描下面二维码即可加群!
资料获取
在公众号后台回复“领资料”,可免费获取数据分析、机器学习、深度学习等学习资料。
点击文末“阅读原文”
获取全文完整代码数据资料。
本文选自《R语言混合模型回归GBTM群组轨迹模型绘图可视化研究》。
点击标题查阅往期内容
多水平模型、分层线性模型HLM、混合效应模型研究教师的受欢迎程度
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多层(层次)线性模型模型
相关文章:

R语言混合模型回归GBTM群组轨迹模型绘图可视化研究
全文链接:https://tecdat.cn/?p38581 在回归分析的广袤领域中,面对具有多条未知函数线的复杂数据时,传统方法常常捉襟见肘。混合模型作为一种强有力的分析手段应运而生,其在处理此类复杂情境时展现出独特的优势与潜力(…...

【毕业设计】A079-基于Java的影院订票系统的设计与实现
🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看项目链接获取⬇️,记得注明来意哦~🌹 赠送计算机毕业设计600个选题ex…...
Vue.js前端框架教程11:Vue监听器watch和watchEffect
文章目录 监听器(watchers)基本用法deep: trueimmediate: true总结 watchEffect基本用法自动追踪依赖停止监听与 watch 的对比性能优化总结 监听器(watchers) 在 Vue 中,监听器(watchers)是一种…...

疾风大模型气象系统:精准预报,引领未来
精准预报,引领未来 在当今快速变化的世界中,天气预报已成为日常生活和社会运行中不可或缺的一部分。从规划日常出行到防范极端天气影响,高精准的气象服务正在重新定义我们的生活方式。而在这一领域,疾风大模型气象系统以其卓越的技术实力和领先的预测能力,正引领气象服务…...

U9应收单拉单生成时找不到退货单
财务说做应收单时抓不到一张退货单。2022年单据。这样的单据让人联想翩翩,胡思乱想。怎么复杂怎么想,钻了牛角尖。分析了1天也没有结果。不知道系统的逻辑,只能用猜想的形式去分析。 问过顾问之后,原来是单据类型错了。从而知道了…...

设计模式--单例模式【创建型模式】
设计模式的分类 我们都知道有 23 种设计模式,这 23 种设计模式可分为如下三类: 创建型模式(5 种):单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。结构型模式(7 种)࿱…...
挑战一个月基本掌握C++(第七天)了解指针,引用,时间,输入输出,结构体,vector容器,数据结构 - 通用完结
一 指针 每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。 下面的实例,它将输出定义的变量地址: #include <iostream>using…...

百度面试手撕 go context channel部分学习
题目 手撕 对无序的切片查询指定数 使用context进行子协程的销毁 并且进行超时处理。 全局变量定义 var (startLoc int64(0) // --- 未处理切片数据起始位置endLoc int64(0) // --- 切片数据右边界 避免越界offset int64(0) // --- 根据切片和协程数量 在主线程 动态设…...

Spring事务管理详解
一、什么是事务管理 事务是一个最小的不可再分的工作单元。 一个事务对应一套完整的业务操作。事务管理是指这些操作要么全部成功执行,要么全部回滚,从而保证数据的一致性和完整性。比如银行转账,需要保证转出和转入是一个原子操作。Spring提…...

社区版 IDEA 开发webapp 配置tomcat
1.安装tomcat 参考Tomcat配置_tomcat怎么配置成功-CSDN博客 2.构建webapp项目结构 新建一个普通项目 然后添加webapp的目录结构: main目录下新建 webapp 文件夹 webapp文件夹下新建WEB_INF文件夹 *WEB_INF目录下新建web.xml wenapp文件夹下再新建index.html …...
打 印 菱 形
本题要求你写个程序打印成菱形的形状。例如给定17个符号,要求按下列格式打印 **** *********所谓“菱形形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数从1开始先从小到大顺序递增ÿ…...

ffmpeg翻页转场动效的安装及使用
文章目录 前言一、背景二、选型分析2.1 ffmpeg自带的xfade滤镜2.2 ffmpeg使用GL Transition库2.3 xfade-easing项目 三、安装3.1、安装依赖([参考](https://trac.ffmpeg.org/wiki/CompilationGuide/macOS#InstallingdependencieswithHomebrew))3.2、获取…...

[RocketMQ] 发送重试机制与消费重试机制~
发送重试 RocketMQ 客户端发送消息时,由于网络故障等因素导致消息发送失败,这时客户端SDK会触发重试机制,尝试重新发送以达到调用成功的效果。 触发条件 客户端消息发送请求失败或超时。服务端节点处于重启或下线状态。服务端运行慢造成请…...

基于Redis的网关鉴权方案与性能优化
文章目录 前言一、微服务鉴权1.1 前端权限检查1.2 后端权限检查1.3 优缺点 二、网关鉴权2.1 接口权限存储至Redis2.2 网关鉴权做匹配 总结 前言 在微服务架构中,如何通过网关鉴权结合Redis缓存提升权限控制的效率与性能。首先,文章对比了两种常见的权限…...

计算机网络-L2TP VPN基础概念与原理
一、概述 前面学习了GRE和IPSec VPN,今天继续学习另外一个也很常见的VPN类型-L2TP VPN。 L2TP(Layer 2 Tunneling Protocol) 协议结合了L2F协议和PPTP协议的优点,是IETF有关二层隧道协议的工业标准。L2TP是虚拟私有拨号网VPDN&…...

Node.js day-01
01.Node.js 讲解 什么是 Node.js,有什么用,为何能独立执行 JS 代码,演示安装和执行 JS 文件内代码 Node.js 是一个独立的 JavaScript 运行环境,能独立执行 JS 代码,因为这个特点,它可以用来编写服务器后端…...

vue el-dialog实现可拖拉
el-dialog实现拖拉,每次点击度居中显示,以下贴出代码具体实现,我是可以正常拖拉并且每次度显示在中间,效果还可以,需要的可以丢上去跑跑 组件部分: <el-dialog:visible.sync"dialogVisible"…...
go配置文件
https://github.com/spf13/viper viper golang中常用的配置文件工具为viper库,是一个第三方库。viper功能: 解析JSON、TOML、YAML、HCL等格式的配置文件。监听配置文件的变化(WatchConfig),不需要重启程序就可以读到最新的值。...

C++ OpenGL学习笔记(2、绘制橙色三角形绘制、绿色随时间变化的三角形绘制)
相关文章链接 C OpenGL学习笔记(1、Hello World空窗口程序) 目录 绘制橙色三角形绘制1、主要修改内容有:1.1、在主程序的基础上增加如下3个函数1.2、另外在主程序外面新增3个全局变量1.3、编写两个shader程序文件 2、initModel()函数3、initS…...
项目搭建+删除(单/批)
一 : 删除没有单独的页面,在列表页面写 二 : 删除在列表的页面 1.删除(单/双)的按钮 ① : 在列表文档就绪函数的ajax里面,成功回调函数追加数据里写删除按钮 注意点 : 删除/修改/回显都是根据id来的,记得传id ② : 批删给批删按钮,定义批删的方法 one : 示例(单删) : //循环追…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...

C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...

算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...

基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...