我正在尝试根据潜在类别poLCA
的不同数量选择哪种LCA模型(R package = nclass
)最适合我的数据。
我想使用for循环为1:5潜在类运行模型,并生成一个包含G2
,AIC
&的表格。每个模型的BIC
值。
## Generating a table of G2,AIC & BIC for different no of LCA classes (1:5) for 6 variables.
library(poLCA)
as.data.frame(mod_sum_v6)
for(i in 1:5){
lca_v6<- poLCA(cbind(A,B,C,D,E,F) ~ 1,
maxiter=50000,nclass=i,
nrep=1, data=data)
mod_sum_v6[i]<-c(lca_v6$Chisq,lca_v6$resid.df,lca_v6$Gsq,lca_v6$aic,lca_v6$bic)
}
答案 0 :(得分:0)
我在网上找到了这个代码,它运行了一系列有两到十组的模型。在nrep = 10的情况下,每个模型运行10次,并使模型保持最低的BIC。
f<-with(mydata, cbind(F29_a,F29_b,F29_c,F27_a,F27_b,F27_e,F09_a, F09_b, F09_c)~1) #
max_II <- -100000
min_bic <- 100000
for(i in 2:10){
lc <- poLCA(f, mydata, nclass=i, maxiter=3000,
tol=1e-5, na.rm=FALSE,
nrep=10, verbose=TRUE, calc.se=TRUE)
if(lc$bic < min_bic){
min_bic <- lc$bic
LCA_best_model<-lc
}
}
LCA_best_model