poLCA - 潜类分析 - 分析需要多长时间?

时间:2015-06-11 12:40:02

标签: r multiple-regression

这是我正在处理的脚本:

library(poLCA)

f <- cbind(bq70, bq72_1, bq72_2, bq72_3, bq72_4, bq72_5, 
           bq72_6, bq72_7, bq73a_1, bq73a_2, bq73a_3, bq73a_4) ~ 
     zq88 + zq89 + dm_zq101_2 + dm_zq101_3 + dm_zq101_4 + 
     dm_zq101_5 + dm_zq101_6 + dm_zq101_7 + dm_zq101_8 + dm_zq101_9

for(i in 2:14){
  max_II <- -1000000
  min_bic <- 100000

  for(j in 1:1024){
    res <- poLCA(f, BESDATA, nclass=i, maxiter=1000, 
                 tol=1e-5, na.rm=FALSE, probs.start=NULL, 
                 nrep=1, verbose=TRUE, calc.se=TRUE)
    if(res$bic < min_bic){
      min_bic <- res$bic
      LCA_best_model<-res
    }
  }
}

我想进行潜类分析,并进行回归分析。但是,上面的代码需要我的电脑很长时间才能完成(intel core i5 4690k,16gb ram)。

poLCA通常需要这么长时间吗?

此外,是否有一行代码可以使用,一旦达到全局最大可能性,将停止每个类的循环?

<=> N = 2000左右。

顺便说一下,我使用R studio,以防万一!

1 个答案:

答案 0 :(得分:1)

是的,如果您有一个大型数据集,或者您在此处指定的复杂模型,该函数可能会运行缓慢。

为了加快速度,我建议取消j循环,而是设置nrep=30(比如说​​)。这将自动搜索每个潜在潜在类别(2到14)的全局最大可能性。我的猜测是你会发现你不需要运行每个模型规范1000次以找到全局最大值。

然后,比较每个LC数量的拟合模型的BIC,以帮助选择具有最佳类别数量的规范。不过,不仅要依赖BIC。还应查看类条件响应概率,以查看哪种模型规范对您的应用程序最有用或最有意义。