Ajustar una curva reduciendo los errores
Muchos modelos son curvas con pocos parámetros, y ajustar significa elegir los parámetros que acercan la curva a los datos. scipy.optimize.least_squares(fun, x0) lo hace. Usted escribe fun(p), que devuelve el vector de residuos, uno por dato, donde un residuo es el valor del modelo menos el valor observado. La función minimiza entonces el coste . Parte de su estimación x0 y avanza con el jacobiano , la tabla de cómo cambia cada residuo cuando cambia cada parámetro. Un paso de Gauss–Newton resuelve y luego mueve los parámetros en . Para un modelo lineal en sus parámetros, un solo paso cae en la respuesta. bounds=(bajo, alto) mantiene los parámetros en un rango razonable. curve_fit es una envoltura más amable que recibe directamente el modelo .
Los errores al cuadrado dejan que un punto salvaje domine: un residuo de cuenta . Una pérdida robusta crece más despacio para residuos grandes. Con loss='soft_l1' y f_scale=1 la penalización es , donde es el residuo al cuadrado. El ajuste de curvas de tipos es el uso clásico. La curva de Nelson–Siegel es . Tiene un nivel de largo plazo , una pendiente , una joroba y una longitud de decaimiento en años, y cuatro números describen toda la curva. Tras el ajuste, el nivel de ruido se estima con , con puntos y parámetros.
soft_l1. Con datos reales, una curva de Nelson–Siegel ajustada con least_squares a los diez rendimientos del Tesoro del 9 de octubre de 2026 (3 meses a 30 años) tiene un nivel de , una pendiente de (la curva sube con el plazo) y años, y se aparta de los rendimientos cotizados solo puntos básicos de media y en el peor caso. Ajustar parámetros a puntos con deja grados de libertad y .- Residuos de entrada, parámetros de salida:
fun(p)devuelve modelo menos datos yleast_squaresreduce la suma de cuadrados. - Pérdida robusta para atípicos:
soft_l1evita que un punto salvaje arrastre toda la curva. - Cuatro números para una curva: Nelson–Siegel resume una curva de tipos con un nivel, una pendiente, una joroba y una longitud de decaimiento.
Lab: qué se califica
- Una pendiente por el origen10 pts
- Un paso de Gauss–Newton15 pts
- Una penalización robusta15 pts
- El nivel de ruido tras un ajuste10 pts
- Los argumentos de least_squares10 pts
- Un flujo de ajuste de curvas10 pts
- Por qué una pérdida robusta30 pts