Regresión no lineal
En estadística, la regresión no lineal es un problema de inferencia para un modelo tipo:
donde es alguna función no lineal respecto a algunos parámetros desconocidos . Como mínimo, se pretende obtener los valores de los parámetros asociados con la mejor curva de ajuste (habitualmente, con el método de los mínimos cuadrados). Con el fin de determinar si el modelo es adecuado, puede ser necesario utilizar conceptos de inferencia estadística tales como intervalos de confianza para los parámetros así como pruebas de bondad de ajuste.
El objetivo de la regresión no lineal se puede clarificar al considerar el caso de la regresión polinomial, la cual es mejor no tratar como un caso de regresión no lineal. Cuando la función toma la forma:
la función es no lineal en función de pero lineal en función de los parámetros desconocidos , , y . Este es el sentido del término "lineal" en el contexto de la regresión estadística. Los procedimientos computacionales para la regresión polinomial son procedimientos de regresión lineal (múltiple), en este caso con dos variables predictoras y . Sin embargo, en ocasiones se sugiere que la regresión no lineal es necesaria para ajustar polinomios. Las consecuencias prácticas de esta mala interpretación conducen a que un procedimiento de optimización no lineal sea usado cuando en realidad hay una solución disponible en términos de regresión lineal. Paquetes (software) estadísticos consideran, por lo general, más alternativas de regresión lineal que de regresión no lineal en sus procedimientos.
General
[editar]Linealización
[editar]Algunos problemas de regresión no lineal pueden linealizarse mediante una transformación en la formulación del modelo. Por ejemplo, consideremos el problema de regresión no lineal (ignorando el término de error):
Aplicando logaritmos a ambos lados de la ecuación, se obtiene:
lo cual sugiere una estimación de los parámetros desconocidos a través de un modelo de regresión lineal de con respecto a , un cálculo que no requiere procedimientos de optimización iterativa. De todas formas, la linealización debe usarse con cuidado ya que la influencia de los datos en el modelo cambia, así como la estructura del error del modelo y la interpretación e inferencia de los resultados. Estos pueden ser resultados no muy convenientes.
Hay que distinguir entre la "linealización" usada en los párrafos anteriores y la "linealización local" que se adopta para algoritmos clásicos como el de Gauss-Newton. De igual forma, la metodología de modelos lineales generalizados no use linealización para la estimación de parámetros.
Mínimos cuadrados ordinarios y ponderados
[editar]La mejor curva de ajuste se considera como aquella que minimiza la suma de las desviaciones (residuales) al cuadrado (SRC). Este es la aproximación por el método de mínimos cuadrados (MMC). Sin embargo, en aquellos casos donde se tienen diferentes varianzas de error para diferentes errores, es necesario minimizar la suma de los residuales al cuadrado ponderados (SRCP) (método de mínimos cuadrados ponderados). En la práctica, la varianza puede depender del valor promedio ajustado. Así que los pesos son recalculados para cada iteración en un algoritmo de mínimos cuadrados ponderados iterativo.
En general, no hay una expresión de forma cerrada para los parámetros de mejor ajuste, como sucede en el caso de la regresión lineal. Métodos numéricos de optimización son aplicados con el fin de determinar los parámetros de mejor ajuste. Otra vez, en contraste con la regresión lineal, podría haber varios máximos locales de la función a ser optimizada. En la práctica, se suponen algunos valores iniciales los cuales junto con el algoritmo de optimización conducen a encontrar el máximo global...
Estimación de los parámetros usando Métodos de Montecarlo
[editar]Si el error de cada observación es conocido, entonces la precisión y confiabilidad de los parámetros puede ser estimada mediante simulación de Montecarlo. Cada observación es aleatorizada de acuerdo a su media y su desviación estándar. Con el nuevo conjunto de datos, una nueva curva es ajustada y las estimaciones de los parámetros registradas. Las observaciones son entonces aleatorizadas y nuevos valores de los parámetros son obtenidos. Al final, varios conjuntos de parámetros son generados y su media y desviación estándar pueden ser calculados.[1][2]
Software
[editar]Diversos lenguajes de programación y software estadístico y matemático contienen funciones de optimización. Entre ellos, Gauss, GNU Octave, Matlab, Mathematica, R, Splus; C++, Python y Fortran maple.
Métodos numéricos para regresiones no lineales
[editar]Regresión exponencial
[editar]En determinados experimentos, en su mayoría biológicos, la dependencia entre las variables y es de forma exponencial, en cuyo caso interesa ajustar a la nube de puntos una función del tipo:
Mediante una transformación lineal, tomando logaritmos, se convierte el problema en una cuestión de regresión lineal, es decir, tomando logaritmos obtenemos
Ejemplo
[editar]x | y | ln(y) | x2 | x ln(y) |
---|---|---|---|---|
1 | 3 | 1,0986 | 1 | 1,0986 |
1,2 | 3,4 | 1,2237 | 1,44 | 1,4684 |
1,5 | 5 | 1,6094 | 2,25 | 2,4141 |
2 | 2 | 0,6931 | 4 | 1,3862 |
3 | 4,1 | 1,4109 | 9 | 4,2327 |
3,7 | 5 | 1,6094 | 13,69 | 5,9547 |
4 | 7 | 1,9459 | 16 | 7,7836 |
4,5 | 6,5 | 1,8718 | 20,25 | 8,4231 |
Σ 20,9 | Σ 36 | Σ 11,4628 | Σ 67,63 | Σ 32,7614 |
Número de datos:
Promedio de x:
Promedio de y:
Usando la forma lineal de la Regresión Exponencial:
=
La ecuación final que modela el sistema es
Regresión logarítmica
[editar]La curva logarítmica es también una recta, pero en lugar de estar referida a las variables originales e , está referida a y a
Ejemplo
[editar]x | y | ln x | ln2 x | ln x * y | y2 |
---|---|---|---|---|---|
1 | 3 | 0 | 0 | 0 | 9 |
1.2 | 3.4 | 0.1823 | 0.0332 | 0.6198 | 11.56 |
1.5 | 5 | 0.4054 | 0.1643 | 2.027 | 25 |
2 | 2 | 0.6931 | 0.4803 | 1.3862 | 4 |
3 | 4.1 | 1.0986 | 1.2069 | 4.5042 | 16.81 |
3.7 | 5 | 1.3083 | 1.7116 | 6.5415 | 25 |
4 | 7 | 1.3862 | 1.9215 | 9.7034 | 49 |
4.5 | 6.5 | 1.5040 | 2.2620 | 9.776 | 42.25 |
Σ 20.9 | Σ 36 | Σ 6.5779 | Σ 7.7798 | Σ 34.5581 | Σ 182.62 |
La ecuación final que modela el sistema es
Regresión polinomial
[editar]Algunas veces cuando la relación entre las variables dependientes e independientes es no lineal, es útil incluir términos polinomiales para ayudar a explicar la variación de nuestra variable dependiente.
Las regresiones polinomiales se pueden ajustar la variable independiente con varios términos
Que, derivando respecto a cada uno de los coeficientes nos da el planteamiento un sistema de ecuaciones de la siguiente forma (donde m es el número de pares de datos):
Ejemplo
[editar]x | y | xy | x2 | x2y | x3 | x4 |
---|---|---|---|---|---|---|
1 | 3 | 3 | 1 | 3 | 1 | 1 |
1.2 | 3.4 | 4.08 | 1.44 | 4.896 | 1.728 | 2.0736 |
1.5 | 5 | 7.5 | 2.25 | 11.25 | 3.375 | 5.0625 |
2 | 2 | 4 | 4 | 8 | 8 | 16 |
3 | 4.1 | 12.3 | 9 | 36.9 | 27 | 81 |
3.7 | 5 | 18.5 | 13.69 | 68.45 | 50.653 | 187.4161 |
4 | 7 | 28 | 16 | 112 | 64 | 256 |
4.5 | 6.5 | 29.25 | 20.25 | 131.625 | 91.125 | 410.0625 |
Σ 20.9 | Σ 36 | Σ 106.63 | Σ 67.63 | Σ 376.121 | Σ 246.881 | Σ 958.6147 |
Usando una Matriz para calcular valores de los coeficientes
Usando el método de Eliminación de Gauss-Jordan
La ecuación final que modela el sistema es
Véase también
[editar]- Algoritmo de Levenberg-Marquardt
- Algoritmo de Gauss-Newton
- Análisis de la regresión
- Regresión lineal
- Regresión logística
- Regresión segmentada
Referencias
[editar]Bibliografía
[editar]- G.A.F Seber and C.J. Wild. Nonlinear Regression. New York: John Wiley and Sons, 1989.
- R.M. Bethea, B.S. Duran and T.L. Boullion. Statistical Methods for Engineers and Scientists. New York: Marcel Dekker, Inc 1985 ISBN 0-8247-7227-X
Enlaces externos
[editar]- levmar, implementación Levenberg-Marquardt algoritmo en C/C++, con las interfaces de MATLAB, Perl y Python. Licencia: GPL
- Arquimedex: Software para Regresión No Lineal, Regresión Lineal y No Lineal Online
- ISAT, Nonlinear regression with explicit error control
- Zunzun.com, Online curve and surface fitting
- NLREG, a proprietary program
- Matlab statistic
- SysLinea 0.1.2 Regresión lineal y non lineal con código fuente en pascal (Open Source GNU/GPL) Archivado el 12 de diciembre de 2013 en Wayback Machine.