1 votos

Ajuste por mínimos cuadrados utilizando un modelo exponencial

Estoy tratando de ajustar los valores de este modelo $$y(x)=ae^{bx}+c$$ donde a, b y c son 3 parámetros diferentes que quiero encontrar con mínimos cuadrados. Por lo tanto, usando mínimos cuadrados quiero encontrar el valor de a, b y c usando esta fórmula

$$\mathrm{argmin}\sum_i \left( ae^{bx_i}+c - y_i \right)^2$$. Esto me lleva a 3 ecuaciones no lineales después de la derivación parcial de la anterior con respecto a, b y c. Seguramente ya existe la fórmula general para este caso pero no puedo encontrarla. ¿Alguien me puede ayudar?

1voto

Claude Leibovici Puntos 54392

El problema es difícil porque el modelo es no lineal $\cdots$ debido al parámetro $b$. Solo supongamos que lo fijas en un valor dado; luego el modelo se vuelve lineal y puedes calcular los valores de $a(b)$ y $c(b)$, así como el valor de la función objetivo $\Phi(b)$ que deseas minimizar.

Entonces, ejecuta diferentes valores de $b$ hasta que notes que la función $\Phi(b)$ alcanzó un mínimo. En este punto, entonces tienes buenas estimaciones de los tres parámetros y puedes comenzar un procedimiento no lineal. Si no quieres, puedes refinar la solución utilizando el método de Newton-Raphson para tres ecuaciones (las derivadas) y las incógnitas $(a, b, c)$.

Este es un método que suelo utilizar cuando el modelo es no lineal con respecto a un pequeño número de parámetros (si es más de uno, genera el valor de la función en una cuadrícula). Esto funciona bastante bien.

Déjame mostrarte el último modelo para el cual utilicé este procedimiento.

$$P=\rho RT+(B_0RT-A_0-\frac{C_0}{T^2}+\frac{D_0}{T^3}-\frac{E_0}{T^4})\rho^2+(bRT-a-\frac dT)\rho^3+$$ $$\alpha(a+\frac dT)\rho^6+\frac{c \rho^2}{T^2}(1+\gamma \rho^2)e^{-\gamma \rho^2}$$ y los datos son $(T_i, \rho_i, P_i)$ ($R$ siendo la constante del gas ideal). El modelo es lineal con respecto a todos los parámetros excepto $\gamma$. Funcionó muy bien.

Este procedimiento tiene (al menos para mí) la ventaja de utilizar las características estándar de los modelos lineales. Puedes cambiarlo a uno más matemático: usa $\Phi'_a$ y $\Phi'_c$ para expresarlo todo en términos de $b$ y solo te enfrentas al problema de resolver $\Phi'_b=0$ para $b.

'

Ejemplo para ilustración

Usando los datos dados en la página 17 del libro de JJacquelin, solo realicé algunos cálculos para valores específicos de $b$. Los mejores tres puntos encontrados corresponden a $b=1.50$ ($SSQ=0.183835$), $b=1.75$ ($SSQ=0.135040$), $b=2.00$ ($SSQ=0.164380$); para $b=1.75$, $a=0.328$ y $c=0.556$. Comenzar la regresión no lineal con estos valores hace que el problema converja en tres iteraciones y el modelo final es $$y=0.337706 +0.542859 e^{1.77478 x}$$ lo que corresponde a una suma de cuadrados igual a $0.134660$.

Editar

El problema clave es saber dónde empezar a buscar un valor razonable para el parámetro $b$. Siendo el modelo general $$y=ae^{bx}+c$$ consideremos tres puntos de datos indexados por $i, j, k$; entonces podemos escribir $$\frac{y_i-y_j}{y_i-y_k}=\frac{e^{bx_i}-e^{bx_j}}{e^{bx_i}-e^{bx_k}}=\frac{1-e^{b(x_j-x_i)}}{1-e^{b(x_k-x_i)}}$$ Ahora selecciona $x_k=\frac{x_i+x_j}2$; esto conduce a $$\frac{y_k-y_j}{y_i-y_k}=e^{b\frac{x_j-x_i}2}$$ luego $b$. Incluso si no hay tal $x_k$ en la tabla, podemos aproximarla.

Para el ejemplo de JJacquelin, tomé para $x_i$ y $x_j$ los primer y últimos valores ($-0.99$ y $0.981$) y usé $y_k=0.911$ correspondiente al $x$ más cercano a $-0.0045$. Esto da $b=1.7077$; reutilizando los puntos finales da $a=0.6063$ y $c=0.3062$ que no están nada mal como primeras suposiciones.

0voto

ILIV Puntos 421

Este es un ejemplo de regresión no lineal. Los software resuelven este tipo de problemas gracias a algunos algoritmos con métodos iterativos, partiendo de valores estimados de los parámetros.

http://mathworld.wolfram.com/NonlinearLeastSquaresFitting.html

Mencionaré un método directo (no iterativo, no se necesitan valores estimados):

https://fr.scribd.com/doc/14674814/Regressions-et-equations-integrales

No es necesario leer las explicaciones en francés. En caso de $$y(x)=a+be^{cx}$$, consulte la página 17, simplemente aplique las ecuaciones que son muy simples y comprensibles en cualquier idioma.

A continuación se agrega una traducción aproximada:

enter image description here

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X