3 votos

Cómo minimizar la forma paramétrica de Nelson-Siegel

Problema
Me dan la siguiente función para minimizar (con respecto a $\theta$ ) $$f= \sum_{k=1}^5 \Big [ \sum_{i=1}^{N_k} CF_{k, i} \cdot e^{-r(t_{k, i}, \theta)\cdot t_{k, i}} - P_k^* \Big]^2$$ donde $\theta = (\beta_0, \beta_1, \beta_2, \lambda)$ y $$ r(t, \theta) = \beta_0 + \beta_1 \big(\frac{1-e^{-\frac{t}{\lambda}}}{\frac{t}{\lambda}} \big) + \beta_2 \big(\frac{1-e^{-\frac{t}{\lambda}}}{\frac{t}{\lambda}} - e^{-\frac{t}{\lambda}} \big)$$

Contexto
Nos dan 5 bonos, sus flujos de caja, $CF_{k, i}$ y el precio de mercado, $P_k^*$ . Todos estos valores se nos dan en forma de números.

Mi intento
He intentado aplicar el método de Newton con python. Sin embargo, estoy bastante seguro de que este método no es aplicable aquí, y necesito otro algoritmo de minimización.

¿Podría alguien sugerir qué algoritmo es el mejor para dicha función? ?

5voto

BigCanOfTuna Puntos 210

Cuando trabajamos con ese modelo hace varios años, utilizamos la Evolución Diferencial y funcionó muy bien. Véase Calibración del modelo Nelson-Siegel-Svensson . Al menos en la versión estándar, una búsqueda del mejor de los gradientes (con valores iniciales aleatorios) también funcionaba bien. Véase Nota sobre los "buenos valores de partida" en la optimización numérica . Si también quieres usar R, hay muchos ejemplos de código en el Paquete NMOF documentación.

0voto

Pete Skelly Puntos 683

Construí algo como lo que intentaste aquí para estimar las curvas de rendimiento para varios sectores utilizando las comillas de los bonos Bbg hace años en VBA. Para la calibración de los parámetros utilicé Nelder Mead. No necesita la primera y segunda derivada o estimadores de la misma como Newton-Ralphson y demás.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X