Bir portföyün riskini ölçmek

Python ile Portföy Analizine Giriş

Charlotte Werger

Data Scientist

Bir portföyün riski

  • Yatırım risklidir: tekil varlıklar yukarı ya da aşağı gidebilir
  • Beklenen getiri bir rastgele değişkendir
  • Ortalamadan sapma, varyans $\sigma^2$ ile ölçülür ve yaygın bir oynaklık ölçüsüdür
  • $\sigma^2 = \frac{\sum\limits_{i=1}^N (X -\mu)^2}{N}$

Denge oyunu olarak risk

Python ile Portföy Analizine Giriş

Varyans

$$

  • Tekil bir varlığın varyansı değişir: bazıları ortalama etrafında daha çok/az dağılır
  • Portföyün varyansı, alttaki varlıkların ağırlıklı varyanslarının basit toplamı değildir
  • Çünkü varlık getirileri koreledir; bu yüzden iş karmaşıklaşır

Yüksek ve düşük varyanslı dağılımlar

Python ile Portföy Analizine Giriş

Varyans ve korelasyon portföy riskiyle nasıl ilişkili?

$$

  • Varlık 1 ve 2 arasındaki korelasyon $\rho_{1,2}$ ile gösterilir ve varlıkların ne ölçüde birlikte hareket ettiğini söyler
  • Portföy varyansı, tekil varlıkların varyanslarını ($\sigma_1^2, \sigma_2^2, etc$), portföydeki ağırlıklarını ($w_1, w_2$) ve birbirleriyle korelasyonlarını dikkate alır
  • Standart sapma ($\sigma$), varyansın ($\sigma^2$) kareköküdür; ikisi de oynaklık ölçüsüdür
Python ile Portföy Analizine Giriş

Portföy varyansını hesaplama

$$ Portföy varyansı formülü

  • $\rho_{1,2} \sigma_1 \sigma_2$, varlık 1 ve 2 arasındaki kovaryans olarak adlandırılır
  • Kovaryans ayrıca $ \sigma_{1,2} $ şeklinde de yazılabilir
  • Bu da şöyle yazmamıza olanak verir:

Yeniden yazılmış portföy varyansı formülü

Python ile Portföy Analizine Giriş

Portföy varyansını kısaca yeniden yazma

Portföy varyansı formülü

  • Bu, kodda daha kolay kullanabileceğin matris gösterimine dönüştürülebilir:

Matris gösteriminde portföy varyansı

  • Sözel olarak, Python'da hesaplayacağımız şey:

    Portföy varyansı = Ağırlıklar transpozu x (Kovaryans matrisi x Ağırlıklar)

Python ile Portföy Analizine Giriş

Python ile portföy varyansı

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
# Calculate daily returns from prices
daily_returns = df.pct_change()
# Construct a covariance matrix for the daily returns data
cov_matrix_d = daily_returns.cov()
Python ile Portföy Analizine Giriş

Python ile portföy varyansı

# Construct a covariance matrix from the 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])
Python ile Portföy Analizine Giriş

Python ile portföy varyansı

# Calculate the variance with the formula
port_variance = np.dot(weights.T, np.dot(cov_matrix_a, weights))
print (port_variance)

0.022742232726360567
# Just converting the variance float into a 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%
Python ile Portföy Analizine Giriş

Hadi pratik yapalım!

Python ile Portföy Analizine Giriş

Preparing Video For Download...