VasicekModel

Ci sono fenomeni che riusciamo a prevedere con grande precisione e fenomeni invece che hanno una componente casuale che non ci permette di fare previsioni deterministiche.

Ad esempio conoscendo le posizioni e le velocità attuali dei pianeti possiamo calcolare con grande precisione le loro posizioni e velocità tra 100 anni. Invece anche sapendo il prezzo del petrolio di oggi, non siamo in grado di prevedere nemmeno il prezzo di domani.

Come si descrivono questi fenomeni che hanno un’evoluzione non deterministica?

Il formalismo matematico usato in questi casi è quello dei processi stocastici. Definirli in modo rigoroso non è semplice, cercherò di darne un’idea intuitiva.

Un processo stocastico $$S$$ è determinato da un’equazione differenziale stocastica del tipo:

$$dS(t) = a(S,t)dt + b(S,t)dW$$

dove i vari termini hanno questa interpretazione:

$$\underbrace{dS(t)}_\text{variazione di S} = \underbrace{a(S,t)dt}_\text{componente deterministica} + \underbrace{b(S,t)dW}_\text{componente casuale}$$

Le variazioni di $$S$$ nel tempo ($$dS$$) dipendono da due funzioni $$a$$ e $$b$$. La funzione $$a$$ è detta drift o deriva e rappresenta la parte deterministica dell’evoluzione di $$S$$, la funzione $$b$$ è detta diffusione e regola la parte casuale dell’evoluzione di $$S$$.

Un esempio di sistema fisico descritto da un processo di questo tipo potrebbe essere il seguente: una massa collegata a una molla che subisce un disturbo casuale provocato dagli scontri con altre particelle.

In questa analogia il termine di deriva $$a$$ descrive come agisce la forza elastica mentre il termine di diffusione $$b$$ rappresenta il contributo degli urti con le particelle.

Le due componenti possono avere peso diverso, in alcuni casi può prevalere la componente deterministica e il moto sarà praticamente uguale a quello previsto in assenza di componente casuale, oppure i disturbi caotici possono essere così ampi da mascherare completamente l’effetto della forza.

I tre grafici successivi rappresentano delle simulazioni di questo sistema. Nel primo il peso della componente casuale è molto basso mentre nei successivi è stato aumentato.

OscillatoreBrowniano1

 

OscillatoreBrowniano2

OscillatoreBrowniano3

Osservazione importante: ogni grafico mostra diverse possibili realizzazioni dello stesso processo stocastico. Fissata una certa equazione differenziale stocastica non è determinata l’evoluzione ma la probabilità di ottenere alcuni cammini piuttosto che altri e un certo cammino rappresenta un’estrazione casuale dall’insieme dei possibili cammini.

Ma come si fanno a creare queste simulazioni? Si usa la versione a intervalli discreti dell’equazione differenziale stocastica:

$$\Delta S(t) = S(t+\Delta t) – S(t) = a(S,t)\Delta t + b(S,t)\sqrt{\Delta t}N(0,1)$$

dove $$N(0,1)$$ rappresenta un’estrazione casuale da una distribuzione normale standard (media zero, varianza 1).

Per generare un cammino casuale con $$n$$ passi di simulazione si procede in questo modo:

  1. si fissa il punto di partenza del processo $$S_0$$ al tempo $$t_0 = 0$$
  2. si fissa un valore per $$\Delta t$$ che rappresenta il passo di simulazione e che determina i tempi $$t_1 = \Delta t, t_2 = 2\Delta t, \ldots, t_n = n\Delta t$$
  3. si creano $$n$$ estrazioni dalla distriubuzione normale standard $$E_1,\ldots E_n$$
  4. a partire da $$S_0$$ si costruisce un cammino $$S_1,\ldots,S_n$$ in modo ricorsivo come$$S_{i+1} = S_{i} + a(S_{i},t_i)\Delta t + b(S_i,t_i)\sqrt{\Delta t}E_i$$

Ogni volta che si ripete questo schema si ottengono diverse estrazioni $$E_1,\ldots, E_n$$ e di conseguenza un diverso cammino $$S_1, \ldots, S_n$$.

Vediamo ora alcuni esempi pratici.

Per quanto riguarda il mondo delle azioni e indici finanziari il processo stocastico più semplice che si può usare è chiamato moto browniano geometrico ed è definito da un’equazione del tipo:

$$dS(t) = \mu S(t) dt + \sigma S(t) dW$$

dove $$\mu$$ e $$\sigma$$ sono delle costanti.

Partendo da un valore $$S_0$$ al tempo $$t=0$$, si può dimostrare che il processo al tempo $$t$$ avrà un valore medio pari a $$S_0 e^{\mu t}$$. Il moto browniano geometrico descrive quindi una grandezza che tende a crescere in modo esponenziale con l’aggiunta di un disturbo regolato dal valore di $$\sigma$$ detta volatilità.

Di seguito le simulazioni di un moto browniano geometrico con $$S_0 = 100$$, $$\mu = 0.1$$ e $$\sigma = 0.1$$.

GeometricBrownianMotion

Questo tipo di processo non è adatto invece a simulare tassi di interesse perché i tassi tendono ad avere valori che rimangono sempre compresi in certi intervalli (diciamo che raramente vanno sotto zero o sopra il 10%).

I modelli utilizzabili per simulare i tassi sono molti, uno di quelli più semplici, ma di facile interpretazione, è il modello di Vasicek in cui l’evoluzione di un tasso di interesse $$r$$ segue l’equazione differenziale stocastica:

$$dr = a(b-r(t))dt + \sigma dW$$

Il termine deterministico tende a mantenere il processo attorno al valore $$b$$. Infatti quando $$r$$ è maggiore di $$b$$ il termine è negativo e tende a far diminuire $$r$$, mentre quando $$r$$ è minore di $$b$$ il termine è positivo e tende a far aumentare $$r$$.

Di seguito le simulazioni di un modello di Vasicek con $$r_0 = 0.01$$, $$a = 0.03$$, $$b = 0.02$$ e $$\sigma = 0.05$$.

VasicekModel

Il processo parte dal valore iniziale dell’1% e tende nel lungo periodo a rimanere attorno a un valore medio pari a b = 2%.

Ho creato le simulazioni con questo codice MatLab/Octave: SimulaProcessoStocastico. Il codice può essere facilmente modificato per simulare altri tipi di processi.

Nel prossimo post metteremo assieme tutti gli ingredienti di cui abbiamo parlato fin’ora, aggiungeremo qualche dettaglio e avremo finalmente un quadro completo di come effettuare il pricing di un derivato.

Ciao,

Enrico

PS: un paio di note tecniche per i lettori più esigenti:

  • potrebbe sembrare che il moto della particella attaccata al pendolo con disturbi casuali non si possa descrivere tramite l’equazione differenziale stocastica poiché richiede termini al secondo ordine. In realtà interpretando l’equazione in senso vettoriale si riescono a trattare tramite la stessa espressione anche equazioni differenziali di ordine più alto (ecco qui il codice MatLab/Octave che ho usato per creare i grafici SimulaOscillatoreBrowniano);
  • in letteratura la discretizzazione utilizzata per la simulazione dei processi stocastici è chiamata di Eulero-Maruyama poiché generalizza l’approccio di Eulero per la soluzione delle equazioni differenziali ordinarie a quelle stocastiche.

CC BY-NC-SA 4.0
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.