[R-sig-ME] prevent for-loop from stopping after an lmer warning/error

Andrew Robinson apro at unimelb.edu.au
Thu Mar 22 20:42:40 CET 2018


?try

?tryCatch

Cheers,

Andrew


On 23 March 2018 at 06:18, Aleksander Adam Glowka <aglowka at stanford.edu>
wrote:

> Hi all,
>
> I'm fitting mixed-effects regression models to bootstrap samples in a
> for-loop and writing a subset of model results to file. I diverted the
> stream from the console to a text file so I can keep track any warnings or
> errors. For some samples the model does not converge and a warning is
> issued. For other samples there is an error in calculation of the
> Satterthwaite's approximation. The problem is that my loop iteration is
> aborted for some reason after a warning is issued. Do you know why this
> might be happening and how I can make the loops continue to the next
> iteration after an error or a warning?
>
> Below I've included an abridged version of my script and the warnings and
> errors I get. I'd be grateful for any advice you may have!
>
> Thank you,
>
> Aleksander Glowka
> PhD Candidate
> Department of Linguistics
> Stanford University
>
> #packages
> require(lme4)
> require(lmerTest)
>
> setwd(path0)
> source("lmer-data-extract-boot-fnc.R") #selected lmer results extractor
>
> # divert messages stream to file, so you can log warnings and errors
> options(warn=1)
> wngs=file("warnings_log.txt",open="w+",blocking=TRUE)
> sink(wngs,type="message")
>
> for(iter in 1:2000){
>
>   setwd(path1)
>
>   data = read.csv(paste("sample", iter,".csv", sep=""), header=TRUE)
>
>   #log model number to file so that any potential warnings/errors appear
> underneath
>   message(paste("holistic model #", iter, sep=""))
>
>   mod = lmer(y ~ x1 +
>             x2 +
>             x3 +
>             (1|ranef1) +
>             (x1|ranef2),
>             data = data,
>             REML = FALSE)
>
>   #write model results to file
>   setwd(path2)
>   write.csv(lmer.data.extract.boot(mod, iter), paste("mod.fixef_", iter,
> ".csv", sep=""), row.names=TRUE) #fixed effects
>   write.csv(lmer.ranef.data.extract.boot(holistic.mod, iter),
> paste("mod.ranef_", iter, ".csv", sep=""), row.names=FALSE)
>   write.csv(lmer.optim.data.extract.boot(holistic.mod, iter),
> paste("mod.optim_", iter, ".csv", sep=""), row.names=TRUE)
>   write.csv(as.data.frame(holistic.mod at optinfo$derivs$Hessian),
> paste("mod.hessian_", iter, ".csv", sep=""))
>   write.csv(summary(holistic.mod)$resid, paste("mod.resid_", iter,
> ".csv", sep=""), row.names=FALSE)
>   write(unlist(holistic.mod at optinfo$conv$lme4$messages),
> paste("mod.warnings_", iter, ".txt", sep=""))
>
>   cat("Iteration", iter, "completed!\n")
>
> }
>
> #close log file & restore warnings stream to console
> closeAllConnections()
>
> Errors:
>
> Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl =
> control$checkConv,  :
>   unable to evaluate scaled gradient
> Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl =
> control$checkConv,  :
>   Model failed to converge: degenerate  Hessian with 1 negative eigenvalues
>
> Error in calculation of the Satterthwaite's approximation. The output of
> lme4 package is returned
> summary from lme4 is returned
> some computational error has occurred in lmerTest
>
>
>
>
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-mixed-models at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>
>


-- 
Andrew Robinson
Director, CEBRA, School of BioSciences
Reader & Associate Professor in Applied Statistics  Tel: (+61) 0403 138 955
School of Mathematics and Statistics                        Fax: (+61) 03
8344 4599
University of Melbourne, VIC 3010 Australia
Email: apro at unimelb.edu.au
Website: http://www.ms.unimelb.edu.au/~andrewpr

	[[alternative HTML version deleted]]



More information about the R-sig-mixed-models mailing list