포트폴리오 최적화의 과제

R로 배우는 중급 포트폴리오 분석

Ross Bennett

Instructor

과제

  • 많은 솔버가 포트폴리오 최적화에 특화되어 있지 않음

  • 문제에 맞는 솔버 선택 또는 솔버에 맞춘 문제 정식을 위해 솔버의 기능과 한계를 이해해야 함

  • 솔버 간 전환이 어려움

  • 폐형 솔버(예: 이차 계획법)

  • 글로벌 솔버(예: 미분 진화 최적화)

R로 배우는 중급 포트폴리오 분석

이차 효용

  • 최대화: $\quad \displaystyle \omega^T * \mu - \lambda * \omega^T * \Sigma * \omega $
  • 제약 조건:

$$\omega_{i} >= 0$$

$$\sum_{i=1}^{n} \omega_i = 1$$

  • $\omega$: 가중치 벡터
  • $\mu$: 기대수익률 벡터
  • $\lambda$: 위험 회피 파라미터
  • $\Sigma$: 분산–공분산 행렬
R로 배우는 중급 포트폴리오 분석

이차 계획 솔버

  • R 패키지 quadprog로 이차 효용 최적화 문제를 풉니다

  • solve.QP()는 다음 형태의 이차 계획 문제를 풉니다:

$$min(-d^Tb+\frac{1}{2}b^TDb)$$

  • 다음 제약 하에서:

$$A^Tb>=b_0$$

R로 배우는 중급 포트폴리오 분석
library(quadprog)
data(edhec)
dat <- edhec[,1:4]

# Create the constraint matrix
Amat <- cbind(1, diag(ncol(dat)), -diag(ncol(dat)))
# Create the constraint vector
bvec <- c(1, rep(0, ncol(dat)), -rep(1, ncol(dat)))
 # Create the objective matrix
Dmat <- 10 * cov(dat)
# Create the objective vector
dvec <- colMeans(dat)

# Specify number of equality constraints
meq <- 1

# Solve the optimization problem
opt <- solve.QP(Dmat, dvec, Amat, bvec, meq)
R로 배우는 중급 포트폴리오 분석

연습해 봅시다!

R로 배우는 중급 포트폴리오 분석

Preparing Video For Download...