1 votos

Calibración SABR en R. Cómo estimar rho y nu para minimizar la suma de errores al cuadrado

Empiezo con beta y alfa predefinidos. Luego quiero encontrar rho y nu para que el S um de S cuadrado E rror se reduce al mínimo. Por SSE me refiero a la diferencia entre las volatilidades estimadas de mi modelo y las volatilidades observadas de maarket. ¿Cómo puedo hacerlo en R? He hecho lo siguiente:

## difvol is a function of rho and nu, which is the sum of squared errors.
nlm(difvol,0.01,0.01)

difvol está diseñado así:

(primera volatilidad observada - volatilidad implícita negra)^2 + (segunda volatilidad observada - volatilidad implícita negra)^2 ...

La volatilidad implícita negra no tiene valores en mi configuración porque no tengo estimaciones para rho y nu.

Sin embargo, el código nlm sólo devuelve una estimación y tanto necesito estimar nu como rho. ¿Qué hacer a partir de aquí? ¿Cómo puedo utilizar nlm correctamente?

Sé que mi función difvol podría haber sido mejor, pero no quiero cambiar eso.

2voto

Joan Puntos 718

Intente rediseñar su función de objeto, su difvol , por lo que es una función de un vector bidimensional

dilvol<-function(X){ 
rho<-X[1]
nu<-X[2]
##type in your function here and use rho and nu normally..
}
nlm(difvol,c(0.1,0.1)

Esto podría funcionar

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