Argel Gastélum Arellánez
2011-Apr-01 18:50 UTC
[R-es] Predicción de valor máximo en superficie de respuesta, con paquete rsm
Hola compañeros de la lista. Estoy aprendiendo a usar el paquete "rsm" para superficies de respuesta. Siguiendo este ejemplo todo va bien, hasta que trato de obtener el valor máximo predicho para la variable de respuesta en los valores de x1 y x2 estimados. ------------------------------------------------------------- library("rsm") ChemReact CR <- coded.data(ChemReact, x1 ~ (Time - 85)/5, x2 ~ (Temp - 175)/5) CR # Realizando un ajuste de segundo orden: CR.rsm2 <- rsm(Yield ~ Block + SO(x1, x2), data = CR) CR.rsm2 summary(CR.rsm2) # Graficando: contour(CR.rsm2, ~ x1 + x2, at = summary(CR.rsm2)$canonical$xs, image = TRUE, img.col = terrain.colors(50)) xs <- canonical(CR.rsm2)$xs points (xs[1], xs[2], pch=2, col="red") points(CR[1:7,], col="black", pch=19) points(CR[8:14,], col="blue", pch=19) #Esta última línea da un error: predict(CR.rsm2, newdata=data.frame(x1=summary(CR.rsm2)$canonical$xs[1],x2=summary(CR.rsm2)$canonical$xs[2])) -------------------------------------------------------------- La última línea me arroja el siguiente error: Error en eval(expr, envir, enclos) : objeto 'Block' no encontrado De antemano agradezco la ayuda. Saludos. -- Argel.
Jorge Ivan Velez
2011-Apr-01 19:07 UTC
[R-es] Predicción de valor máximo en superficie de respuesta, con paquete rsm
Hola Argel, El nuevo conjunto de datos con que debes alimentar la funcion predict() debe ser un data.frame en el que el nombre de las variables deben corresponder a los utilizados para ajustar el modelo. Esa informacion puedes obtenerla de ?predict. En tu caso, no proporcionaste el "Block" para el cual quieres hacer la prediccion. Trata lo siguiente:> predict(CR.rsm2,newdata=data.frame(x1=summary(CR.rsm2)$canonical$xs[1],x2=summary(CR.rsm2)$canonical$xs[2], Block = ''B1'')) x1 84.36561> predict(CR.rsm2,newdata=data.frame(x1=summary(CR.rsm2)$canonical$xs[1],x2=summary(CR.rsm2)$canonical$xs[2], Block = ''B2'')) x1 79.90808 Un comentario adicional: La respuesta que se obtiene en este caso no es el valor de "x1" utilizando el modelo CR.rsm2 sino el valor de "Yield". Saludos, Jorge Ivan Velez 2011/4/1 Argel Gastélum Arellánez <>> Hola compañeros de la lista. Estoy aprendiendo a usar el paquete "rsm" > para superficies de respuesta. Siguiendo este ejemplo todo va bien, hasta > que trato de obtener el valor máximo predicho para la variable de respuesta > en los valores de x1 y x2 estimados. > > ------------------------------------------------------------- > library("rsm") > ChemReact > CR <- coded.data(ChemReact, x1 ~ (Time - 85)/5, x2 ~ (Temp - 175)/5) > CR > # Realizando un ajuste de segundo orden: > CR.rsm2 <- rsm(Yield ~ Block + SO(x1, x2), data = CR) > CR.rsm2 > summary(CR.rsm2) > # Graficando: > contour(CR.rsm2, ~ x1 + x2, at = summary(CR.rsm2)$canonical$xs, image > TRUE, img.col = terrain.colors(50)) > xs <- canonical(CR.rsm2)$xs > points (xs[1], xs[2], pch=2, col="red") > points(CR[1:7,], col="black", pch=19) > points(CR[8:14,], col="blue", pch=19) > #Esta última línea da un error: > predict(CR.rsm2, > newdata=data.frame(x1=summary(CR.rsm2)$canonical$xs[1],x2=summary(CR.rsm2)$canonical$xs[2])) > -------------------------------------------------------------- > > La última línea me arroja el siguiente error: > > Error en eval(expr, envir, enclos) : objeto ''Block'' no encontrado > > De antemano agradezco la ayuda. > > Saludos. > > -- > Argel. > > _______________________________________________ > 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 Selzer
2011-Apr-01 19:07 UTC
[R-es] Predicción de valor máximo en superficie de respuesta, con paquete rsm
No tengo mucha idea del paquete rsm. Pero lo que probablemente te este diciendo el error es que te falta la columna Block en los nuevos datos para predecir. Espero que mi respuesta te sea de ayuda. Luciano El 1 de abril de 2011 15:50, Argel Gastélum Arellánez < argel.gastelum@gmail.com> escribió:> Hola compañeros de la lista. Estoy aprendiendo a usar el paquete "rsm" > para superficies de respuesta. Siguiendo este ejemplo todo va bien, hasta > que trato de obtener el valor máximo predicho para la variable de respuesta > en los valores de x1 y x2 estimados. > > ------------------------------------------------------------- > library("rsm") > ChemReact > CR <- coded.data(ChemReact, x1 ~ (Time - 85)/5, x2 ~ (Temp - 175)/5) > CR > # Realizando un ajuste de segundo orden: > CR.rsm2 <- rsm(Yield ~ Block + SO(x1, x2), data = CR) > CR.rsm2 > summary(CR.rsm2) > # Graficando: > contour(CR.rsm2, ~ x1 + x2, at = summary(CR.rsm2)$canonical$xs, image > TRUE, img.col = terrain.colors(50)) > xs <- canonical(CR.rsm2)$xs > points (xs[1], xs[2], pch=2, col="red") > points(CR[1:7,], col="black", pch=19) > points(CR[8:14,], col="blue", pch=19) > #Esta última línea da un error: > predict(CR.rsm2, > newdata=data.frame(x1=summary(CR.rsm2)$canonical$xs[1],x2=summary(CR.rsm2)$canonical$xs[2])) > -------------------------------------------------------------- > > La última línea me arroja el siguiente error: > > Error en eval(expr, envir, enclos) : objeto ''Block'' no encontrado > > De antemano agradezco la ayuda. > > Saludos. > > -- > Argel. > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Carlos J. Gil Bellosta
2011-Apr-01 19:07 UTC
[R-es] Predicción de valor máximo en superficie de respuesta, con paquete rsm
Pues... ¡añádelo!> predict(CR.rsm2, newdata=data.frame(x1=summary(CR.rsm2)$canonical$xs[1],Block = "B1",x2=summary(CR.rsm2)$canonical$xs[2]))x1 84.3656> predict(CR.rsm2, newdata=data.frame(x1=summary(CR.rsm2)$canonical$xs[1],Block = "B2",x2=summary(CR.rsm2)$canonical$xs[2]))x1 79.90808 Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 1 de abril de 2011 20:50, Argel Gastélum Arellánez <argel.gastelum en gmail.com> escribió:> Hola compañeros de la lista. Estoy aprendiendo a usar el paquete "rsm" > para superficies de respuesta. Siguiendo este ejemplo todo va bien, hasta > que trato de obtener el valor máximo predicho para la variable de respuesta > en los valores de x1 y x2 estimados. > > ------------------------------------------------------------- > library("rsm") > ChemReact > CR <- coded.data(ChemReact, x1 ~ (Time - 85)/5, x2 ~ (Temp - 175)/5) > CR > # Realizando un ajuste de segundo orden: > CR.rsm2 <- rsm(Yield ~ Block + SO(x1, x2), data = CR) > CR.rsm2 > summary(CR.rsm2) > # Graficando: > contour(CR.rsm2, ~ x1 + x2, at = summary(CR.rsm2)$canonical$xs, image > TRUE, img.col = terrain.colors(50)) > xs <- canonical(CR.rsm2)$xs > points (xs[1], xs[2], pch=2, col="red") > points(CR[1:7,], col="black", pch=19) > points(CR[8:14,], col="blue", pch=19) > #Esta última línea da un error: > predict(CR.rsm2, > newdata=data.frame(x1=summary(CR.rsm2)$canonical$xs[1],x2=summary(CR.rsm2)$canonical$xs[2])) > -------------------------------------------------------------- > > La última línea me arroja el siguiente error: > > Error en eval(expr, envir, enclos) : objeto 'Block' no encontrado > > De antemano agradezco la ayuda. > > Saludos. > > -- > Argel. > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >
Argel Gastélum Arellánez
2011-Apr-01 20:29 UTC
[R-es] Predicción de valor máximo en superficie de respuesta, con paquete rsm
El 01/04/11 13:07, Jorge Ivan Velez escribió:> Hola Argel, > > El nuevo conjunto de datos con que debes alimentar la funcion > predict() debe ser un data.frame en el que el nombre de las variables > deben corresponder a los utilizados para ajustar el modelo. Esa > informacion puedes obtenerla de ?predict. En tu caso, no > proporcionaste el "Block" para el cual quieres hacer la prediccion. > > Trata lo siguiente: > > > predict(CR.rsm2, > > newdata=data.frame(x1=summary(CR.rsm2)$canonical$xs[1],x2=summary(CR.rsm2)$canonical$xs[2], > Block = ''B1'')) > x1 > 84.36561 > > predict(CR.rsm2, > newdata=data.frame(x1=summary(CR.rsm2)$canonical$xs[1],x2=summary(CR.rsm2)$canonical$xs[2], > Block = ''B2'')) > x1 > 79.90808 > > Un comentario adicional: La respuesta que se obtiene en este caso > no es el valor de "x1" utilizando el modelo CR.rsm2 sino el valor de > "Yield". > > > Saludos, > Jorge Ivan VelezHola de nuevo, muchas gracias a Jorge Ivan, Luciano y Carlos por sus respuestas. Ahora entiendo cuál fue el error al usar la función "predict". Como todavía estoy aprendiendo a trabajar con las superficies de respuesta, ahora me queda la duda de cuál de las dos predicciones para la respuesta "Yield" es la más adecuada, si la hecha con el Block "B1" o con el "B2". Por la figura obtenida con la función "contour" me parece que la hecha con el "B1". ¿Ustedes qué opinan? Saludos. -- Argel. [[alternative HTML version deleted]]
Argel Gastélum Arellánez
2011-Apr-01 21:04 UTC
[R-es] Predicción de valor máximo en superficie de respuesta, con paquete rsm
El 01/04/11 14:14, Jorge Ivan Velez escribió:> Hola Argel, > > A juzgar por lo que dice en la parte inferior de la figura ("Sliced > at Block = B1"), la prediccion corresponderia mas a B1 que a B2. > > Un saludo, > Jorge Ivan VelezHola Jorge Ivan. Lo suponía por el rótulo y por la forma de la superficie, pero no estaba seguro... ¿entonces cuál sería la utilidad de poder hacer la predicción con el bloque "B2"?, por lo que veo de la función "contour", al parecer no se especifica en los argumentos para cuál bloque haga la gráfica, sino que al parecer por default la hace para B1... sé que esto no es precisamente sobre el uso de R, pero es que no tengo a la mano referencias donde poder checar esto. De nuevo muchas gracias por tu ayuda. -- Argel. [[alternative HTML version deleted]]