3 votos

Teorema de función implícita y sensibilidades al riesgo de mercado para el modelo de Nelson-Siegel-Svensson

Estoy calibrando el modelo de Nelson-Siegel-Svensson a las tasas de mercado y estoy tratando de calcular las sensibilidades de los parámetros de NSS a esas tasas:

$$r\left(T\right)=\beta_{0}+\beta_{1}{\frac{\left[{1-\exp\left({-T/\lambda}\right)}\right]}{T/\lambda}}+\beta_{2}{\left({\frac{\left[{1-\exp\left({-T/\lambda}\right)}\right]}{T/\lambda}}-\exp\left({-T/\lambda}\right)\right)}+\beta_{3}{\left({\frac{\left[{1-\exp\left({-T/\kappa}\right)}\right]}{T/\kappa}}-\exp\left({-T/\kappa}\right)\right)}.$$

Estoy calibrando el modelo usando el algoritmo de Levenberg-Marquardt.

Llamemos a los parámetros $b=\{\beta_0^*,\beta_1^*,\beta_2^*,\beta_3^*,\lambda^*,\kappa^*\}\in\mathbb{R}^{n=6}$, de manera que, para $m$ tasas observadas en el mercado para $m$ vencimientos ($m>n$), tenemos:

$$\forall i = 1,...,m, \, f_{i}(r_{i},T_{i};b)=r(T_i;b) - r_i=0.$$

Lo que quiero calcular es la sensibilidad de $b$ con respecto a ${r_1,...,r_m}$:

$$\frac{\partial b}{\partial r}={\begin{pmatrix}{\dfrac {\partial \beta_0^*}{\partial r_{1}}}&\cdots &{\dfrac {\partial \beta_0^*}{\partial r_{m}}}\\\vdots &\ddots &\vdots \\{\dfrac {\partial \kappa^*}{\partial r_{1}}}&\cdots &{\dfrac {\partial \kappa^*}{\partial r_{m}}}\end{pmatrix}}\in\mathbb{R}^{n\times m}.$$

Encontré este artículo que es el más cercano a posiblemente tener la respuesta a mi problema:

Pero aún me faltan algunas cosas. Dice lo siguiente (página 3): utilizando el teorema de la función implícita, tenemos

$$\underbrace{\frac{\partial b}{\partial r}}_{n\times m}=\underbrace{\left(\frac{\partial I}{\partial b}\right)^{-1}}_{m\times i}\left[\underbrace{\frac{\partial I}{\partial r}}_{i\times n}-\underbrace{\frac{\partial I}{\partial c}}_{i\times p}\underbrace{\frac{\partial c}{\partial r}}_{p\times n}\right]$$

con:

  • $I$ siendo un "conjunto de $i$ instrumentos calibrados" (?)
  • $c$ siendo un "conjunto de $p$ parámetros adicionales" (?)

Aquí es donde fallo en avanzar. En mi caso específico, ¿cuáles son mis conjuntos $I$ y $c$?

4voto

Foxy Puntos 46

Según mi entendimiento, existen dos formas de invocar el IFT en aplicaciones de finanzas cuantitativas en un contexto de calibración / bootstrapping.

  1. Cuando se minimiza alguna función de error durante el bootstrapping.
  2. Cuando se realiza un bootstrapping de un conjunto de parámetros (por ejemplo, una curva de cero) de manera que todos los instrumentos de referencia se valoren exactamente a la par (por ejemplo, el PV cero para un swap),

IFT en problemas de optimización

Entiendo que estás abordando la primera pregunta, donde se minimiza una función de error escalar. Para simplificar la notación, agrupa todos los parámetros en el vector $K \times 1$ $\theta$ y escribe

$$ \min_{\theta} f(\theta,y) = \sum_i\left(y(T_i)-r(T_i,\theta)\right)^2 $$

Una vez que se haya realizado la minimización de $f$, se ha obtenido algún óptimo $\theta^*$. Según la teoría de la optimización, sabemos que la siguiente condición de optimización debe cumplirse en el óptimo:

$$ g\equiv\left.\frac{\mathrm{d}f(\theta,y)}{\mathrm{d}\theta}\right|_{\theta=\theta^*}=0 $$

Esto se puede utilizar como punto de partida para encontrar la relación entre los cambios en los datos de entrada y los parámetros calibrados. En términos sencillos: cuando los datos de entrada $y$ cambian (un poco), el proceso de optimización seguirá induciendo que $g=0$ en el óptimo, es decir, permanece en cero:

$$ \begin{align} \frac{\mathrm{d}g}{\mathrm{d}y}&= \frac{\mathrm{d}g}{\mathrm{d}\theta}\frac{\mathrm{d}\theta}{\mathrm{d}y}+\frac{\mathrm{d}g}{\mathrm{d}y}=0 \\ \Rightarrow \frac{\mathrm{d}\theta}{\mathrm{d}y}&=-\left(\frac{\mathrm{d}g}{\mathrm{d}\theta}\right)^{-1}\frac{\mathrm{d}g}{\mathrm{d}y} \end{align} $$

Por lo tanto, dado nuestro problema de optimización escalar $f$, la relación entre los cambios (pequeños) en los datos de entrada y los parámetros calibrados se encuentra utilizando derivadas de la condición de primer orden.

Vamos a intentar esto con el ejemplo NSS que proporcionas, asumiendo que queremos minimizar los errores al cuadrado. Además, introduzcamos una notación simplificadora:

  • $g_i$ es el gradiente de $k\times 1$ del modelo NSS en $T_i$, y
  • $H_i$ es la matriz $k\times k$ de segundas derivadas del modelo NSS en $T_i$.

Luego:

$$ \begin{align} f&=\sum_i(y_i-r(T_i))^2\\ g&\equiv \frac{\mathrm{d}f}{\mathrm{d}\theta}=-2\sum_i(y_i-r(T_i))g_i\}\stackrel{!}{=}0 \end{align} $$ Nótese que he usado el "$\stackrel{!}{=}0$" de forma un poco descuidada para indicar que, en $\theta=\theta^*$, el gradiente del problema debe ser cero, de lo contrario podríamos mejorar la optimización aún más. Ahora repetimos las herramientas anteriores, es decir, invocamos la noción de que $\mathrm{d}g$ debe ser cero al cambiar a otro $y$. Para ello, necesitamos

$$ \frac{\mathrm{d}g}{\mathrm{d}y}=-2\begin{pmatrix} \frac{\mathrm{d}r(T_1)}{\mathrm{d}\theta} & \frac{\mathrm{d}r(T_2)}{\mathrm{d}\theta} & \ldots & \frac{\mathrm{d}r(T_n)}{\mathrm{d}\theta} \end{pmatrix}\equiv J $$ que tiene dimensión $k \times n$ y por supuesto $$ \frac{\mathrm{d}g}{\mathrm{d}\theta}=-2\sum_iy_iH_i-g_ig_i^T- r(T_i)H_i\equiv G $$ que es de dimensión $k \times k$

Finalmente, tenemos

$$ \frac{\mathrm{d}\theta}{\mathrm{d}y}=-G^{-1}J $$ que tiene una dimensión de $k \times n$ y debe calcularse en $\theta=\theta^*$.

NB: La mayoría de los optimizadores ofrecerán tanto la Hessianiana como el Jacobiano del modelo como un subproducto, que yo sepa.

IFT en bootstrapping estándar

Un problema común de bootstrapping es encontrar un conjunto de $K\leq N$ parámetros $\theta$ (por ejemplo, nodos de tasa cero en una curva de tasa de interés) de modo que podamos calibrar $N$ instrumentos de referencia a sus respectivas comillas, almacenadas en el vector $Q$, de dimensión $N \times 1$.

Sea $f$ un vector de referencia de $N\times 1$ de instrumentos que (convenientemente) deben ser valorados a la par (es decir, cero). Supongamos que $\theta^*$ ha sido calibrado de esa manera. Cualquier actualización de $Q$ deberá resultar en una actualización de $\theta$ de modo que, nuevamente, $f=0$. Luego

$$ \frac{\mathrm{d}f}{\mathrm{d}y}=\frac{\mathrm{d}f}{\mathrm{d}\theta}\frac{\mathrm{d}\theta}{\mathrm{d}y}+\frac{\mathrm{d}f}{\mathrm{d}y}\stackrel{!}{=}0 $$

y nuevamente

$$ \frac{\mathrm{d}\theta}{\mathrm{d}y}=-\left(\frac{\mathrm{d}f}{\mathrm{d}\theta}\right)^{-1}\frac{\mathrm{d}f}{\mathrm{d}y} $$

Si $K, tenemos que idear una pseudoinversa, es decir

$$ \frac{\mathrm{d}\theta}{\mathrm{d}y}=-\left[\left(\frac{\mathrm{d}f}{\mathrm{d}\theta}\right)^T\frac{\mathrm{d}f}{\mathrm{d}\theta}\right]^{-1}\left(\frac{\mathrm{d}f}{\mathrm{d}\theta}\right)^T\frac{\mathrm{d}f}{\mathrm{d}y} $$

Una aplicación típica, entonces, es encontrar sensibilidades de algún instrumento $h$ en nuestro portafolio con respecto a las tasas de swap observadas en el mercado. Sea $ \theta$ los parámetros de la curva bootstrap (raíz cero), comúnmente tasas cero. Entonces:

$$ \frac{\mathrm{d}h}{\mathrm{d}q}=\frac{\mathrm{d}h}{\mathrm{d}\theta}\frac{\mathrm{d}\theta}{\mathrm{d}r}=-\frac{\mathrm{d}h}{\mathrm{d}\theta}\left(\frac{\mathrm{d}f}{\mathrm{d}\theta}\right)^{-1}\frac{\mathrm{d}f}{\mathrm{d}y} $$

donde usamos las sensibilidades "cero" de nuestro instrumento y las sensibilidades (precalculadas) de las tasas cero con respecto a las comillas.

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