[R] Help in error of mixed models

Andrew Robinson A.Robinson at ms.unimelb.edu.au
Mon Nov 5 00:40:36 CET 2007


Hi Bernardo,

it may sound simple-minded, but it looks to me as though you have a
problem with the model.  Unfortunately it's difficult for us to
diagnose the problem because you didn't send an example that we can
reproduce.  We don't have the "base" data.

Based on my understanding of your code, you might try

lme(logit ~ dis*Modality + non.dis*Modality, 
	  random = ~ dis+non.dis | id, 
	  data = data.bi)

If this doesn't work, try fitting a simpler model, eg 

lme(logit ~ dis*Modality + non.dis*Modality,
          random = ~ | id,
          data = data.bi)

and then using update() to increment towards the full model of
interest.  You can also change the model-fitting engine, I have
sometimes had success using Nelder-Mead where nlminb failed.  For more
information about this see 

?lmeControl

Can I also recommend that you use more spaces in your code?

Good luck

Andrew

On Sun, Nov 04, 2007 at 09:18:09AM -0200, Bernardo Rangel Tura wrote:
> 
> Hi R-masters
> 
> I read the article: Bivariate analysis of sensitivity and specificity
> produces informative summary measures in diagnostic reviews.
> 
> In this paper i proposed a bivariate mixed model and use SAS proc mixed
> to adjust the estimates.
> 
> 
> I thinks use R to make the same and try with this code:
> 
> base<-read.csv("base.csv")
> adj<-.5
> attach(base)
> 
> sens<-(VP+adj)/(VP+FN+2*adj)
> log.S<-log(sens/(1-sens))
> var.log.S<-1/(sens*(1-sens)*(VP+FN))
> dis<-rep(1,length(log.S))
> non.dis<-rep(0,length(log.S))
> data.S<-data.frame(id,Modality,log.S,var.log.S,dis,non.dis)
> names(data.S)<-c("id","Modality","logit","var.logit","dis","non.dis")
> 
> esp<-(VN+adj)/(VN+FP+2*adj)
> log.E<-log((1-esp)/esp)
> var.log.E<-1/(esp*(1-esp)*(VN+FP))
> dis<-rep(0,length(log.E))
> non.dis<-rep(1,length(log.E))
> data.E<-data.frame(id,Modality,log.E,var.log.E,dis,non.dis)
> names(data.E)<-c("id","Modality","logit","var.logit","dis","non.dis")
> 
> data.bi<-rbind(data.S,data.E)
> require(nlme) 
> lme(logit~dis*Modality+non.dis*Modality, random=~dis|id+non.dis|
> id,data=data.bi)
> 
> but i recive a erro msg :
> 
> Error in MEEM(object, conLin, control$niterEM) : 
>   Singularity in backsolve at level 0, block 1
> 
> 
> How in solve this problem? Whats is wrong?
> 
> Thanks in advance
> -- 
> Bernardo Rangel Tura, M.D,Ph.D
> National Institute of Cardiology
> Brazil

> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.


-- 
Andrew Robinson  
Department of Mathematics and Statistics            Tel: +61-3-8344-9763
University of Melbourne, VIC 3010 Australia         Fax: +61-3-8344-4599
http://www.ms.unimelb.edu.au/~andrewpr
http://blogs.mbs.edu/fishing-in-the-bay/



More information about the R-help mailing list