首页 > 解决方案 > 在 R 中使用 PoLCA 模型进行自举似然比检验?

问题描述

我有 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 包,我使用不同数量的类对数据进行建模,如下所示:

###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 包中的 boot.LR 函数,但出现此错误:

Error in boot.LR(LCA_1, LCA_2) : is(mod, "SingleGroupClass") is not TRUE

有什么建议么?非常感谢您的时间/帮助。

标签: rstatistics-bootstrap

解决方案


看来,如果你想使用boot.LR函数,在一个基本的形式中boot.LR(mod, mod2, R = 1000),对象需要从函数中获取。在函数中,有条件定义模型探索时返回的对象。(“SingleGroupClass”boot.LR 源代码mod1mod2mirt()boot.LRis(mod, "SingleGroupClass")"SingleGroupClass"mirt


推荐阅读