금융 위기 쪼개서 살펴보기
영상에서는 글로벌 금융 위기 전·중·후를 모두 포함하는 2005 - 2010 전체 기간에 대해 투자은행 포트폴리오의 효율적 프런티어를 보셨습니다.
여기서는 이 기간을 세 개의 하위 기간, 즉 epochs로 나눕니다: 2005-2006(위기 이전, before), 2007-2008(위기 동안, during), 2009-2010(위기 이후, after). 각 기간마다 효율적 공분산 행렬을 계산하고 서로 비교해 보겠습니다.
2005 - 2010의 포트폴리오 prices는 작업 공간에 준비되어 있고, PyPortfolioOpt의 CovarianceShrinkage 객체도 제공되어 있습니다.
이 연습은 강의의 일부입니다
Python을 활용한 정량적 리스크 관리
연습 안내
- 딕셔너리
epochs를 만드세요: 키(keys)는 하위 기간이고, 값(values)은 'start'와 'end' 날짜를 담은 딕셔너리입니다. epochs의 각 하위 기간 키에 대해, 해당 기간의prices범위를sub_price로 설정하세요.sub_price와CovarianceShrinkage객체를 사용해 각 하위 기간의 효율적 공분산 행렬을 구하세요.- 세 하위 기간 모두에 대해 계산된 효율적 공분산 행렬을 출력하고 비교하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Create a dictionary of time periods (or 'epochs')
epochs = { 'before' : {'start': '1-1-2005', 'end': '31-12-2006'},
'during' : {____: '1-1-2007', 'end': '31-12-2008'},
'after' : {'start': '1-1-2009', ____: '31-12-2010'}
}
# Compute the efficient covariance for each epoch
e_cov = {}
for x in epochs.keys():
sub_price = prices.loc[epochs[x][____]:____[x]['end']]
e_cov[x] = CovarianceShrinkage(____).ledoit_wolf()
# Display the efficient covariance matrices for all epochs
print("Efficient Covariance Matrices\n", e_cov)