For Loop for poLCA package(R)运行多个类模型

时间:2015-10-07 11:23:51

标签: r for-loop

我正在尝试根据潜在类别poLCA的不同数量选择哪种LCA模型(R package = nclass)最适合我的数据。

我想使用for循环为1:5潜在类运行模型,并生成一个包含G2AIC&的表格。每个模型的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)
}

1 个答案:

答案 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