全套!!! R语言代码合集:轨迹增长模型、潜类别模型、潜剖面合集

培训通知

Nhanes数据库数据挖掘,快速发表发文的利器,你来试试吧!欢迎报名郑老师团队统计课程,4.20直播。


最近很多人咨询关于潜变量模型的R语言代码。潜变量模型包括了基于潜变量思想的多种方法模型:

  • 适用于定性数据的潜类别分析Latent Class Analysis (LCA)

  • 适用于定量数据的潜剖面分析Latent Profile Analysis (LPA)

  • 适用于纵向数据的潜类别增长模型Latent class growth analysis(LCGA)和潜类别增长混合模型Latent growth mixture modelling(LGMM)等。

因此,本文就针对上述几类模型讲述其在R语言中如何实现

本公众号回复“沙龙”即可获得R语言代码,PPT,数据等资料。

如果您需要详细的介绍与指导,可以加入我们郑老师团队的"统计实战营",针对潜变量模型进行一对一与学习。郑老师助教微信号zz566665

一、轨迹模型R语言实践

1.安装和加载lcmm包和加载数据集

首先,构建轨迹模型需要安装和加载lcmm包,并加载好数据集。

237565be2d5febfda2bed1cd9b84cd0c.jpeg

可以看到数据集中,id表示研究对象的ID,age表示测量bmi时研究对象的年龄,bmi表示研究对象在当前年龄下测量的BMI,这是一个典型的纵向数据,适合构建轨迹模型。

55169123cbe14bf7c865cb234ee852a1.jpeg

2.使用hlme()函数构建轨迹模型

使用hlme()函数构建轨迹模型的基本形式如下图。

dc60cc6f1abc0cd0ccf131234e15ba1b.jpeg

构建轨迹模型的第一步,我们需要构建好分组数为1的初始模型来作为后续确定最佳分组数的参照,在这里我们以构建LGMM为例。

660b09affd5d7d4381e30099a6da5963.jpeg

3.根据BIC准则来选择最佳潜在类别数(ng)

下面代码通过一个循环语句构建了分组数为2到7的潜类别增长混合模型并输出模型的BIC值。

11d60ea541a6b69ed1194c686d4f4100.png

代码运行结果如下图所示,可以看到分组数为6时的模型BIC最小。

559f746b530c92478d83940738f253bd.jpeg

4.查看最小的BIC值对应的最优模型及其评价指标

我们提取分组数为6的模型作为最优模型,并且可以查看模型的多个评价参数。

b8740bf82779efc1aced5ab491bcc833.png

5.模型可视化

9fd8fd14c27711fc39a3fba5b7bd54f6.png

通过上面的代码来绘图,可以得到所构建模型的轨迹图如下。

13d2ca4459d0972fdb1ad9533fed51cc.png

6.整合数据集

04fff04370edf71592a3e14d58d97ff4.png

通过以上代码将构建模型所得到的潜变量提取整合到原始数据集中,整合数据如下图所示,可以看到class即为轨迹模型所生成的潜变量。

93f57f4b6b85f54ed28dd96623f0a011.png

(注:本公众号回复“沙龙”即可获取R语言代码

二、潜剖面分析R语言实践

1.安装和加载mclust包和加载数据集

首先,构建轨迹模型需要安装和加载mclust包,并加载好数据集。

3bdd83e500eca4c26c4a280f4a0f7971.png

可以看到数据集中,每一列表示研究对象的某个维度评分,每一项维度评分都是从1到5分的定量数据,适合使用潜剖面分析方法,并且数据集不存在缺失。

f17fd79436c838606c56966702ede29f.png

2.根据BIC准则来选择最佳潜在剖面数:

R语言的mclust包提供了mclustBIC函数可以直接查看通过BIC准则筛选出的最优模型的分组数,代码如下。

635d7ecd90ebf9f3c4065ebfea8476ea.png

代码运行结果如下图所示,可以看到分组数为9的EEV模型BIC最小。

a5333ebbda8d80b581533e0bf48b0f50.png

通过mclust包拟合的模型有多种不同的假设,详见下图,我们只需简单了解一下筛选出的EEV模型是其中一种假设模型即可。

19dfe1302a2cb9fb78caf9e6960bc99e.png

3.根据ICL来选择最佳潜在剖面数:

复杂的模型通常需要多个评价指标来进行多重参考,R语言的mclust包还提供了mclustICL函数可以直接查看通过ICL指标筛选出的最优模型的分组数,代码如下。

197a31ab8e4cfc902550596eb17e81cb.png

代码运行结果如下,最优的前两个模型与BIC指标筛选出的一样是分组数分别为9和5的EEV模型。

ef98289897096fe6dbe1fb6758b9717b.png

4.根据BLRT来选择最佳潜在剖面数:

R语言的mclust包还提供了mclustBootstrapLRT函数可以直接查看通过BLRT指标评价的模型是否显著优于前一个模型,代码如下。

22b4f5cb51d38c05260861f973954d89.png

代码运行结果如下,EEV模型在分组数为6时已经与分组数为5的模型无显著差异了,此时我们可以结合三个指标选择分组数为5的EEV模型作为最终的模型。

42d270a362ef1c9adf96b7d2baf1f189.png

5.拟合模型并查看模型信息:

我们提取分组数为5的EEV模型作为最优模型,并且可以查看模型的多个评价参数。

6cda9741ee1e1d72a0b1ef019ecdd93f.png

6.模型可视化

19414b31195523614f1d5c7fc3d6b3ec.png

通过上面的代码来绘图,可以得到所构建模型的剖面图如下。

6408eaae9a27bb88ea9911ae3f4d874c.png

7.整合数据集

70fd3a1872249a1e1b24d3142db9f8b4.png

通过以上代码将构建模型所得到的潜变量提取整合到原始数据集中,整合数据如下图所示,可以看到class即为潜剖面分析所生成的潜变量。

ea386554c2b8f93bbb4b3d2bf89262bd.png

(注:本公众号回复“沙龙”即可获取R语言代码

三、潜类别分析R语言实践

1.安装和加载poLCA包和加载数据集

首先,构建轨迹模型需要安装和加载poLCA包,在这里为了更好地展示和实践潜类别分析,我们构建一个虚拟数据集。

e726c39879b88e365b86053427fc5913.png

可以看到数据集中,id表示研究对象的ID,sex表示研究对象的性别,race表示研究对象的种族,married表示研究对象的婚姻状况,三个变量都是定性数据,适合使用潜类别分析。

8e5f0e16d29f7436258239cdd971aeaa.png

2.使用poLCA()函数构建轨迹模型

使用poLCA()函数构建轨迹模型的基本形式如下图。

6c9dca3fbb79fedcb33530fb2a2a1e27.png

3.根据BIC准则来选择最佳潜在类别数并查看模型

下面代码通过一个循环语句构建了分组数为1到5的潜类别模型并输出BIC最小的模型。

c13374ec73464d64f4fa8c69ffa8a8cb.png

代码运行结果如下图所示,可以看到通过BIC准则筛选出的最优模型分组数为4,还可以查看模型的一系列常见的评价参数。

c689fd24b15be0e3727c49c2632b2364.png

44d56751bf73ea512225f6e0c73b771d.png

4.模型可视化

82bcf12284b1fbe3dc4ed94008be4aad.png

通过上面的代码可以直接得到所构建模型的可视化3D图如下。

ebcd4eeda653729cd2c693f8a5823e15.png

5.整合数据集

9383071105e5fb33181eb7c4b3830710.png

通过以上代码将构建模型所得到的潜变量提取整合到原始数据集中,整合数据如下图所示,可以看到class即为潜类别分析所生成的潜变量。

50521751eca2989d1c1068e94f955188.png

本公众号回复“沙龙”即可获得R语言代码,PPT,数据等资料。

如果您需要详细的介绍与指导,可以加入我们郑老师团队的"统计实战营",针对潜变量模型进行一对一与学习。

a7d2299f6b8c46a7a128047890530eed.png

本公众提供各种科研服务了!

一、课程培训

2022年以来,我们召集了一批富有经验的高校专业队伍,着手举行短期统计课程培训班,包括R语言、meta分析、临床预测模型、真实世界临床研究、问卷与量表分析、医学统计与SPSS、临床试验数据分析、重复测量资料分析、nhanes、孟德尔随机化等10余门课。如果您有需求,不妨点击查看:

发文后退款:2024-2025年科研统计课程介绍

二、数据分析服务

浙江中医药大学郑老师团队接单各项医学研究数据分析的服务,提供高质量统计分析报告。有兴趣了解一下详情:

课题、论文、毕业数据分析 

 临床试验设计与分析 公共数据库挖掘与统计

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LPA(Latent Profile Analysis)是一种聚类分析方法,可以用于将样本分成不同的群体,并且每个群体有其独特的特征。确定合适的LPA剖面个数是非常重要的,因为它可以决定最终的聚类结果。以下是在R语言中自动确认合适的LPA剖面个数的一些步骤: 1. 安装并加载"LPA"包 ``` install.packages("LPA") library(LPA) ``` 2. 准备数据并选择变量 选择适当的变量并准备数据。确保数据的所有变量都是数值型变量,并且没有缺失值。 3. 确定初始模型 使用LPA()函数确定初始模型,其中nclass参数为所选择的最大剖面数。在此步骤中,通常选择较大的nclass值,例如10。 ``` model <- LPA(data, nclass = 10, nrep = 50) ``` 4. 选择最佳剖面数 使用compareClasses()函数比较不同剖面数的模型拟合。这个函数可以计算不同剖面数的贝叶斯信息准则(BIC)和样本调整的拟合指数(aBIC)等统计指标,以确定最佳剖面数。 ``` compareClasses(models) ``` 5. 确定最终的LPA模型 根据比较结果,选择最佳的剖面数,并使用LPA()函数重新拟合最终的LPA模型。 ``` final_model <- LPA(data, nclass = best_nclass, nrep = 100) ``` 6. 检查结果 使用plot()函数和table()函数检查最终的LPA模型结果,以确保聚类结果合理。 ``` plot(final_model) table(final_model$class) ``` 以上是用R语言自动确认到合适的LPA剖面个数的一些基本步骤。需要根据实际情况进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值