1. 학습
  2. /
  3. 강의
  4. /
  5. R로 배우는 중급 포트폴리오 분석

Connected

연습 문제

단일 기간 최적화

최적화를 실행하는 함수는 optimize.portfolio()와 optimize.portfolio.rebalancing() 두 가지가 있어요. 이 연습 문제에서는 단일 기간 최적화에 집중하고, 다음 연습 문제에서는 optimize.portfolio.rebalancing()을 사용해 정기 리밸런싱이 있는 최적화를 다룰 거예요. optimize.portfolio()는 단일 기간 최적화를 지원합니다. 주요 인수에는 자산 수익률을 위한 R, 포트폴리오 사양 객체를 위한 portfolio, 그리고 문제를 해결하는 데 사용할 최적화 방법을 지정하는 optimize_method가 있어요. 많은 경우, 각 반복/시도에서 추가 정보를 저장하려면 trace = TRUE로 지정하는 것이 유용합니다.

지원되는 최적화 방법은 다음과 같아요:

  • DEoptim: Differential evolution
  • random: Random portfolios
  • GenSA: Generalized Simulated Annealing
  • pso: Particle swarm optimization
  • ROI: 선형 및 이차 계획법 풀이기를 위한 R Optimization Infrastructure

선택하는 최적화 방법은 해결하려는 문제의 유형에 따라 달라져야 해요. 예를 들어, 이차 계획법으로 정식화할 수 있는 문제는 이차 계획법 풀이기를 사용해 해결해야 하고, 비볼록 문제는 DEoptim 같은 전역 최적화 방법으로 풀어야 합니다.

이 연습 문제에서는 평균 수익률을 최대화하고 포트폴리오 표준편차를 최소화하되, 최소 비중 위험 5%, 최대 비중 위험 10%의 표준편차 위험 예산을 적용하고, 전액 투자(full investment) 및 롱 온리 제약을 따르는 포트폴리오 최적화 문제를 정의합니다. 위험 예산 목표에는 전역 풀이기가 필요하므로, 무작위 포트폴리오(random portfolios)를 사용해 문제를 풀겠습니다. 무작위 포트폴리오 집합 rp는 이 연습 문제에서 500개의 순열로 생성되어 있어요.

지침

100 XP

포트폴리오 사양은 이미 생성되어 있으며 이름은 port_spec이에요. 작업 공간에는 수익률 asset_returns도 준비되어 있어요.

  • 최적화 방법으로 "random"을 사용하고, trace를 TRUE로 설정해 단일 기간 최적화를 실행하세요. 최적화 결과는 opt라는 변수에 할당하세요.
  • 최적화 결과를 출력하세요.