Metodo Monte Carlo Quasi-Casuale: Esercizi Pratici Approfonditi con Sobol, Halton e Faure per Finanza e Integrazione

Cerca:

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
QMC per Simulazioni

Esercizi Dettagliati sul Metodo Monte Carlo Quasi-Casuale

In questa sezione, esploreremo cinque esercizi pratici che utilizzano il Metodo Monte Carlo Quasi-Casuale, basato su sequenze a bassa discrepanza come quelle di Sobol’, Halton o Faure.

 

Il Cuore del Metodo Monte Carlo Quasi-Casuale (QMC)

Il cuore del Metodo Monte Carlo Quasi-Casuale (QMC) risiede nell’utilizzo di sequenze di punti strategicamente generate, note come sequenze a bassa discrepanza, in contrapposizione ai numeri pseudocasuali utilizzati nel Monte Carlo classico. L’obiettivo è coprire lo spazio di campionamento (tipicamente l’ipercubo unitario [0,1][math]^d[/math] in [math]d[/math] dimensioni) nel modo più uniforme possibile.

Formalmente, la discrepanza di una sequenza di [math]N[/math] punti [math]\{x_1, x_2, \ldots, x_N\}[/math] in [math][0,1]^d[/math] misura quanto la distribuzione empirica dei punti devia dalla distribuzione uniforme ideale. Esistono diverse definizioni di discrepanza, ma una delle più comuni è la discrepanza stellare [math]D_N^*[/math]. Per una sequenza di [math]N[/math] punti in [math][0,1]^d[/math], la discrepanza stellare è definita come:

[math]
D_N^* = \sup_{B} \left| \frac{\text{Numero di punti } x_i \text{ in } B}{N} – \text{Volume}(B) \right|
[/math]

dove il ‘sup’ (estremo superiore) è preso su tutti i rettangoli [math]B = [0, b_1) \times [0, b_2) \times \cdots \times [0, b_d)[/math] con [math]0 \leq b_j \leq 1[/math] per ogni [math]j = 1, \ldots, d[/math].

In termini semplici, la discrepanza misura la massima differenza tra la proporzione di punti che cadono in qualsiasi “cassetta” (rettangolo con un angolo nell’origine) dello spazio di campionamento e il volume teorico di quella cassetta. Una sequenza a bassa discrepanza è costruita in modo da minimizzare questa discrepanza al crescere di [math]N[/math].

A differenza dei punti pseudocasuali, che possono mostrare raggruppamenti e grandi spazi vuoti (soprattutto in dimensioni elevate), le sequenze a bassa discrepanza “riempiono” lo spazio in modo molto più omogeneo. Questo si traduce in una copertura migliore e più rappresentativa dello spazio di integrazione o simulazione.

Costruzione Algoritmica delle Sequenze a Bassa Discrepanza

Le sequenze a bassa discrepanza sono costruite algoritmicamente. A differenza dei generatori di numeri pseudocasuali che si basano su formule ricorsive e hanno periodi lunghi, le sequenze QMC si basano spesso su rappresentazioni numeriche in basi diverse.

Esempio: La Sequenza di Halton

Ad esempio, la sequenza di Halton in base [math]p[/math] (dove [math]p[/math] è un numero primo) per generare la [math]i[/math]-esima coordinata del punto [math]x_i[/math] si basa sulla rappresentazione del numero intero [math]i[/math] in base [math]p[/math], “riflessa” attorno al punto decimale.

Per esempio, se [math]p=2[/math], il numero 3 è [math]11_2[/math]. Riflesso e interpretato in base 10, diventa [math]0.11_2 = 1/2 + 1/4 = 0.75[/math].

Per [math]p=3[/math], il numero 4 è [math]11_3[/math]. Riflesso diventa [math]0.11_3 = 1/3 + 1/9 = 4/9 \approx 0.44[/math].

Combinando coordinate generate con basi prime diverse si ottengono sequenze multidimensionali di Halton.

Sequenze di Sobol’ e Faure

Le sequenze di Sobol’ sono più complesse e si basano su ‘numeri direttori’ e aritmetica in base 2, garantendo buone proprietà di bassa discrepanza, soprattutto in dimensioni più elevate rispetto alle semplici sequenze di Halton.

Le sequenze di Faure sono costruite usando espansioni in base e matrici specifiche.

Il Teorema di Koksma-Hlawka e l’Efficacia del QMC

Il motivo per cui le sequenze a bassa discrepanza sono così efficaci per l’integrazione numerica è formalizzato dal Teorema di Koksma-Hlawka. Questo teorema stabilisce un limite superiore per l’errore commesso approssimando un integrale con la media dei valori della funzione valutata nei punti di una sequenza.

Per una funzione [math]f[/math] definita sull’ipercubo unitario [math][0,1]^d[/math] e una sequenza di [math]N[/math] punti [math]\{x_1, \ldots, x_N\}[/math] in [math][0,1]^d[/math], l’errore nell’approssimazione dell’integrale [math]\int_{[0,1]^d} f(x) dx[/math] tramite [math]\frac{1}{N} \sum_{i=1}^{N} f(x_i)[/math] è limitato da:

[math]
\left| \int_{[0,1]^d} f(x) dx – \frac{1}{N} \sum_{i=1}^{N} f(x_i) \right| \leq V(f) D_N^*
[/math]

dove:

  • [math]V(f)[/math] è la variazione totale della funzione [math]f[/math] nel senso di Hardy-Krause. Questa misura quantifica quanto è “irregolare” o “non liscia” la funzione [math]f[/math]. Funzioni più lisce (con variazione totale finita e non eccessivamente grande) beneficiano maggiormente del QMC.
  • [math]D_N^*[/math] è la discrepanza stellare della sequenza di punti.

Il teorema ci dice che l’errore di integrazione è bounded (limitato superiormente) dal prodotto di due fattori: uno che dipende solo dalla funzione da integrare ([math]V(f)[/math]) e uno che dipende solo dalla “bontà” dei punti ([math]D_N^*[/math]).

Forse potrebbe interessarti anche:  Come Calcolare VaR ed Expected Shortfall in Excel: Guida alla Gestione del Rischio Finanziario

Nel Metodo Monte Carlo classico, l’errore atteso decresce come [math]O(N^{-1/2})[/math], e questo risultato non dipende dalla “regolarità” della funzione [math]f[/math]. Con il QMC, scegliendo sequenze a bassa discrepanza per le quali [math]D_N^*[/math] decresce più velocemente di [math]O(N^{-1/2})[/math], si ottiene un limite superiore dell’errore che decresce più rapidamente. Per le sequenze a bassa discrepanza, [math]D_N^*[/math] tipicamente decresce con una velocità dell’ordine di [math]O((\log N)^{d-1} / N)[/math] o [math]O((\log N)^d / N)[/math], a seconda della sequenza e della definizione di discrepanza.

Questo teorema spiega matematicamente perché una bassa discrepanza è desiderabile: minimizzando [math]D_N^*[/math], minimizziamo il limite superiore dell’errore di integrazione per una data classe di funzioni ([math]f[/math] con [math]V(f)[/math] finito).

Una delle differenze fondamentali tra il Metodo Monte Carlo classico e il Metodo Monte Carlo Quasi-Casuale risiede nella loro velocità di convergenza.

Velocità di Convergenza nel Metodo Monte Carlo Classico (MC)

Nel Monte Carlo classico, basato su campioni pseudocasuali indipendenti e identicamente distribuiti (i.i.d.), l’errore standard di stima di un integrale (o di un valore atteso) decresce asintoticamente con una velocità di [math]O(N^{-1/2})[/math], dove [math]N[/math] è il numero di punti utilizzati. Questa velocità di convergenza è notevolmente lenta, ma ha il pregio di essere indipendente dalla dimensione [math]d[/math] del problema.

Velocità di Convergenza nel Metodo Monte Carlo Quasi-Casuale (QMC)

Nel Metodo Monte Carlo Quasi-Casuale, utilizzando sequenze a bassa discrepanza, la velocità di convergenza dell’errore è potenzialmente molto più alta. Per funzioni con variazione totale finita, il Teorema di Koksma-Hlawka implica che l’errore decresce con una velocità legata alla discrepanza della sequenza. Per le sequenze a bassa discrepanza più note (Sobol, Halton, Faure), la discrepanza [math]D_N^*[/math] decresce approssimativamente come [math]O((\log N)^k / N)[/math], dove [math]k[/math] è una costante che dipende dalla sequenza e dalla dimensione [math]d[/math] (spesso [math]k=d[/math] o [math]k=d-1[/math]).

Pertanto, la velocità di convergenza per QMC è tipicamente dell’ordine di [math]O((\log N)^k / N)[/math].

Confronto delle Velocità:

  • MC: Errore [math]\sim C_1 \cdot N^{-1/2}[/math]
  • QMC: Errore [math]\sim C_2 \cdot (\log N)^k / N[/math]

Per [math]N[/math] sufficientemente grande, il termine [math]N^{-1}[/math] decresce molto più velocemente di [math]N^{-1/2}[/math]. Il fattore [math](\log N)^k[/math], che dipende dalla dimensione, attenua il vantaggio del QMC all’aumentare di [math]d[/math]. Tuttavia, per dimensioni basse o moderate ([math]d[/math] fino a circa 10-30, a seconda della regolarità della funzione), la convergenza del QMC è significativamente più rapida di quella del MC classico. Questo significa che per raggiungere una data precisione, il QMC richiede un numero di punti [math]N[/math] molto inferiore rispetto al MC classico.

Natura dell’Errore: Metodo Monte Carlo Classico vs. Quasi-Monte Carlo

È importante notare una differenza fondamentale nella natura dell’errore tra Monte Carlo classico e Quasi-Monte Carlo.

Errore nel Metodo Monte Carlo Classico (MC)

Nel Monte Carlo classico, basato sul campionamento i.i.d. e sul Teorema del Limite Centrale, possiamo costruire intervalli di confidenza statistici. L’errore [math]\pm \epsilon[/math] riportato (ad esempio, media ± errore standard o media ± 1.96 * errore standard per un intervallo al 95%) ha un’interpretazione probabilistica: c’è una certa probabilità (es. 68% per ±1 errore standard, 95% per ±1.96 errori standard) che il valore vero cada all’interno di quell’intervallo, assumendo un numero sufficientemente grande di campioni. Questo errore quantifica la variabilità stocastica della stima.

Errore nel Metodo Monte Carlo Quasi-Casuale (QMC)

Nel Quasi-Monte Carlo, i punti non sono casuali né indipendenti; sono deterministici (sebbene sembrino “casuali”). Pertanto, il Teorema del Limite Centrale non si applica direttamente per costruire intervalli di confidenza standard. Il limite di errore è dato dal Teorema di Koksma-Hlawka, [math]|\text{Errore}| \leq V(f) D_N^*[/math], che è un limite deterministico (se [math]V(f)[/math] e [math]D_N^*[/math] sono noti), non un intervallo probabilistico.

I valori [math]\pm[/math] riportati nei risultati per le stime QMC negli esercizi non rappresentano quindi un intervallo di confidenza statistico nel senso classico. Essi indicano piuttosto una stima empirica della precisione raggiunta per quel particolare [math]N[/math], o un’indicazione della variabilità osservata se la simulazione QMC viene ripetuta con piccole modifiche (come uno shift casuale della sequenza, nel metodo del Randomized QMC – RQMC) per reintrodurre una componente stocastica e poter stimare la varianza.

Forse potrebbe interessarti anche:  Analisi Strategica dei Modelli di Risparmio in Python- Simulazione dei dati in input

Interpretazione Pratica dell’Errore in QMC

In pratica, l’errore riportato per QMC si riferisce spesso:

  • A un limite superiore teorico (se calcolabile).
  • A una stima dell’errore ottenuta tramite metodi come RQMC.
  • Semplicemente, come nel caso degli esercizi, a un’indicazione della ridotta variabilità della stima rispetto a MC per lo stesso [math]N[/math], o alla differenza rispetto a un valore di riferimento noto (come il valore teorico del Black-Scholes).

 

Esercizio 1: Stima di un integrale 1D con sequenza di Sobol’

Problema: Calcolare l’integrale:

[math] I = \int_{0}^{1} e^{-x^2} dx [/math]

utilizzando una sequenza quasi-casuale di Sobol e confrontare il risultato con il metodo Monte Carlo classico.

Soluzione:

  1. Generazione punti Sobol: Usiamo una sequenza di Sobol in 1D per generare [math]N[/math] punti [math]x_i[/math] nell’intervallo [math][0,1][/math].
  2. Calcolo dell’integrale: Approssimiamo l’integrale come:[math] I \approx \frac{1}{N} \sum_{i=1}^{N} e^{-x_i^2} [/math]
  3. Risultato con [math]N=1000[/math]:
    • Valore vero (approssimato): [math]I \approx 0.7468[/math]
    • Monte Carlo classico: [math]\approx 0.747 \pm 0.01[/math]
    • Sobol: [math]\approx 0.7469 \pm 0.0005[/math] (maggiore precisione).

Spiegazione:

Le sequenze quasi-casuali coprono lo spazio in modo più uniforme, riducendo la varianza dell’errore rispetto al metodo classico. La stima ottenuta con la sequenza di Sobol è più vicina al valore vero e ha un intervallo di confidenza più stretto, indicando una maggiore precisione.

Esercizio 2: Calcolo del valore di [math]\pi[/math] con sequenza di Halton

Problema: Stimare [math]\pi[/math] utilizzando coppie di punti [math](x_i, y_i)[/math] generati con una sequenza di Halton in 2D.

Soluzione:

  1. Generazione punti Halton: Usiamo le basi [math]p_1 = 2[/math] e [math]p_2 = 3[/math] per generare [math]N[/math] coppie [math](x_i, y_i)[/math].
  2. Conteggio punti nel cerchio: Contiamo i punti tali che [math]x_i^2 + y_i^2 \leq 1[/math]. La stima di [math]\pi[/math] è data da:[math] \pi \approx 4 \cdot \frac{\text{N° punti nel cerchio}}{N} [/math]
  3. Risultato con [math]N=10^4[/math]:
    • Monte Carlo classico: [math]\approx 3.14 \pm 0.05[/math]
    • Halton: [math]\approx 3.1416 \pm 0.001[/math]

Spiegazione:

La sequenza di Halton riempie il quadrato unitario [math][0,1] \times [0,1][/math] in modo più uniforme rispetto a punti casuali. Di conseguenza, la stima del rapporto tra l’area del cerchio inscritto e l’area del quadrato converge più rapidamente al valore vero di [math]\pi / 4[/math], portando a una stima di [math]\pi[/math] più precisa.

Esercizio 3: Prezzo di un’opzione call Europea con Sobol’

Problema: Stimare il prezzo di un’opzione call Europea con sottostante [math]S_0 = 100[/math], strike [math]K = 105[/math], maturità [math]T = 1[/math], volatilità [math]\sigma = 0.2[/math], tasso [math]r = 0.05[/math], usando il modello di Black-Scholes e una sequenza quasi-casuale di Sobol’.

Soluzione:

  1. Simulazione dei percorsi: Per ogni punto Sobol [math]u_i[/math], genera il prezzo del sottostante a maturità [math]S_T[/math] come:[math] S_T = S_0 e^{(r – \sigma^2/2)T + \sigma \sqrt{T} \Phi^{-1}(u_i)} [/math]dove [math]\Phi^{-1}[/math] è l’inversa della CDF normale standard.
  2. Calcolo del payoff: Il payoff dell’opzione call a maturità è:[math] \text{Payoff} = \max(S_T – K, 0) [/math]
  3. Prezzo scontato: Il prezzo dell’opzione call oggi è il valore atteso scontato del payoff:[math] \text{Prezzo} = e^{-rT} \cdot \frac{1}{N} \sum_{i=1}^{N} \text{Payoff}_i [/math]
  4. Risultato con [math]N = 10^5[/math]:
    • Valore teorico (Black-Scholes): [math]\approx 8.02[/math]
    • Sobol’: [math]\approx 8.03 \pm 0.02[/math]
    • Monte Carlo classico: [math]\approx 8.00 \pm 0.10[/math].

Spiegazione:

L’uso di una sequenza di Sobol per campionare la distribuzione normale inversa porta a una stima più precisa del prezzo dell’opzione con un intervallo di confidenza più stretto rispetto al metodo Monte Carlo classico. La migliore uniformità dei punti Sobol’ nello spazio di probabilità riduce l’errore di campionamento.

Esercizio 4: Integrazione in 3D con sequenza di Faure

Problema: Calcolare l’integrale:

[math] I = \int_{0}^{1} \int_{0}^{1} \int_{0}^{1} \sin(xyz) dx dy dz [/math]

usando una sequenza di Faure.

Soluzione:

  1. Generazione punti Faure: Generiamo [math]N[/math] terne [math](x_i, y_i, z_i)[/math] in [math][0,1]^3[/math] utilizzando una sequenza di Faure. La costruzione precisa della sequenza di Faure è più complessa e dipende dalla scelta delle basi (spesso numeri primi).
  2. Approssimazione dell’integrale: Approssimiamo l’integrale come la media della funzione valutata nei punti di Faure:[math] I \approx \frac{1}{N} \sum_{i=1}^{N} \sin(x_i y_i z_i) [/math]
  3. Risultato con [math]N = 10^4[/math]:
    • Monte Carlo classico: [math]\approx 0.119 \pm 0.005[/math]
    • Faure: [math]\approx 0.1205 \pm 0.0005[/math].

Spiegazione:

In problemi di integrazione multidimensionale, le sequenze di Faure sono progettate per mantenere una bassa discrepanza anche in dimensioni relativamente alte. Sebbene teoricamente solide, nella pratica per dimensioni moderate-alte (d > ~6-10), le sequenze di Sobol’ sono spesso considerate più performanti e sono tra le più utilizzate grazie a implementazioni efficienti e buone proprietà empiriche di bassa discrepanza. L’uso di Faure in questo esercizio dimostra comunque l’applicazione di una sequenza QMC dedicata alle alte dimensioni, e porta a una convergenza più rapida e a stime più precise dell’integrale rispetto al campionamento casuale.

Forse potrebbe interessarti anche:  Modellare le Vendite con una Funzione Sinusoidale: Previsioni Stagionali e Impatto di Promozioni ed Eventi

Esercizio 5: Valutazione di un portafoglio con correlazioni (Cholesky + Sobol’)

Problema: Stimare il VaR (Value-at-Risk) al 95% di un portafoglio con 2 asset correlati ([math]\rho = 0.5[/math]), usando una sequenza quasi-casuale di Sobol’ per generare scenari di rendimento.

Soluzione:

  1. Decomposizione di Cholesky: Per generare variabili casuali correlate, utilizziamo la decomposizione di Cholesky della matrice di covarianza. Se la matrice di correlazione è [math]C = \begin{pmatrix} 1 & \rho \\ \rho & 1 \end{pmatrix}[/math], la sua decomposizione di Cholesky [math]L[/math] tale che [math]LL^T = C[/math] è:[math] L = \begin{pmatrix} 1 & 0 \\ \rho & \sqrt{1 – \rho^2} \end{pmatrix} = \begin{pmatrix} 1 & 0 \\ 0.5 & \sqrt{1 – 0.5^2} \end{pmatrix} = \begin{pmatrix} 1 & 0 \\ 0.5 & \sqrt{0.75} \end{pmatrix} \approx \begin{pmatrix} 1 & 0 \\ 0.5 & 0.866 \end{pmatrix} [/math]
  2. Simulazione dei rendimenti: Generiamo un vettore [math]U = (U_1, U_2)[/math] di numeri quasi-casuali da una sequenza di Sobol’. Trasformiamo questo vettore in un vettore di variabili normali standard correlate [math]Z = (Z_1, Z_2)[/math] usando la trasformazione inversa della normale standard [math]\Phi^{-1}[/math] applicata a ciascun elemento di [math]U[/math]. Quindi, applichiamo la matrice di Cholesky:[math] \begin{pmatrix} Z_1^c \\ Z_2^c \end{pmatrix} = L \begin{pmatrix} Z_1 \\ Z_2 \end{pmatrix} = \begin{pmatrix} 1 & 0 \\ 0.5 & 0.866 \end{pmatrix} \begin{pmatrix} Z_1 \\ Z_2 \end{pmatrix} = \begin{pmatrix} Z_1 \\ 0.5 Z_1 + 0.866 Z_2 \end{pmatrix} [/math]dove [math]Z_1^c[/math] e [math]Z_2^c[/math] sono le variabili normali standard correlate. I rendimenti degli asset possono essere simulati come:[math] R_1 = \mu_1 + \sigma_1 Z_1^c, \quad R_2 = \mu_2 + \sigma_2 Z_2^c [/math]dove [math]\mu_i[/math] e [math]\sigma_i[/math] sono la media e la volatilità dell’asset [math]i[/math].
  3. Calcolo del VaR al 95%: Simuliamo un gran numero di scenari di rendimento del portafoglio, calcoliamo il valore del portafoglio in ciascuno scenario, ordiniamo le perdite dal più piccolo al più grande e prendiamo il valore al 5° percentile come stima del VaR al 95%.
  4. Risultato: L’uso della sequenza di Sobol tende a fornire una stima del VaR più precisa e stabile con un numero inferiore di scenari rispetto al metodo Monte Carlo classico, grazie a una migliore copertura dello spazio degli scenari estremi.

Spiegazione:

Per la valutazione del rischio di portafoglio, in particolare per metriche come il VaR o l’Expected Shortfall, è cruciale campionare adeguatamente gli scenari estremi che si trovano nelle ‘code’ della distribuzione dei rendimenti (le perdite più grandi). Le sequenze quasi-casuali, grazie alla loro uniformità, migliorano significativamente la copertura di questi scenari nello spazio delle probabilità congiunte. Utilizzando Sobol’ (tramite l’inversa della normale standard) per generare le variabili gaussiane non correlate prima della trasformazione di Cholesky, ci assicuriamo che anche le combinazioni di rendimenti estremi vengano campionate in modo più sistematico rispetto al campionamento puramente casuale. Questo porta a stime del VaR più precise e stabili, in quanto si basa su una rappresentazione più fedele della coda della distribuzione delle perdite, rispetto al campionamento casuale tradizionale che potrebbe non esplorare sufficientemente queste regioni critiche.

Conclusione

Il metodo Monte Carlo Quasi-Casuale offre una convergenza più rapida grazie alla migliore uniformità dei punti generati da sequenze a bassa discrepanza. È particolarmente utile in:

  • Integrazione numerica
  • Finanza computazionale
  • Problemi ad alta dimensionalità

Gli esercizi presentati dimostrano come l’uso di sequenze come Sobol’, Halton e Faure possa migliorare l’efficienza e la precisione delle stime rispetto al metodo Monte Carlo classico.

 

Pubblicità