Estoy tomando un curso sobre computación científica, y acabamos de repasar la aproximación de mínimos cuadrados. Mi pregunta es específicamente acerca de la aproximación usando polinomios. Entiendo que si tiene n + 1 puntos de datos, puede encontrar un polinomio único de grado n que describa todos estos puntos. Pero también puedo ver por qué esto no siempre es ideal. Puede obtener mucho ruido entre los puntos de datos con este enfoque. Supongo que es bueno obtener un polinomio de menor grado que calcule sus datos lo suficientemente bien.
Mi pregunta es: ¿cómo decide en la práctica qué grado de polinomio va a utilizar? ¿Existe una regla general o depende únicamente del problema en cuestión? ¿Tenemos que tener en cuenta varias compensaciones al decidir entre más o menos grados? ¿O estoy malentendido algo aquí?
Gracias por adelantado.
fuente
Respuestas:
El aspecto más importante de la interpolación y el ajuste de curvas es comprender por qué los ajustes de polinomios de alto orden pueden ser un problema y cuáles son las otras opciones y luego puede comprender cuándo son / no son una buena opción.
Algunos problemas con polinomios de alto orden:
Los polinomios son funciones naturalmente oscilatorias. A medida que aumenta el orden del polinomio, aumenta el número de oscilaciones y estas oscilaciones se vuelven más severas. Estoy simplificando aquí, la posibilidad de raíces múltiples e imaginarias lo hace un poco más complejo, pero el punto es el mismo.
Los polinomios se aproximan a +/- infinito a una velocidad igual al orden polinómico cuando x va a +/- infinito. Esto a menudo no es un comportamiento deseado.
Calcular coeficientes polinómicos para polinomios de alto orden es típicamente un problema mal condicionado. Esto significa que pequeños errores (como redondear en su computadora) pueden crear grandes cambios en la respuesta. El sistema lineal que debe resolverse involucra una matriz de Vandermonde que puede estar mal condicionada fácilmente.
Creo que quizás el corazón de este problema es la distinción entre ajuste de curvas e interpolación .
La interpolación se utiliza cuando cree que sus datos son muy precisos, por lo que desea que su función coincida exactamente con los puntos de datos. Cuando necesita valores entre sus puntos de datos, generalmente es mejor usar una función suave que coincida con la tendencia local de los datos. Las splines cúbicas o de Hermite a menudo son una buena opción para este tipo de problema, ya que son mucho menos sensibles a los cambios o errores no locales (es decir, en puntos de datos alejados de un punto dado) y son menos oscilatorios que un polinomio. Considere el siguiente conjunto de datos:
Un ajuste polinómico tiene oscilaciones mucho más grandes, especialmente cerca de los bordes del conjunto de datos, que una spline de Hermite.
Por otro lado, la aproximación de mínimos cuadrados es un ajuste de curvatécnica. El ajuste de curvas se utiliza cuando tiene una idea de la funcionalidad esperada de sus datos, pero no necesita que su función pase exactamente por todos los puntos de datos. Esto es típico cuando los datos pueden contener errores de medición u otras imprecisiones o cuando desea extraer la tendencia general de los datos. La aproximación de mínimos cuadrados se introduce con mayor frecuencia en un curso mediante el uso de polinomios para el ajuste de la curva porque esto da como resultado un sistema lineal que es relativamente simple de resolver utilizando las técnicas que probablemente aprendió anteriormente en su curso. Sin embargo, las técnicas de mínimos cuadrados son mucho más generales que solo ajustes polinómicos y se pueden usar para ajustar cualquier función deseada a un conjunto de datos. Por ejemplo, si espera una tendencia de crecimiento exponencial en su conjunto de datos,
Finalmente, elegir la función correcta que se ajuste a sus datos es tan importante como realizar correctamente la interpolación o los cálculos de mínimos cuadrados. Hacerlo incluso permite la posibilidad de extrapolación (cautelosa). Considere la siguiente situación. Datos dados de la población (en millones de personas) para los EE. UU. Desde 2000-2010:
El uso de un ajuste de mínimos cuadrados linealizados exponencial
N(t)=A*exp(B*t)
o un interpolante polinomial de décimo orden da los siguientes resultados:El crecimiento de la población de Estados Unidos no es exponencial, pero te dejaré ser el juez del mejor ajuste.
fuente
Muy poco científico, pero una buena regla general es que los polinomios de tercer grado suelen ser un buen comienzo, y en la práctica nunca he visto a nadie usar más de un sexto grado para obtener buenos resultados.
El polinomio "ideal" sería el de menor orden que represente los datos silenciosos lo suficientemente bien como para su propósito.
Si sus datos son lo suficientemente pequeños como para permitirlos (por lo general lo son), simplemente puede intentar ajustar con polinomios de orden superior hasta que comience a ver oscilaciones, que tienden a ser el signo de "sobreajuste".
Una alternativa sería una spline de suavizado , pero depende mucho de la aplicación. Los splines y splines de suavizado solo son buenos para la interpolación. Para los datos ruidosos, tiendo a preferir los ajustes polinómicos a las splines de suavizado, pero los datos con los que trabajo suelen estar bien aproximados por los polinomios.
fuente
Un enfoque decentemente efectivo que he usado con la aproximación polinómica es calcular los polinomios de mínimos cuadrados para varios grados (p. Ej., Del 1 al 10) y luego elegir la curva que minimiza el error al cuadrado medio en los puntos intermedios (cuando ordenado por x) puntos en su conjunto de datos. Esto ayuda a descartar curvas con oscilaciones demasiado severas.
fuente