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]]