Buenas a toda la comunidad es mi primera vez por acá y dado que estoy empezando desde ya hace unas semanas atrás a trabajar con R tengo la duda sobre: Cómo realizar un ajuste de datos utilizando una función cualquiera de una única variable, es decir en este caso, encontrar un valor que yo llamo H a partir de un ajuste por mínimos cuadrados. La idea que tengo en mente es encontrar mediante un conjunto de datos experimentales el valor de la constante de Planck,usando H como parámetro de ajuste mediante mínimos cuadrados para encontrar el valor más óptimo.
Hola, ¿qué tal? Sin saber mucho más sobre la forma de tu función (es decir, respondiendo de la manera más general posible), lo que tendrías que hacer es: 1) Generar la función "de error" g(H) = suma( ( f(x,H) - y )^2 ) (que depende sólo del parámetro H). 2) Usar la función optim para encontrar tu mínimo. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 30 de noviembre de 2010 18:42, CMC <darismendi en cmc.org.ve> escribió:> Buenas a toda la comunidad es mi primera vez por acá y dado que estoy > empezando desde ya hace unas semanas atrás a trabajar con R tengo la duda > sobre: > > Cómo realizar un ajuste de datos utilizando una función cualquiera de una > única variable, es decir en este caso, encontrar un valor que yo llamo H a > partir de un ajuste por mínimos cuadrados. > > La idea que tengo en mente es encontrar mediante un conjunto de datos > experimentales el valor de la constante de Planck,usando H como parámetro de > ajuste mediante mínimos cuadrados para encontrar el valor más óptimo. > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >
Hola, Si nos indicas la función que quieres ajustar, podremos ayudarte con mayor precisión. Otra alternativa es utilizar la librería (nlrwr) que permite ajustes no lineales de funciones. Para que puedas ver el tipo de funciones que se pueden ajustar puedes ver ejemplos en este sitio: http://www.itl.nist.gov/div898/strd/nls/nls_main.shtml Y en este sitio tienes un pdf donde vienen explicados cada uno de los ejemplos anteriores y de cómo se pueden ajustar utilizando esta librería: http://cran.at.r-project.org/web/packages/NISTnls/index.html Nota: Ayuda un poco más el identificarse en este tipo de correos. Saludos, Carlos Ortega www.qualityexcellence.es 2010/11/30 CMC <darismendi@cmc.org.ve>> Buenas a toda la comunidad es mi primera vez por acá y dado que estoy > empezando desde ya hace unas semanas atrás a trabajar con R tengo la duda > sobre: > > Cómo realizar un ajuste de datos utilizando una función cualquiera de una > única variable, es decir en este caso, encontrar un valor que yo llamo H a > partir de un ajuste por mínimos cuadrados. > > La idea que tengo en mente es encontrar mediante un conjunto de datos > experimentales el valor de la constante de Planck,usando H como parámetro de > ajuste mediante mínimos cuadrados para encontrar el valor más óptimo. > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
¿Es posible que quieras ajustar H a partir de la ecuación que relaciona la energía de los fotones (E) con la frecuencia de onda (V)? E=HxV En ese caso, se trata de un simple ajuste de una recta de regresión sin ordenada en el origen. Sería: lm(E~-1+V) donde E serían tus datos de la energía y V las frecuencias de onda. El valor estimado de la pendiente sería tu valor estimado de H. ---------------------------------------------------------------------- Message: 1 Date: Tue, 30 Nov 2010 13:12:46 -0430 From: CMC<darismendi en cmc.org.ve> To:r-help-es en r-project.org Subject: [R-es] Parámetro de Ajuste. Message-ID:<4CF53796.6090705 en cmc.org.ve> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Buenas a toda la comunidad es mi primera vez por acá y dado que estoy empezando desde ya hace unas semanas atrás a trabajar con R tengo la duda sobre: Cómo realizar un ajuste de datos utilizando una función cualquiera de una única variable, es decir en este caso, encontrar un valor que yo llamo H a partir de un ajuste por mínimos cuadrados. La idea que tengo en mente es encontrar mediante un conjunto de datos experimentales el valor de la constante de Planck,usando H como parámetro de ajuste mediante mínimos cuadrados para encontrar el valor más óptimo. ------------------------------ El 01/12/2010 12:00, r-help-es-request en r-project.org escribió:> [R-es] Parámetro de Ajuste.-- Dr. Antonio José Sáez Castillo Dpto. de Estadística e Investigación Operativa Escuela Politécnica Superior de Linares Universidad de Jaén C/ Alfonso X El Sabio 28, 23700 Linares (Jaén) ESPAÑA Tlf. y FAX +34 953 648578
El 30 de noviembre de 2010 15:12, CMC <darismendi@cmc.org.ve> escribió:> El 30/11/10 13:20, Carlos J. Gil Bellosta escribió: > > Hola, ¿qué tal? >> >> Sin saber mucho más sobre la forma de tu función (es decir, >> respondiendo de la manera más general posible), lo que tendrías que >> hacer es: >> >> 1) Generar la función "de error" g(H) = suma( ( f(x,H) - y )^2 ) (que >> depende sólo del parámetro H). >> 2) Usar la función optim para encontrar tu mínimo. >> >> Un saludo, >> >> Carlos J. Gil Bellosta >> http://www.datanalytics.com >> >> El día 30 de noviembre de 2010 18:42, CMC<darismendi@cmc.org.ve> >> escribió: >> >> >>> Buenas a toda la comunidad es mi primera vez por acá y dado que estoy >>> empezando desde ya hace unas semanas atrás a trabajar con R tengo la duda >>> sobre: >>> >>> Cómo realizar un ajuste de datos utilizando una función cualquiera de una >>> única variable, es decir en este caso, encontrar un valor que yo llamo H >>> a >>> partir de un ajuste por mínimos cuadrados. >>> >>> La idea que tengo en mente es encontrar mediante un conjunto de datos >>> experimentales el valor de la constante de Planck,usando H como parámetro >>> de >>> ajuste mediante mínimos cuadrados para encontrar el valor más óptimo. >>> >>> _______________________________________________ >>> R-help-es mailing list >>> R-help-es@r-project.org >>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>> >>> >>> >> Ok perfecto e entendido la forma en que lo explicas. pero me equivoqué al > escribir en mi anterior correo lo que deseo encontrar es: >> "Realizar un ajuste de datos utilizando una función cualquiera de varias > variables", no de una como anteriormente había escrito. > > En realidad la ecuación que deseo ajustar es esta: donde E varía cuando > lamda varía pues todo lo demás es constante > > E<-(8*pi*h*c)/(lamda^5)*((1)/(exp((h*c)/(lamda*k*T))-1)) > > Lo que sucede es que esta ecuación la hice para hacer un análisis teórico y > estudiar los errores con respecto al experimental > > Ahora de los datos experimentales necesito encontrar H usando H como > parametro de ajuste mediante mínimos cuadrados a partir de la ecuación > anterior > > Disculpen tanto enredo pensé que ayer había enviado el correo a lista y me > di cuenta que se lo envié directamente a un usuario y por eso la respuesta > de Carlos Ortega. >Mil disculpas nuevamente y gracias. [[alternative HTML version deleted]]
Hola Daniel, Gracias. Sí, para este tipo de ecuaciones, bien puedes intentar linealizarla como se ha sugerido ya (tomando logaritmos en ambos lados de la expresión) o bien directamente la ajustas tal cual. El linearlizarla al ser un producto, la expresión final tampoco se simplifica demasiado. De la página de ejemplos que te indiqué anteriormente, este ejemplo de distribución: http://www.itl.nist.gov/div898/strd/nls/data/mgh17.shtml es parecida a la nube de puntos que tendrás que ajustar en tu caso (que corresponde a la radiación de cuerpo negro). Y de la referencia del documento pdf donde aparece el código R (página 20) quédate con la sintaxis de la función "nls". Que en tu particularizada en tu caso sería de la siguiente forma: fun.ajust<-nls( y ~ (b1/x^5) * (1 / (exp(-x*b2) - 1) ), data=tus.datos, trace=TRUE, start=c(b1 = 0.01, b2 = 0.02) ) Los datos que tienes que incorporar en R estarán en el data.frame "tus.datos" que son los que utiliza la función. Entiendo que los datos que tienes corresponden tanto a la Energía ("y") y a la longitud de onda (lambda = "x"). Del ajuste, obtendrás un valor de b1 y b2, que es el que minimiza el error cuadrático medio y de los que deshaciendo su valor (utilizando "c", "K", "pi") obtendrás finalmente la constante de Plank. Esta función es sensible a los puntos que escojas como iniciales (lo que aparece en "start"). Prueba con varios en el caso de que el ajuste te devuelva error de convergencia. También la función ofrece diferentes algoritmos de aproximación como recurso adicional. Saludos, Carlos Ortega. www.qualityexcellence.es 2010/12/1 Daniel Arismendi <darismendi@cmc.org.ve>> El 30 de noviembre de 2010 15:12, CMC <darismendi@cmc.org.ve> escribió: > > > El 30/11/10 13:20, Carlos J. Gil Bellosta escribió: > > > > Hola, ¿qué tal? > >> > >> Sin saber mucho más sobre la forma de tu función (es decir, > >> respondiendo de la manera más general posible), lo que tendrías que > >> hacer es: > >> > >> 1) Generar la función "de error" g(H) = suma( ( f(x,H) - y )^2 ) (que > >> depende sólo del parámetro H). > >> 2) Usar la función optim para encontrar tu mínimo. > >> > >> Un saludo, > >> > >> Carlos J. Gil Bellosta > >> http://www.datanalytics.com > >> > >> El día 30 de noviembre de 2010 18:42, CMC<darismendi@cmc.org.ve> > >> escribió: > >> > >> > >>> Buenas a toda la comunidad es mi primera vez por acá y dado que estoy > >>> empezando desde ya hace unas semanas atrás a trabajar con R tengo la > duda > >>> sobre: > >>> > >>> Cómo realizar un ajuste de datos utilizando una función cualquiera de > una > >>> única variable, es decir en este caso, encontrar un valor que yo llamo > H > >>> a > >>> partir de un ajuste por mínimos cuadrados. > >>> > >>> La idea que tengo en mente es encontrar mediante un conjunto de datos > >>> experimentales el valor de la constante de Planck,usando H como > parámetro > >>> de > >>> ajuste mediante mínimos cuadrados para encontrar el valor más óptimo. > >>> > >>> _______________________________________________ > >>> R-help-es mailing list > >>> R-help-es@r-project.org > >>> https://stat.ethz.ch/mailman/listinfo/r-help-es > >>> > >>> > >>> > >> Ok perfecto e entendido la forma en que lo explicas. pero me equivoqué > al > > escribir en mi anterior correo lo que deseo encontrar es: > > > > > > "Realizar un ajuste de datos utilizando una función cualquiera de varias > > variables", no de una como anteriormente había escrito. > > > > En realidad la ecuación que deseo ajustar es esta: donde E varía cuando > > lamda varía pues todo lo demás es constante > > > > E<-(8*pi*h*c)/(lamda^5)*((1)/(exp((h*c)/(lamda*k*T))-1)) > > > > Lo que sucede es que esta ecuación la hice para hacer un análisis teórico > y > > estudiar los errores con respecto al experimental > > > > Ahora de los datos experimentales necesito encontrar H usando H como > > parametro de ajuste mediante mínimos cuadrados a partir de la ecuación > > anterior > > > > Disculpen tanto enredo pensé que ayer había enviado el correo a lista y > me > > di cuenta que se lo envié directamente a un usuario y por eso la > respuesta > > de Carlos Ortega. > > > Mil disculpas nuevamente y gracias. > > [[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]]