Robust estimates for the covariance matrix, 공분산 행렬 추정
출처) Coursera Online Session : Advanced Portfolio Construction and Analysis with Python
The curse of Dimension : 차원성의 저주(?)
"추정해야 할 모수의 수는 성분 수를 증가시킬 수록 급격히 증가하는 경향이 있다."
- 만약 구성 성분이 N개일 때 N개의 기대 수익률을 추정해야한다.
- correlation parameter를 구하기 위해서는 n(n-1)/2 개의 파라미터를 구해야 한다.
- 또한 포트폴리오의 각 구성요소에 대해 각각 N개의 volatility(변동성) 을 추정해야 한다.
문제는 상관관계 파라미터를 도출하는 데에 있다. 예를 들어 100개의 별을 가진 우주를 보면 100개의 기대수익 매개변수, 즉 100개의 변동성 매개변수를 추정해야 한다. 꽤 많긴 하지만 상관관계 모수를 5,000개 정도 추정해야 하는 것과 비교하면 아무것도 아니다. 이것이 바로 '차원성의 저주'다. 이렇게 1/2* n^2 의 속도로 차원이 증가하는 속도 때문에 표본 크기가 너무 커지면 연산효율이 떨어진다.
가령 우리가 위클리 또는 월별 주가 수익률 데이터와 같이 풍부한 데이터를 가지고 있다고 하더라도 연산효율.. 아니 실제로 연산 가능한 지 고려해봐야 한다. 그래도 위클리나 월별 주가 데이터는 충분히 다룰 수 있는 크기의 데이터다. 만약 10년치 일별 주가수익률 데이터를 다룬다면? 2500개의 샘플데이터를 이용해 5000개의 Volatility 데이터와 기대수익률 데이터를 추정해야 한다.
결국 expected return, Var, correlation을 추정하기 위해서 모수의 수를 줄여야 할 필요가 있다. 어떻게 적당한 양의, 편향되지 않은 표본 데이터를 구할 수 있을까?
# 적당한 크기의 샘플 도출하기
1. 표본 추정치, 공분산 모수의 과거 추정치 - 모델리스크 X, 샘플리스크 O
주식 i,j 사이의 공분산을 추정해야 하는 경우. 표본을 추출하여 표본 공분산을 도출하고, T로 나눈 값이 상관관계 추정치다. 이때 강의에서는 T를 'Best Estimate for volatility'라고 소개하는데, T는 전체 주식의 개수를 의미한다.
이 경우 100개의 성분(factor)을 가지고 있다면 5000개의 모수를 추정해야 하는 일이 벌어진다. 따라서 파라미터 수를 줄일 필요가 있다. 이때 Constant Correlation Model이라 알려진 모델을 통해 매개변수의 수를 줄여 샘플 리스크를 극소화 할 수 있다.
# Constant Correlation Model
좌변의 행렬 : 기존에 우리가 n(n-1)/2 번의 연산을 통해 얻을 수 있는 상관계수 행렬. 여기서 각 원소들은 (각 시그마의 곱 * rho_i,j)로 이루어져 있는데, 조금 더 연산을 쉽게 하기 위해 rho_ij가 일정한 상수라고 가정하자. (우변 행렬)
상관계수 rho를 일정한 상수로 강제하는 이유는 일부 구조를 적용하고 추정할 모수의 수를 줄이기 위함이다. 요약하자면, 이 작업을 통해 각 모수가 제대로 평가되지 않는 대신에 단일 모수 rho가 정확하게 추정하고자 하는 것이다.
주식 i와 j에 대한 공분산 추정자 sigma hat(좌변) = i주식 변동성 추정치 * j주식 변동성 추정치 * rho (상수, 공통 상관관계 매개변수).
# 상관관계 rho 추정하기
상관관계 Rho의 대표 추정값을 찾는 식 | 출처 : Coursera
The optimal estimator of Constant Correlation is the "Global" Average.
위 방정식을 통해서 rho hat을 추정한다. rho hat을 추정하기 위해 가장 좋은 방법은 샘플에 기반해 추정된 rho_hat_ij을 이용하는 것이다. 좌변에 위치한 rho_hat_ij를 통해 모든 주식 쌍에 대한 상관관계 평균을 계산하면 rho hat이 된다.
일부 주식 상관관계에 대한 표본 rho 추정치는 0.9로, 다른 추정치는 -0.7로 나타났다고 하자. 이렇게 과도하게 상관성이 큰 값이 나오는 경우가 종종 있는데, 이렇게 너무 높거나 낮은 추정치가 나오는 데에는 샘플리스크 중 노이즈와 관련이 있다.
노이즈로 인한 추정치들의 dispersion을 줄이기 위해 다시 한번 똑같은 값(rho)을 부과하면(imposing) 의미 있는 rho 추정치(평균)이 도출될 것이다.
실제로 1973년 엘튼교수와 그루버교수가 쓴 논문에 의하면 Constant correlation model에 기반해 공분산 행렬에 대한 추정치를 표본에서 추출하면 더 의미 있는 포트폴리오를 얻을 수 있다. 최소분산포트폴리오(Minimum Variance Portfolio)를 찾기 위해 constant correlation estimate 방법 혹은 sample-based 추정방법을 사용했고, 그 결과 전자의 추정치를 사용한 최소분산 포트폴리오가 후자의 추정치보다 더 나은 값을 도출했다.
이 방법을 통해 모델리스크에 상당히 노출되었음에도 불구하고 샘플리스크를 줄여 의미있는 값을 도출했다는 점에서 Constant correlation estimate 기법은 충분히 가치 있다.
논문 원문 : http://web-docs.stern.nyu.edu/salomon/docs/derivatives/S-DRP-04-02.pdf
포트폴리오에 주식 종목 수가 많을 수록, 이러한 변수들 각각에 많은 양의 샘플리스크가 존재할 가능성이 크다. 물론 추정치를 구하기 위해 가능한 한 빈도를 늘리고, 적절한 기간으로 유지되는 한 관찰기간(time period)을 늘려 많은 표본을 늘리는 것도 중요하다. 그러나 너무 많은 표본은 연산의 효율이 나빠질 위험이 있기 때문에 어느 시점에서는 매개변수의 수를 줄어야 하며 이는 Constant Correlation 방법이 적합하다. 다음에는 모수의 수를 줄이기 위한 다른 방법론을 살펴보고, Constant Correlation 방법론을 개선할 수 있는 방법에 대해 소개한다.
Factor-Based Covariance Estimate : 팩터 기반 공분산 추정
제한된 팩터들에 의해 주식 수익이 발생한다고 가정하자.
N개의 주식과 K개 (N>K)의 팩터가 있다고 가정하자.
합리적이고 간결하면서도 설명력이 좋은 (Parsimonious) 팩터모델을 만들 예정이다. 팩터 모형을 사용해 팩터 모형에 기반한 주식 수익의 분산 및 공분산 식을 얻을 수 있다.
주어진 주식의 분산은 팩터에 관한 주식의 Beta 함수와 팩터의 분산 함수로 도출할 수 있다. 일반적으로 팩터 간의 공분산과 공분산과는 상관없는(uncorrelated) 팩터 사용에 대해 유의해야 할 필요가 있다. 실제로 공분산 항은 잠시 후에 볼 수 있듯이 0이 될 수 있기 때문이다. 공분산 모수 추정에 대해서도 분산 추정과 같이 똑같이 (팩터와 공분산의 상관관계와 팩터간의 공분산에 대해) 주의해야 한다. 대충 식을 보면 이해할 수 있을 법한 개소리,,, 너무 당연하잖아...?
지금 우리가 알고 있는 파라미터는 주식의 베타와 주식 분산에 대한 추정치로, 두 파라미터를 이용해 팩터 공분산 추정 행렬을 구하는 것이 목표임을 기억하자. 주식의 베타 및 인자의 분산이 있으면 공분산 항에 대한 적정 추정치를 구할 수 있다. 이 표현식을 주의 깊게 살펴보면, 팩터 모형에 의해 설명되지 않는, 주식 수익률의 일부에 관계없이 주식의 고유 수익률 간의 공분산이 포함되어 있다는 사실을 알 수 있다. 주식 i와 j에 대해 엡실론 i와 엡실론 j이 고유 수익률 간의 공분산을 의미한다. 여기서 가장 중요한 부분은,
* 가장 중요한 부분 * Cov(Eij, Eji) = 0 : 각 자산의 잔차항은 독립관계다.
문제는 많은 주식 쌍에서 특정 수익 사이의 공분산을 추정해야 할 때 발생한다. 이때 모델리스크를 도입해 특정 수익률 간의 상관관계를 가정하자. 팩터 모델이 주가 수익률 간의 공통점을 잘 캐치하는 것이 포인트.
잘 만들어진 팩터모형에 있어서 특정 성분 (잔차항)이 상관관계가 없다고 가정해도 그리 나쁘지 않다. 사실 자산들이 공통적으로 가지고 있는 다른 모든 것들은 이미 팩터에 의해 처리되었으므로 지나친 가정이 아니다. 이제 이 가정을 도입해 다음의 5 팩터 모델을 생각해보자.
## Single-Factor and Multi-Factor 모델
K=5, n=100인 포트폴리오에서 각 팩터와 자산에 대해 Beta를 추정해야 한다. 즉 공분산 모수인 베타 500개를 계산하자. 우선 우리에게 매우 유명한 단일 팩터 모형을 사용해 분산을 예측해보자.
가장 기본적인 단일 팩터 모델, 즉 수익률을 역행하는 것 (where what you're doing is you're regressing the returns say)이다. (아마도 이렇게 표현한 데에는 수익률을 통해 역으로 찾는다고 해서 '역행'이라 표현하지 않았을까...) 예를 들어, 개별 주식에 대해 말하자면, 시장에서의 수익률과 같은 것이다. 이 경우에는 하나의 베타모델을 얻을 수 있다. 물론 자산 수익에 영향을 미치는 공통 팩터가 1개 아니 2개 이상 있다는 사실을 우리는 알고 있으므로 해당 모델로는 특정 수익률 간의 상관관계를 추정하는 데 막대한 비용이 들 우려가 있다는 것을 알 수 있다. 즉, 단일 팩터모델보다 다변량 팩터모델이 오히려 유리할 수 있다
다변량 팩터모델에는 크게 3가지 팩터가 있다.
- 명시적 매크로 팩터 (인플레이션, 기술성장, 금리, 시간 범위 등)
- 명시적 마이크로 팩터 (국가, 산업규모, Book-to-Market 등) : 속성이나 다른 주식의 특징들을 통해 리스크 파라미터의 차이를 설명하기 위한 위한 방법.
- 암묵적, 내재적 팩터 (PCA, 통계적 분석 등) : 인자가 무엇이 되어야 하는 지 딱히 정해져 있지 않고 데이터로 부터 통계적 분석을 통해 끌어 낼 수 있는 팩터. 일반적으로 직교관계와 같이 상관관계가 없는 인자를 생성하기 위해 통계분석을 제약하기도 한다. 모수 추정치에 유용하다. 모수 추정치에 유용하다.
# 결론
- 팩터 모델을 사용하면 추정할 위험 모수파라미터의 수를 줄이는 동시에 합리적인 양의 모델 리스크를 활용할 수 있다.
- 내재 팩터 모델은 데이터가 관련 요인을 알려줌으로써 모델 리스크를 완화할 수 있기 때문에 종종 선호된다.
### 알아두어야 할 표현!
Parsimonious : 간결하면서도 설명력이 좋은.
적은 파라미터로 설명하는 간단한 모델이 주어진 데이터들을 잘 설명해줄 때 사용하는 단어.
출처 : https://blog.naver.com/jaysrogers/221952126105
'금융공학 > 투자포트폴리오' 카테고리의 다른 글
[데이터 전처리] Feature Engineering (0) | 2020.08.29 |
---|---|
[ Coursera ] 자산 배분의 강력한 tool, Black-Litterman Model (0) | 2020.07.29 |
[ Coursera ] Style and Factors 파이썬 코드 구현 (0) | 2020.07.17 |
[Coursera] Factor investing 의 기초, Factor란 무엇인가? (0) | 2020.07.02 |