原文链接:http://tecdat.cn/?p=26105

原文出处:拓端数据部落公众号

潜类别轨迹建模 (LCTM) 是流行病学中一种相对较新的方法,用于描述生命过程中的暴露,它将异质人群简化为同质模式或类别。然而,对于给定的数据集,可以根据类的数量、模型结构和轨迹属性得出不同模型的分数。

本文说明了LCTM的基本用法,用于汇总拟合的潜在类轨迹模型对象的输出。要安装 R 包,请在 R 控制台中使用命令

例子

目的:通过将 BMI 建模为年龄函数,识别具有不同轨迹的参与者亚组。根据迄今为止可用的文献,我们假设初始 K=5 类 BMI 轨迹。

我们使用体重指数 (BMI) 重复测量 10,000 个人的长格式数据框。

提供了一个示例(模拟)数据集 bmi 来描述整个步骤,  bmi_long 是长格式版本。

包含的变量有:

id - 个人 ID
年龄 - BMI 测量的年龄,以年为单位
bmi - 个人在 T1、T2、T3 和 T4 时间的体重指数,以 kg/m^2 为单位 true_class - 用于识别模拟个人 BMI 数据的类别的标签从

加载数据

绘制数据

潜在类轨迹建模的八步示例

为了对纵向结果 yijk 进行建模,对于 k=1:K,类,对于个体 i,在时间点 j,tj可以使用许多建模选择。我们在这里给出方程来说明这些,并按照复杂度增加的顺序将它们命名为模型 A 到 G。

模型 A:无随机效应模型 | 固定效应同方差 | - 解释个人轨迹与其平均类轨迹的任何偏差仅是由于随机误差

其中假设所有类的残差方差相等,

模型 B:具有特定类别残差的固定效应模型 | 异方差 | 与模型 A 相同的解释,随机误差在不同的类别中可能更大或更小。

其中假设残差方差不同

模型 C:随机截距 解释是允许个体的初始体重不同,但假设每个班级成员遵循平均轨迹的相同形状和大小

对于 k=1:K, classes, 对于个体 i, 在时间点 j, tj,

其中随机效应分布

模型 D:随机斜率 允许个体在初始权重和平均轨迹的斜率上有所不同,但曲率与轨迹

对于 k=1:K,类,对于个体 i,在时间点 j , tj,

其中假设随机效应分布为

模型 E:随机二次 - 跨类的共同方差结构 允许个体在类内通过初始权重、形状和大小变化的额外自由,但是假设每个类具有相同的变异量 R lcmm hlme/lcmm 对于 k=1: K, 类, 对于个体 i, 在时间点 j, tj,

其中假设随机效应分布为 

模型 F 和 G:随机二次 - 允许方差结构跨类变化的比例约束 增加模型 E 的灵活性,因为允许方差结构相差一个乘法因子,以允许某些类具有更大或更小的类内方差。该模型可以被认为是模型 G 的更简洁版本(将要估计的方差-协方差参数的数量从 6xK 参数减少到 6+(K-1)个参数。

对于 k=1:K, classes, 对于个体 i, 在时间点 j, tj,

其中假设随机效应分布为 

第一步:选择随机效应结构的形式

为了确定随机效应的初始工作模型结构,可以遵循 Verbeke 和 Molenbergh 的基本原理来检查没有随机效应的模型中每个 K 类的标准化残差图的形状。

如果残差轮廓可以近似为平坦、直线或曲线,则分别考虑随机截距、斜率或二次项。

为了拟合没有随机效应的潜在类模型。

hlmfixed(bmig)

然后,我们将拟合模型输入 LCTM中的 step1 函数,以检查特定类别的残差。

第2步

优化步骤 1 中的初步工作模型以确定最佳类数,测试 K=1,...7。可以根据最低贝叶斯信息标准 (BIC) 来选择所选类别的数量。

set.seed(100)for (i in 2:4) {mi <- lchlme( data.frame(bmg[1:500,])}
#> Be patient, hlme is running ...
#> The program took 0.29 seconds
#> Be patient, hlme is running ...
#> The program took 0.69 seconds
#> Be patient, hlme is running ...
#> The program took 2.3 secondsmodelut <-kable(lin)

第 3 步

使用步骤 2 中推导出的偏好 K 进一步细化模型,测试最优模型结构。我们测试了七个模型,从简单的固定效应模型(模型 A)到允许残差在类别之间变化的基本方法(模型 B)到一组具有不同方差结构的五个随机效应模型(模型 CG)。

  • A(SAS、PROC TRAJ)

​​​​​​​

  • B型(R,mmlcr)

​​​​​​​调用 source() 命令。

mmldata = bmi_l01
#             )
# model_b$BIC
  • C (SAS、PROC TRAJ)

  • D 型(SAS、PROC TRAJ)

  • E型 (R, lcmm)
model_e <- hlme(fixed = bmi ~1+ age + I(age^2),mixture = ~1 + age + I(age^2),random = ~1 + age,ng = 5, nwg = F, idiag = FALSE, data = data.frame(bmi_long[1:200,]),subject = "id")
#> Be patient, hlme is running ...
#> The program took 0.77 seconds
model_e$BIC

  • F型 (R, lcmm)
fixed = bmi ~1+ age + I(age^2),mixture = ~1 + age + I(age^2)
mod$BIC

  • G (SAS、PROC TRAJ)

第四步

执行一些模型充分性评估。首先,对于每个参与者,计算被分配到每个轨迹类的后验概率,并将个体分配到概率最高的类。在所有类别中,这些最大后验分配概率 (APPA) 的平均值高于 70% 被认为是可以接受的。使用正确分类、不匹配的几率进一步评估模型的充分性。

LCTMdel_f

第 5 步

图形表示方法;

  1. 绘制包含每个类的时间平均轨迹

  2. 每个类具有 95% 预测区间的平均轨迹图,显示每个类内预测的随机变化

plotpred <- predictY
plototp

  1. 个人水平的“面条图”随时间变化,取决于样本量,可能使用参与者的随机样本

ggplot(bm, aes(x = age, y = bmi)) + geom_line


ggplot(bmong) + geom_line

第 6 步

评估模型辨别。

第 7 步

使用四种方法评估临床特征和合理性;

1. 评估轨迹模式的临床意义,旨在包括至少 1% 的人群的类别

postprb( modf )

2. 评估轨迹类别的临床合理性

使用 6.2中生成的图 来评估预测的趋势对于正在研究的组是否现实。例如,对于研究 BMI,显示下降到 <5 kg/m2 的预测趋势是不现实的。

3. 潜在类别与传统分类的特征列表

使用从所选模型中提取类分配;​​​​​​​

然后用描述性变量反馈到主数据集中。

然后可以根据需要将这些制成表格。​​​​​​​

等等。

4. 使用 kappa 统计的类成员与传统 BMI 类别成员的一致性

# 定义BMI类别,这些类别的数量需要与类别的数量相等
confusionMatrix(bmi_class, bmclass
kable(y, row.names = )

第 8 步

酌情进行敏感性分析。


最受欢迎的见解

1.R语言多元Logistic逻辑回归 应用案例

2.面板平滑转移回归(PSTR)分析案例实现

3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)

4.R语言泊松Poisson回归模型分析案例

5.R语言混合效应逻辑回归Logistic模型分析肺癌

6.r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现

7.R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病

8.python用线性回归预测股票价格

9.R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测

拓端tecdat|R语言、SAS潜类别(分类)轨迹模型LCTM分析体重指数 (BMI)数据可视化相关推荐

  1. 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险

    最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...

  2. 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例

    最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...

  3. 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测

    最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...

  4. 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系

    最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...

  5. R语言主成分分析PCA谱分解、奇异值分解预测分析运动员表现数据和降维可视化

    最近我们被客户要求撰写关于主成分分析PCA的研究报告,包括一些图形和统计输出. 本文描述了如何 使用R执行主成分分析 ( PCA ).您将学习如何 使用 PCA预测 新的个体和变量坐标.我们还将提供  ...

  6. R语言使用haven包的read_spss函数读取spss格式数据、使用haven包的read_sas函数读取SAS格式数据、使用haven包的read_dta函数读取Stata格式数据

    R语言使用haven包的read_spss函数读取spss格式数据.使用haven包的read_sas函数读取SAS格式数据.使用haven包的read_dta函数读取Stata格式数据 目录

  7. 拓端tecdat荣获掘金社区入驻新人奖

    2021年7月,由掘金发起了"入驻成长礼"颁奖活动.本次活动邀请到知名开发者.服务机构代表等业界人士. 据了解,掘金社区"新入驻创作者礼"主要对已经积累了一定历 ...

  8. 拓端tecdat荣获2022年度51CTO博主之星

    相信技术,传递价值,这是51CTO每一个技术创作者的动力与信念,2022 年度,拓端tecdat 作为新锐的数据分析咨询公司,在51CTO平台上,不断的输出优质的技术文章,分享前沿创新技术,输出最佳生 ...

  9. R语言使用逻辑回归分类算法

    R语言使用逻辑回归分类算法 逻辑回归属于概率统计的分类算法模型的算法,是根据一个或者多个特征进行类别标号预测.在R语言中可以通过调用logit函数执行逻辑回归分类算法并预测输出概率.通过调用glm函数 ...

  10. 使用R语言进行Metroplis-in-Gibbs采样和MCMC运行分析

    全文链接:http://tecdat.cn/?p=12200 对于许多模型,例如逻辑模型,没有共轭先验分布.因此,吉布斯采样不适用(点击文末"阅读原文"获取完整代码数据). 这篇文 ...

最新文章

  1. Fundebug后端Java异常监控插件更新至0.2.0,支持Spring及Maven
  2. Xamarin.Forms支持的地图显示类型
  3. 多master mysql_使用 Rotate Master 实现MySQL 多主复制
  4. 2!=5 or 0在python中是否正确-python中的if判断语句
  5. 本地共享映射文件夹进行删除操作_从集群建立到航测建模CC(Smart3D)实用操作教程...
  6. data:image/png;base64,, CTF杂项base64图片隐写-河南省第二届金盾信安杯
  7. OpenCV背景扣除Background Subtraction
  8. Python功能之反射
  9. iphone mac地址是否随机_iOS8随机MAC地址功能:需要满足前提要求
  10. JDK源码解析之java.util.Iterator和java.lang.Iterable
  11. oracle ocm 考题,2012年10 月oracle 10g ocm 认证 考试 真题 题库
  12. zabbix3.2学习笔记(四):设置sendEmail告警动作
  13. 如何制作数据可视化大屏
  14. 阶段3 1.Mybatis_11.Mybatis的缓存_2 延迟加载和立即加载的概念
  15. 没有找到MSVCR100.dll解决方法
  16. DataSource接口,一个被大多数程序员忽略的接口
  17. 安卓真机如何连接本地服务器_Android真机连接本地服务器安装部署方法
  18. 一生至少原谅的三个人
  19. 写字楼如何实现无线wifi短信验证登录?
  20. 【软件质量保障笔记】软件质量保障

热门文章

  1. spark性能调优05-troubleshooting处理
  2. 两周,好多人的帮助解决select空列不显示的function
  3. 第二次发布 - 轻剑傲风的RSS简易阅读器改装版。
  4. 第四季-专题4-嵌入式文件系统
  5. 如何理解二次型?(转)
  6. 微积分知识总览(1)——微积分准备知识
  7. 限时免费《敏捷个人-认识自我,管理自我 v0.6.pdf》
  8. 区块链游戏《TmoLand明日世界》又叒叕更新了
  9. python时间处理,datetime中的strftime/strptime
  10. maven向本土仓库导入jar包(处理官网没有的jar包)