Hola a todos estoy aplicando la función polinómica de Hossfeld [1], y algunos otros modelos no lineales para tratar de ajustarlos a un grupo de datos forestales, [1] Y= b*t*exp(c)/(t*exp(c)+a) Al colocar la función en R con parámetros estimados, me devuelve los siguiente: ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, start=list(a=0.005,b=0.08,c=-0.00006), trace=TRUE)## ## 108807.6 : 5e-03 8e-02 -6e-05 Error en nls(ho ~ (b * edad * exp(c)/(edad * exp(c) + a)), data = nigra, : singular gradient ## O si cambio de valores de los parámetros me suele dar otro tipo de mensaje: ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, start=list(a=12.18,b=0.06,c=-0.00006), trace=TRUE) ## ##109135.3 : 12.18000 0.06000 -0.00006 Error en numericDeriv(form[[3L]], names(ind), env) : Missing value or an infinity produced when evaluating the model## entiendo que esta pregunta va más en sentido de conocimiento de la estadística, pero si alguno tiene alguna idea para resolver este problema, se la agradecería.. saludos cordiales Roy [[alternative HTML version deleted]]
Marcuzzi, Javier Rubén
2012-Nov-03 17:13 UTC
[R-es] Parámetros iniciales para ajustes no lineales
Estimado Roy Vera No sabría exactamente pero: str(nigra) edad y ho son numérico, se sobreentiende pero por las dudas. luego si no leo mal usted cambio el valor de a, es decir start=list(a ¿sería muy problemático utilizar valores tipo 0.005 (el primero que usted usa), 0.01, 0.1, 0.5, 1, 2 ..., usted llega hasta 12.18? Puede ser que sus valores iniciales están lejos de lo real, ¿en la bibliografía hay algún valor como para intentar a partir de este? O realizar el "mismo modelo" pero lineal, tomar un valor de este y utilizar el resultado como valor inicial en el modelo no lineal. Javier Marcuzzi -----Mensaje original----- From: Roy Vera Sent: Saturday, November 03, 2012 12:10 PM To: r-help-es en r-project.org Subject: [R-es] Parámetros iniciales para ajustes no lineales Hola a todos estoy aplicando la función polinómica de Hossfeld [1], y algunos otros modelos no lineales para tratar de ajustarlos a un grupo de datos forestales, [1] Y= b*t*exp(c)/(t*exp(c)+a) Al colocar la función en R con parámetros estimados, me devuelve los siguiente: ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, start=list(a=0.005,b=0.08,c=-0.00006), trace=TRUE)## ## 108807.6 : 5e-03 8e-02 -6e-05 Error en nls(ho ~ (b * edad * exp(c)/(edad * exp(c) + a)), data = nigra, : singular gradient ## O si cambio de valores de los parámetros me suele dar otro tipo de mensaje: ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, start=list(a=12.18,b=0.06,c=-0.00006), trace=TRUE) ## ##109135.3 : 12.18000 0.06000 -0.00006 Error en numericDeriv(form[[3L]], names(ind), env) : Missing value or an infinity produced when evaluating the model## entiendo que esta pregunta va más en sentido de conocimiento de la estadística, pero si alguno tiene alguna idea para resolver este problema, se la agradecería.. saludos cordiales Roy [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Hola Javier gracias por tu respuesta, bueno la verdad es que he estado probando con varios valores de los parámetros, naturalmente que en la bibliografía existen parámetros al cual puedo referirme para poder iniciar, de hecho lo he intentado con algunos, pero igual me da el mismo error, por esa razón quisiera saber si existe otro método de encontrar los parámetros de partida...y también entender qué significa lo que me devuelve R como error... algunos datos adicionales: ho = variable numérica referida a altura dominante edad = variable edad numérica data = nigra (nombre del dataframe) saludos Roy ________________________________ De: "Marcuzzi, Javier Rubén" <javier.ruben.marcuzzi@gmail.com> Para: Roy Vera <roy_2roger@yahoo.com.mx>; r-help-es@r-project.org Enviado: Sábado, 3 de noviembre, 2012 18:13:44 Asunto: Re: [R-es] Parámetros iniciales para ajustes no lineales Estimado Roy Vera No sabría exactamente pero: str(nigra) edad y ho son numérico, se sobreentiende pero por las dudas. luego si no leo mal usted cambio el valor de a, es decir start=list(a ¿sería muy problemático utilizar valores tipo 0.005 (el primero que usted usa), 0.01, 0.1, 0.5, 1, 2 ..., usted llega hasta 12.18? Puede ser que sus valores iniciales están lejos de lo real, ¿en la bibliografía hay algún valor como para intentar a partir de este? O realizar el "mismo modelo" pero lineal, tomar un valor de este y utilizar el resultado como valor inicial en el modelo no lineal. Javier Marcuzzi -----Mensaje original----- From: Roy Vera Sent: Saturday, November 03, 2012 12:10 PM To: r-help-es@r-project.org Subject: [R-es] Parámetros iniciales para ajustes no lineales Hola a todos estoy aplicando la función polinómica de Hossfeld [1], y algunos otros modelos no lineales para tratar de ajustarlos a un grupo de datos forestales, [1] Y= b*t*exp(c)/(t*exp(c)+a) Al colocar la función en R con parámetros estimados, me devuelve los siguiente: ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, start=list(a=0.005,b=0.08,c=-0.00006), trace=TRUE)## ## 108807.6 : 5e-03 8e-02 -6e-05 Error en nls(ho ~ (b * edad * exp(c)/(edad * exp(c) + a)), data = nigra, : singular gradient ## O si cambio de valores de los parámetros me suele dar otro tipo de mensaje: ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, start=list(a=12.18,b=0.06,c=-0.00006), trace=TRUE) ## ##109135.3 : 12.18000 0.06000 -0.00006 Error en numericDeriv(form[[3L]], names(ind), env) : Missing value or an infinity produced when evaluating the model## entiendo que esta pregunta va más en sentido de conocimiento de la estadística, pero si alguno tiene alguna idea para resolver este problema, se la agradecería.. saludos cordiales Roy [[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, Sí, prueba el paquete nls2 y dentro del paquete la función nls2(). Básicamente utiliza el mismo algoritmo que la función nls(), pero evaluado en un intervalo que tú defines. Mira los ejemplos de la función. Si sigues con errores, creo que entonces es mejor que nos dejes el conjunto de datos que quieres ajustar para hacer otras pruebas... Saludos, Carlos Ortega www.qualityexcellence.es El 3 de noviembre de 2012 20:45, Roy Vera <roy_2roger@yahoo.com.mx>escribió:> Hola Javier > > gracias por tu respuesta, bueno la verdad es que he estado probando con > varios valores de los parámetros, naturalmente que en la bibliografía > existen parámetros al cual puedo referirme para poder iniciar, de hecho lo > he intentado con algunos, pero igual me da el mismo error, por esa razón > quisiera saber si existe otro método de encontrar los parámetros de > partida...y también entender qué significa lo que me devuelve R como > error... > > > algunos datos adicionales: > > ho = variable numérica referida a altura dominante > edad = variable edad numérica > data = nigra (nombre del dataframe) > > saludos > > Roy > > > > > > > ________________________________ > De: "Marcuzzi, Javier Rubén" <javier.ruben.marcuzzi@gmail.com> > Para: Roy Vera <roy_2roger@yahoo.com.mx>; r-help-es@r-project.org > Enviado: Sábado, 3 de noviembre, 2012 18:13:44 > Asunto: Re: [R-es] Parámetros iniciales para ajustes no lineales > > Estimado Roy Vera > > No sabría exactamente pero: > > str(nigra) > > edad y ho son numérico, se sobreentiende pero por las dudas. > > luego si no leo mal usted cambio el valor de a, es decir start=list(a> > ¿sería muy problemático utilizar valores tipo 0.005 (el primero que usted > usa), 0.01, 0.1, 0.5, 1, 2 ..., usted llega hasta 12.18? > > Puede ser que sus valores iniciales están lejos de lo real, ¿en la > bibliografía hay algún valor como para intentar a partir de este? > > O realizar el "mismo modelo" pero lineal, tomar un valor de este y > utilizar el resultado como valor inicial en el modelo no lineal. > > Javier Marcuzzi > > > -----Mensaje original----- From: Roy Vera > Sent: Saturday, November 03, 2012 12:10 PM > To: r-help-es@r-project.org > Subject: [R-es] Parámetros iniciales para ajustes no lineales > > Hola a todos > > estoy aplicando la función polinómica de Hossfeld [1], y algunos otros > modelos no lineales para tratar de ajustarlos a un grupo de datos > forestales, > > > [1] Y= b*t*exp(c)/(t*exp(c)+a) > > Al colocar la función en R con parámetros estimados, me devuelve los > siguiente: > > ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, > start=list(a=0.005,b=0.08,c=-0.00006), trace=TRUE)## > > ## 108807.6 : 5e-03 8e-02 -6e-05 > Error en nls(ho ~ (b * edad * exp(c)/(edad * exp(c) + a)), data = nigra, : > singular gradient ## > > > O si cambio de valores de los parámetros me suele dar otro tipo de mensaje: > > ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, > start=list(a=12.18,b=0.06,c=-0.00006), trace=TRUE) ## > > > ##109135.3 : 12.18000 0.06000 -0.00006 > Error en numericDeriv(form[[3L]], names(ind), env) : > Missing value or an infinity produced when evaluating the model## > > entiendo que esta pregunta va más en sentido de conocimiento de la > estadística, pero si alguno tiene alguna idea para resolver este problema, > se la agradecería.. > > saludos cordiales > > Roy > [[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]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Fernando Macedo
2012-Nov-03 20:51 UTC
[R-es] Parámetros iniciales para ajustes no lineales
Estaba con problemas similares estudiando unos datos (aún no logré ajustar para un modelo, pero ya probaré con nls2). Leyendo el libro "Nonlinear Regression with R" que esta bastante interesante plantea varias formas de buscar los valores iniciales. Una de ellas es la que venia usando yo de ir viendo con curve() donde introduces el modelo que quieres evaluar y buscar valores que se ajusten aproximadamente a tus datos. Eso te daría una idea de los valores a usar. Si usas por ejemplo plot() para ver tus datos puedes usar curve() agregándole el argumento add=T para que dibuje la curva encima de tus datos. Otra es plantear una serie de valores iniciales para cada coeficiente en vectores y usar nls2(). De todas formas te recomiendo la lectura del libro porque plantea realizar algoritmos para obtener valores iniciales, cosa que yo pasé por alto. Saludos Fernando Macedo El 03/11/12 17:55, Carlos Ortega escribió:> Hola, > > Sí, prueba el paquete nls2 y dentro del paquete la función nls2(). > Básicamente utiliza el mismo algoritmo que la función nls(), pero evaluado > en un intervalo que tú defines. > Mira los ejemplos de la función. > > Si sigues con errores, creo que entonces es mejor que nos dejes el conjunto > de datos que quieres ajustar para hacer otras pruebas... > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > El 3 de noviembre de 2012 20:45, Roy Vera <roy_2roger@yahoo.com.mx>escribió: > >> Hola Javier >> >> gracias por tu respuesta, bueno la verdad es que he estado probando con >> varios valores de los parámetros, naturalmente que en la bibliografía >> existen parámetros al cual puedo referirme para poder iniciar, de hecho lo >> he intentado con algunos, pero igual me da el mismo error, por esa razón >> quisiera saber si existe otro método de encontrar los parámetros de >> partida...y también entender qué significa lo que me devuelve R como >> error... >> >> >> algunos datos adicionales: >> >> ho = variable numérica referida a altura dominante >> edad = variable edad numérica >> data = nigra (nombre del dataframe) >> >> saludos >> >> Roy >> >> >> >> >> >> >> ________________________________ >> De: "Marcuzzi, Javier Rubén" <javier.ruben.marcuzzi@gmail.com> >> Para: Roy Vera <roy_2roger@yahoo.com.mx>; r-help-es@r-project.org >> Enviado: Sábado, 3 de noviembre, 2012 18:13:44 >> Asunto: Re: [R-es] Parámetros iniciales para ajustes no lineales >> >> Estimado Roy Vera >> >> No sabría exactamente pero: >> >> str(nigra) >> >> edad y ho son numérico, se sobreentiende pero por las dudas. >> >> luego si no leo mal usted cambio el valor de a, es decir start=list(a>> >> ¿sería muy problemático utilizar valores tipo 0.005 (el primero que usted >> usa), 0.01, 0.1, 0.5, 1, 2 ..., usted llega hasta 12.18? >> >> Puede ser que sus valores iniciales están lejos de lo real, ¿en la >> bibliografía hay algún valor como para intentar a partir de este? >> >> O realizar el "mismo modelo" pero lineal, tomar un valor de este y >> utilizar el resultado como valor inicial en el modelo no lineal. >> >> Javier Marcuzzi >> >> >> -----Mensaje original----- From: Roy Vera >> Sent: Saturday, November 03, 2012 12:10 PM >> To: r-help-es@r-project.org >> Subject: [R-es] Parámetros iniciales para ajustes no lineales >> >> Hola a todos >> >> estoy aplicando la función polinómica de Hossfeld [1], y algunos otros >> modelos no lineales para tratar de ajustarlos a un grupo de datos >> forestales, >> >> >> [1] Y= b*t*exp(c)/(t*exp(c)+a) >> >> Al colocar la función en R con parámetros estimados, me devuelve los >> siguiente: >> >> ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, >> start=list(a=0.005,b=0.08,c=-0.00006), trace=TRUE)## >> >> ## 108807.6 : 5e-03 8e-02 -6e-05 >> Error en nls(ho ~ (b * edad * exp(c)/(edad * exp(c) + a)), data = nigra, : >> singular gradient ## >> >> >> O si cambio de valores de los parámetros me suele dar otro tipo de mensaje: >> >> ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, >> start=list(a=12.18,b=0.06,c=-0.00006), trace=TRUE) ## >> >> >> ##109135.3 : 12.18000 0.06000 -0.00006 >> Error en numericDeriv(form[[3L]], names(ind), env) : >> Missing value or an infinity produced when evaluating the model## >> >> entiendo que esta pregunta va más en sentido de conocimiento de la >> estadística, pero si alguno tiene alguna idea para resolver este problema, >> se la agradecería.. >> >> saludos cordiales >> >> Roy >> [[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]] >> >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> > > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es[[alternative HTML version deleted]]
Marcuzzi, Javier Rubén
2012-Nov-04 00:17 UTC
[R-es] Parámetros iniciales para ajustes no lineales
Sin dudas hay una cantidad de posibilidades, dentro de estas se encuentra nls y nlme, hay algunos escritos en internet, habría que experimentarlo, yo no puedo decir algo al respecto, pero posiblemente nlme pueda calcular su modelo sin el mensaje de error, en mi experiencia me encontré con problemas por ejemplo en lm que en nlme funcionaron. -----Mensaje original----- From: Fernando Macedo Sent: Saturday, November 03, 2012 5:51 PM To: r-help-es en r-project.org Subject: Re: [R-es] Parámetros iniciales para ajustes no lineales Estaba con problemas similares estudiando unos datos (aún no logré ajustar para un modelo, pero ya probaré con nls2). Leyendo el libro "Nonlinear Regression with R" que esta bastante interesante plantea varias formas de buscar los valores iniciales. Una de ellas es la que venia usando yo de ir viendo con curve() donde introduces el modelo que quieres evaluar y buscar valores que se ajusten aproximadamente a tus datos. Eso te daría una idea de los valores a usar. Si usas por ejemplo plot() para ver tus datos puedes usar curve() agregándole el argumento add=T para que dibuje la curva encima de tus datos. Otra es plantear una serie de valores iniciales para cada coeficiente en vectores y usar nls2(). De todas formas te recomiendo la lectura del libro porque plantea realizar algoritmos para obtener valores iniciales, cosa que yo pasé por alto. Saludos Fernando Macedo El 03/11/12 17:55, Carlos Ortega escribió:> Hola, > > Sí, prueba el paquete nls2 y dentro del paquete la función nls2(). > Básicamente utiliza el mismo algoritmo que la función nls(), pero evaluado > en un intervalo que tú defines. > Mira los ejemplos de la función. > > Si sigues con errores, creo que entonces es mejor que nos dejes el > conjunto > de datos que quieres ajustar para hacer otras pruebas... > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > El 3 de noviembre de 2012 20:45, Roy Vera > <roy_2roger en yahoo.com.mx>escribió: > >> Hola Javier >> >> gracias por tu respuesta, bueno la verdad es que he estado probando con >> varios valores de los parámetros, naturalmente que en la bibliografía >> existen parámetros al cual puedo referirme para poder iniciar, de hecho >> lo >> he intentado con algunos, pero igual me da el mismo error, por esa razón >> quisiera saber si existe otro método de encontrar los parámetros de >> partida...y también entender qué significa lo que me devuelve R como >> error... >> >> >> algunos datos adicionales: >> >> ho = variable numérica referida a altura dominante >> edad = variable edad numérica >> data = nigra (nombre del dataframe) >> >> saludos >> >> Roy >> >> >> >> >> >> >> ________________________________ >> De: "Marcuzzi, Javier Rubén" <javier.ruben.marcuzzi en gmail.com> >> Para: Roy Vera <roy_2roger en yahoo.com.mx>; r-help-es en r-project.org >> Enviado: Sábado, 3 de noviembre, 2012 18:13:44 >> Asunto: Re: [R-es] Parámetros iniciales para ajustes no lineales >> >> Estimado Roy Vera >> >> No sabría exactamente pero: >> >> str(nigra) >> >> edad y ho son numérico, se sobreentiende pero por las dudas. >> >> luego si no leo mal usted cambio el valor de a, es decir start=list(a>> >> ¿sería muy problemático utilizar valores tipo 0.005 (el primero que usted >> usa), 0.01, 0.1, 0.5, 1, 2 ..., usted llega hasta 12.18? >> >> Puede ser que sus valores iniciales están lejos de lo real, ¿en la >> bibliografía hay algún valor como para intentar a partir de este? >> >> O realizar el "mismo modelo" pero lineal, tomar un valor de este y >> utilizar el resultado como valor inicial en el modelo no lineal. >> >> Javier Marcuzzi >> >> >> -----Mensaje original----- From: Roy Vera >> Sent: Saturday, November 03, 2012 12:10 PM >> To: r-help-es en r-project.org >> Subject: [R-es] Parámetros iniciales para ajustes no lineales >> >> Hola a todos >> >> estoy aplicando la función polinómica de Hossfeld [1], y algunos otros >> modelos no lineales para tratar de ajustarlos a un grupo de datos >> forestales, >> >> >> [1] Y= b*t*exp(c)/(t*exp(c)+a) >> >> Al colocar la función en R con parámetros estimados, me devuelve los >> siguiente: >> >> ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, >> start=list(a=0.005,b=0.08,c=-0.00006), trace=TRUE)## >> >> ## 108807.6 : 5e-03 8e-02 -6e-05 >> Error en nls(ho ~ (b * edad * exp(c)/(edad * exp(c) + a)), data = nigra, >> : >> singular gradient ## >> >> >> O si cambio de valores de los parámetros me suele dar otro tipo de >> mensaje: >> >> ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, >> start=list(a=12.18,b=0.06,c=-0.00006), trace=TRUE) ## >> >> >> ##109135.3 : 12.18000 0.06000 -0.00006 >> Error en numericDeriv(form[[3L]], names(ind), env) : >> Missing value or an infinity produced when evaluating the model## >> >> entiendo que esta pregunta va más en sentido de conocimiento de la >> estadística, pero si alguno tiene alguna idea para resolver este >> problema, >> se la agradecería.. >> >> saludos cordiales >> >> Roy >> [[alternative HTML version deleted]] >> >> >> >> >> >> >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> [[alternative HTML version deleted]] >> >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> > > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es[[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Gracias por sus respuestas y recomendaciones, las tomaré en cuenta.. saludos cordiales Roy ________________________________ De: "r-help-es-request@r-project.org" <r-help-es-request@r-project.org> Para: r-help-es@r-project.org Enviado: Sábado, 3 de noviembre, 2012 21:52:57 Asunto: Resumen de R-help-es, Vol 45, Envío 5 Envíe los mensajes para la lista R-help-es a r-help-es@r-project.org Para subscribirse o anular su subscripción a través de la WEB https://stat.ethz.ch/mailman/listinfo/r-help-es O por correo electrónico, enviando un mensaje con el texto "help" en el asunto (subject) o en el cuerpo a: r-help-es-request@r-project.org Puede contactar con el responsable de la lista escribiendo a: r-help-es-owner@r-project.org Si responde a algún contenido de este mensaje, por favor, edite la linea del asunto (subject) para que el texto sea mas especifico que: "Re: Contents of R-help-es digest...". Además, por favor, incluya en la respuesta sólo aquellas partes del mensaje a las que está respondiendo. Asuntos del día: 1. Parámetros iniciales para ajustes no lineales (Roy Vera) 2. Re: Parámetros iniciales para ajustes no lineales (Marcuzzi) 3. Parámetros iniciales para ajustes no lineales (Roy Vera) 4. Re: Parámetros iniciales para ajustes no lineales (Carlos Ortega) 5. Re: Parámetros iniciales para ajustes no lineales (Fernando Macedo) ---------------------------------------------------------------------- Message: 1 Date: Sat, 3 Nov 2012 08:10:33 -0700 (PDT) From: Roy Vera <roy_2roger@yahoo.com.mx> To: "r-help-es@r-project.org" <r-help-es@r-project.org> Subject: [R-es] Parámetros iniciales para ajustes no lineales Message-ID: <1351955433.15605.YahooMailNeo@web142701.mail.bf1.yahoo.com> Content-Type: text/plain Hola a todos estoy aplicando la función polinómica de Hossfeld [1], y algunos otros modelos no lineales para tratar de ajustarlos a un grupo de datos forestales, [1] Y= b*t*exp(c)/(t*exp(c)+a) Al colocar la función en R con parámetros estimados, me devuelve los siguiente: ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, start=list(a=0.005,b=0.08,c=-0.00006), trace=TRUE)## ## 108807.6 : 5e-03 8e-02 -6e-05 Error en nls(ho ~ (b * edad * exp(c)/(edad * exp(c) + a)), data = nigra, : singular gradient ## O si cambio de valores de los parámetros me suele dar otro tipo de mensaje: ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, start=list(a=12.18,b=0.06,c=-0.00006), trace=TRUE) ## ##109135.3 : 12.18000 0.06000 -0.00006 Error en numericDeriv(form[[3L]], names(ind), env) : Missing value or an infinity produced when evaluating the model## entiendo que esta pregunta va más en sentido de conocimiento de la estadística, pero si alguno tiene alguna idea para resolver este problema, se la agradecería.. saludos cordiales Roy [[alternative HTML version deleted]] ------------------------------ Message: 2 Date: Sat, 3 Nov 2012 14:13:44 -0300 From: Marcuzzi, Javier Rubén <javier.ruben.marcuzzi@gmail.com> To: "Roy Vera" <roy_2roger@yahoo.com.mx>, <r-help-es@r-project.org> Subject: Re: [R-es] Parámetros iniciales para ajustes no lineales Message-ID: <96193F65767B4CB89935D1F74AA57257@JavierMarcuzzi> Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=original Estimado Roy Vera No sabría exactamente pero: str(nigra) edad y ho son numérico, se sobreentiende pero por las dudas. luego si no leo mal usted cambio el valor de a, es decir start=list(a ¿sería muy problemático utilizar valores tipo 0.005 (el primero que usted usa), 0.01, 0.1, 0.5, 1, 2 ..., usted llega hasta 12.18? Puede ser que sus valores iniciales están lejos de lo real, ¿en la bibliografía hay algún valor como para intentar a partir de este? O realizar el "mismo modelo" pero lineal, tomar un valor de este y utilizar el resultado como valor inicial en el modelo no lineal. Javier Marcuzzi -----Mensaje original----- From: Roy Vera Sent: Saturday, November 03, 2012 12:10 PM To: r-help-es@r-project.org Subject: [R-es] Parámetros iniciales para ajustes no lineales Hola a todos estoy aplicando la función polinómica de Hossfeld [1], y algunos otros modelos no lineales para tratar de ajustarlos a un grupo de datos forestales, [1] Y= b*t*exp(c)/(t*exp(c)+a) Al colocar la función en R con parámetros estimados, me devuelve los siguiente: ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, start=list(a=0.005,b=0.08,c=-0.00006), trace=TRUE)## ## 108807.6 : 5e-03 8e-02 -6e-05 Error en nls(ho ~ (b * edad * exp(c)/(edad * exp(c) + a)), data = nigra, : singular gradient ## O si cambio de valores de los parámetros me suele dar otro tipo de mensaje: ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, start=list(a=12.18,b=0.06,c=-0.00006), trace=TRUE) ## ##109135.3 : 12.18000 0.06000 -0.00006 Error en numericDeriv(form[[3L]], names(ind), env) : Missing value or an infinity produced when evaluating the model## entiendo que esta pregunta va más en sentido de conocimiento de la estadística, pero si alguno tiene alguna idea para resolver este problema, se la agradecería.. saludos cordiales Roy [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es ------------------------------ Message: 3 Date: Sat, 3 Nov 2012 12:45:49 -0700 (PDT) From: Roy Vera <roy_2roger@yahoo.com.mx> To: Marcuzzi, Javier Rubén <javier.ruben.marcuzzi@gmail.com> Cc: "r-help-es@r-project.org" <r-help-es@r-project.org> Subject: [R-es] Parámetros iniciales para ajustes no lineales Message-ID: <1351971949.76826.YahooMailNeo@web142704.mail.bf1.yahoo.com> Content-Type: text/plain Hola Javier gracias por tu respuesta, bueno la verdad es que he estado probando con varios valores de los parámetros, naturalmente que en la bibliografía existen parámetros al cual puedo referirme para poder iniciar, de hecho lo he intentado con algunos, pero igual me da el mismo error, por esa razón quisiera saber si existe otro método de encontrar los parámetros de partida...y también entender qué significa lo que me devuelve R como error... algunos datos adicionales: ho = variable numérica referida a altura dominante edad = variable edad numérica data = nigra (nombre del dataframe) saludos Roy ________________________________ De: "Marcuzzi, Javier Rubén" <javier.ruben.marcuzzi@gmail.com> Para: Roy Vera <roy_2roger@yahoo.com.mx>; r-help-es@r-project.org Enviado: Sábado, 3 de noviembre, 2012 18:13:44 Asunto: Re: [R-es] Parámetros iniciales para ajustes no lineales Estimado Roy Vera No sabría exactamente pero: str(nigra) edad y ho son numérico, se sobreentiende pero por las dudas. luego si no leo mal usted cambio el valor de a, es decir start=list(a ¿sería muy problemático utilizar valores tipo 0.005 (el primero que usted usa), 0.01, 0.1, 0.5, 1, 2 ..., usted llega hasta 12.18? Puede ser que sus valores iniciales están lejos de lo real, ¿en la bibliografía hay algún valor como para intentar a partir de este? O realizar el "mismo modelo" pero lineal, tomar un valor de este y utilizar el resultado como valor inicial en el modelo no lineal. Javier Marcuzzi -----Mensaje original----- From: Roy Vera Sent: Saturday, November 03, 2012 12:10 PM To: r-help-es@r-project.org Subject: [R-es] Parámetros iniciales para ajustes no lineales Hola a todos estoy aplicando la función polinómica de Hossfeld [1], y algunos otros modelos no lineales para tratar de ajustarlos a un grupo de datos forestales, [1] Y= b*t*exp(c)/(t*exp(c)+a) Al colocar la función en R con parámetros estimados, me devuelve los siguiente: ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, start=list(a=0.005,b=0.08,c=-0.00006), trace=TRUE)## ## 108807.6 : 5e-03 8e-02 -6e-05 Error en nls(ho ~ (b * edad * exp(c)/(edad * exp(c) + a)), data = nigra, : singular gradient ## O si cambio de valores de los parámetros me suele dar otro tipo de mensaje: ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, start=list(a=12.18,b=0.06,c=-0.00006), trace=TRUE) ## ##109135.3 : 12.18000 0.06000 -0.00006 Error en numericDeriv(form[[3L]], names(ind), env) : Missing value or an infinity produced when evaluating the model## entiendo que esta pregunta va más en sentido de conocimiento de la estadística, pero si alguno tiene alguna idea para resolver este problema, se la agradecería.. saludos cordiales Roy [[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]] ------------------------------ Message: 4 Date: Sat, 3 Nov 2012 20:55:59 +0100 From: Carlos Ortega <cof@qualityexcellence.es> To: Roy Vera <roy_2roger@yahoo.com.mx> Cc: "r-help-es@r-project.org" <r-help-es@r-project.org> Subject: Re: [R-es] Parámetros iniciales para ajustes no lineales Message-ID: <CAOKbq8iCYbnV-p10s_0UZMn_o-T08P0f04dAZn3HxKHRD+c_=g@mail.gmail.com> Content-Type: text/plain Hola, Sí, prueba el paquete nls2 y dentro del paquete la función nls2(). Básicamente utiliza el mismo algoritmo que la función nls(), pero evaluado en un intervalo que tú defines. Mira los ejemplos de la función. Si sigues con errores, creo que entonces es mejor que nos dejes el conjunto de datos que quieres ajustar para hacer otras pruebas... Saludos, Carlos Ortega www.qualityexcellence.es El 3 de noviembre de 2012 20:45, Roy Vera <roy_2roger@yahoo.com.mx>escribió:> Hola Javier > > gracias por tu respuesta, bueno la verdad es que he estado probando con > varios valores de los parámetros, naturalmente que en la bibliografía > existen parámetros al cual puedo referirme para poder iniciar, de hecho lo > he intentado con algunos, pero igual me da el mismo error, por esa razón > quisiera saber si existe otro método de encontrar los parámetros de > partida...y también entender qué significa lo que me devuelve R como > error... > > > algunos datos adicionales: > > ho = variable numérica referida a altura dominante > edad = variable edad numérica > data = nigra (nombre del dataframe) > > saludos > > Roy > > > > > > > ________________________________ > De: "Marcuzzi, Javier Rubén" <javier.ruben.marcuzzi@gmail.com> > Para: Roy Vera <roy_2roger@yahoo.com.mx>; r-help-es@r-project.org > Enviado: Sábado, 3 de noviembre, 2012 18:13:44 > Asunto: Re: [R-es] Parámetros iniciales para ajustes no lineales > > Estimado Roy Vera > > No sabría exactamente pero: > > str(nigra) > > edad y ho son numérico, se sobreentiende pero por las dudas. > > luego si no leo mal usted cambio el valor de a, es decir start=list(a> > ¿sería muy problemático utilizar valores tipo 0.005 (el primero que usted > usa), 0.01, 0.1, 0.5, 1, 2 ..., usted llega hasta 12.18? > > Puede ser que sus valores iniciales están lejos de lo real, ¿en la > bibliografía hay algún valor como para intentar a partir de este? > > O realizar el "mismo modelo" pero lineal, tomar un valor de este y > utilizar el resultado como valor inicial en el modelo no lineal. > > Javier Marcuzzi > > > -----Mensaje original----- From: Roy Vera > Sent: Saturday, November 03, 2012 12:10 PM > To: r-help-es@r-project.org > Subject: [R-es] Parámetros iniciales para ajustes no lineales > > Hola a todos > > estoy aplicando la función polinómica de Hossfeld [1], y algunos otros > modelos no lineales para tratar de ajustarlos a un grupo de datos > forestales, > > > [1] Y= b*t*exp(c)/(t*exp(c)+a) > > Al colocar la función en R con parámetros estimados, me devuelve los > siguiente: > > ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, > start=list(a=0.005,b=0.08,c=-0.00006), trace=TRUE)## > > ## 108807.6 : 5e-03 8e-02 -6e-05 > Error en nls(ho ~ (b * edad * exp(c)/(edad * exp(c) + a)), data = nigra, : > singular gradient ## > > > O si cambio de valores de los parámetros me suele dar otro tipo de mensaje: > > ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, > start=list(a=12.18,b=0.06,c=-0.00006), trace=TRUE) ## > > > ##109135.3 : 12.18000 0.06000 -0.00006 > Error en numericDeriv(form[[3L]], names(ind), env) : > Missing value or an infinity produced when evaluating the model## > > entiendo que esta pregunta va más en sentido de conocimiento de la > estadística, pero si alguno tiene alguna idea para resolver este problema, > se la agradecería.. > > saludos cordiales > > Roy > [[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]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]] ------------------------------ Message: 5 Date: Sat, 03 Nov 2012 18:51:51 -0200 From: Fernando Macedo <fermace1@gmail.com> To: r-help-es@r-project.org Subject: Re: [R-es] Parámetros iniciales para ajustes no lineales Message-ID: <509583E7.1010108@gmail.com> Content-Type: text/plain Estaba con problemas similares estudiando unos datos (aún no logré ajustar para un modelo, pero ya probaré con nls2). Leyendo el libro "Nonlinear Regression with R" que esta bastante interesante plantea varias formas de buscar los valores iniciales. Una de ellas es la que venia usando yo de ir viendo con curve() donde introduces el modelo que quieres evaluar y buscar valores que se ajusten aproximadamente a tus datos. Eso te daría una idea de los valores a usar. Si usas por ejemplo plot() para ver tus datos puedes usar curve() agregándole el argumento add=T para que dibuje la curva encima de tus datos. Otra es plantear una serie de valores iniciales para cada coeficiente en vectores y usar nls2(). De todas formas te recomiendo la lectura del libro porque plantea realizar algoritmos para obtener valores iniciales, cosa que yo pasé por alto. Saludos Fernando Macedo El 03/11/12 17:55, Carlos Ortega escribió:> Hola, > > Sí, prueba el paquete nls2 y dentro del paquete la función nls2(). > Básicamente utiliza el mismo algoritmo que la función nls(), pero evaluado > en un intervalo que tú defines. > Mira los ejemplos de la función. > > Si sigues con errores, creo que entonces es mejor que nos dejes el conjunto > de datos que quieres ajustar para hacer otras pruebas... > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > El 3 de noviembre de 2012 20:45, Roy Vera <roy_2roger@yahoo.com.mx>escribió: > >> Hola Javier >> >> gracias por tu respuesta, bueno la verdad es que he estado probando con >> varios valores de los parámetros, naturalmente que en la bibliografía >> existen parámetros al cual puedo referirme para poder iniciar, de hecho lo >> he intentado con algunos, pero igual me da el mismo error, por esa razón >> quisiera saber si existe otro método de encontrar los parámetros de >> partida...y también entender qué significa lo que me devuelve R como >> error... >> >> >> algunos datos adicionales: >> >> ho = variable numérica referida a altura dominante >> edad = variable edad numérica >> data = nigra (nombre del dataframe) >> >> saludos >> >> Roy >> >> >> >> >> >> >> ________________________________ >> De: "Marcuzzi, Javier Rubén" <javier.ruben.marcuzzi@gmail.com> >> Para: Roy Vera <roy_2roger@yahoo.com.mx>; r-help-es@r-project.org >> Enviado: Sábado, 3 de noviembre, 2012 18:13:44 >> Asunto: Re: [R-es] Parámetros iniciales para ajustes no lineales >> >> Estimado Roy Vera >> >> No sabría exactamente pero: >> >> str(nigra) >> >> edad y ho son numérico, se sobreentiende pero por las dudas. >> >> luego si no leo mal usted cambio el valor de a, es decir start=list(a>> >> ¿sería muy problemático utilizar valores tipo 0.005 (el primero que usted >> usa), 0.01, 0.1, 0.5, 1, 2 ..., usted llega hasta 12.18? >> >> Puede ser que sus valores iniciales están lejos de lo real, ¿en la >> bibliografía hay algún valor como para intentar a partir de este? >> >> O realizar el "mismo modelo" pero lineal, tomar un valor de este y >> utilizar el resultado como valor inicial en el modelo no lineal. >> >> Javier Marcuzzi >> >> >> -----Mensaje original----- From: Roy Vera >> Sent: Saturday, November 03, 2012 12:10 PM >> To: r-help-es@r-project.org >> Subject: [R-es] Parámetros iniciales para ajustes no lineales >> >> Hola a todos >> >> estoy aplicando la función polinómica de Hossfeld [1], y algunos otros >> modelos no lineales para tratar de ajustarlos a un grupo de datos >> forestales, >> >> >> [1] Y= b*t*exp(c)/(t*exp(c)+a) >> >> Al colocar la función en R con parámetros estimados, me devuelve los >> siguiente: >> >> ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, >> start=list(a=0.005,b=0.08,c=-0.00006), trace=TRUE)## >> >> ## 108807.6 : 5e-03 8e-02 -6e-05 >> Error en nls(ho ~ (b * edad * exp(c)/(edad * exp(c) + a)), data = nigra, : >> singular gradient ## >> >> >> O si cambio de valores de los parámetros me suele dar otro tipo de mensaje: >> >> ## model1 <- nls(ho ~ (b*edad*exp(c)/(edad*exp(c)+a)), data=nigra, >> start=list(a=12.18,b=0.06,c=-0.00006), trace=TRUE) ## >> >> >> ##109135.3 : 12.18000 0.06000 -0.00006 >> Error en numericDeriv(form[[3L]], names(ind), env) : >> Missing value or an infinity produced when evaluating the model## >> >> entiendo que esta pregunta va más en sentido de conocimiento de la >> estadística, pero si alguno tiene alguna idea para resolver este problema, >> se la agradecería.. >> >> saludos cordiales >> >> Roy >> [[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]] >> >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> > > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es[[alternative HTML version deleted]] ------------------------------ _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es Fin de Resumen de R-help-es, Vol 45, Envío 5 ******************************************** [[alternative HTML version deleted]]