최소분산 포트폴리오와 최대 샤프 지수 포트폴리오
이전 연습 문제에서 목표 수익률의 그리드를 사용해 효율적 프런티어를 계산했어요. 계산 결과로 두 개의 벡터 vpm(포트폴리오 평균 수익률 벡터)과 vpsd(표준편차, 즉 변동성 벡터), 그리고 가중치 행렬 mweights를 얻었습니다. 이제 이 결과를 활용해 변동성이 가장 낮은 포트폴리오와 샤프 지수가 가장 큰 포트폴리오를 찾고, 각 포트폴리오의 자산별 가중치를 시각화해 보겠습니다.
참고로, 샤프 지수는 포트폴리오 초과수익(무위험 수익률을 뺀 값)을 포트폴리오 변동성으로 나누어 계산합니다.
이 연습은 강의의 일부입니다
R로 배우는 포트폴리오 분석 입문
연습 안내
- 표준편차가 최소가 되는 위치
(vpsd == min(vpsd))의mweights행을 선택해weights_minvar를 생성하세요. - 무위험 수익률이 0.75%일 때 포트폴리오 수익률의 샤프 지수를 계산하세요. 이를
vsr라고 하세요. vsr에서 샤프 지수가 최대가 되는 포트폴리오에 해당하는mweights의 행을 선택해weights_max_sr를 생성하세요. 첫 번째 지침과 유사한 방식으로 구할 수 있어요.weights_minvar포트폴리오에서 1%를 초과하는 가중치만 막대그래프로 그리세요. 이어서weights_max_sr포트폴리오에서도 1%를 초과하는 가중치만 막대그래프로 그리세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Create weights_minvar as the portfolio with the least risk
weights_minvar <- mweights[___ == min(___), ]
# Calculate the Sharpe ratio
vsr <- (___ - ___) / vpsd
# Create weights_max_sr as the portfolio with the maximum Sharpe ratio
weights_max_sr <- mweights[___ == max(___)]
# Create bar plot of weights_minvar and weights_max_sr
par(mfrow = c(2, 1), mar = c(3, 2, 2, 1))
barplot(weights_minvar[weights_minvar > 0.01])
barplot(___[___ > 0.01])