brunch

You can make anything
by writing

C.S.Lewis

by Simon Lee May 02. 2022

투자에서 과최적화 해결법

수익을 내는 메커니즘에 집중하는 것이 최선이다.

데이터 사이언스에서 Over - fitting 은 과거 데이터 분석을 통해 만들어낸 모델, 추론이 미래에는 작동하지 않는 상태를 말합니다. 즉, 일반화하기 어려운 상태를 의미하죠.


금융 쪽에서 Over - fitting 은 일반적으로 Backtesting을 통해 발견한 수익 전략이 미래에는 수익을 내지 못할 것으로 기대하는 상태를 의미합니다. 

좌 : 과거 데이터로 Fitting 한 전략 성과 - 멋지게 우상향 한다. / 우 : 그 이후 전략 성과 - 멋지게 하락한다. 

(출처) Bailey, David H., et al. "Backtest overfitting in financial markets." Automated Trader (2016).




폭발적으로 증가하는 데이터의 양과 낮아지고 있는 접근성에 의해 이제 조금만 스터디를 하면, 누구나 간단한 데이터 학습을 통한 모델을 만들어보고 테스트해볼 수 있게 되었습니다. 


금융 분야도 마찬가지고요.


데이터 사이언스 분야에서 Over-fitting을 검색해보면, 질문과 해결법이 넘쳐납니다

반면, 금융 쪽은 Over-fitting에 대한 위험성을 경고하는 글이나 비판은 많아도, 해결책을 제시하는 글은 상대적으로 적습니다. 


누구도 명확히 답을 내리기 어려운, 확실성을 보장하기 어려운 고난도의 문제이기 때문입니다.

하지 말라는 것은 쉽습니다. 그러나 어떻게 해야 하는지가 우리가 알고 싶은 부분입니다.


미리 말씀드리자면, 저도 모릅니다.



다만, 나름의 시행착오와 그동안의 경험을 통해, 의사결정의 확실성을 조금씩이나마 높여줄, 혹은 시작점으로 삼을만한 일종의 가이드라인은 필요한 것 같습니다. 그래야 연구와 실험, 시행착오를 통해 투자 프로세스가 개선이 되고, 의사결정의 질이 높아지리라 생각합니다.




가이드라인에 앞서,

모든 문제는 첫 질문이 가장 중요하다고 생각합니다.

 

어떻게 하면 Overfitting을 피할 수 있나요?


어딘가에서 이런 글을 본 적이 있습니다.

Over-fitting을 방지할 최선의 방법은 애초에 어떤 fitting 도 하지 않는 것이다.


우리가 원하는 답은 아닙니다. 너무 극단적이네요.

다른 쪽 극단에선 이런 일이 벌어지고 있지만...

 



한편, 통계 기반의 지식이 조금이라도 있는 사람들은 수많은 데이터 사이언스 서적들에서 Over-fitting 방지법으로 알려져 있는 테크닉들을 적용합니다. Training set, Test set, Validation set으로 나눠서 검증하기, 파라미터 및 모델의 복잡도 줄이기, 그것을 위한 Regularization 테크닉들...


이런 기술적인 테크닉으로 해결되면 참 편하고 좋으련만, 저는 금융분야에서 이런 테크닉으로 문제가 해결된다거나, 해결이 된 것을 본적이 별로 없습니다. 


아, 테크닉들이 잘못되었다는 이야기는 전혀 아닙니다.


다시 질문으로 돌아가서, 

Over-fitting에 포커스 된 질문은, 

질문 그 자체가 데이터 피팅에 모든 초점이 맞추어져 있어, 결국 피팅한 데이터를 어떻게 하면, 덜 피팅할지로 모든 초점이 맞춰지게 합니다. 자연스럽죠.


그런데, 덜 피팅한다고 해서 우리의 문제 해결에 가까워지면 모르겠는데,


문제는, 애초에 고민의 초점과 레벨이 데이터 피팅의 영역에서 머무르게 되면, 정작 근본적인 해결책에 가까이 갈 수 없습니다. 특히 금융시장에서는요. 다른 차원이 필요합니다.


예를 들어볼게요.


코인 시장에서 데이터 피팅을 해보면, 차익거래 기회가 많이 나올 겁니다.


차익(수익)의 원천이 초기 형성된 시장에서 발생하는 비효율적인 거래 특성 (시장의 상승을 기대하는 추세적 물량)에서 나온다고 쳐보죠.


보통의 차익은, 시장 효율화가 시작되면서 다양한 목적과 방향성을 가진, 물량이 들어오면서 많이 사라지게 됩니다.


어느 날, 시장 효율화가 되면서 차익 기회가 없어졌다고 볼게요.

코인 시장 데이터로 죽어라 백날 피팅을 이리저리 해보고, 저리 돌려보면서 앞선 테크닉들을 적용해봐도 알 수 없을 겁니다.


그저 할 수 있는 거라곤, 어느 순간 왜 이렇게 요즘 돈이 안되지? 이제 그만해야 하나?  쌓여간 손실에 투자 중지, 흥미 떨어짐, 다른 패턴 찾기  수익이 나면 행복  쌓여간 손실에 투자 중지, 흥미 떨어짐  반복.


애초 수익을 내는 원천이 무엇인지 모르면, 아 이제부터는, 이런 경우에는, 수익의 원천이 사라질 수도 있겠구나, 혹은 그 형태가 조금 변하겠구나, 혹은 여전히 유지되지만 잠시 그 변동성을 견뎌야 하는 거구나 등의 의사결정을 내릴 수가 없을 겁니다. 손실을 견디기 어려워서 투자를 중지하는 것 외에는 다른 대안책이 없습니다. 혹은, 존버?


이 외에도, 세제 제도, 거래제도의 변화, 규제, 새로운 금융상품의 탄생에 의해 시장 참여자들의 행동양식과 패턴이 변하게 될 겁니다.


그래서 단순히 과거 데이터를 어떻게 조합하고, 조립하고 모델을 단순화하고 하는 등의 모든 '과거에 머무른 행동'이 본질적인 해결책이 될 수가 없는 겁니다.


그래서 제가 생각하는 핵심 질문은 이렇습니다.

내가 발견한 패턴이나, 메커니즘은 무엇으로 수익을 내고 있는가? 이 수익 메커니즘은 미래에도 작동할 것인가? 


수익의 원천이 무엇인지를 이해하고, 그 원천이 유지될 수 있는 것인가?, 어떤 상황들에서는 유지될 것이고, 어떤 상황들이 온다면 원천의 형태가 변경될 것인가? 혹은 사라질 것인가를 기반으로 메커니즘을 만들어 가야 한다 생각해요.


이번엔 데이터에 기반한 예시를 볼까요,


Price - to - book 은 밸류에이션에 사용되는 가장 기초적인 매트릭입니다. 이 팩터는, Eugene Fama와 Ken French의 93년 논문에서 다뤄지게 되면서 널리 보급되었는데요, 현재에도 이 정의를 이용한 index 그리고, 이 인덱스를 추종하는 금융상품들에 몇백조에 달하는 돈이 투자되어 있을 겁니다.


아래는 Price - to - book 뿐만 아니라, 밸류에이션을 나타낼 수 있는 비슷한 개념 하지만, 다른 정의의 성과를 보여줍니다. 흐름과 성과가 비슷비슷하네요.


그런데, 파마와 프렌치가 이 Paper를 공개한 이후 어떤 일이 벌어졌는지를 한번 보죠.


밸류를 나타내는 정의로 Price - to - book 이 주요 메트릭으로 설정된 이후, 수십, 수백조 원의 자금이 이 팩터를 타깃 하여 들어오게 됩니다.


그 결과, 아래 차트처럼, 일종의 팩터 포화에 이르렀는지, 비슷한 개념과 다른 정의들 간 차이가 벌어지게 되고, 특히나, Price - to - book 팩터는 가장 저조한 결과를 보여주게 됩니다.


특정 인덱스나 상품에 수백조에 달아는 자금이 들어오면, 그 사이즈를 맞추기 위해 Pure Factor Play를 하기 어려웠을 겁니다. 시장 충격 비용을 줄이기 위해, 점차 대형주의 비중을 늘렸어야 했을 수 있고요.


만약 우리가 Price - to - Book 만 알고, Price - to - Earnings, Sales, 혹은 EBITDA/Enterprise Value를 애초부터 몰랐다고 가정해보면, 밸류는 이제 안되네... (Value is Dead) 애초부터 93년에 Overfitting이었네.라고 결론을 내리지 않았을까요?


만약 ML과 같은 도구를 이용해서 복잡한 패턴의 조합으로 ABC-팩터라고 이름 지었다고 해볼게요.


실상은 Price - to - Book 이 었는데, 아무도 그 사실을 몰랐다고 한다면, 밸류고 뭐고 이 패턴은 안되네...라고 결론 내리지 않았을까요? 여기서 덜 피팅하고 더 피팅하고자 중요한 문제일까요?


그런데, 만약 우리가 이 ‘특정 메트릭’에 투자를 했던 것이 아니라, 우리는 수익의 원천이 되는, 저평가된 종목이 장기적으로 그 가치를 찾아가는 현상에 배팅을 했던 것이라면, 


저렴한 밸류에이션을 찾아 사고, 밸류에이션 correction 이 이루어질 때 팔고를 반복함으로써, 수익을 쌓는 과정이라면 Price - to - Book 뿐 아니라, Price - to -Earnings, Price - to - Sales,  EBITDA/Enterprise Value 도 얼마든지, 고려할 수 있을 겁니다.


팩터 정의를 변경할 수도 있고요, 의미가 같은 다른 메트릭들을 혼합하거나, 메트릭 분산을 통해 조금 더 강건한 Valuation metric, index를 구성하는 것도 방법일 겁니다.


요는 애초에 나는 무엇에 투자하는지를 어떻게 정의하는가에 따라, 내가 취할 수 있는 의사결정의 경로와 그 결과가 달라진다는 것에 있습니다.


그래서 우리의 데이터 분석 과정과 프로세스는 수익의 원천과 그 지속성에 모든 초점이 맞춰져 있어야 한다는 것입니다.


아래에는, 기초적인 가이드라인입니다. 


<분석 가이드라인>


Performing : Producing Better risk - adjusted returns than the broad market over the long - term


장기적으로 우수한 결과를 내었던 것은 기본 전제로 합니다. 장기적으로 좋은 결과를 낸 적 없는 현상에 투자를 하고 싶은 사람은 없겠죠...?, (목표에 따라, 적절한 벤치마크를 설정합니다.)

설정된 벤치마크 대비 우수성 확인 (목표에 따라, 전체 기간, 혹은 정의된 일정 구간일 수도 있음)

연환산 수익률

변동성

효율성

Base rate

10 분위 Performance

Macro sensitivity

    


Explainable : Having a plausible economic rationale for its existence, understanding its source of return.


앞선 수익의 원천이 무엇인지를 파악하기 위해 분해하고 이해하는 과정입니다. 장기적으로 유효한 투자는 모두 핵심 원리가 직관적이고 설명 가능합니다.

Return Decomposition을 통한 Return Source에 대한 이해

EPS Growth + PE Multiple

or other decomposition

동일 개념, 다른 정의에 따른 Return Source Robustness check

    

Persistent : Observable in different markets, stable over time, and robust to different definitions


수익의 원천이 같다면, 다른 시장과 다른 조건들과 정의에서도 유효한지를 확인할 필요가 있겠지요. 물론 국가나, 조건에 따라 수익의 원천에 영향을 줄만한 제도적 차이나 산업구조의 차이 등이 있을 수 있습니다. 이런 부분을 보정해서 테스트할 수 있다면 더 좋겠지요?


다른 유니버스, 국가에서도 performance 확인

구간에 따른 performance 특성 확인

Region 및 Universe 별 Local 특성을 교정한 상태에서도 팩터의 효과와 특성 유지가 발견되는가?

같은 개념이지만 다른 정의에도 효과가 유지되는가? ( ex, 앞선 Valuation 예시와 같이)

팩터 카테고리 분류 필요 - 동일 개념 비슷한 정의

Dispersion 정도 측정

Size 효과에 따른 Performance Drag

기타 팩터 효과에 따른 Performance Drag


Executable : implementable in practice and still outperform after the effects of trading costs and other market frictions


과거를 완벽히 복제하는 것은 어렵지만, 현실적인 테스트 과정을 최대한 설계해 넣는 것은 중요합니다. 퍼포먼스 차이가 많이 나요.

보수적인 거래비용 (시장 충격 비용 포함) 적용

거래가능 종목, 초소형주 제외

거래정지, 폐지 등 종목 이벤트에 따른 효과 확인



Reference
https://jpm.pm-research.com/content/43/2/90/tab-article-info

https://osam.com/

작가의 이전글 데이터의 질감을 느낄 줄 알아야 한다.
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari