Recientemente he creado una pequeña aplicación en el navegador que puedes utilizar para jugar con estas ideas: Suavizadores de dispersión (*).
Aquí hay algunos datos que inventé, con un ajuste polinómico de bajo grado
![Quadratic Fit]()
Está claro que el polinomio cuadrático no es lo suficientemente flexible para dar un buen ajuste a los datos. Tenemos regiones de muy alto sesgo, entre $0.6$ y $0.85$ todos los datos están por debajo del ajuste, y después $0.85$ todos los datos están por encima de la curva.
Para librarnos del sesgo, podemos aumentar el grado de la curva a tres, pero el problema sigue siendo que la curva cúbica sigue siendo demasiado rígida
![Cubic Fit]()
Así que seguimos aumentando el grado, pero ahora incurrimos en el problema contrario
![Ten Degree Fit]()
Esta curva sigue los datos también y tiende a volar en direcciones que no se corresponden con los patrones generales de los datos. Aquí es donde entra en juego la regularización. Con la misma curva de grado (diez) y alguna regularización bien elegida
![Degree Ten Regularizaton]()
Nos queda muy bien.
Vale la pena centrarse un poco en un aspecto de bien elegido arriba. Cuando se ajustan polinomios a los datos, se dispone de un conjunto discreto de opciones de grado. Si una curva de grado tres está infraajustada y una curva de grado cuatro está sobreajustada, no hay ningún lugar donde ir en el medio. La regularización resuelve este problema, ya que ofrece un rango continuo de parámetros de complejidad con los que jugar.
como afirmar que "¡se consigue un buen ajuste!". Para mí todos parecen iguales, es decir, no concluyentes. ¿Qué razonamiento utilizas para decidir qué es un buen y un mal ajuste?
Un punto justo.
La suposición que hago aquí es que un modelo bien ajustado no debería tener un patrón discernible en los residuos. Ahora, no estoy trazando los residuos, por lo que tienes que hacer un poco de trabajo al mirar las imágenes, pero usted debe ser capaz de utilizar su imaginación.
En la primera imagen, con el ajuste de la curva cuadrática a los datos, puedo ver el siguiente patrón en los residuos
- De 0,0 a 0,3 se sitúan más o menos uniformemente por encima y por debajo de la curva.
- De 0,3 a aproximadamente 0,55 todo los puntos de datos están por encima de la curva.
- De 0,55 a aproximadamente 0,85 todo los puntos de datos están por debajo de la curva.
- A partir de 0,85, todos están de nuevo por encima de la curva.
Yo me referiría a estos comportamientos como sesgo local En este caso, hay regiones en las que la curva no se aproxima bien a la media condicional de los datos.
Compara esto con el último ajuste, con la spline cúbica. No puedo distinguir ninguna región en la que el ajuste no parezca pasar precisamente por el centro de masa de los puntos de datos. Esto es en general (aunque de forma imprecisa) lo que entiendo por un buen ajuste.
Nota final : Tome todo esto como ilustración. En la práctica, no recomiendo el uso de expansiones de bases polinómicas para cualquier grado superior a $2$ . Sus problemas están bien discutidos en otros lugares, pero, por ejemplo:
- Su comportamiento en los límites de sus datos puede ser muy caótico, incluso con regularización.
- No son local en cualquier sentido. Cambiar los datos en un lugar puede afectar significativamente al ajuste en un lugar muy diferente.
Yo en cambio, en una situación como la que describes, recomiendo usar splines cúbicos naturales junto con la regularización, que ofrecen el mejor compromiso entre flexibilidad y estabilidad. Puedes comprobarlo tú mismo ajustando algunas splines en la aplicación.
![Natural Cubic Spline]()
(*) Creo que esto sólo funciona en chrome y firefox debido a mi uso de algunas características modernas de javascript (y la pereza general para arreglarlo en safari y ie). El código fuente es aquí Si está interesado.