평균-분산 효율 포트폴리오 찾기
평균-분산 효율 포트폴리오는 포트폴리오의 기대수익률이 목표 수익률과 같다는 제약하에서 포트폴리오 분산을 최소화하는 해로 얻을 수 있습니다. 이를 편리하게 수행하는 R 함수는 R 패키지 tseries의 portfolio.optim()입니다. 기본 구현은 포트폴리오 수익률이 동일가중 포트폴리오의 수익률과 같다는 제약하에서 평균-분산 효율 포트폴리오 가중치를 찾습니다. 필요한 유일한 인수는 가중치를 구해야 하는 포트폴리오 구성 자산의 월별 수익률 데이터입니다.
DJIA 종목의 월별 수익률을 담은 변수 returns는 이미 콘솔에 로드되어 있습니다.
이 연습은 강의의 일부입니다
R로 배우는 포트폴리오 분석 입문
연습 안내
tseries라이브러리를 불러오세요.portfolio.optim()의 기본값을 사용해 동일가중 포트폴리오 수익률을 목표로 하는 월별 수익률의 평균-분산 효율 포트폴리오를 생성하고, 결과를 변수opt에 저장하세요.- 최적화된 포트폴리오의 가중치 벡터를 생성하세요. 포트폴리오 가중치는
opt$pw에서 확인할 수 있어요. 이를pf_weights라고 하세요. - 제공된 코드를 사용해 자산 이름을 할당하세요.
pf_weights에서 1% 이상인 최적 가중치만 선택해opt_weights라고 하세요.- barplot()을 사용해
opt_weights의 분포를 시각화하세요. - 최적화된 포트폴리오의 기대수익률(
opt$pm)과 변동성(opt$ps)을 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Load tseries
# Create an optimized portfolio of returns
opt <- portfolio.optim(___)
# Create pf_weights
pf_weights <- ___$pw
# Assign asset names
names(pf_weights) <- colnames(returns)
# Select optimum weights opt_weights
opt_weights <- pf_weights[___ >= 0.01]
# Bar plot of opt_weights
# Print expected portfolio return and volatility
___$pm
___$ps