线性混合模型假设 N 个受试者的群体是同质的,并且在群体水平上由独特的曲线 Xi(t)β 描述。相比之下,潜在类别混合模型在于假设人口是异质的,并且由 G 潜在类别的受试者组成,其特征是 G 平均轨迹曲线。
潜在类别成员由离散随机变量 ci 定义,如果主题 i 属于潜在类别 g (g = 1, …,G),则该变量等于 g。变量 ci 是潜在的;根据协变量 Xci 使用多项逻辑模型描述其概率:
其中 ξ0g 是 g 类的截距,ξ1g 是与时间无关协变量 Xci 的 q1 向量相关的类特定参数的 q1 向量。当没有协变量预测潜在类成员资格时,该模型将简化为特定于类的概率。
在涉及潜在类别的模型中,可以对每个潜在类别中的主体进行后验分类。它基于类成员概率的后验计算,用于表征对象的分类以及评估模型的拟合优度(Proust-Lima et al. 2014 ).
使用贝叶斯定理计算后类成员概率作为给定收集信息的潜在类的概率。在纵向模型中,它们为主题 ii 和潜在类别 g 定义为:
其中: θ^G 是 G 潜在类模型中估计的参数向量。
在此示例中,我们研究了认知标记的二次轨迹,即在老年人样本(纳入时年龄 65 岁及以上)中进行预先标准化(具有高斯分布)并对简易智能量表评分 ( MMSE )进行了长达 15 年的跟踪研究,可根据教育水平进行调整。尽管可以考虑任何回归,但模型在此处不考虑交互作用。
这是来自原始前瞻性研究 的 500 名受试者的子样本。该数据集不能用于流行病学目的,因为子样本不代表原始队列(特别是痴呆病例已被过度采样)。
用于可视化数据(仅限表头):
head(data)
在不同的时间收集不同的标记。在数据集中,时间尺度是年龄。
获取数据的快速摘要:
summary(data)
一些变量有缺失值。
简易智能量表评分通常被视为结果。简易智能量表评分是一种非常常见的神经心理学测试,用于测量老年人的整体认知功能。它具有非常不对称的分布,因此通常将其归一化以应用于高斯变量的方法。预归一化函数完成的:
hist( MMSE )
hist( norm )
要建模单个重复测量是:
color <-ID
xyplot
我们考虑以下潜在类线性混合模型,其中 g 表示类别,i表示主题,j 表示重复测量:
其中_:_
和
固定效应部分 是
混合
和
; 在 随机效应部分 是
,
由于 简易智能量表评分的分布非常倾斜,我们使用标准化版本
normMMSE <- norm
根据年龄进行分析。为了避免任何数值问题,我们重新调整和标准化年龄:
age65 <- (age - 65)/10
我们为 norm 拟合线性混合模型:
lme(norm ~ age65+I(age65^2)+CEP rand =~ age65+I(age65^2) subject = 'ID'
从通过假设单个潜在类估计的模型,我们现在可以搜索异构概况。下一行提供了使用 G>1 时初始值对 2 个潜在类的模型的估计。
#考虑到2类的估计
lme(ng = 2, mix=~age65+I(age65^2))
初始值在参数中指定 B
。该选项会 B=m1
根据 1 类模型(此处为m1
)的最大似然估计自动生成初始值 。不指定B
或 不指定 B=NULL
是不推荐的,因为它会导致 G=1G=1 的模型的内部预估计(即 m1
),这可能会显着增加计算时间。
在以下示例中,初始值由用户预先指定:方差协方差的参数取自线性混合模型的估计值,并针对特定于类尝试任意初始值:
lme( B = c(0, 50, 30, 3, -1))
另一种方法是从 1 类模型的估计值的渐近分布中随机生成初始值(此处为 m1
):
lme(rand(m1))
最后,grid可用于运行自动网格搜索。在接下来的示例中,G=2 和 G=3 类, hlme
从 100 个初始值的随机向量运行最多 30 次迭代。然后,仅针对在 30 次迭代后提供最佳对数似然的偏离完成估计程序。
grid(lme iter=30,)
推荐使用此方法,因为它可以在重复次数足够大且迭代次数相当大时更好地探索参数空间。
一组模型(通常具有不同数量的潜在类)的估计过程可以用 来概括 summary
。
summary
我们在这里总结了我们之前估计的 6 个模型。我们可以看到所有的 2-class 模型都收敛于同一个估计点。
这个例子说明了定义“潜在类的最佳数量”的复杂性。事实上,根据推荐的 BIC,应该保留 2 类模型(因为它提供了最低值)。但是 AIC 和 Size 调整 BIC(涉及较小的惩罚)都支持 3-class 模型。熵也有利于 3 类模型,因为它具有更好的判别能力(熵接近 1)。最后,3-class 模型创建了一个非常小的类,这通常不是那些搜索和感兴趣的异质性。在这个例子中,根据统计和临床标准,2-或 3-可以保留类模型。下面,我们保留了最终输出描述的 2-class 模型。
summary(m2d)
只要模型中指定的所有协变量都包含在数据框中,就可以为数据框中包含的任何数据计算特定于类的预测。在接下来的几行中,通过生成年龄值介于 65 和 95 之间的向量并将 CEP定义为 1 或 0,来创建这样的数据框 。计算和绘制 预测 。
data.frame(age=seq(65,95,l=50))
在点估计中为每个类计算预测:
predictY
然后可以绘制预测:
plot(prd0)
plot(prd1,add=TRUE)
如果我们想了解可变性,我们可以计算具有置信区间的预测并绘制它们:
plot(IC,, shades=TRUE)
最后,1 类、2 类和 3 类模型的预测轨迹可以一起表示在下图中:
par(mfrow=c(1,3))
plot(pr1 )
plot(pr0
plot(pr3)
plot(m)
为了评估所选模型的拟合,我们同时绘制每个潜在类别的观察值和预测值。
plot(m, shad = TRUE)
该图在此处显示了对数据的非常好的拟合。
模型的后验分类通过以下方式获得:
postprob(m2d)
Class 1
由 62 个样本 (12.4%) 组成,而 438 个样本属于第二类。
我们还可以通过以下方式查看有关模型辨别能力的信息:
class 1
(resp. class 2
) 中的对象属于该类的平均概率为 0.8054 (resp. 0.8730)。这显示了类别的良好区分。本文摘选《R语言潜类别混合效应模型(Latent Class Mixed Model ,LCMM)分析老年痴呆年龄数据》