相関と共分散

Pythonで学ぶポートフォリオ・リスク管理入門

Dakota Wixom

Quantitative Analyst | QuantCourse.com

ピアソン相関

2つの確率変数間の相関の例:

Pythonで学ぶポートフォリオ・リスク管理入門

ピアソン相関

相関行列のヒートマップ:

Pythonで学ぶポートフォリオ・リスク管理入門

Pythonによる相関行列

StockReturns が株式リターンの pandas DataFrame の場合、相関行列は以下のように計算できます:

correlation_matrix = StockReturns.corr()
print(correlation_matrix)

Pythonで学ぶポートフォリオ・リスク管理入門

ポートフォリオ標準偏差

2資産ポートフォリオの標準偏差:

$$ \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$:ポートフォリオ標準偏差
  • w:資産ウェイト
  • $\sigma$:資産ボラティリティ
  • $\rho_{1, 2}$:資産1と2の相関
Pythonで学ぶポートフォリオ・リスク管理入門

共分散行列

リターンXの共分散行列($ \Sigma $)の計算式:

Pythonで学ぶポートフォリオ・リスク管理入門

Pythonによる共分散行列

StockReturns が株式リターンの pandas DataFrame の場合、共分散行列は以下のように計算できます:

cov_mat = StockReturns.cov()
cov_mat

Pythonで学ぶポートフォリオ・リスク管理入門

共分散行列の年率化

共分散行列を年率化するには:

cov_mat_annual = cov_mat * 252
Pythonで学ぶポートフォリオ・リスク管理入門

共分散を用いたポートフォリオ標準偏差

ポートフォリオボラティリティの計算式:

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

  • $ \sigma_{Portfolio} $:ポートフォリオボラティリティ
  • $ \Sigma $:リターンの共分散行列
  • w:ポートフォリオウェイト($ w_T $ は転置)
  • $ \cdot $:ドット積演算子
Pythonで学ぶポートフォリオ・リスク管理入門

行列転置

行列転置演算の例:

Pythonで学ぶポートフォリオ・リスク管理入門

ドット積

2つのベクトル abドット積演算:

Pythonで学ぶポートフォリオ・リスク管理入門

Pythonによるポートフォリオ標準偏差

ポートフォリオボラティリティの計算には、ウェイト配列と共分散行列を使用します:

import numpy as np
port_vol = np.sqrt(np.dot(weights.T, np.dot(cov_mat, weights)))
port_vol
0.035
Pythonで学ぶポートフォリオ・リスク管理入門

練習しましょう!

Pythonで学ぶポートフォリオ・リスク管理入門

Preparing Video For Download...