【发布时间】:2023-03-21 07:44:01
【问题描述】:
我有一个由 300 个人完成的 10 个李克特变量 (1-5) 的量表:
###set seed
set.seed(421)
###create random likert variables, N = 300
var1 <- sample(1:5, 300, replace = T)
var2 <- sample(1:5, 300, replace = T)
var3 <- sample(1:5, 300, replace = T)
var4 <- sample(1:5, 300, replace = T)
var5 <- sample(1:5, 300, replace = T)
var6 <- sample(1:5, 300, replace = T)
var7 <- sample(1:5, 300, replace = T)
var8 <- sample(1:5, 300, replace = T)
var9 <- sample(1:5, 300, replace = T)
var10 <- sample(1:5, 300, replace = T)
df = data.frame(cbind(var1, var2, var3, var4, var5,
var6, var7, var8, var9, var10))
使用PoLCA package,我使用不同数量的类对数据进行建模,如下所示:
###define group of functions to use
all_v <- cbind(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10) ~ 1
###set seed
set.seed(421)
###1 class
LCA_1 <- poLCA(all_v, data = df, nclass=1, maxiter=10000,
graphs=T, tol=1e-10, na.rm=TRUE, probs.start=NULL,
nrep=500, verbose=TRUE, calc.se=TRUE)
###2 classes
LCA_2 <- poLCA(all_v, data = df, nclass=2, maxiter=10000,
graphs=T, tol=1e-10, na.rm=TRUE, probs.start=NULL,
nrep=500, verbose=TRUE, calc.se=TRUE)
###3 classes
LCA_3 <- poLCA(all_v, data = df, nclass=3, maxiter=10000,
graphs=T, tol=1e-10, na.rm=TRUE, probs.start=NULL,
nrep=500, verbose=TRUE, calc.se=TRUE)
在评估拟合时,我知道我可以使用 PoLCA 提供的拟合统计数据(例如 BIC、AIC),并且我可以使用以下方法进行正常似然比检验:
###pick random LL's for each class of model
logLik_1 <- -2658.805
logLik_2 <- -2658.055
logLik_3 <- -4668.640
###conduct example LL test using these values
teststat <- -2 * (logLik_1 - logLik_2)
pchisq(teststat, df = 5, lower.tail = F)
不过,从我看到的文献来看,现在更可取的是运行引导似然比检验。我尝试使用R mirt package 中的 boot.LR 函数,但出现此错误:
Error in boot.LR(LCA_1, LCA_2) : is(mod, "SingleGroupClass") is not TRUE
有什么建议吗?非常感谢您的时间/帮助。
【问题讨论】: