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