K <- ncol(fargs$beta)
M <- computeMoments(fargs$X, fargs$Y)
mu <- computeMu(fargs$X, fargs$Y, list(K=K, M=M))
- op <- optimParams(fargs$X, fargs$Y, K, fargs$link, M)
+ op <- optimParams(fargs$X, fargs$Y, K, fargs$link, M, 1) #only 1 OpenMP core
x_init <- list(p=rep(1/K,K-1), beta=mu, b=rep(0,K))
res2 <- NULL
tryCatch({
res2 <- do.call(rbind, op$run(x_init))
}, error = function(e) {})
res2
- },
+ }
+ ,
# flexmix
function(fargs) {
library(flexmix)
dat <- as.data.frame( cbind(fargs$Y,fargs$X) )
res2 <- NULL
tryCatch({
- fm <- flexmix( cbind(V1, 1-V1) ~ .-V1, data=dat, k=K,
+ fm <- flexmix( cbind(V1, 1-V1) ~ ., data=dat, k=K,
model = FLXMRglm(family = binomial(link = link)) )
- p <- mean(fm@posterior[["scaled"]][,1])
+ pf <- colMeans(fm@posterior[["scaled"]])
out <- refit(fm)
beta_b <- sapply( seq_len(K), function(i) {
as.double( out@components[[1]][[i]][,1] )
} )
- res2 <- rbind(p, beta_b[2:nrow(beta_b),], beta_b[1,])
+ res2 <- rbind(pf, beta_b[2:nrow(beta_b),], beta_b[1,])
}, error = function(e) {
res2 <- NA
})