금융공학

Factor Model (4) - PCA (statistical Factors)

경희대생 2023. 1. 27. 22:48

PCA란 주성분 분석(Principal Component Analysis)으로써, 가장 널리 사용되는 차원 축소 기법 중 하나로, 원 데이터의 분포를 최대한 보존하면서 고차원 공간의 데이터들을 저차원 공간으로 변환하는 기법이다. 

 

차원축소 (PCA)의 경우 비지도학습에 사용되는 알고리즘이다. 장점으로는 주성분 분석을 통해 독립적인 factors 들을 찾기때문에 추출된 factor들의 correlation이 0이된다. 하지만 차원축소된 factor들이 무엇인지 정확히 정의하기가 힘들다는 한계가 있다. Factor들을 나눈 경계가 불분명하기 때문에 factor에 대한 해석이 힘들수 있다. 가령 Fama-French three factor model의 경우 정확히 각 factor가 어떤 기준으로 나눠진지 알 수 있지만, PCA로 추출된 PC들의 경우 그렇지 않다. 그럼에도 불구하고 PCA를 사용하는 이유가 있다. 이번에는 특히 Factor Model에서 왜 PCA 기법을 활용하는지 알아보자. 

Factor Model의 문제점 중 하나는 Market에서 뽑아낸 Factor들의 상관관계가 높을 가능성이 많다는 것이다. Factor의 개수가 많아질수록 Factor간 correlation이 높은 Factor들이 많아지고, 이는 다중공선성 문제로 이어진다. 

 

다중공선성? 

다중공선성문제는 통계학의 회귀분석에서 독립변수들 간에 강한 상관관계가 나타나는 문제

 

다중공선성은 독립변수 (Factor)간 correlation이 높을 때, variables 의 coefficients를 찾기 어려워지는 문제이다. 이는 계수들의 p-value들을 높이고, R-squared 값을 낮추어 regression의 정확도와 설명력을 낮추게 된다. 

 

이를 해결하기 위한 방법으로 우리는 PCA를 활용하여 새로운 factor들을 추출해내게 된다. 

 

PCA기법?

 

2차원 좌표평면에 n개의 데이터가 있을 시, 데이터들의 분포특성을 n개의 주성분으로 설명하는 방법이다. 이를 데이터 분포의 주성분 분석이라고 말한다. 주성분이란 Principal Component (PC)로 불리며, n개 데이터들의 분산이 가장 큰 방향의 벡터를 의미한다. 주성분을 찾기위한 축을 주축 (Principal axes) 또는 주방향 (Principal Direction)이라 부른다. 

 

위의 그림과 같이 2차원 평면에 여러 데이터가 있을 시, 이 데이터들의 분포를 나타내는 주성분(pc)들을 찾기 위해 각 데이터로부터 분산이 가장 큰 주축들을 찾게된다. 첫번재 pc는 데이터로부터의 분산이 가장 큰 주축을, 두번째 pc는 첫번째 pc와 직교하며 데이터들로부터 분산이 가장 큰 주축을 찾아준다; 서로 직각이 되는 벡터들을 찾게 되며, 이를 통해 각 pc들은 서로 독립적이게 된다. 

 

 

 

 

 

한마디로 PCA를 통해 추출된 각 주성분들은 correlation = 0인 서로 independent한 factor들이다. 

 

 

 

 

 

 

 

 

PCA의 경우 Covariance matrix (정방행렬, 대칭행렬)의 특성을 이용하여 진행하며, Covariance matrix는 고유값 (eigenvalue) 와 고유벡터 (eigenvector) 로 나눠지게 된다 ; 고유값 분해 (eigenvalue - eigenvector decomposition) 

 

 

 

PCA기법은 고유값 분해 (고유값 - 고유벡터 분해)를 통해 진행한다. 고유값 분해란 n x n 정방행렬을 분해하는 방법이다. 여기서 우리는 공분산 행렬이 정방행렬 및 대칭행렬임을 이용한다. 공분산행렬을 고유벡터와 고유값으로 나누게 되며, 이 고유벡터를 통하여 k개의 PC들을 추출하게 된다. 

 

 

 

 

 

 

 

 

 

우리는 주성분분석을 위해 mean-centered 된 factor matrix를 사용한다. 여기서 mean-centered는 zero-mean으로도 불리며, 이는 각 time-series factor들의 mean value를 각 sample data로부터 빼준 factor matrix이다. zero-mean이라 불리는 이유는 mean-centered된 matrix의 각 factor 평균이 0이기 때문이다.  

 

 

 

 

 

 

mean-centered된 factors matrix

 

mean-centered된 matrx의 경우 각 factor (열)들의 mean-value가 0이 된다. 

 

 

 

 

 

mean-centered된 matrix의 공분산은 1/T-1 (Transposed X * X)로 나타낼 수 있다. 이유는 각 factor의 평균이 0이기 때문이다. 

 

여기서 제대로된 공분산을 구하기 위해서는 sample size가 factor의 개수보다는 커야한다. 만약 작으면 고유값들이 1개이상이 존재하기 때문이다. 

 

 

 

 

 

 

 

mean-centered된 factor matrix로부터 나온 공분산은 고유벡터와 고유값으로 분해될 수 있다. 고유값이 큰 수부터 배치되며, 그 고유값들에 상응하는 고유벡터들이 생성된다. 

 

 

 

 

 

 

 

공분산 ( V)에서 추출해낸 고유벡터들로 이루어진 직교행렬 (W)를 구한다. 이는 큰 수부터 나열된 각 고유값들에 나열된 고유벡터들이다. 

 

 

 

 

 

 

 

 

 

공분산행렬에서 추출해낸 고유벡터 직교행렬과 factor 수익률 matrix를 내접하면 PC축들로 이루어진 matrix가 나오게 된다. 

 

 

 

 

각 열들이 각 pc들을 의미한다. 

 

고유벡터와 수익률 matrix를 통해 만들어진 pc matrix의 경우 원래 factor의 개수와 동일한 개수의 pc로 구성된 matrix이다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

pc들의 개수를 줄이기 위해, 고유벡터 n x n 직교행렬에서 n x k개의 행렬만을 선택해 factor matrix에 곱해주게 된다. 이에 K개의 pc들로 구성된 matrix가 형성된다. 

 

 

 

 

 

 

 

 

 

 

 

P = XW -> X = PW^(-1)을 통해

 

k개 pc로 설명되는 n개 factor들을 구해줄 수 있다. 

 

 

 

 

Principal Components matrix의 공분산행렬을 구해보면 결국 고유값행렬이다. 

 

mean-centered 된 factor matrix의 공분산행렬을 통해 나온 고유값 행렬이 주성분 행렬의 공분산행렬과 같다는 것이다. 

 


주성분 행렬의 분산 

= factor matrix의 공분산의 고유값 


즉 주성분 행렬의 분산이 factor matrix의 분산에 대한 정보를 담고 있음을 의미한다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PC들로 설명되는 factor matrix를 보게되면 결국 기존의 factor matrix의 공분산 고유값 행렬의 k개 누적 람다들로 설명된다. 

 

 

 

 

 

 

 

결국 k개 pc( 고유값이 높은 순으로 대응되는 누적 람다값)로 설명되는 n개 factor matrix를 구할 수 있다. 

 

 

 

 

 

 

 

 

PCA 관련하여 작성한 코딩은 아래에서 확인할 수 있습니다. 

 

https://www.kaggle.com/code/hawonna1997/factor-dimension-reduction-pca/edit/run/107594092

'금융공학' 카테고리의 다른 글

Simulating Asset Returns  (0) 2023.02.02
Portfolio Optimization  (4) 2023.01.30
Factor Model (3) - Fama-French Three Factor Model  (0) 2023.01.27
Factor Model (2) - Factor Models  (2) 2023.01.26
Factor Model (1) - Factor 투자란  (3) 2023.01.21