我使用
对二进制变量的数据集执行潜在类分析library("BayesLCA")
data("Alzheimer")
alz <- data.blca(Alzheimer)
sj3.em <- blca.em(alz, 3)
现在我想标记我对Alzheimer
的观察结果,考虑到每个属于某个特定群体的可能性。
我提取每个唯一数据点的类成员资格估计值
class_memb <- sj3.em$Z
并根据最高概率标记每个唯一数据点
labels_df <- apply(class_memb, 1, function(x) sample(names(x), 1, prob=x))
我将原始数据集Alzheimer
的每一行折叠为1
和0
row_sequence <- apply(compl_cases_all, 1,
function(x) as.factor(paste0(x, collapse='')))
最后我用我的最大概率
替换每个观察的序列grouping <- labels_df[row_sequence]
然而classprob
和我的标签不匹配。然后当我在更大的数据集上测试它时,类概率和标签比例之间的差距更大。我做错了吗?
sj3.em$classprob
# [1] 0.50162847 0.47880396 0.01956757
prop.table(table(grouping))
# grouping
# Group 1 Group 2 Group 3
# 0.54166667 0.43750000 0.02083333