주식투자

과적합(overfitting)은 왜 발생하는 것일까? - 공부를 너무 많이 했더니 성적이 떨어졌어요.

오렌지사과키위 2024. 8. 28. 16:21

퀀트 투자에서 이해해야 하는 개념 중에 하나가 과적합(overfitting; 과대적합; 과최적화)입니다. 통계학 또는 기계 학습 관점에서 과적합은 훈련 데이터(training data)로 도출한 모델이 테스트 데이터(test data)에서는 의미 있는 수준으로 더 큰 오차(error)를 만드는 상황을 말합니다. 시험으로 말하자면 기출문제는 잘 푸는데, 처음 보는 신규문제는 잘 풀지 못하는 상황입니다.

과적합은 여러 관점에서 접근이 가능합니다. 그중 하나는 일반화 오차(generalzation error)편향-분산 트레이드오프(Bais-variance tradeoff)로 해석하는 것입니다. 편향(bias) + 분산(variance) + 노이즈(noise)로 분해하는 것입니다. 참고: 오차는 예측한 값과 실제 값의 차이를 말합니다. 수익률이 15%라고 예상한 어떤 투자 전략이 실제로는 10% 수익률을 거둔다면, 5%p의 오차가 발생한 것입니다.

편향은 모델의 복잡도가 충분하지 않아 발생하는 오차로 과소적합(underfitting)의 주요 요인이 됩니다. 1차 함수는 알고 있지만, 2차 함수에 대한 개념을 충분히 이해하지 못해서, 기출문제도 신규문제도 모두 다 잘 풀지 못하는 상황이라 할 수 있습니다. 분산(variance)은 모델의 복잡도가 지나치게 높아 발생하는 오차로 과적합의 주요 요인이 됩니다.

모델이 너무 단순하면 편향이 커지고, 반대로 너무 복잡하면 분산이 커질 수 있습니다. 모델의 복잡도에 따라 오차의 주된 요인이 달라지는 현상을 편향-분산 트레이드오프라고 합니다. 트레이드오프이기 때문에 둘 다 함께 줄일 수는 없지만, 적절한 수준의 모델을 선택하면 전체 오차는 줄일 수 있습니다.

모델은 입력이 주어지면 결과를 내놓는 함수입니다. 배당률이 높은 상위 20 종목을 선정하는 투자 전략이라면, 조건에 부합하는 20 종목에 대해서는 1을, 나머지에 대해서는 0을 출력하는 함수라 할 수 있습니다. 1과 0은 투자 가중치가 됩니다.

시장 이상의 수익률을 거둔 종목의 정답은 1, 나머지 종목의 정답은 0이라 하면, 이 모델의 오차는 선정된 20 종목 중에 정답이 0인 종목의 개수가 됩니다.

모델은 1과 0으로 투자할지 말지를 결정하고, 오차는 적절한 투자였는지 평가해서 계산했지만, 투자 가중치를 다변화하거나 투자 수익률을 평가 함수로 둘 수도 있습니다. 이 경우 평가 함수는 목적 함수(objective function)라 불리며, 적절한 모델을 선정하는 과정은 최적화(optimization)라고 합니다.

과적합, 모델의 복잡도, 그리고 기억 효과

과적합은 모델이 과도하게 복잡해서 기출문제는 잘 푸는데, 신규문제는 잘 풀지 못하는 상황이라고 설명하였습니다. 그럴듯하게 들릴 수 있지만 사실 조금 이상한 설명입니다. 마치 공부를 지나치게 많이 하면 시험 점수가 떨어진다는 이야기처럼 들리기 때문입니다.

모델이 복잡하면 과적합이 발생할 수 있는 이유는 문제와 답을 외워 버리기 때문입니다. 이렇게 하면 기출문제에 대해서 만점을 받을 수 있습니다. 하지만 신규문제가 나오면 풀 수 없습니다.

어떻게 그런 게 가능하냐고 생각할 수 있지만, 모델의 자유도가 지나치게 높으면 아래와 같은 투자 전략도 만들어질 수 있습니다.

  • 다음의 상황 중 하나 이상에 해당되면 투자하세요.
    • PBR이 2.28과 2.30 사이인가?
    • 지난 1년 최대 손실률(MDD)이 -32.5%인가?
    • PER × 0.3 + ROE × 0.2 + PSR × 0.5가 10.2인가?
    • 종목명이 'ㅅ'으로 시작하는가?

각각의 세부 종목 선정 전략은 소수의 종목을 콕 집어내게 됩니다. 이 때문에 기출문제와 정답을 기억하는 효과가 발생하게 됩니다. 데이터 개수 대비 모델을 정의하는 파라미터(parameter)의 수와 자유도가 크면 이러한 현상이 발생할 수 있습니다. 참고: 데이터 개수와 모델의 복잡도를 함께 고려하면, 데이터 공간 내 데이터 밀도(density)라고 볼 수 있습니다.

참고: 대개의 퀀트 투자자는 만들어질 수 있는 모델을 제한하기에 극단적인 상황까지는 발생하지 않습니다. 하지만, 블랙박스 스타일의 기계 학습 기법을 이용하는 경우에는 예상하지 못한 모델이 만들어질 수도 있습니다.

모델의 복잡도는 마치 컨닝 페이퍼와 같은 역할을 합니다. 문제가 주어지면 컨닝 페이퍼를 보고 문제를 푸는 것입니다. 컨닝 페이퍼의 공간이 좁으면 수학 공식을 몇 개 적지 못합니다. 이 때문에 과소적합이 발생합니다.

컨닝 페이퍼 공간이 충분히 넓으면 어떻게 될까요? 문제 풀이에 요긴한 공식으로 꽉 채울 거라 기대하지만, 그렇게만 하지 않습니다. 기출문제와 답도 함께 적어 두면 점수를 더 잘 받을 수 있습니다.

납득하기 어려운 설명처럼 들립니다. 주요 공식보다 기출문제와 답을 적어 두는 게 유리한 이유는 두 가지입니다.

첫 번째는 기출문제로 다시 시험을 치기 때문입니다. 모델은 기출문제의 답을 가장 잘 맞히는 방향으로 변형(최적화)됩니다. 주요 공식을 쓰고 남은 여백에 기출문제와 답을 적어 두어도 손해가 없습니다.

두 번째는 기출문제의 답에는 앞에서 소개한 세 가지 오차 중에서 노이즈가 있기 때문입니다. 수학 문제에 빗대어 설명하면, 기출문제와 답은 다음과 같이 주어집니다.

  • 문제: y = x + 5가 주어졌을 때, x가 1이라면 y의 값은?
  • 정답: y = 7

투자는 수학 문제처럼 논리에 의해서만 답이 결정되지 않습니다. 수학 문제라면 y는 반드시  6이 되어야 합니다. 투자에서는 5가 될 수도 있고, 7이 될 수도 있습니다. 심지어는 -10이 될 수도 있습니다. 아래와 같이 문제가 나옵니다.

  • 문제: PER가 6.5이고, PBR이 1.2인 종목의 과거 1년 수익률이 12%일 때, 미래 1년 수익률은?
  • 정답: 8%

작년 매출액이 500억원이라고 공시한 어떤 기업이 있다고 하겠습니다. 작년 매출액은 정말 500억원일까요? 어떤 이유로 거래처가 연말에 급하게 주문을 해서 매출액이 50억원 늘어났을 수 있습니다. 해당 거래처가 연말 휴가로 주문을 다음 해로 미루었기에 매출이 줄어든 것일 수도 있습니다.

기업이 공시한 작년 매출액 500억원은 실제로는 알 수 없는 작년 매출액 s에 우연에 의한 노이즈가 낀 데이터라고 볼 수 있습니다. 비슷한 상황에서 450억원이 될 수도 있고, 550억원이 될 수도 있었는데, 우연히 500억원이 된 것입니다.

이런 문제에 수학 공식을 그대로 적용해서 y = 6이라고 답을 내면 모델은 억울하게 -1점 감점(오차)을 받게 됩니다. 해당 문제가 다시 주어진다면, 모델은 어떻게 하는 것인 좋을까요? 똑같이 y = 6이라고 답하는 것보다 지난 답을 외워서 7이라고 답하면 점수가 높아지게 됩니다.

정리하며

통계학/기계 학습/퀀트 투자에서 신규문제에 대한 성과가 기출문제로 평가한 추정치보다 낮아 생성한 모델의 효용이 떨어지는 현상을 과적합이라고 합니다.

과적합은 데이터 개수 대비 모델의 복잡도가 높기 때문에 발생합니다. 그 근본 원인은 노이즈에 의해 기출문제를 기억하는 것이 일반화된 경향을 발견하는 것보다 유리할 수 있기 때문입니다.

이 글에서는 설명하지 않았지만, 퀀트 투자와 같은 시계열(time series) 데이터에는 다른 종류의 주요한 과적합 요인이 있습니다. 시간의 흐름에 따라 경제 구조가 변하면서 발생하는 목표 함수(target function; target model)의 변화입니다.

지난 10년간은 소형주 투자가 시장 대비 수익률이 높았지만, 어떤 이유로든 이후 10년간은 대형주 투자가 더 유리해질 수 있습니다. 상당히 긴 기간에 대해 백테스트를 하고, 다양한 방식으로 통계적 검증을 충분히 했더라도, 미래의 결과에 대한 확신은 충분하지 않을 수 있습니다.

함께 읽으면 좋은 글:

도움이 되었다면, 이 글을 친구와 공유하는 건 어떻까요?

facebook twitter kakaoTalk naver band