추천 게시물

퀀트 트레이딩 백테스트에서 생존 편향은 무엇을 의미하나?

목차

 트레이딩 시스템을 개발할때 가장 가슴 설레는 순간은 단연 과거 데이터로 돌려본 백테스트에서 우상향하는 아름다운 수익률 곡선을 발견했을 때다.

나 역시 처음 나만의 전략을 완성하고 우상향하는 그래프를 보았을 때, 솔직히 심장이 터지는 줄 알았다. "드디어 나도 경제적 자유를 얻는 것인가" 하는 기쁨에 겨워 혼자 김칫국을 마시곤 했다. 하지만 막상 실전에 이 전략을 적용하자 이상하게 계좌가 야금야금 녹아내렸다. 시장이 나를 억까(억지 까기)하는 기분마저 들었다.

과적합(Overfitting)도 문제지만, 많은 투자자들이 자신도 모르게 빠져드는 가장 치명적인 통계적 오류가 존재한다. 바로 '생존 편향(Survivorship Bias)'이다. 내 계좌를 조용히 갉아먹는 이 유령의 실체에 대해 이야기해보려 한다.

생존 편향이란?

생존 편향이란 쉽게 말해 "살아남은 대상들만 모아놓고 분석하는 통계적 오류"를 의미한다.

이 개념을 설명할 때 흔히 인용되는 유명한 일화가 있다. 2차 세계대전 당시 미국 군은 전투기의 생존율을 높이기 위해 귀환한 전투기들의 총탄 자국을 분석했다. 대다수의 전투기가 날개와 꼬리 부분에 총알을 많이 맞았기에, 군은 당연히 그 부위를 더 보강해야 한다고 판단했다.

하지만 수학자 아브라함 발드(Abraham Wald)는 전혀 다른 의견을 제시했다. 정작 보강해야 할 곳은 총알 자국이 없는 '엔진'이라는 주장이었다. 엔진에 총을 맞은 전투기들은 이미 추락하여 기지로 귀환(생존)하지 못했기 때문이다. 즉, 살아 돌아온 비행기들만 조사하는 바람에 가장 치명적인 약점을 놓칠 뻔한 셈이다.

트레이딩 백테스트에서도 이와 똑같은 어처구니없는 현상이 발생하곤 한다.

눈 가리고 아웅하지 말자

만약 코스피나 코스닥 종목을 대상으로 10년 치 백테스트를 돌린다고 가정해 보자. 보통의 개인 투자자들은 다음과 같이 아주 자연스럽게 접근한다.

"지금 코스피 200에 편입되어 있는 종목들로 2016년부터 지금까지 돌려봐야지."

나 또한 초창기에는 이것이 왜 잘못되었는지조차 인지하지 못했다. 하지만 여기에 아주 무서운 함정이 숨어 있다. 현재 코스피 200에 올라와있는 기업들은 지난 10년 동안 온갖 풍파를 이겨내고 살아남아 대기업 반열에 오른 '초우량 생존자'들이다.

  • 2016년 당시에 분명히 코스피 200에 포함되어 있었으나, 중간에 부도가 나거나 상장 폐지되어 소리소문없이 사라진 수많은 기업들.

  • 실적이 악화되어 코스피 200 구성 종목에서 탈락한 기업들.

이 '탈락자'들의 데이터는 현재 시점의 종목 리스트에 존재하지 않기 때문에 백테스트 대상에서 완전히 배제된다.

결국 이 방식의 백테스트는 "10년 뒤에 무조건 우량 기업이 될 녀석들만 과거에 미리 골라내어 투자하는" 엄청난 미래지향적 반칙을 범하는 것과 다름없다. 당연히 수익률이 왜곡되어 높게 나올 수밖에 없는 구조다. 솔직히 이 정도면 사기에 가깝지만, 우리는 스스로에게 속아 넘어가기 쉽상이다.

현재는 미래 생존할 종목을 알 길이 없다

이처럼 편향된 백테스트 결과를 철석같이 믿고 실전 매매에 뛰어들면 결과는 대개 참담하다.

실전 투자 환경에서는 백테스트와 달리 어떤 종목이 미래에 살아남고 어떤 종목이 상장 폐지될지 미리 알 수 없다. 백테스트에서는 상장 폐지 종목을 원천적으로 배제한 상태였기에 안전해 보였을 뿐이다. 현실 세계에서는 내 계좌에 상장 폐지 예정 종목이나 거래 정지 종목이 여과 없이 걸려들기 시작한다.

"백테스트 연 수익률 30%"라는 환상은 무참히 깨지고, 실전에서는 부도 위기 종목과 잡주를 고점에 매수하며 계좌가 파랗게 물들어가는 참사를 겪으며 자책감에 빠지게 된다. 내가 머리가 나빠서가 아니라, 데이터 설계 단계부터 잘못되었음을 뒤늦게 깨닫는 것이다.

생존 편향을 최대한 줄이는 방법은?

그렇다면 우리는 이 유령을 어떻게 극복해야 할까? 그동안의 시행착오 끝에 내가 얻은 결론은 다음과 같다.

시점별 데이터(Point-in-Time Data)의 활용

가장 확실하고 근본적인 해결책이긴하나, 슬프게도 비용이 든다. 2016년 1월 1일 기준으로 백테스트를 수행할 때는, '2016년 1월 1일 당일에 실제로 상장되어 거래가 가능했던 모든 종목(이후 상장 폐지된 종목까지 포함)'을 대상으로 시뮬레이션을 실행해야 한다. 개인 투자자가 이 데이터를 구하는 것은 쉽지 않지만, 장기적으로 살아남고 싶다면 전문적인 백테스트 플랫폼이나 유료 데이터 도입을 진지하게 고민해 봐야 한다.

대형 자산군 및 ETF로 대상 압축

상장 폐지 위험성이 높은 개별 잡주를 타겟으로 삼기보다는, 코스피 200 지수 자체를 추종하는 ETF나 미국의 S&P 500, 혹은 금, 달러 등 쉽게 사라지지 않는 대형 자산군을 대상으로 전략을 단순화하는 것도 훌륭한 우회로가 된다. 나 역시 개별 주식 백테스트의 한계를 느끼고 자산 배분이나 지수 추종 쪽으로 눈을 돌리며 비로소 심리적 안정을 찾았다.

합리적인 의심의 습관화

수익률 그래프가 지나치게 아름답고 완벽하다면 기뻐하기에 앞서 의심부터 해야 한다. "과거 그 시점에 내가 진짜로 이 종목들을 아무런 편견 없이 매수할 수 있었을까?" 이 냉정한 질문을 스스로에게 던지고 내 눈앞의 데이터를 끊임없이 의심하는 태도만이 내 돈을 지키는 유일한 방패다.


트레이딩은 과거의 환상을 매매하는 게임이 아니라, 미래의 불확실성을 감내하는 영역이다. 백테스트의 화려함에 눈이 멀어 실전에 가산을 탕진하는 비극이 없기를 바란다.

오늘 밤에는 내 백테스트 프로세스 속에 '보이지 않는 유령'들이 숨어 호시탐탐 내 계좌를 노리고 있지는 않은지, 차분하게 복기해 보는 시간을 가져보는 것은 어떨까. 부디 이 글이 누군가의 소중한 자산을 지키는 조그만 계기가 되기를 바램해 본다.

댓글