퀀트 팩터 모델링 #8.
# 클러스터링
머신러닝을 공부해 본 사람은 이미 알고 있겠지만 클러스터링(Clustering)은 어떤 개체들을 말 그대로 클러스터(Clusters), 즉 유사도에 기반해 그룹 짓는 데이터 분석 도구를 의미한다. 클러스터링 기법은 서로 유사한 성질을 가지고 있는 개체들끼리는 같은 클러스터에, 그렇지 않은 개체들은 다른 클러스터에 속하도록 분류한다. 이러한 클러스터링 기법은 비지도 기반의 분류(Classification) 모델이기 때문에, 우리는 사전적으로 옳은 배분이 무엇인지 알지 못하며, 알고리즘은 다만 그것에게 주어진 특성들을 토대로 클러스터를 분류해 나간다.
클러스터링은 기본적으로 그것의 목표를 달성하기 위해 거리 측도와 연결 스킴이라는 두 가지 함수를 요구한다. 우선, 거리 측도(Distance Measure)는 말 그대로 어떤 두 개체들 간의 거리를 측정하는 함수이다. 이러한 거리 측도에는 유클리드 방식, 맨해튼 방식을 비롯한 여러 방법론이 존재한다.
거리 측도가 두 개체 간의 거리를 측정하는 함수였다면, 연결 스킴(Linkage Scheme)은 두 클러스터 간의 거리를 계산하기 위한 함수이다. 이러한 연결 스킴에는 단일 연결, 완전 연결, 혹은 평균 연결들의 예시가 존재한다. 각각 단일 연결(Single Linkage)은 클러스터 간 최소 거리, 완전 연결(Complete Linkage)은 최대 거리, 그리고 평균 연결(Average Linkage)은 평균 거리에 관심이 있다.
클러스터링 기법은 기본적으로 클러스터 내에 존재하는 개체들 간의 거리는 최소화하되, 클러스터들 간의 거리는 최대화하는 것이 목표이다.
기본적으로 가장 널리 알려진 클러스터링 기법은 크게 두 가지인데, 하나는 K-평균 클러스터링(K-means Clustering)이며, 다른 하나는 계층적 클러스터링(Hierarchical Clustering)이다. 우선, K-평균 클러스터링은 가장 단순한 형태의 클러스터링 기법으로써 전체 개체들을 K개의 클러스터로 만들어주는 분류 기법이다. 몇 개의 클러스터를 만들 것인지만 정해주면, 알고리즘은 알아서 반복적인 계산을 통해 가장 효율적인 방식으로 K개의 파티션, 즉 클러스터를 만들어준다.
팩터 모델링의 영역에서 보다 더 적절하다고 여겨지는 방법론은 바로 계층적 클러스터링이다. 계층적 클러스터링은 K-평균 클러스터링과는 다르게 트리 구조를 가지고 있는 분류 기법이다. 이 기법은 말 그대로 계층적으로 클러스터들을 쌓아나가는 방식을 취하고 있다. 아래의 덴드로그램(Dendrogram)은 계층적 클러스터링 방법의 대표적인 예시이다.
이와 같은 트리 구조의 디자인은 매우 직관적이다. 나뭇잎의 역할을 담당하는 가장 아랫부분은 당연히 각각의 개별적인 개체들을 의미한다. 이러한 잎들을 연결하는 노드들은 가지의 역할을 하며, 계층적 클러스터링은 각 개체들 간의 유사도를 기반으로 하여 순차적으로 보다 작은 클러스터에서 큰 클러스터로 단계적 클러스터링을 시도한다. 계층적 클러스터링의 가장 큰 특징은 이처럼 클러스터 내에 하위 클러스터들이 존재하여 말 그대로 계층적 구조를 이룬다는 점이다.
계층적 클러스터를 쌓아나가는 방식에는 위로부터 내려오는 탑다운 방식과 아래부터 올라가는 바텀업 방식이 있다. 탑다운 방식은 처음 하나의 클러스터에 모든 개체들을 넣어놓고 이후 한 단계씩 클러스터들을 분할해나가는 방식이며, 반대로 바텀업 방식은 처음에 각 개체를 각 클러스터로 상정한 뒤 유사도에 따라 같은 클러스터로 합치는 방식을 취한다.
# 계층적 클러스터링의 활용
계층적 클러스터링을 활용한 가장 대표적인 예시는 바로 섹터, 국가 같은 그룹화를 시키는 데 이 알고리즘이 사용될 수 있다는 것이다. 우리는 이전부터 전통적이고 직관적인 방식으로 어떤 한 주식이 어떤 섹터 혹은 어떤 국가에 속하는지를 외생적으로 분류해왔다.
계층적 클러스터링 또한 이와 같은 분류 작업을 수행한다. 하지만 외생적 분류 방식과의 차이점은 이 방법론이 순전히 데이터를 기반으로 하여 분류를 한다는 것이다. 이것이 시사하는 바는 머신러닝 기법을 적용함으로써 우리가 인식하지 못했던 새로운 분류체계가 나타날 수 있다는 점이다. 이러한 머신러닝의 강점은 우리의 인지 범위를 확장시켜줄 수 있는 새로운 패턴을 찾아줄 수 있다는 것이기 때문에 우리는 머신러닝 방법론을 통해 우리의 인지 범위를 확장시켜 나갈 수 있다. 아래의 또 다른 덴드로그램은 주식시장에 존재하는 여러 섹터들에 대해 계층적 클러스터링을 수행한 결과물이다.
계층적 클러스터링 방법론이 주효한 이유는 이것이 종목, 섹터뿐만 아니라 팩터 유니버스에 기반한 팩터 포트폴리오를 구성하는 데 있어서 효과적이기 때문이다. 팩터 투자를 수행함에 있어 위험한 요인 중 하나는 바로 우리가 설계한 팩터들이 공통적인 리스크 요인(Common Risk Factor)을 내재적으로 공유할 수 있다는 것이다. 이런 경우 팩터 포트폴리오는 팩터 간의 분산투자 효과를 제대로 누리지 못하게 되며, 오히려 테일 리스크의 위험을 키울 수 있다. 계층적 클러스터링은 결국 PCA, ICA와 같이 차원 축소(Dimensionality Reduction) 기법이므로 우리는 계층적 클러스터링을 통해 각 팩터들 간의 계층적 유사도를 찾아낼 수 있고, 팩터 간 클러스터에 대한 정보를 기반으로 팩터 포트폴리오를 구성하여 포트폴리오 전체의 테일 리스크를 완화할 수 있다.