Correlazione e covarianza

Introduzione alla gestione del rischio di portafoglio in Python

Dakota Wixom

Quantitative Analyst | QuantCourse.com

Correlazione di Pearson

Esempi di diverse correlazioni tra due variabili casuali:

Introduzione alla gestione del rischio di portafoglio in Python

Correlazione di Pearson

Una heatmap di una matrice di correlazione:

Introduzione alla gestione del rischio di portafoglio in Python

Matrice di correlazione in Python

Supponendo che StockReturns sia un DataFrame pandas con i rendimenti azionari, puoi calcolare la matrice di correlazione così:

correlation_matrix = StockReturns.corr()
print(correlation_matrix)

Introduzione alla gestione del rischio di portafoglio in Python

Deviazione standard del portafoglio

Deviazione standard di un portafoglio con due asset:

$$ \sigma_p = \sqrt{ w_1^2 \sigma_1^2 + w_2^2 \sigma_2^2 + 2 w_1 w_2 \rho_{1, 2} \sigma_1 \sigma_2 }$$

  • $\sigma_p$: deviazione standard del portafoglio
  • w: peso dell'asset
  • $\sigma$: volatilità dell'asset
  • $\rho_{1, 2}$: correlazione tra gli asset 1 e 2
Introduzione alla gestione del rischio di portafoglio in Python

La matrice di covarianza

Per calcolare la matrice di covarianza ($ \Sigma $) dei rendimenti X:

Introduzione alla gestione del rischio di portafoglio in Python

La matrice di covarianza in Python

Supponendo che StockReturns sia un DataFrame pandas con i rendimenti azionari, puoi calcolare la matrice di covarianza così:

cov_mat = StockReturns.cov()
cov_mat

Introduzione alla gestione del rischio di portafoglio in Python

Annualizzare la matrice di covarianza

Per annualizzare la matrice di covarianza:

cov_mat_annual = cov_mat * 252
Introduzione alla gestione del rischio di portafoglio in Python

Deviazione standard con la covarianza

La formula della volatilità del portafoglio è:

$$ \sigma_{Portfolio} = \sqrt{ w_T \cdot \Sigma \cdot w } $$

  • $ \sigma_{Portfolio} $: volatilità del portafoglio
  • $ \Sigma $: matrice di covarianza dei rendimenti
  • w: pesi del portafoglio ($ w_T $ sono i pesi trasposti)
  • $ \cdot $ operatore prodotto scalare
Introduzione alla gestione del rischio di portafoglio in Python

Trasposta di una matrice

Esempi di operazioni di trasposizione di matrici:

Introduzione alla gestione del rischio di portafoglio in Python

Prodotto scalare

L'operazione di prodotto scalare tra due vettori a e b:

Introduzione alla gestione del rischio di portafoglio in Python

Deviazione standard del portafoglio in Python

Per calcolare la volatilità del portafoglio, supponi un array di pesi e una matrice di covarianza:

import numpy as np
port_vol = np.sqrt(np.dot(weights.T, np.dot(cov_mat, weights)))
port_vol
0.035
Introduzione alla gestione del rischio di portafoglio in Python

Esercitiamoci!

Introduzione alla gestione del rischio di portafoglio in Python

Preparing Video For Download...