상관관계와 공분산

Python으로 시작하는 포트폴리오 리스크 관리

Dakota Wixom

Quantitative Analyst | QuantCourse.com

피어슨 상관관계

두 확률 변수 간의 다양한 상관관계 예시:

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으로 시작하는 포트폴리오 리스크 관리

내적

두 벡터 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...