Hola: Estaba leyendo un artículo y el autor escribió el siguiente ejemplo (parte en R), donde comenta la diferencia al utilizar expand.grid y luego predict, comenta que se pueden cometer errores por la forma en que se “ordenan” los datos, un punto que me también me gustaría conocer es acerca de level = 0, level =1 ..., hacer como si desconozco todo al respecto y comenzar de nuevo buscando errores, o comparando con solo predict(modelo). ¿Alguien puede comentar algo al respecto? library(nlme) summary(Milk) fit <- lme( protein ~ Diet*Time, Milk, random = ~ 1 | Cow ) summary(fit) pred <- expand.grid( Time = c(1,10), Diet =levels(Milk$Diet)) pred pred$protein.pred <- predict( fit, newdata = pred, level = 0) pred predict( fit, newdata = pred, level = 0) pred2 <- expand.grid( Time = c(1,10), Diet =c(''lupins'',''barley'',''barley+lupins'')) pred2$protein.pred <- predict( fit, newdata = pred, level = 0) pred2 pred3 <- expand.grid( Time = c(1,10), Diet = ''lupins'') pred3$protein.pred <- predict( fit, newdata = pred, level = 0) #Error in `$<-.data.frame`(`*tmp*`, "protein.pred", value = c(3.54765985573679, : # replacement has 6 rows, data has 2 pred3 [[alternative HTML version deleted]]
Hola Javier: El código tiene varios errores. Principalmente no cambiar el new.data, siempre usa el mismo. Cambia eso y debería funcionar. En cuanto a los niveles de predicción, es depende lo que te interese. level = 0 es a nivel de efectos fijos, level = 1 es a nivel de agrupamiento. Podrias tener más niveles si tuvieses más niveles de agrupamientos. Saludos Luciano El 17 de agosto de 2012 22:59, Marcuzzi, Javier Rubén < javier.ruben.marcuzzi@gmail.com> escribió:> Hola: > > Estaba leyendo un artículo y el autor escribió el siguiente ejemplo (parte > en R), donde comenta la diferencia al utilizar expand.grid y luego predict, > comenta que se pueden cometer errores por la forma en que se “ordenan” los > datos, un punto que me también me gustaría conocer es acerca de level = 0, > level =1 ..., hacer como si desconozco todo al respecto y comenzar de nuevo > buscando errores, o comparando con solo predict(modelo). > > ¿Alguien puede comentar algo al respecto? > > library(nlme) > summary(Milk) > fit <- lme( protein ~ Diet*Time, Milk, random = ~ 1 | Cow ) > summary(fit) > > pred <- expand.grid( Time = c(1,10), Diet =levels(Milk$Diet)) > pred > pred$protein.pred <- predict( fit, newdata = pred, level = 0) > pred > predict( fit, newdata = pred, level = 0) > > pred2 <- expand.grid( Time = c(1,10), Diet > =c(''lupins'',''barley'',''barley+lupins'')) > pred2$protein.pred <- predict( fit, newdata = pred, level = 0) > pred2 > > pred3 <- expand.grid( Time = c(1,10), Diet = ''lupins'') > pred3$protein.pred <- predict( fit, newdata = pred, level = 0) > #Error in `$<-.data.frame`(`*tmp*`, "protein.pred", value > c(3.54765985573679, : > # replacement has 6 rows, data has 2 > pred3 > [[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 Muchas gracias, el código busca errores, el autor describe algunos, el ejemplo está en Baheviour of predict in nlme dentro de http://scs.math.yorku.ca/index.php/R/Predict_with_expand.grid Sobre level =0, level =1, en un libro dice exactamente lo que usted comenta, tengo que hacer algunos ejemplos sencillos para estudiarlos, ver la agrupación de datos, ¿hay alguna forma para que R informe los niveles o agrupaciones del modelo?, es una pregunta “tonta”, pero como quiero aprender agrupamiento, niveles, predicción de modelo, debo hacer como si no conociera nada de antemano para evitar arrastras posibles errores, es mi forma de aprender y corregirme si algo sale distinto a lo que esperaba. Javier From: Luciano Selzer Sent: Saturday, August 18, 2012 10:31 AM To: Marcuzzi, Javier Rubén Cc: R-help-es@r-project.org Subject: Re: [R-es] expand.grid predict Hola Javier: El código tiene varios errores. Principalmente no cambiar el new.data, siempre usa el mismo. Cambia eso y debería funcionar. En cuanto a los niveles de predicción, es depende lo que te interese. level = 0 es a nivel de efectos fijos, level = 1 es a nivel de agrupamiento. Podrias tener más niveles si tuvieses más niveles de agrupamientos. Saludos Luciano El 17 de agosto de 2012 22:59, Marcuzzi, Javier Rubén <javier.ruben.marcuzzi@gmail.com> escribió: Hola: Estaba leyendo un artículo y el autor escribió el siguiente ejemplo (parte en R), donde comenta la diferencia al utilizar expand.grid y luego predict, comenta que se pueden cometer errores por la forma en que se “ordenan” los datos, un punto que me también me gustaría conocer es acerca de level = 0, level =1 ..., hacer como si desconozco todo al respecto y comenzar de nuevo buscando errores, o comparando con solo predict(modelo). ¿Alguien puede comentar algo al respecto? library(nlme) summary(Milk) fit <- lme( protein ~ Diet*Time, Milk, random = ~ 1 | Cow ) summary(fit) pred <- expand.grid( Time = c(1,10), Diet =levels(Milk$Diet)) pred pred$protein.pred <- predict( fit, newdata = pred, level = 0) pred predict( fit, newdata = pred, level = 0) pred2 <- expand.grid( Time = c(1,10), Diet =c(''lupins'',''barley'',''barley+lupins'')) pred2$protein.pred <- predict( fit, newdata = pred, level = 0) pred2 pred3 <- expand.grid( Time = c(1,10), Diet = ''lupins'') pred3$protein.pred <- predict( fit, newdata = pred, level = 0) #Error in `$<-.data.frame`(`*tmp*`, "protein.pred", value = c(3.54765985573679, : # replacement has 6 rows, data has 2 pred3 [[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 Tiene razón, ese código está lleno de errores, mire un poco y realice algunas correcciones y bueno, no se como se origino ese lío. Ahora funcionando... library(nlme) summary(Milk) fit <- lme( protein ~ Diet*Time, Milk, random = ~ 1 | Cow ) summary(fit) pred <- expand.grid( Time = c(1,10), Diet =levels(Milk$Diet)) #pred pred$protein.pred <- predict( fit, newdata = pred, level = 1) pred #predict( fit, newdata = pred, level = 0) pred4 <- expand.grid( Time = c(1,10), Diet =c(''barley'',''barley+lupins'')) pred4$protein.pred <- predict( fit, newdata = pred4, level = 0) pred4 pred5 <- expand.grid( Time = c(1,10), Diet =c(''lupins'',''barley+lupins'')) pred5$protein.pred <- predict( fit, newdata = pred5, level = 0) pred5 pred6 <- expand.grid( Time = c(1,10), Diet =c(''barley+lupins'',''lupins'',''barley'')) pred6$protein.pred <- predict( fit, newdata = pred6, level = 0) pred6 pred2 <- expand.grid( Time = c(1,10), Diet =c(''lupins'',''barley'',''barley+lupins'')) pred2$protein.pred <- predict( fit, newdata = pred2, level = 0) pred2 pred pred4 pred5 pred6 pred2 From: Luciano Selzer Sent: Saturday, August 18, 2012 10:31 AM To: Marcuzzi, Javier Rubén Cc: R-help-es@r-project.org Subject: Re: [R-es] expand.grid predict Hola Javier: El código tiene varios errores. Principalmente no cambiar el new.data, siempre usa el mismo. Cambia eso y debería funcionar. En cuanto a los niveles de predicción, es depende lo que te interese. level = 0 es a nivel de efectos fijos, level = 1 es a nivel de agrupamiento. Podrias tener más niveles si tuvieses más niveles de agrupamientos. Saludos Luciano El 17 de agosto de 2012 22:59, Marcuzzi, Javier Rubén <javier.ruben.marcuzzi@gmail.com> escribió: Hola: Estaba leyendo un artículo y el autor escribió el siguiente ejemplo (parte en R), donde comenta la diferencia al utilizar expand.grid y luego predict, comenta que se pueden cometer errores por la forma en que se “ordenan” los datos, un punto que me también me gustaría conocer es acerca de level = 0, level =1 ..., hacer como si desconozco todo al respecto y comenzar de nuevo buscando errores, o comparando con solo predict(modelo). ¿Alguien puede comentar algo al respecto? library(nlme) summary(Milk) fit <- lme( protein ~ Diet*Time, Milk, random = ~ 1 | Cow ) summary(fit) pred <- expand.grid( Time = c(1,10), Diet =levels(Milk$Diet)) pred pred$protein.pred <- predict( fit, newdata = pred, level = 0) pred predict( fit, newdata = pred, level = 0) pred2 <- expand.grid( Time = c(1,10), Diet =c(''lupins'',''barley'',''barley+lupins'')) pred2$protein.pred <- predict( fit, newdata = pred, level = 0) pred2 pred3 <- expand.grid( Time = c(1,10), Diet = ''lupins'') pred3$protein.pred <- predict( fit, newdata = pred, level = 0) #Error in `$<-.data.frame`(`*tmp*`, "protein.pred", value = c(3.54765985573679, : # replacement has 6 rows, data has 2 pred3 [[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 Creo que está bien, igualmente hay que tener cuidado con el orden de los factores. Algo más seguro para definir los factores es usar levels(factor) en expand.grid, así lo pones en el mismo orden en que estan originalmente. Luciano El 19 de agosto de 2012 13:51, Marcuzzi, Javier Rubén < javier.ruben.marcuzzi@gmail.com> escribió:> Estimado Luciano > > Tiene razón, ese código está lleno de errores, mire un poco y realice > algunas correcciones y bueno, no se como se origino ese lío. > Ahora funcionando... > > library(nlme) > summary(Milk) > fit <- lme( protein ~ Diet*Time, Milk, random = ~ 1 | Cow ) > summary(fit) > > pred <- expand.grid( Time = c(1,10), Diet =levels(Milk$Diet)) > #pred > pred$protein.pred <- predict( fit, newdata = pred, level = 1) > pred > #predict( fit, newdata = pred, level = 0) > > > pred4 <- expand.grid( Time = c(1,10), Diet =c(''barley'',''barley+lupins'')) > pred4$protein.pred <- predict( fit, newdata = pred4, level = 0) > pred4 > pred5 <- expand.grid( Time = c(1,10), Diet =c(''lupins'',''barley+lupins'')) > pred5$protein.pred <- predict( fit, newdata = pred5, level = 0) > pred5 > pred6 <- expand.grid( Time = c(1,10), Diet > =c(''barley+lupins'',''lupins'',''barley'')) > pred6$protein.pred <- predict( fit, newdata = pred6, level = 0) > pred6 > pred2 <- expand.grid( Time = c(1,10), Diet > =c(''lupins'',''barley'',''barley+lupins'')) > pred2$protein.pred <- predict( fit, newdata = pred2, level = 0) > pred2 > > pred > pred4 > pred5 > pred6 > pred2 > > *From:* Luciano Selzer <luciano.selzer@gmail.com> > *Sent:* Saturday, August 18, 2012 10:31 AM > *To:* Marcuzzi, Javier Rubén <javier.ruben.marcuzzi@gmail.com> > *Cc:* R-help-es@r-project.org > *Subject:* Re: [R-es] expand.grid predict > > Hola Javier: > > El código tiene varios errores. Principalmente no cambiar el new.data, > siempre usa el mismo. Cambia eso y debería funcionar. En cuanto a los > niveles de predicción, es depende lo que te interese. level = 0 es a nivel > de efectos fijos, level = 1 es a nivel de agrupamiento. Podrias tener más > niveles si tuvieses más niveles de agrupamientos. > > Saludos > Luciano > > > El 17 de agosto de 2012 22:59, Marcuzzi, Javier Rubén < > javier.ruben.marcuzzi@gmail.com> escribió: > >> Hola: >> >> Estaba leyendo un artículo y el autor escribió el siguiente ejemplo >> (parte en R), donde comenta la diferencia al utilizar expand.grid y luego >> predict, comenta que se pueden cometer errores por la forma en que se >> “ordenan” los datos, un punto que me también me gustaría conocer es acerca >> de level = 0, level =1 ..., hacer como si desconozco todo al respecto y >> comenzar de nuevo buscando errores, o comparando con solo predict(modelo). >> >> ¿Alguien puede comentar algo al respecto? >> >> library(nlme) >> summary(Milk) >> fit <- lme( protein ~ Diet*Time, Milk, random = ~ 1 | Cow ) >> summary(fit) >> >> pred <- expand.grid( Time = c(1,10), Diet =levels(Milk$Diet)) >> pred >> pred$protein.pred <- predict( fit, newdata = pred, level = 0) >> pred >> predict( fit, newdata = pred, level = 0) >> >> pred2 <- expand.grid( Time = c(1,10), Diet >> =c(''lupins'',''barley'',''barley+lupins'')) >> pred2$protein.pred <- predict( fit, newdata = pred, level = 0) >> pred2 >> >> pred3 <- expand.grid( Time = c(1,10), Diet = ''lupins'') >> pred3$protein.pred <- predict( fit, newdata = pred, level = 0) >> #Error in `$<-.data.frame`(`*tmp*`, "protein.pred", value >> c(3.54765985573679, : >> # replacement has 6 rows, data has 2 >> pred3 >> [[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]]