convergence in GLMM (lme4 package)
On 12-10-31 02:27 PM, Mart? Casals wrote:
Hi Ben, Thank you very much for all your help, so far. Nonetheless, there is still something not working. If you could have a look at the following code, I would highly appreciate it. It's about how to count convergence problems of function glmer within a simulation. I tried to adapt your proposal to my models, but something's not working, probably to me lack of knowledge of functions like tryCatch and withCallingHandlers.
Here's my attempt.
A reproducible example would have been slightly more convenient --
I'm guessing a bit here.
options(warn=2)
nsim <- 1000 ## BMB: setting this to a parameter
warn<-rep(NA,nsim)
estglmer<-vector('list',nsim)
## BMB: it is marginally more efficient to pre-allocate
## lists (although prob doesn't
## matter in this much case, glmer() is the slow part)
## don't know why estglmer needs names?
## The model to be fitted (Y, Category, fallswinner & ncombat are
## variables in data frame dd)
modfun <- function(dat) glmer(Y~Category+fallswinner+(1|id),
offset=(log(ncombat)),nAGQ=50,family="poisson",data=dat)
for(i in 1:nsim){
# The data to be used
## nAGQ=50 is a little surprising. Do you really need that much?
estglmer[[i]]<-withCallingHandlers(
tryCatch(modfun(alldata[[i]]),
error = function(e) {
warn[i] <<- paste("ERROR:",e$message)
NA
}),
warning = function(w) {
warn[i] <<- w$message
invokeRestart("muffleWarning")
})
}
I'm thinking about the topic and I don't know if it?s useful to obtain
the warnings/errors, because I should look at each error and then I
should decide what I can do.
I only want to inform aboutpercentage of convergence of GLMM, that is
the converge is true or false. I understand that a model is considered
as not convergent either if the estimation process did not converge or
if the estimate or its standard error was not provided. For example, in
some cases the parameter can be estimated but the estimation process was
unable to provide a positive definite variance-covariance matrix of the
parameters (problems with Hessian), mainly due to the instability of the
model.
Thank you very much in advance for your suggestions.
Mart?
2012/10/23 Mart? Casals <mcasals at aspb.cat <mailto:mcasals at aspb.cat>>
Thank you so much Ben!!
Mart?
2012/10/23 Ben Bolker <bbolker at gmail.com <mailto:bbolker at gmail.com>>
Mart? Casals <mcasals at ...> writes:
>
> I?m working on the simulation results and I would like to know the
> convergence of the GLMM model. For example, if I want to
obtain the
> converge in the glm case with R, I can extract:
>
> model1<-glm(................family=" ",data=)
>
> *model1$converged*
>
> [1] TRUE
>
> I don?t know if exist a similar function in the lme4 package
(glmer ).
>
I think not.
I believe the only way to do this (it may have been discussed
before)
is to use options(warning=2) to promote warnings to errors, then
to use
tryCatch() etc. to intercept the errors and store the
information somewhere.
http://comments.gmane.org/gmane.comp.lang.r.lme4.devel/8691
https://stat.ethz.ch/pipermail/r-help/2012-February/302767.html
I've added a bit on this to http://glmm.wikidot.com/faq, since
it's
not the first time it has come up ...
Ben Bolker
_______________________________________________
R-sig-mixed-models at r-project.org
<mailto:R-sig-mixed-models at r-project.org> mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
--
Mart? Casals Toquero
Centre d' Investigaci? Biom?dica d'Epidemiolog?a i Salut P?blica
Ag?ncia de Salut P?blica de Barcelona
Servei d' Epidemiologia
Tel. 932384545 extensi?: 391
mcasals at aspb.es <mailto:mcasals at aspb.es>
--
Mart? Casals Toquero
Centre d' Investigaci? Biom?dica d'Epidemiolog?a i Salut P?blica
Ag?ncia de Salut P?blica de Barcelona
Servei d' Epidemiologia
Tel. 932384545 extensi?: 391
mcasals at aspb.es <mailto:mcasals at aspb.es>