Risico van een portefeuille meten

Introductie tot portefeuille-analyse in Python

Charlotte Werger

Data Scientist

Risico van een portefeuille

  • Beleggen is risicovol: losse assets stijgen of dalen
  • Verwacht rendement is een toevalsvariabele
  • Spreiding rond het gemiddelde meten we met de variantie $\sigma^2$, een gangbare volatiliteitsmaat
  • $\sigma^2 = \frac{\sum\limits_{i=1}^N (X -\mu)^2}{N}$

Risico als evenwichtsoefening

Introductie tot portefeuille-analyse in Python

Varianties

$$

  • De variantie van een individuele asset verschilt: sommige hebben meer of minder spreiding
  • De variantie van de portefeuille is niet simpelweg de gewogen varianties van de assets
  • Omdat rendementen gecorreleerd zijn, wordt het complex

Verdelingen met hoge en lage variantie

Introductie tot portefeuille-analyse in Python

Hoe hangen variantie en correlatie samen met portefeuillerisico?

$$

  • De correlatie tussen asset 1 en 2 is $\rho_{1,2}$ en geeft aan in hoeverre ze samen bewegen
  • De portefeuillevariantie gebruikt de varianties van de assets ($\sigma_1^2, \sigma_2^2, ...) $, de gewichten ($w_1, w_2$) en hun correlatie
  • De standaarddeviatie ($\sigma$) is de wortel van de variantie ($\sigma^2$); beide meten volatiliteit
Introductie tot portefeuille-analyse in Python

Portefeuillevariantie berekenen

$$ Formule voor portefeuillevariantie

  • $\rho_{1,2} \sigma_1 \sigma_2$ heet de covariantie tussen asset 1 en 2
  • De covariantie kun je ook schrijven als $ \sigma_{1,2} $
  • Zo kunnen we schrijven:

Formule voor portefeuillevariantie, herschreven

Introductie tot portefeuille-analyse in Python

Portefeuillevariantie korter herschrijven

Formule voor portefeuillevariantie

  • Dit kun je herschrijven in matrixnotatie, handig voor code:

Portefeuillevariantie in matrixnotatie

  • In woorden, wat we in Python moeten berekenen:

    Portefeuillevariantie = Gewichten getransponeerd × (Covariantiematrix × Gewichten)

Introductie tot portefeuille-analyse in Python

Portefeuillevariantie in Python

price_data.head(2)

ticker        AAPL       FB        GE       GM       WMT
date                    
2018-03-21    171.270    169.39    13.88    37.58    88.18
2018-03-22    168.845    164.89    13.35    36.35    87.14
# Bereken dagrendementen uit prijzen
daily_returns = df.pct_change()
# Maak een covariantiematrix voor de dagrendementen
cov_matrix_d = daily_returns.cov()
Introductie tot portefeuille-analyse in Python

Portefeuillevariantie in Python

# Maak een covariantiematrix van daily_returns
cov_matrix_d = (daily_returns.cov())*250
print (cov_matrix_d)

        AAPL          FB          GE          GM          WMT                    
AAPL    0.053569    0.026822    0.013466    0.018119    0.010798
FB      0.026822    0.062351    0.015298    0.017250    0.008765
GE      0.013466    0.015298    0.045987    0.021315    0.009513
GM      0.018119    0.017250    0.021315    0.058651    0.011894
WMT     0.010798    0.008765    0.009513    0.011894    0.041520
weights = np.array([0.2, 0.2, 0.2, 0.2, 0.2])
Introductie tot portefeuille-analyse in Python

Portefeuillevariantie in Python

# Bereken de variantie met de formule
port_variance = np.dot(weights.T, np.dot(cov_matrix_a, weights))
print (port_variance)

0.022742232726360567
# Converteer de variantiefloat naar een percentage
print(str(np.round(port_variance, 3) * 100) + '%')

2.3%
port_stddev = np.sqrt(np.dot(weights.T, np.dot(cov_matrix_a, weights)))
print(str(np.round(port_stddev, 3) * 100) + '%')
15.1%
Introductie tot portefeuille-analyse in Python

Laten we oefenen!

Introductie tot portefeuille-analyse in Python

Preparing Video For Download...