我正在使用Mplus执行潜在类分析,并尝试通过MplusAutomation包将输出输出到R(因为我这样做很多次,我想避免手动复制)。我想在Mplus输出的“模型结果”部分中获取“结果概率比例”子部分,但是我无法在MoutAutomation从.out文件创建的R对象中找到它。该对象包含一个“参数”数据框,其中包含“模型结果”部分中的其他信息,所以它是“概率量表中的结果”是对其他模型结果数据的简单转换,我可以自己做R'如果没有,是否有其他方法可以重新创建本节的结果,从我做在R中的信息?或者我要查找的信息是否存储在输出中的其他位置?
答案 0 :(得分:1)
“概率量表中的结果”部分似乎没有被MplusAutomation解析。
但是,您可以使用公式prob = 1 / (1 + exp(est))
自行将阈值参数转换为概率比例。
例如,下面的代码应该以this UCLA example:
的概率比例重现结果library(dplyr)
library(tidyr)
library(MplusAutomation)
# Fetch & write output from UCLA LCA-example to temp file
lca_ex_out = tempfile(fileext = '.out')
fileConn <- file(lca_ex_out)
writeLines(readLines('https://stats.idre.ucla.edu/stat/mplus/dae/lca1.out'), fileConn)
close(fileConn)
lca_ex_result = readModels(lca_ex_out) # extract results from temp file
# select threshold parameters, covert to probability & layout in table
lca_ex_result$parameters$unstandardized %>%
filter(paramHeader == 'Thresholds') %>%
mutate(est_probscale = 1 / (1 + exp(est))) %>%
select(param, LatentClass, est_probscale) %>%
spread(LatentClass, est_probscale)
输出:
param 1 2 3
1 ITEM1$1 0.908 0.312 0.923
2 ITEM2$1 0.337 0.164 0.546
3 ITEM3$1 0.067 0.036 0.426
4 ITEM4$1 0.065 0.056 0.418
5 ITEM5$1 0.219 0.044 0.765
6 ITEM6$1 0.320 0.183 0.471
7 ITEM7$1 0.113 0.098 0.512
8 ITEM8$1 0.140 0.110 0.619
9 ITEM9$1 0.325 0.188 0.349