Así que tengo el siguiente modelo de tasa corta $$dX_t = a_1X_tdt + \sigma_1dW_t$$ $$dY_t = a_2Y_tdt + \sigma_2dB_t$$ $$r_t = X_t + Y_t + f(t)$$ con $X_0 = Y_0 = 0$ donde $W$ y $B$ son movimientos brownianos con correlación $\rho$ y $f(t)$ es una función determinista elegida para ajustarse a la estructura de plazos actual.
Quiero calibrar este modelo ajustando los precios observados de las cápsulas a un vector de parámetros $(a_1,a_2,\sigma_1,\sigma_2,\rho)$ . Mi enfoque es el siguiente. Primero genero un vector de parámetros aleatorios y calculo los precios correspondientes de los caplets para diferentes vencimientos, strikes y fechas de tenor. A continuación, entreno una red neuronal (en Matlab, si eso importa) que toma este vector de precios como entrada y produce el vector de parámetros correspondiente. Espero que la función que va del vector de precios al vector de parámetros sea suave, por lo que una red neuronal de una sola capa con un número suficiente de neuronas debería ser capaz de aproximar esta función.
Pero este método no parece funcionar. Los valores ajustados de $a_1$ y $a_2$ coinciden con sus valores reales (los que di a la red neuronal) razonablemente bien, pero $\sigma_1,\sigma_2,\rho$ están por todas partes. Si arreglo $\sigma_2$ y $\rho$ entonces los valores ajustados de $a_1,a_2$ y $\sigma_1$ son bastante buenos. Por otro lado si arreglo $a_1$ y $a_2$ entonces los valores ajustados de $\rho$ son buenos mientras que los valores ajustados de $\sigma_1$ y $\sigma_2$ son simplemente terribles. Si arreglo $a_1,a_2$ y $\rho$ entonces los valores ajustados de $\sigma_1$ y $\sigma_2$ son casi perfectas. ¿Hay algún tipo de problema de identificabilidad inherente a este modelo?
Genero alrededor de $10000$ muestras. Mi vector de entrada es de 280 dimensiones con vencimientos que van de 1 semana a 10 años, y con strike que van de $-2\%$ a $1\%$ y el tenor va de 3 meses a 3 años. Llegué hasta las 100 neuronas sin ninguna mejora visible. Probé los diferentes algoritmos de optimización de redes neuronales de Matlab, pero de nuevo ninguna mejora. De hecho se deterioró. Agradecería si alguien pudiera dar alguna opinión sobre este enfoque.
0 votos
Intente encontrar una fórmula analítica de fijación de precios de los bonos, y entonces podrá tener un valor analítico de captación.
0 votos
@Gordon Yo sí tengo una fórmula analítica de precios de las cápsulas. Lo que pretendo encontrar con una NN es la inversa de esa función. Genero los precios con mi fórmula y entreno la red dándole los precios como entradas y los parámetros como salidas.
0 votos
@Calculon Tengo curiosidad, ¿por qué necesitas NN para esto?
3 votos
Utilizando sólo caplets no se obtiene mucha información sobre la correlación del proceso, y sospecho que su modelo tiene demasiadas variables libres (y colineales). intente añadir algunas swaptions y exóticas ligeras, como opciones de barrera, opciones de spread de CMS, etc, para restringir mejor la optimización.
0 votos
@HelinGai La única otra alternativa que conozco es utilizar los mínimos cuadrados (encontrar los parámetros que mejor se ajusten a los precios). Eso lleva mucho tiempo como puedes imaginar y los óptimos locales causan problemas. Con la NN entrenas la red una vez y estás listo para toda la vida :)
0 votos
@Calculon ¿cómo puedo llegar a ti por correo electrónico o de otra manera? Me gustaría hacer un seguimiento de esto. Gracias
0 votos
@AntoineSavine Hola Antoine, Gracias por tu post. Todavía no he tenido tiempo de responder a él. ¿Es posible enviar mensajes privados en este sitio web?
0 votos
@Calculon No creo que sea posible pero puedes enviarme un correo electrónico a antoine@asavine.com
0 votos
@AntoineSavine Acabo de enviarle un correo electrónico.