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

Connected

연습 문제

사용자 지정 모멘트 함수 정의하기

제약이 있는 최적화 문제에서는 포트폴리오 매니저나 애널리스트가 특정 기법으로 모멘트를 추정하거나 set.portfolio.moments()의 아이디어를 더 확장하고 싶을 수 있습니다. 사용자 정의 모멘트 함수는 임의의 이름을 가진 인수를 사용할 수 있습니다. 다만, 자산 수익률에는 R, 포트폴리오 객체에는 portfolio라는 이름의 인수를 사용하면 자동으로 감지되어 효율적으로 처리됩니다. 따라서 자산 수익률 객체에는 R, 포트폴리오 객체에는 portfolio를 사용하는 것을 강력히 권장합니다.

사용자 지정 모멘트 함수는 각 요소가 모멘트를 나타내는 이름이 지정된 리스트를 반환해야 합니다:

  • $mu: 1차 모멘트(기대수익률 벡터)
  • $sigma: 2차 모멘트(분산-공분산 행렬)
  • $m3: 3차 모멘트(공왜도 행렬)
  • $m4: 4차 모멘트(공첨도 행렬)

이 연습에서는 강건한 방법을 사용하여 분산-공분산 행렬을 추정하는 사용자 지정 모멘트 함수를 작성합니다. MASS 패키지의 cov.rob() 함수를 사용하겠습니다. 함수 시그니처에는 자산 수익률을 위한 R, 명세 객체를 위한 portfolio라는 이름의 인수가 있어야 합니다. 함수는 이름이 지정된 리스트를 반환해야 합니다. 이번에는 2차 모멘트만 추정하므로, 적절한 이름의 요소 하나만 담긴 리스트를 반환하면 됩니다. 이러한 규칙을 적용해 요인 모형, GARCH 모형 등 표본 추정보다 이론적으로 더 나은 추정을 제공할 수 있는 다른 범주의 모형에 대해서도 사용자 지정 모멘트 함수를 작성할 수 있습니다.

지침

100 XP
  • "mcd" 방법을 사용해 자산 수익률의 분산-공분산 행렬을 추정하는 moments_robust라는 함수를 정의하세요.
  • 방금 정의한 포트폴리오 모멘트를 추정하고, moments라는 변수에 할당하세요. 이는 사용자 지정 모멘트 함수가 예상대로 동작하는지 확인하기 위한 점검입니다.
  • cov.rob()를 사용해 분산-공분산 행렬을 직접 계산하고, 이것이 moments$sigma와 같은지 확인하세요.