Hola a todos Estoy comparando lo mismo con dos librerías diferentes, una de ellas utiliza lme4, creo que debe ser una “librería famosa” y conocida. Por ahora no creo que convenga complicarlos, pero hay dos mensajes que no entiendo, si pueden ayudarme al respecto… Mensaje 1:>Error: all(pnms %in% names(lmf$FL$fl)) is not TRUE Timing stopped at: 0.03 0 0.03>Mensaje 2: Error en .local(x, ...) : CHOLMOD factorization was unsuccessful Además: Mensajes de aviso perdidos In .local(x, ...) : Cholmod warning ''not positive definite'' at file:../Cholesky/t_cholmod_rowfac.c, line 432 Timing stopped at: 0.09 0 0.11 Javier [[alternative HTML version deleted]]
Javier, quizá sería mejor que dirijieras tu consulta a R-sig-ME. Lo único que se decirte es que el segundo error es debido a que la matriz de varianzas-covarianzas no es "positive definite<http://en.wikipedia.org/wiki/Positive-definite_matrix> " Luciano 2011/2/14 Javier Marcuzzi <javier.ruben.marcuzzi@gmail.com>> Hola a todos > > > > Estoy comparando lo mismo con dos librerías diferentes, una de ellas > utiliza > lme4, creo que debe ser una “librería famosa” y conocida. > > > > Por ahora no creo que convenga complicarlos, pero hay dos mensajes que no > entiendo, si pueden ayudarme al respecto… > > > > Mensaje 1: > > > > > Error: all(pnms %in% names(lmf$FL$fl)) is not TRUE > > Timing stopped at: 0.03 0 0.03 > > > > > Mensaje 2: > > Error en .local(x, ...) : CHOLMOD factorization was unsuccessful > > Además: Mensajes de aviso perdidos > > In .local(x, ...) : > > Cholmod warning ''not positive definite'' at > file:../Cholesky/t_cholmod_rowfac.c, line 432 > > Timing stopped at: 0.09 0 0.11 > > > > Javier > > > > > > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]
Hola, Javier, reenvio esto a la lista ya que en el otro mail parece que te olvidaste de responder a todos. Buscando en internet<http://www.r-help.com/list/85/540751.html>tu error se debe a un problema con la factorización de los efectos aleatorios. Quizá si describieras mejor que es lo que estás haciendo te podríamos ayudar. Luciano El 14 de febrero de 2011 22:35, Javier Marcuzzi < javier.ruben.marcuzzi@gmail.com> escribió:> Gracias Luciano > > > > Mire el sitio que me sugiere, mi primer error fue solucionado, pero no el > segundo: > > > > Error en .local(x, ...) : CHOLMOD factorization was unsuccessful > > Además: Mensajes de aviso perdidos > > In .local(x, ...) : > > Cholmod warning ''not positive definite'' at > file:../Cholesky/t_cholmod_rowfac.c, line 432 > > > > Otra librería con los mismos datos no tiene problemas, por lo que los datos > están correctos. > > > > Si alguien puede aportar algo desde el código, me refiero una opción, como > ejemplo aunque no es el caso “verbose = TRUE”, una opción para este tipo de > problemas que seguramente se deben presentar en algunas ocasiones. > > > > R-sig-ME escapa a mis conocimientos. > > > > > > *De:* Luciano Selzer [mailto:luciano.selzer@gmail.com] > *Enviado el:* lunes, 14 de febrero de 2011 04:38 p.m. > *Para:* Javier Marcuzzi > *CC:* R-help-es@r-project.org > *Asunto:* Re: [R-es] lme4 > > > > Javier, quizá sería mejor que dirijieras tu consulta a R-sig-ME. Lo único > que se decirte es que el segundo error es debido a que la matriz de > varianzas-covarianzas no es "positive definite<http://en.wikipedia.org/wiki/Positive-definite_matrix> > " > Luciano > > 2011/2/14 Javier Marcuzzi <javier.ruben.marcuzzi@gmail.com> > > Hola a todos > > > > Estoy comparando lo mismo con dos librerías diferentes, una de ellas > utiliza > lme4, creo que debe ser una “librería famosa” y conocida. > > > > Por ahora no creo que convenga complicarlos, pero hay dos mensajes que no > entiendo, si pueden ayudarme al respecto… > > > > Mensaje 1: > > > > > Error: all(pnms %in% names(lmf$FL$fl)) is not TRUE > > Timing stopped at: 0.03 0 0.03 > > > > > Mensaje 2: > > Error en .local(x, ...) : CHOLMOD factorization was unsuccessful > > Además: Mensajes de aviso perdidos > > In .local(x, ...) : > > Cholmod warning ''not positive definite'' at > file:../Cholesky/t_cholmod_rowfac.c, line 432 > > Timing stopped at: 0.09 0 0.11 > > > > Javier > > > > > > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > > >[[alternative HTML version deleted]]
Estimado Luciano, continuando su sugerencia, envío un código donde se procesa información (pocos datos), al ejecutar el código se llega al error que pregunto cómo puedo solucionarlo, son varios renglones a los fines de hacer entendible el problema, en primer lugar cargo los datos y los proceso con MCMCglmm, no hay problemas, luego los proceso con lme4 en forma simplificada, y el equivalente a MCMCglmm utilizando pedigreemm que requiere lme4, donde aparece el mensaje de error. El código es el siguiente: espero que se entienda mi explicación, y desde ya muchas gracias. # carga de datos y librerías requeridas library(MCMCglmm) library(pedigreemm) data(ChickWeight) animal <-c(1:50) Father <-c(NA,NA,NA,NA,NA,NA,1,1,1,1,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,5,7,7,7,7, 7,7,7,7,7,7,7,1,1,1,1,3,3,3,3,5,5,5,5) Mother <-c(NA,NA,NA,NA,NA,NA,2,2,2,2,4,4,4,4,4,4,4,4,6,6,6,6,6,6,8,8,8,8,8,8,8, 4,4,4,4,4,4,6,6,6,6,6,2,2,2,2,2,4,2,4) Ped <- cbind(animal, Father, Mother) animal<-ChickWeight$Chick datos<-data.frame(ChickWeight$weight, ChickWeight$Time, animal, ChickWeight$Diet) nombres<-(c("weight","Time","animal","Diet")) colnames(datos)<-nombres # modelo en MCMCglmm prior.m <- list(R = list(V=1, n=0.0002), G=list(G1=list(V= diag(3),n=3))) system.time( BV <- MCMCglmm(weight ~ Diet + poly(Time, 2, raw=TRUE), random = ~us(1+ poly (Time, 2, raw=TRUE)):animal, data = datos, pedigree = Ped, verbose = TRUE, pr=TRUE, pl=TRUE, prior = prior.m, saveX = TRUE, saveZ = TRUE) ) # modelo simplificado en lmer system.time( con.los.mismos.datos <- lmer(weight ~ Diet + poly(Time, 2, raw = TRUE) + (poly(Time, 2, raw = TRUE) | Chick), data = ChickWeight) ) summary(con.los.mismos.datos) #####################33 # modifico animal por id para pedigreemm datos<-data.frame(ChickWeight$weight, ChickWeight$Time, animal, ChickWeight$Diet) nombres<-(c("weight","Time","id","Diet")) colnames(datos)<-nombres con.datos.modificados.para.pedigreemm <- lmer(weight ~ Diet + poly(Time, 2, raw = TRUE) + (poly(Time, 2, raw = TRUE) | id), data = datos) summary(con.datos.modificados.para.pedigreemm) # creo el pedigree para pedigreemm ped2 <- pedigree(sire = Father, dam = Mother, label = 1:50) # modelo con el problema system.time( fm.datos.en.pedigreemm <-pedigreemm(formula = weight ~ Diet + poly(Time, 2, raw = TRUE) + (poly(Time, 2, raw = TRUE) | id), data = datos, pedigree = list( id ped2),verbose = TRUE) ) # fallo, pero tendía que andar # nota: pedigreemm utiliza lmer, la diferencia es que ingresa la relación entre animales [[alternative HTML version deleted]]
Que tal si quitas los NA de los padres y madres? Yo creo que es un problema con los efectos aleatorios. Luciano El 15 de febrero de 2011 13:04, Javier Marcuzzi < javier.ruben.marcuzzi@gmail.com> escribió:> Estimado Luciano, continuando su sugerencia, envío un código donde se > procesa información (pocos datos), al ejecutar el código se llega al error > que pregunto cómo puedo solucionarlo, son varios renglones a los fines de > hacer entendible el problema, en primer lugar cargo los datos y los proceso > con MCMCglmm, no hay problemas, luego los proceso con lme4 en forma > simplificada, y el equivalente a MCMCglmm utilizando pedigreemm que > requiere > lme4, donde aparece el mensaje de error. > > > > El código es el siguiente: espero que se entienda mi explicación, y desde > ya > muchas gracias. > > > > # carga de datos y librerías requeridas > > library(MCMCglmm) > > library(pedigreemm) > > data(ChickWeight) > > > > > > animal <-c(1:50) > > Father > <-c(NA,NA,NA,NA,NA,NA,1,1,1,1,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,5,7,7,7,7, > > 7,7,7,7,7,7,7,1,1,1,1,3,3,3,3,5,5,5,5) > > Mother > <-c(NA,NA,NA,NA,NA,NA,2,2,2,2,4,4,4,4,4,4,4,4,6,6,6,6,6,6,8,8,8,8,8,8,8, > > 4,4,4,4,4,4,6,6,6,6,6,2,2,2,2,2,4,2,4) > > Ped <- cbind(animal, Father, Mother) > > animal<-ChickWeight$Chick > > > > datos<-data.frame(ChickWeight$weight, ChickWeight$Time, animal, > ChickWeight$Diet) > > nombres<-(c("weight","Time","animal","Diet")) > > colnames(datos)<-nombres > > > > # modelo en MCMCglmm > > > > prior.m <- list(R = list(V=1, n=0.0002), G=list(G1=list(V= diag(3),n=3))) > > system.time( > > BV <- MCMCglmm(weight ~ Diet + poly(Time, 2, raw=TRUE), > > random = ~us(1+ poly (Time, 2, raw=TRUE)):animal, > > data = datos, pedigree = Ped, > > verbose = TRUE, pr=TRUE, pl=TRUE, > > prior = prior.m, saveX = TRUE, saveZ = TRUE) > > ) > > # modelo simplificado en lmer > > system.time( > > con.los.mismos.datos <- lmer(weight ~ Diet + poly(Time, 2, raw = TRUE) + > > (poly(Time, 2, raw = TRUE) | Chick), data = ChickWeight) > > ) > > summary(con.los.mismos.datos) > > > > > > #####################33 > > # modifico animal por id para pedigreemm > > datos<-data.frame(ChickWeight$weight, ChickWeight$Time, animal, > ChickWeight$Diet) > > nombres<-(c("weight","Time","id","Diet")) > > colnames(datos)<-nombres > > > > con.datos.modificados.para.pedigreemm <- lmer(weight ~ Diet + poly(Time, 2, > raw = TRUE) + > > (poly(Time, 2, raw = TRUE) | id), data = datos) > > summary(con.datos.modificados.para.pedigreemm) > > # creo el pedigree para pedigreemm > > ped2 <- pedigree(sire = Father, > > dam = Mother, > > label = 1:50) > > > > # modelo con el problema > > system.time( > > fm.datos.en.pedigreemm <-pedigreemm(formula = weight ~ Diet + poly(Time, 2, > raw = TRUE) + > > (poly(Time, 2, raw = TRUE) | id), data = datos, pedigree = list( id > ped2),verbose = TRUE) > > ) > > > > # fallo, pero tendía que andar > > # nota: pedigreemm utiliza lmer, la diferencia es que ingresa la relación > entre animales > > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]
Luciano El manual y los ejemplos usan NA, sin embargo su propuesta no es mala (por ejemplo usar 0), desgraciadamente al ejecutar las sentencias en R el error continúa. Javier De: Luciano Selzer [mailto:luciano.selzer@gmail.com] Enviado el: viernes, 18 de febrero de 2011 11:43 a.m. Para: Javier Marcuzzi CC: r-help-es@r-project.org Asunto: Re: [R-es] lme4 Que tal si quitas los NA de los padres y madres? Yo creo que es un problema con los efectos aleatorios. Luciano El 15 de febrero de 2011 13:04, Javier Marcuzzi <javier.ruben.marcuzzi@gmail.com> escribió: Estimado Luciano, continuando su sugerencia, envío un código donde se procesa información (pocos datos), al ejecutar el código se llega al error que pregunto cómo puedo solucionarlo, son varios renglones a los fines de hacer entendible el problema, en primer lugar cargo los datos y los proceso con MCMCglmm, no hay problemas, luego los proceso con lme4 en forma simplificada, y el equivalente a MCMCglmm utilizando pedigreemm que requiere lme4, donde aparece el mensaje de error. El código es el siguiente: espero que se entienda mi explicación, y desde ya muchas gracias. # carga de datos y librerías requeridas library(MCMCglmm) library(pedigreemm) data(ChickWeight) animal <-c(1:50) Father <-c(NA,NA,NA,NA,NA,NA,1,1,1,1,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,5,7,7,7,7, 7,7,7,7,7,7,7,1,1,1,1,3,3,3,3,5,5,5,5) Mother <-c(NA,NA,NA,NA,NA,NA,2,2,2,2,4,4,4,4,4,4,4,4,6,6,6,6,6,6,8,8,8,8,8,8,8, 4,4,4,4,4,4,6,6,6,6,6,2,2,2,2,2,4,2,4) Ped <- cbind(animal, Father, Mother) animal<-ChickWeight$Chick datos<-data.frame(ChickWeight$weight, ChickWeight$Time, animal, ChickWeight$Diet) nombres<-(c("weight","Time","animal","Diet")) colnames(datos)<-nombres # modelo en MCMCglmm prior.m <- list(R = list(V=1, n=0.0002), G=list(G1=list(V= diag(3),n=3))) system.time( BV <- MCMCglmm(weight ~ Diet + poly(Time, 2, raw=TRUE), random = ~us(1+ poly (Time, 2, raw=TRUE)):animal, data = datos, pedigree = Ped, verbose = TRUE, pr=TRUE, pl=TRUE, prior = prior.m, saveX = TRUE, saveZ = TRUE) ) # modelo simplificado en lmer system.time( con.los.mismos.datos <- lmer(weight ~ Diet + poly(Time, 2, raw = TRUE) + (poly(Time, 2, raw = TRUE) | Chick), data = ChickWeight) ) summary(con.los.mismos.datos) #####################33 # modifico animal por id para pedigreemm datos<-data.frame(ChickWeight$weight, ChickWeight$Time, animal, ChickWeight$Diet) nombres<-(c("weight","Time","id","Diet")) colnames(datos)<-nombres con.datos.modificados.para.pedigreemm <- lmer(weight ~ Diet + poly(Time, 2, raw = TRUE) + (poly(Time, 2, raw = TRUE) | id), data = datos) summary(con.datos.modificados.para.pedigreemm) # creo el pedigree para pedigreemm ped2 <- pedigree(sire = Father, dam = Mother, label = 1:50) # modelo con el problema system.time( fm.datos.en.pedigreemm <-pedigreemm(formula = weight ~ Diet + poly(Time, 2, raw = TRUE) + (poly(Time, 2, raw = TRUE) | id), data = datos, pedigree = list( id ped2),verbose = TRUE) ) # fallo, pero tendía que andar # nota: pedigreemm utiliza lmer, la diferencia es que ingresa la relación entre animales [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]]