Volatilità e valori estremi

Gestione quantitativa del rischio in Python

Jamsheed Shorish

Computational Economist

Ipotesi del test di Chow

  • Test di Chow: verifica la significatività statistica di un possibile break strutturale
  • Richiede: punto di break strutturale predefinito
  • Richiede: relazione lineare (es. modello a fattori) $$ \log(\text{Population}_t) = \alpha + \beta * \text{Year}_t + u_t $$

Immagine della crescita della popolazione cinese con punto di break strutturale

Gestione quantitativa del rischio in Python

Indizi di break strutturale

  • La visualizzazione del trend può non indicare il punto di break
  • Alternativa: esaminare la volatilità invece del trend
    • Il cambiamento strutturale spesso porta maggiore incertezza => volatilità
    • Consente modelli più ricchi (es. modelli a volatilità stocastica)

Immagine della volatilità mensile con possibili punti di break strutturali

Gestione quantitativa del rischio in Python

Volatilità con finestra mobile

  • Finestra mobile: calcola la volatilità nel tempo e rileva cambiamenti
  • Ricorda: finestra mobile a 30 giorni

    • Crea la finestra mobile con il metodo ".rolling()"
    • Calcola la volatilità della finestra mobile (escludi date non disponibili)
    • Calcola la statistica riassuntiva di interesse, es. .mean(), .min(), ecc.

     

rolling = portfolio_returns.rolling(30)

volatility = rolling.std().dropna()
vol_mean = volatility.resample("M").mean()
Gestione quantitativa del rischio in Python

Volatilità con finestra mobile

  • Visualizza la volatilità risultante (varianza o deviazione standard)
import matplotlib.pyplot as plt
vol_mean.plot(
  title="Monthly average volatility"
).set_ylabel("Standard deviation")
plt.show()

Immagine della volatilità media mensile

Gestione quantitativa del rischio in Python

Volatilità con finestra mobile

  • Visualizza la volatilità risultante (varianza o deviazione standard)
  • Grandi variazioni di volatilità => possibili punti di break strutturale
  • Usa i break proposti in un modello lineare della volatilità
    • Variante del test di Chow
  • Guida per applicare es. ARCH, modelli a volatilità stocastica
vol_mean.pct_change().plot(
  title="$\Delta$ average volatility"
).set_ylabel("% $\Delta$ stdev")
plt.show()

Immagine della variazione percentuale della volatilità mensile

Gestione quantitativa del rischio in Python

Valori estremi

  • VaR, CVaR: perdita massima, perdita attesa oltre soglia a un dato livello di confidenza
  • Visualizzare i cambiamenti della perdita massima tracciando il VaR?
    • Utile con insiemi di dati grandi
    • Insiemi di dati piccoli: informazione insufficiente
  • Alternativa: trova perdite che superano una soglia
  • Esempio: $\text{VaR}_{95}$ è la perdita massima nel 95% dei casi
    • Quindi nel 5% dei casi le perdite superano $\text{VaR}_{95}$
  • Backtesting: usa dati passati ex-post per valutare la stima del rischio
    • Molto usato nel risk management aziendale
Gestione quantitativa del rischio in Python

Backtesting

  • Supponi $\text{VaR}_{95} = 0.03$
  • Le perdite oltre il 3% sono valori estremi
  • Backtesting: circa il 5% (100% - 95%) delle perdite passate dovrebbe superare il 3%
    • Più del 5%: distribuzione con code più ampie ("grasse")
    • Meno del 5%: distribuzione con code più strette
  • CVaR per il backtesting: rappresenta meglio la coda rispetto al VaR

Immagine delle perdite e soglia VaR al 95%

Gestione quantitativa del rischio in Python

Esercitiamoci!

Gestione quantitativa del rischio in Python

Preparing Video For Download...