[R-sig-ME] prevent for-loop from stopping after an lmer warning/error
Ben Bolker
bbolker at gmail.com
Fri Mar 23 18:42:47 CET 2018
Is your loop really stopping after warnings (that would be
surprising), not just after errors?
On Thu, Mar 22, 2018 at 3:42 PM, Andrew Robinson <apro at unimelb.edu.au> wrote:
> ?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]]
>
> _______________________________________________
> R-sig-mixed-models at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
More information about the R-sig-mixed-models
mailing list