【发布时间】:2015-07-10 04:33:37
【问题描述】:
这是我正在编写的脚本:
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,以防万一!
【问题讨论】:
-
这些大多是更适合stackoverflow的编程问题。但是,这里有一些关于统计方面的观察。 1. 最低 BIC 通常不是“最大似然 [nclass 下数据的值]”。 2.你无法知道是否或何时找到了全局ML(或最低BIC),只能知道当前的比以前的更好。
-
还有一些关于代码的信息: 1. 浏览包文档,您可以通过设置
nrep=1024来替换整个j循环。最佳模型返回为res。安装好后,进行min_bic测试,2. 你不要在任何地方使用max_II。
标签: r multiple-regression