使用 poLCA 包中可用的癌症数据和 4 个潜在类别解决方案:
library poLCA
data(carcinoma)
f <- cbind(A, B, C, D, E, F, G) ~ 1
lc4 <- poLCA(f, carcinoma, nclass = 4)
以下行根据预测概率给出分类
lc4$predclass
它们可以有效地绑定到原始数据以进行进一步的可视化或分析
carcinoma.predclass <- cbind(carcinoma, "Predicted LC" = lc4$predclass)
head(carcinoma.predclass)
您可以拥有一个新数据框,其中包含先前分析中使用的相同列/变量。
new.data <- data.frame(A=c(1,2,1), B=c(2,2,1), C=c(1,2,1), D=c(1,1,1), E=c(1,2,1), F=c(2,2,1), G=c(1,2,1))
A B C D E F G
1 1 2 1 1 1 2 1
2 2 2 2 1 2 2 2
3 1 1 1 1 1 1 1
一个简单的方法可以将新数据帧中观察到的数据模式与先前数据中估计的潜在类别概率联系起来。事实上,第一个模式缺少预测,因为它不在训练数据中。
left_join(new.data, unique(carcinoma.predclass))
Joining, by = c("A", "B", "C", "D", "E", "F", "G")
A B C D E F G Predicted LC
1 1 2 1 1 1 2 1 NA
2 2 2 2 1 2 2 2 1
3 1 1 1 1 1 1 1 4
最好的方法是使用 poLCA 的后验。根据潜在类模型估计的参数,该函数计算指定模式属于每个潜在类的概率。此函数可以计算新数据的后验类成员概率,无论是否在训练数据中观察到。
new.lc4.posterior <- poLCA.posterior(lc4, new.data)
并将预测的潜在类别(后验概率最高的类别)绑定到新数据。
cbind(new.data, "Predicted LC" = apply(new.lc4.posterior,1, FUN=which.max))
A B C D E F G Predicted LC
1 1 2 1 1 1 2 1 2
2 2 2 2 1 2 2 2 1
3 1 1 1 1 1 1 1 4