In questo modello viene introdotto il concetto di mean reversion; le \(\mathcal{P}\)-dinamiche per lo spot rate sono date da:
\(dr(t)=\alpha\cdot (\hat{\gamma} -r(t))\;dt+\rho \;dW^{\mathcal{Q}}(t) \;.\)
I parametri: \(\alpha\), \(\gamma\) e \(\rho\) sono costanti maggiori di zero; inoltre si assume che il premio al rischio è pari a:
$$\lambda (t,r_{t})=\lambda =costante\;.$$
Il modello è caratterizzato da un processo di deriva con ritorno verso la media \(\gamma\) e costante di richiamo \(\alpha\) e da un processo di diffusione proporzionale ad un moto browniano standard.
La distribuzione dei valori di \(r(s)\) (\(s > t\)) è una distribuzione normale:
$$r(s) \sim N(\mu_{r}(s),\sigma_{r}(s))\;,$$
con valore atteso e varianza dati dalle seguenti espressioni:
$$E^{\mathcal{P}}_{t}\left[r(s)/r(t)\right]=r(t)\cdot e^{-\alpha\cdot (s-t)}+\gamma\cdot \left(1-e^{-\alpha\cdot (s-t)}\right)\;,\label{V3}$$
$$Var^{\mathcal{P}}_{t}[r(s)/r(t)]=\dfrac{\rho^{2}}{2\cdot \alpha}\cdot \left[1-e^{-2\cdot \alpha \cdot (s-t)}\right]\;,\label{V4}$$
dato che, integrando l’equazione
$$dr(t)=\alpha\cdot (\hat{\gamma} -r(t))\;dt+\rho \;dW^{\mathcal{Q}}(t) \;,$$
noi otteniamo, per ogni \(t \leqslant s\):
\(
r(s)=r(t)\cdot e^{-\alpha\cdot (s-t)}+\gamma \cdot \left(1-e^{-\alpha\cdot(s-t)}\right)+\rho\cdot \int_{t}^{s}e^{-\alpha\cdot (s-u)}\;dW(u)\;. \label{V5}
\)
Si può osservare che:
\(
\;\;\;\;\;\;\;\lim_{s \rightarrow \infty}E[r(s)]=\gamma\;,\;\;\;\;\;\;\;\;\;
\lim_{s \rightarrow \infty}Var_{t}[r(s)]=\dfrac{\rho^{2}}{2 \cdot \alpha}\;,
\)
mentre invece per \(\alpha \rightarrow \infty\) si ha che:
\(
\lim_{\alpha \rightarrow \infty} E_{t}[r(s)]=\alpha\;,\;\;\;\;\;\;\;\;
\lim_{\alpha \rightarrow \infty} Var_{t}[r(s)]=0\;;
\)
quindi andando ad analizzare quanto appena detto, si ha che:
Dato che il modello Vasicek è un modello mean reverting, con la varianza che tende ad una costante, la probabilità di osservare valori di \(r\) grandi può rimanere piccola a piacere, purché si scelga \(\dfrac{\rho^{2}}{2\cdot \alpha}\) piccolo.
Ma dato che \(r\) si distribuisce come una normale, la probabilità di osservare valori di \(r\) negativi al tempo \(s\) con (\(s > t\)) è pari a:
\(
P(r(s)<0)=P_{r,t}\left(\dfrac{r(s)-E_{r,t}[r(s)]}{\sqrt{Var_{r,t}[r(s)]}}<-\dfrac{E_{r,t}[r(s)]}{\sqrt{Var_{r,t}[r(s)]}}\right)=N\left(-\dfrac{E_{r,t}r(s)}{\sqrt{Var_{r,t}[r(s)]}}\right)\;;
\)
questa probabilità infatti, per quanto piccola, è finita.
Per dare un’idea del processo che può assumere lo spot rate nel modello Vasicek, sono stati generati nella Figura che segue alcuni percorsi per lo spot rate utilizzando il metodo di discretizzazione di Eulero; i valori dei parametri che sono stati utilizzati, sono stati riportati nella Tabella che segue.
Parametri | \(r(0)\) | \(\gamma\) | \(\alpha\) | \(\rho\) |
---|---|---|---|---|
Valori | \(0.03\) | \(0.10\) | \(0.3\) | \(0.03\) |
Il processo rappresentato nella Figura di cui sopra parte da \(r(0)=0.03\), è caratterizzato da un processo di deriva con ritorno verso la media \(\gamma=0.10\), rappresentato da una linea tratteggiata di colore rosso. Il valore atteso:
$$E^{\mathcal{P}}_{t}\left[r(s)/r(t)\right]=
r(t)\cdot e^{-\alpha\cdot (s-t)}+\gamma\cdot \left(1-e^{-\alpha\cdot (s-t)}\right)\;,\label{V6}$$
e l’intervallo di confidenza
\(\mu_{r}(t)\pm2\sigma_{r}(t)\)
sono stati rappresentati da delle linee tratteggiate di colore nero. Il problema principale in questo processo è dovuto dal fatto che lo spot rate può assumere valori inferiori allo \(0\%\). Nel mondo reale, ciò non dovrebbe accadere.
Il seguente è il codice R utilizzato per generare la figura di cui sopra.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
## Simulazione di percorsi campione ## ## definisco i parametri del modello r0 0.03 gamma 0.10 alpha 0.3 rho 0.03 ## simulo lo spot rate n 10 # MC simulazioni T 10 # tempo totale m 200 # sottointervalli dt T/m # differenza in tempo di ogni sottointervallo r 0,m+1,n) # matrix dove registro i valori dello spot rate r[1,] for(j in 1:n){ for(i in 2:(m+1)){ dr 1,j])*dt + rho*sqrt(dt)*rnorm(1,0,1) r[i,j] 1,j] + dr } } ## plot set.seed(5,normal.kind="Box-Muller") t T, dt) rT.expected 2/(2*alpha)*(1-exp(-2*alpha*t))) matplot(t, r[,1:10], type="l", lty=1, main="", ylab="r(t)") abline(h=gamma, col="red", lty=2) abline(h=0, col="blue", lty=2) lines(t, rT.expected, lty=2) lines(t, rT.expected + 2*rT.stdev, lty=2) lines(t, rT.expected - 2*rT.stdev, lty=2) points(0,r0) |