퀀트 투자와 일곱 개의 대죄
# 강한 자가 살아남는 것이 아니라 살아남는 자가 강한 것이다, 생존 편향
일곱 개의 대죄 중 그 첫 번째는 퀀트 투자자라면 자주 들어보았을 바로 그 생존 편향(Survivorship Bias)이다. 이러한 생존 편향은 퀀트 투자자들이 강한 흔하게 저지르는 대표적인 실수 중 하나이다. 대부분의 사람들은 생존 편향에 대해 아주 잘 인지하고 있다. 하지만 정작 이것의 중요성을 올바로 이해하고 있는 이는 그리 많지 않으며, 실제로 많은 백테스팅 결과들이 이를 간과하고 있다.
편의성을 위해, 실무적으로 많은 사람들은 현재 시장에 존재하고 있는 기업들에 대해서만 백테스팅을 수행하는 경향이 있다. 다시 말해, 과거에 부도, 상장폐지, 인수합병을 경험하여 사라진 기업들에 대해서는 고려하고 있지 않은 것이다. 생존 편향은 종종 매우 낙관적인 백테스팅 결과로 이어지며, 때로는 심지어 정반대의 결과를 가져오기도 한다.
아주 간단한 예를 들어보자. 만약 우리가 미국의 대표적인 주가지수인 러셀 3000 지수 중 1986년부터 지금까지 생존해있는 기업들만을 사용한다고 가정해보자. 즉, 해당 기간 동안 지수에서 제외된 기업들은 포함하지 않은 채 생존자들만의 유니버스를 구성하는 것이다. 이렇다면 아래와 같이 시간이 지날수록 이 생존자 유니버스의 풀은 계속해서 작아지게 된다. 아래는 86년부터 지금까지 러셀 3000 지수에서 살아남은 종목들의 개수를 나태내고 있다.
지금까지 살아있는 종목들은 500 종목이 채 되지 않는 것을 확인할 수 있다. 이렇게 살아남은 종목들만을 대상으로 가상의 지수를 만들어 실제 러셀 3000 지수와 비교해보면 어떨까? 우리가 예상한 대로 생존 편향이 아주 강하게 자리 잡고 있는 것을 확인할 수 있다. 생존자 기업들은 매우 뛰어난 성과를 보여주고 있으며, 당연히 이는 좋지 못한 성과를 내어 시장에서 퇴출된 기업들이 철저히 배제되어 있기 때문이다.
# 생존 편향으로 인한 엉뚱한 결과
생존 편향은 또한 가끔 전혀 반대의 결과를 내놓기도 한다. 아래의 두 그림은 생존 편향이 없는 러셀 3000 지수와 생존자 유니버스를 대상으로 하여 머튼의 부도 거리 팩터에 기반한 5분위 포트폴리오를 백테스팅해본 결과이다. 만약 제대로 된 투자 유니버스를 사용했다면 팩터의 효과가 올바르게 드러난다. 즉, 신용 위험이 높은 기업군보다 신용 위험이 낮은 기업군의 성과가 더 좋게 나오고 있는 것이다.
하지만 이와 비교해 아래 그림을 한 번 살펴보자. 생존 기업들만을 대상으로 백테스팅한 결과를 보면 놀라지 않을 수 없다. 신용 위험이 높은 기업들의 성과가 그렇지 않은 기업들에 비해 훨씬 더 좋게 나오는 기이한 현상이 발생하고 있는 것이다.
이러한 현상은 왜 발생하는 것일까? 아래의 분석 결과를 살펴보면 도대체 왜 이런 현상이 발생하는지 알 수 있다. 제대로 된 투자 유니버스를 사용한다면, 퀄리티가 좋은 기업들은 더 나은 수익성, 더 나은 성장성과 이익 전망, 그리고 더 낮은 변동성을 보여주며, 그렇지 못한 기업들의 팩터 스코어는 매우 좋지 못하다.
하지만 위와 같은 방식으로 생존자 유니버스의 팩터 익스포져를 계산해보면, 신용 위험이 높은 기업들마저 팩터 스코어가 그렇게 나쁘게 나오지 않는 것을 확인할 수 있다. 오히려 앞에서의 백테스팅 결과처럼 이러한 기업들의 성과가 매우 좋게 나오는 것이다. 만약 이러한 생존 편향을 제거하지 않는다면, 백테스팅은 마치 카지노에 가서 이기면 돈을 따고, 져도 돈을 내지 않아도 되는 것과 같은 결과가 된다.
# 생존 편향에 대한 해결책
이처럼 만약 주식과 관련된 퀀트 전략을 설계하고 백테스팅하는데 있어 생존 편향을 제거해 주지 않는다면, 백테스팅 결과는 매우 이상적으로 나오거나 혹은 반대로 매우 이상하게 나올 확률이 높다. 백테스팅이란 과거로 돌아가 전략을 입혀보는 것인데, 이미 미래의 일을 알고 있는 상태에서 과거로 돌아간다면 그것은 진정한 의미의 백테스팅이 아니기 때문이다.
그렇다면 이러한 생존 편향 문제를 해결하기 위해서는 어떻게 해야 할까?
해결책은 매우 단순하고 직관적이다. 그것은 바로 과거에 존재했었지만 여러 가지 이슈들 - 지수 편출, 부도, 상장폐지, 인수합병 등 - 로 인해 비활성화된 종목들을 추가해 주는 것이다. 그리고 만약 주가지수 유니버스를 사용할 것이라면 그 당시 지수에는 편입되어 있지 않았지만 현재는 포함돼있는 종목들에 대해서는 미포함 시기의 과거 값을 제거하여 주어야 한다. 그 당시 지수에 포함되어 있지 않았던 종목을 그대로 사용하는 것은 실제 과거가 아니기 때문이다. 마지막으로 결측치를 다룰 때에는 다소 신경을 써야 한다. 예를 들어, 만약 특정 종목에 대한 팩터 스코어가 존재하지 않을 경우, 해당 종목을 아예 유니버스에서 제거하는 것보다 이 결측치를 그대로 유지하는 것이 더 낫다.
정리하자면 생존 편향 해결의 성패는 과거의 상황을 얼마나 그대로 재현해낼 수 있는가에 달려있다.