r - 在 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
有什么建议么?非常感谢您的时间/帮助。
解决方案
看来,如果你想使用boot.LR
函数,在一个基本的形式中boot.LR(mod, mod2, R = 1000)
,对象需要从函数中获取。在函数中,有条件定义模型探索时返回的对象。(“SingleGroupClass”,boot.LR 源代码)mod1
mod2
mirt()
boot.LR
is(mod, "SingleGroupClass")
"SingleGroupClass"
mirt
推荐阅读
- sql - 如何在plsql中将字符串数据类型传递给数字数据类型
- php - 在多维数组中分组唯一值
- ruby-on-rails - 无法从领英获取身份验证信息
- python - 如何在 Django 中显示 ManyToMany 字段的值而不是它们的 Id?
- java - 您的应用程序已使用来自 translate.googleapis.com 的 Google Cloud SDK 的最终用户凭据进行身份验证
- javascript - Vue JS 访问“父组件的兄弟组件”的对象
- go - 如何在Golang rest中输出json格式错误,特别是引用坏字段
- python - gi.require_version('Gdk', '3.0')
- docker - 如何在谷歌云平台上使用docker bridge网络?
- geolocation - 可以使用 S2 库找到 K 个最近点(并且有效)?