2 votos

Proyección de una ecuación diferencial de Thiele con rendimientos de Black Scholes

Estoy tratando de resolver la ecuación

$\frac{d}{dt}V(t)=r(t)V(t)+\pi-\mu(x+t)(b_d-V(t))$

numéricamente utilizando la función R 'ode'. Se trata de una ecuación diferencial de Thiele para una reserva de seguro de vida con tipo de prima $\pi$ intensidad de la mortalidad $\mu$ (para un $x+t$ año), prestación por fallecimiento $b_d$ y el proceso de los tipos de interés $r$ .

Quiero hacerlo en un entorno denominado unit-linked, en el que los rendimientos de la póliza se generan mediante inversiones en acciones, de ahí que haya asumido un modelo de Black Scholes para simplificar.

Genero un Movimiento Browniano Geométrico. Como se ha visto el intervalo de tiempo es de 40 años y el tamaño del paso de la simulación es $40/100000$ . Para cada punto simulado calculo los rendimientos como

$r[i]=\frac{S[i+1]-S[i]}{S[i]}$

Tal es así que tengo $100000$ valores de retorno. Al trazar estos dos para dos escenarios muy diferentes se obtiene

Scenario 1

Scenario 2

Mi problema es que yo esperaría que el proceso de reserva variara mucho más, como el movimiento browniano geométrico simulado. En esencia, es demasiado suave, creo. Además, si genero trayectorias GBM que terminan, por ejemplo, en el valor 500 y 10 respectivamente, la diferencia en el valor final de la reserva varía muy poco.

¿Alguien sabe a qué se debe esto, estoy haciendo algo mal? Se adjunta el código R.

maturity <- 40
simulation.length <- 100001
dt <-  maturity/(simulation.length-1)

timeline <- seq(0,maturity, dt)

BM <- GBM <- EV <- rep(0, times=simulation.length)
EV[1] <- GBM[1] <- S0

for(i in 2:simulation.length){
  BM[i] <- BM[i-1]+sqrt(dt)*rnorm(1)
  GBM[i] <- GBM[1]*exp((mu-(sigma^2)/2)*(i-1)*dt+sigma*BM[i])
  EV[i] <- EV[1]*exp(mu*(i-1)*dt)
}

return <- rep(0,length(GBM))
returns[1] <- 0
for (i in 2:length(GBM)-1)
{
  returns[i] <- (GBM[i+1] - GBM[i]) / GBM[i]
}

dV <- function(t,V, parms)
{
  list(returns[t/0.0004+1] * V + premiumRate - mortalityIntensity(t+25) * 
(deathBenefit - V))
}

out <- ode(y = 0, times = timeline, func = dV, parms = NULL)

interpolatedReserve <- approxfun(times,out[,2], method="linear")

El problema no es que el approxfun no es lo suficientemente buena, porque la usé en el GBM para trazar la trayectoria verde.

Utilizo 60000 como tipo de prima (unos 1000 dólares al mes pagados a la pensión) y una prestación por fallecimiento de 1.000.000 (cifras realistas en coronas danesas). ¿Es porque los rendimientos $r\cdot V$ son demasiado pequeñas para que se noten en comparación con la tasa de prima anual? ¿Sólo sospecharía que la parcela de reserva sigue aproximadamente los movimientos del GBM?

0 votos

Usted busca una tasa de rendimiento $r(t)$ , computación $(S_{t+\Delta t}-S_{t})/S_{t}$ le da el retorno discreto $r(t) \Delta t$ no $r(t)$ . Tome la situación degenerada en la que la tasa de prima y la tasa de mortalidad son cero, + volatilidad cero, para comprobar sus resultados. Partiendo del mismo valor inicial, deberías obtener que la trayectoria del activo de riesgo es la misma que $V$ (exacto si se trabaja con rendimientos logarítmicos frente a rendimientos aritméticos).

0 votos

Gracias por tu respuesta, la idea me pareció bastante buena, así que hice lo que me dijeron. El resultado es el esperado, el caso degenerado no es igual a la trayectoria del GBM, pero la forma se asemeja. Soy consciente de que uso el retorno discerete, pero ¿hay otras opciones? Tengo la sensación de que debería poder proyectar la ecuación diferencial utilizando retornos simulados. Los gráficos que deberían ser iguales se encuentran en el siguiente enlace. Se ve que la forma es igual pero el valor no. ¿Hay alguna alternativa a la utilización de rendimientos discretos? imgur.com/HPQEOEL

0 votos

Los gráficos no parecen partir de los mismos valores. Si entiendo bien, has simulado una única realización de algún proceso estocástico $(S)_{t \geq 0}$ (GBM $(\mu, \sigma)$ ) que básicamente estás refundiendo como una evolución temporal determinista $dS(t)/S(t) = r(t) dt$ donde $r(t)$ incorpora ahora los choques brownianos. Por construcción, debería dar el mismo resultado que $dV(t) = r(t)V(t) dt$ si se parte de los mismos valores iniciales. También en ese caso degenerado existe una solución de forma cercana.

-1voto

ohn Puntos 1

Encontré una solución, pero no estoy exactamente seguro de por qué lo que hice estaba mal.

Sin embargo, la solución fue, utilizando el paquete R Sim.DiffProc para simular el Proceso de Difusión Estocástica

$ dV(t)=\alpha(t,V(t))dt+\sigma(t,V(t))dW(t)\\=(\alpha V(t)+\pi-\mu(x+t)(b_d-V(t)))dt+\sigma V(t)dW(t) $

Gracias a Quantuple por guiarme en la dirección correcta.

0 votos

Me alegro de que te funcione. Ya que estabas trabajando con una ODE asumí que no estabas familiarizado con las SDEs pero no es tu problema original más bien: $dV(t) = (r(t)V(t)+ \pi - \mu(x+t)(b_d-V(t)))dt$ con $dr(t) = a dt + b dW(t)$ ?

0 votos

Estoy haciendo mi tesis de máster en matemáticas actuariales, así que sé bastante de probabilidad avanzada y finanzas en tiempo continuo. Sólo lo programé en un escenario de tipos deterministas porque así podía comprobar que mi programa era correcto, y luego quise ampliarlo a rendimientos estocásticos, pero me di cuenta tarde de que pasé de una ODE a una SDE y, por tanto, ya no podía utilizar el cálculo no Ito.

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