주식투자

overfitting, 과적합? 과최적화? (저의 한국 이름을 맞혀 보세요! 목적 함수와 최적화)

오렌지사과키위 2024. 8. 8. 18:33

분야(domain)에 따라 동일한 단어를 다르게 번역하는 경우는 꽤 빈번합니다. 컴퓨터 분야에서 source code는 '원시 코드'로 번역합니다. 번역 분야에서 source langauge는 '출발어'로 번역합니다. source라는 동일한 단어이지만, '원시'로 번역하기도 하고 '출발'로 번역하기도 합니다.

유사한 개념인데 다른 단어를 쓰는 경우도 있습니다. 투자 분야 특히 퀀트 투자에서 투자 성과에 영향을 미치는 요인을 팩터(factor)라고 합니다. 퀄리티 팩터, 모멘텀 팩터, 소형주 팩터와 같은 것이 있습니다. 계절이 투자 성과에 영향을 미친다면, 계절 팩터를 정의할 수도 있습니다.

팩터는 추상적인 개념에 가깝습니다. 투자에 실제 적용하기 위해서는 구체적인 정의가 필요합니다. 퀄리티 팩터는 종목의 수익성이 높음을 의미하는데, 그 판단 기준은 여러 관련된 기초 지표를 기반으로 정의합니다.

통계학에는 팩터와 유사한 개념으로 독립 변수(independent variable)가 있습니다. 인공 지능(Artificial Intelligence)의 한 분야인 기계 학습(Machine Learning)에서는 피쳐(feature)라고 부릅니다.

엄밀하게는 PER, PBR과 같은 기초 데이터는 독립 변수 또는 피쳐라 볼 수 있고, 여러 피쳐를 적절히 가공해서 만든 유용성이 있다고 판별된 2차 데이터를 팩터라고 합니다. 가치주를 담는다는 ETF끼리도 가치주 판단 기준이 서로 다른 것처럼, 동일한 이름을 가진 팩터에 대한 정의는 저마다 다를 수 있습니다.

퀀트 투자에서 백테스트를 할 때 과도하게 과거 데이터에 민감해져서, 본래 목적인 미래 투자에서의 성과는 낮아지는 상황을 overfitting이라고 합니다. 대개 과적합으로 번역합니다. 그런데 간혹 과최적화로 번역하는 경우가 있습니다. 참고: 과대적합이라고도 합니다. underfitting은 과소적합으로 번역합니다.

얼핏 보기에 과최적화는 overfitting을 엉뚱하게 번역한 듯합니다. 왜 이런 번역이 가능한지 이해하기 위해서는 백테스트의 궁극적인 목적이 무엇이며, 최적화와 무슨 관계가 있는지 알아야 합니다.

과적합과 과최적화의 검색 빈도

아래는 네이버 검색어 트렌드로 살펴본 과적합과 과최적화 검색의 상대적 빈도 변화입니다. 데이터 출처: 검색어트렌드(과적합, 과최적화) [네이버 데이터랩]

과적홥 vs 과최적화 (네이버 검색어 트랜드)
과적홥 vs 과최적화 (네이버 검색어 트랜드)

과적합으로 검색하는 빈도가 월등히 높고, 점차 증가하는 경향이 있음을 알 수 있습니다. 과적합으로 검색한 모든 경우가 퀀트 투자와 관련이 있는 것은 아니겠지만, 상당 부분 연관되어 있지 않을까 싶습니다.

백테스트와 최적화

퀀트 투자에서 백테스트를 하는 목적은 무엇일까요? 어떤 투자 아이디어가 효용이 있는지 과거 데이터로 확인해 보기 위함일 수 있습니다. 다양한 전략을 테스트해서 장기적으로 수익률이 높은 투자 전략을 발견하기 위함일 수도 있습니다.

제일자산운용의 펀드 매니저인 민수는 성장성과 안정성 두 가지를 함께 고려하는 제일안정성장 펀드를 기획하고 있습니다. 액티브 펀드이지만, 내부적으로 벤치마크로 삼을 기준을 마련하려고 합니다. 참고: 액티브 펀드의 경우 비교 지수가 있습니다. 액티브 펀드가 뛰어넘고자 하는 기준입니다. 예를 들어 국내 중대형주에 투자하는 펀드라면 KOSPI 200 지수를 비교 지수로 삼을 수 있습니다.

민수는 개별 종목의 성장성 및 안정성과 관련한 주요 지표를 추출했습니다. 성장성으로는 매출액 증가율, 영업 이익 증가율, ROE, 주가 상승률 등을, 안정성으로는 부채 비율, 주주 환원율, PBR, 주가 변동률 등을 고려하기로 했습니다.

민수가 매분기마다 매출액 증가율 상위 50 종목을 선정해서 동일 가중으로 투자하는 전략을 시뮬레이션해 봅니다. ROE 상위 종목으로도 해 봅니다. 매출액 증가율 순위와 ROE 순위를 단순 합산한 종합 전략도 테스트해 봅니다. 각각 1회의 백테스트입니다.

민수는 왜 이런 백테스트를 하는 것일까요? 합리적인 투자 전략을 찾기 위해서입니다. 수십수백개의 백테스트 결과가 나왔다면, 민수는 무엇을 기준으로 벤치마크를 선택해야 할까요?

민수는 수익률이 가장 높은 전략을 선택할 수 있습니다. 하지만 민수가 기획하는 펀드는 안정성장형입니다. 그러니 수익률만 보고 벤치마크를 정하는 것은 펀드의 기획 목적과 부합하지 않을 수 있습니다.

CAGR을 표준 편차로 나눈 샤프 비율(Sharpe Ratio), 즉 투자 효율이 가장 높은 전략을 선택할 수도 있습니다. 하지만, 장기적으로 투자 효율이 조금 높다 하더라도, 시장과 괴리가 크면 투자자가 선호하지 않을 수 있습니다.

민수는 시장 수익률을 80% 정도 수준으로 따라가면서, 약간의 추가 수익률과 추가 안정성을 얻을 수 있도록 시총을 추가로 고려해서 종목을 선정하고 비중을 결정한 전략을 백테스트해 볼 수 있습니다.

민수가 하는 이러한 작업을 최적화(optimiaztion)라고 합니다. 민수가 최종 전략을 선정하는 기준은 목적 함수(objective function)로 표현할 수 있습니다. 최적화는 목적 함수를 최대화(또는 최소화)하는 해(여기서는 벤치마크로 사용할 투자 전략)를 찾는 행위입니다.

최적화와 과최적화

과최적화는 목적 함수에 집착해서, 목적 함수를 만든 의도를 충분히 달성하지 못하는 결과가 나오는 상황을 말합니다.

삼삼은행은 고객 만족도 향상과 수익률 향상을 올해 목표로 삼았습니다. 합리적인 목표라 할 수 있습니다. 이를 달성하기 위해 일선 은행원과 지점을 평가하는 핵심 평가 지표(Key Performance Indicator; KPI)를 다음과 같이 설정했습니다.

  • 고객 만족도 지표
    • 평균 고객 대기 시간 (지점별로 평가): 10분 이내: +1점, 10분 ~ 20분: 0점, 20분 ~ 30분: -1점, ...
    • 고객 평가: 만족 +1점, 보통: 0점, 불만족: -1점
  • 수익률 향상 지표

삼삼은행장인 나삼삼씨는 인사기획부가 마련한 KPI 안이 만족스럽습니다. 은행원의 주요 업무에 대한 평가가 합리적으로 점수화되었다고 생각했습니다. 회의를 거쳐 시행하고 인사 고과에 반영하기로 했습니다. 무슨 일이 발생할까요?

은행원은 다음과 같이 행동할 수 있습니다.

  • 불만족을 받지 않는 수준으로 고객 응대 시간을 줄일 가능성이 있습니다. 고객이 만족할 수준의 서비스를 제공하기 위해 많은 시간을 쏟기보다는, 고객의 평균 대기 시간을 줄이는 게 더 유리할 수 있기 때문입니다.
  • 예금을 희망하는 고객에게 ELS를 권유할 수 있습니다. 은행은 ELS를 판매만 합니다. 예금은 대출을 해야 수익을 얻을 수 있습니다. 동일한 금액에 대해 ELS 판매 점수가 예금보다 높은 이유는 이 때문입니다. 약간의 시간을 더 써서 예금 고객을 ELS로 유도하면, 조금 더 높은 평가를 받을 가능성이 있습니다.

지정장은 다음과 같이 행동할 수 있습니다.

  • 지점의 고객 대기 시간을 줄이기 위해, 고객이 많은 기간이나 요일에는 휴가를 가능한 쓰지 않도록 은행원들을 설득할 수 있습니다.
  • 은행원별로 ELS 판매 금액을 할당하고, 이를 달성하도록 독려할 수 있습니다.

삼삼은행은 고객 만족도 향상과 수익률 향상이라는 목표를 달성할 수 있을까요? 물론 알 수 없습니다. 고객 대기 시간은 전반적으로 줄어들겠지만, 평균 만족도는 조금 하락할 수도 있습니다. 위험 자산인 ELS를 선택하는 고객 비중이 높아져서, 향후 문제가 발생할 가능성도 있습니다. 은행원은 실적 달성에 부담감을 느낄 수도 있고, 휴가 일정의 제한으로 불만이 생길 수도 있습니다.

은행원이나 지점장은 본인에게 주어진 KPI를 목적 함수로 행동을 최적화하게 됩니다. 최적화 결과가 은행장의 기대대로 삼삼은행의 목표 달성에 도움이 될 수도 있지만, 경우에 따라서는 부작용이 발생할 수도 있습니다.

모든 기업과 마찬가지로 삼삼은행의 궁극적인 목표는 장기적으로 안정적인 수익 창출입니다. 고객 만족도가 전반적으로 하락하고, 고위험 상품인 ELS에 문제가 발생하고, 은행원의 불만이 쌓이면, 이러한 목표 달성에 차질이 생길 수도 있습니다.

퀀트 투자에서도 유사한 현상이 발생할 수 있습니다. 과거 데이터로 백테스트했을 때는 목적 함수(예를 들어 수익률) 값이 최대회되었지만, 미래의 투자에서는 그 효용이 훨씬 낮아질 수 있습니다. 이를 과최적화라고 합니다.

정리하며

Overfitting(과적합)은 목적 함수에 민감하게 반응해서, 목적 함수를 설정한 의도를 달성하는 효율이 낮아지는 현상을 말합니다. Overfitting은 과최적화로 불리기도 하는데, 최적화 과정이 어떻게 이루어지는 이해 하면, 납득할 수 있는 번역이라 할 수 있습니다.

함께 읽으면 좋은 글:

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

facebook twitter kakaoTalk naver band