Mínimos Cuadrados No Lineales

Para ajustar un modelo m\left( x,t\right) de n parámetros a un conjunto de m datos \left( t_{i},y_{i}\right) , definimos f\left( x\right) =\frac{1}{2}R\left( x\right) ^{T}R\left( x\right) con R:\mathbb{R}^{n}\rightarrow \mathbb{R}^{m} y R\left( x\right) no lineal con r_{i}\left( x\right) =m\left( x,t_{i}\right) -y_{i} cómo i-ésima componente.

El problema finalmente es:

Minimizar f\left( x\right) =\frac{1}{2}R\left( x\right) ^{T}R\left( x\right) =\frac{1}{2}\sum\limits_{i=1}^{m}r_{i}^{2}\left( x\right)

Esto es equivalente a minimizar la suma de los cuadrados de las diferencias entre el modelo y los datos.

f\left( x\right) es una función semi-paraboidal en el sentido de que es la suma de parábolas y por tanto es minimizable.

Para hallar x tal que f\left( x\right) se minimiza, hallamos las soluciones del gradiente de f\left( x\right) , de este modo, definiendo J\left( x\right) \in \mathbb{R} ^{m\times n} como el jacobiano de R\left( x\right) ,J\left( x\right) _{ij}=\frac{\partial r_{i}\left( x\right) }{\partial x_{j}} tenemos las 2 primeras derivadas de f\left( x\right) :

\nabla f\left( x\right) =\sum\limits_{i=1}^{m}r_{i}\left( x\right) \cdot \nabla r_{i}\left( x\right) =J\left( x\right) ^{T}R\left( x\right)

\nabla ^{2}f\left( x\right) =\sum\limits_{i=1}^{m}\left( \nabla r_{i}\left( x\right) \cdot \nabla r_{i}\left( x\right) ^{T}+r_{i}\left( x\right) \cdot \nabla ^{2}r_{i}\left( x\right) \right) =J\left( x\right) ^{T}J\left( x\right) +S\left( x\right)

Siendo S\left( x\right) =\sum\limits_{i=1}^{m}r_{i}\left( x\right) \cdot \nabla ^{2}r_{i}\left( x\right)

Aplicando el método de Newton para resolver \nabla f\left( x\right) tenemos:

x_{n+1}=x_{n}-\left( \nabla ^{2}f\left( x_{n}\right) \right) ^{-1}\nabla f\left( x_{n}\right)

x_{n+1}=x_{n}-\left( J\left( x_{n}\right) ^{T}J\left( x_{n}\right) +S\left( x_{n}\right) \right) ^{-1}J\left( x_{n}\right) ^{T}R\left( x_{n}\right)


EJEMPLO

Ajustar el modelo y\left( t\right) =e^{tx} a los siguientes datos:

\begin{tabular}{|l|l|l|l|} \hline t & 1 & 2 & 3 \\ \hline y & 2 & 4 & 8 \\ \hline \end{tabular}

De aquí, m\left( x,t_{i}\right) =e^{t_{i}x} entonces:

R=r_{i}\left( x\right) =m\left( x,t_{i}\right) -y_{0}\left( t_{i}\right) =\left( \begin{array}{c} e^{x}-2 \\ e^{2x}-4 \\ e^{3x}-8\end{array}\right)

Ahora f\left( x\right) =\frac{1}{2}R\left( x\right) ^{T}R\left( x\right) =\frac{1}{2}\left[ \left( e^{x}-2\right) ^{2}+\left( e^{2x}-4\right) ^{2}+\left( e^{3x}-8\right) ^{2}\right]

De este modo:

\nabla f\left( x\right) =e^{x}\left( e^{x}-2\right) +2e^{2x}\left( e^{2x}-4\right) +3e^{3x}\left( e^{3x}-8\right)

\nabla ^{2}f\left( x\right) =\left( e^{x}\right) ^{2}+\left( 2e^{2x}\right) ^{2}+\left( 3e^{3x}\right) ^{2}+e^{x}\left( e^{x}-2\right) +4e^{2x}\left( e^{2x}-4\right) +9e^{3x}\left( e^{3x}-8\right)

Finalmente aplicando el método de Newton con:

x_{n+1}=x_{n}-\left( \nabla ^{2}f\left( x_{n}\right) \right) ^{-1}\nabla f\left( x_{n}\right)

Con x_{0}=1 y 8 decimales tenemos:

\begin{tabular}{|l|l|} \hline n & x \\ \hline 0 & 1.00000000 \\ \hline 1 & 0.87299182 \\ \hline 2 & 0.77360001 \\ \hline 3 & 0.71421136 \\ \hline 4 & 0.69491616 \\ \hline 5 & 0.69316064 \\ \hline 6 & 0.69314718 \\ \hline 7 & 0.69314718 \\ \hline \end{tabular}

Obtenemos una convergencia en 7 iteraciones con x_{7}=\ln 2\approx 0.69314718

De modo que y\left( t\right) =e^{t\ln 2}=2^{t} la cual se ajusta a los datos.


Post #10mycomplexsoul

Regresión Lineal Múltiple

Se tienen n puntos en R^{m} y se desea ajustar un modelo lineal de la siguiente forma:

y=a+\sum\limits_{j=1}^{m}b_{j}x_{j}

Donde a,b_{j} son los parámetros a determinar.

Construimos Q:R^{m+1}\rightarrow R como la suma de los cuadrados de las discrepancias del modelo y los datos.

Q=\sum\limits_{i=1}^{n}\left(y_{i}-a-\sum\limits_{j=1}^{m}b_{j}x_{ji}\right) ^{2}

Para hallar los valores de los parámetros que minimizan Q calculamos el gradiente:

\nabla Q=\allowbreak \left\{ \begin{array}{c}\frac{\partial Q}{\partial a}=2\sum\limits_{i=1}^{n}\left(y_{i}-a-\sum\limits_{j=1}^{m}b_{j}x_{ji}\right) \left( -1\right)  \\ \frac{\partial Q}{\partial b_{k}}=2\sum\limits_{i=1}^{n}\left(y_{i}-a-\sum\limits_{j=1}^{m}b_{j}x_{ji}\right) \left( -x_{ki}\right),k=1,2,...,m\end{array}\allowbreak \right.

E igualamos a cero:

\nabla Q=0

Para la parcial de Q con respecto a la variable a

\frac{\partial Q}{\partial a}=0

2\sum\limits_{i=1}^{n}\left(y_{i}-a-\sum\limits_{j=1}^{m}b_{j}x_{ji}\right) \left( -1\right)=0

\sum\limits_{i=1}^{n}\left( y_{i}-a-\sum\limits_{j=1}^{m}b_{j}x_{ji}\right)=0

\allowbreak\sum\limits_{i=1}^{n}y_{i}-a\sum\limits_{i=1}^{n}1-\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}b_{j}x_{ji}=0

n\bar{y}-na-\sum\limits_{j=1}^{m}b_{j}\left( n\bar{x}_{j}\right) =0

a=\bar{y}-\sum\limits_{j=1}^{m}b_{j}\bar{x}_{j}

Para las parciales de Q con respecto a la variable b_{k} con k=1,2,...,m

\frac{\partial Q}{\partial b_{k}}=0

2\sum\limits_{i=1}^{n}\left(y_{i}-a-\sum\limits_{j=1}^{m}b_{j}x_{ji}\right) \left( -x_{ki}\right)=0

\sum\limits_{i=1}^{n}y_{i}x_{ki}-a\sum\limits_{i=1}^{n}x_{ki}-\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}b_{j}x_{ji}x_{ki}=0

a\sum\limits_{i=1}^{n}x_{ki}+\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}b_{j}x_{ji}x_{ki}=\sum\limits_{i=1}^{n}y_{i}x_{ki}

\left( \bar{y}-\sum\limits_{j=1}^{m}b_{j}\bar{x}_{j}\right) n\bar{x}_{k}+\sum\limits_{j=1}^{m}b_{j}\sum\limits_{i=1}^{n}x_{ji}x_{ki}=\sum\limits_{i=1}^{n}y_{i}x_{ki}

n\bar{x}_{k}\bar{y}-\sum\limits_{j=1}^{m}b_{j}\left( n\bar{x}_{j}\bar{x}_{k}\right)+\sum\limits_{j=1}^{m}b_{j}\left(\sum\limits_{i=1}^{n}x_{ji}x_{ki}\right) =\sum\limits_{i=1}^{n}y_{i}x_{ki}

\sum\limits_{j=1}^{m}b_{j}\left( \sum\limits_{i=1}^{n}x_{ki}x_{ji}-n\bar{x}_{k}\bar{x}_{j}\right) =\sum\limits_{i=1}^{n}x_{ki}y_{i}-n\bar{x}_{k}\bar{y}

Definiendo S_{pq}=\sum\limits_{i=1}^{n}x_{pi}x_{qi}-n\bar{x}_{p}\bar{x}_{q}, S_{py}=\sum\limits_{i=1}^{n}x_{pi}y_{i}-n\bar{x}_{p}\bar{y} con p,q enteros obtenemos

\sum\limits_{j=1}^{m}b_{j}\left( S_{kj}\right) =S_{ky}

Así, expresamos en forma matricial

A=\left( \begin{array}{cccc}S_{11} & S_{12} & \cdots  & S_{1m} \\ S_{21} & S_{22} & \cdots  & S_{2m} \\ \vdots  & \vdots  & \ddots  & \vdots  \\ S_{m1} & S_{m2} & \cdots  & S_{mm}\end{array}\right) ,B=\left( \begin{array}{c}b_{1} \\ b_{2} \\ \vdots  \\ b_{m}\end{array}\right) ,Y=\left( \begin{array}{c}S_{1y} \\ S_{2y} \\ \vdots  \\ S_{my}\end{array}\right)

AB=Y

B=A^{-1}Y

De este modo el modelo ajusta a los datos.


Post #07mycomplexsoul