잡담

금융 데이터로 통계 돌릴 때 자주 생기는 실수 (정상성, 시계열, 차분)

김문영 2021. 11. 28. 15:56

금융 데이터로 회귀분석이든, garch든 통계 돌릴 때 흔히 발생하는 실수가 있습니다.

예를 들면 다음과 같습니다.
2015년~2020년동안의 삼성전자 주가와 Kospi 지수 간의 상관관계를 파악하고 싶은데, 이를 위해 각 시기의 [삼전 주가 - Kospi 지수]를 넣고, 둘 간의 공분산을 추정하는 식입니다.

이 경우 여러가지 문제가 발생할 겁니다. 우선 분산 값이 매우 커질 겁니다. kospi 지수는 커봐야 3000 정도인데, 삼성전자 주가는 최소한 그 몇배의 값을 가집니다. 따라서 공분산 값도 아주 커질 것(억 단위로 나오겠네요.)이고, 사실 그 값도 아무런 의미가 없을 가능성이 큽니다. (코스피 하루에 100p 떨어지는 것과, 삼전 하루에 100원 떨어지는 걸 똑같다고 판단할 테니까요.)
또한 인플레이션 문제도 있습니다. 1년에 물가가 2~3%씩 오른다고 가정하더라도, 5년이면 10~15%입니다. 아무것도 안해도 10% 이상의 오차가 생기는 겁니다. 위 경우에선 매년 500~1000 정도의 오차가 발생하겠네요. 이러한 오차가 그릇된 결과를 낳을 것은 자명합니다.
그렇다면 이런 문제는 왜 발생하는 걸까요?

  이는 두 데이터가 정상성(stationary)을 만족하지 못했기 때문입니다. 정상성은 시계열 데이터의 통계적 성질(평균, 분산, 왜도, 첨도 등)이 일정하게 나타나는 것을 뜻합니다. 시계열(time-series) 데이터는 데이터가 일정한 시간 간격으로 해결된 데이터를 말합니다.

  그렇다면 시계열 데이터가 정상성을 만족하지 못하는 경우는 어떨까요. 정상성을 만족하지 못한다는 건 데이터의 통계적 성질이 시간에 따라 변함을 뜻합니다.
시간이 지날수록 평균이 커지거나, 분산이 커지거나, 혹은 특정한 통계적 성질이 주기를 갖고 움직이는 등의 예시를 들 수 있습니다.

제가 위에서 들었던 예시(삼전-코스피) 또한 정상성을 만족하지 못한다고 할 수 있습니다. 삼전 주가와 코스피 지수 모드 시간이 지남에 따라 평균적인 데이터의 값이 증가하기 때문입니다. 이는 또한 분산/공분산의 값 또한 증가시키며, 위에서 말했던 문제들을 일으킵니다.

대다수의 금융 데이터들은 시계열 데이터입니다. 매일의 시/고/종/저, 거래량, 거래대금 등, 우리가 다루는 대부분의 금융 데이터가 일정한 시간을 기준으로 나눠져있기 때문입니다.

그래서 데이터의 정상성을 판별하는 것은 중요하고, 또 이를 판별하시 위한 기법들 또한 많이 있습니다.
ADF 검정, KPSS 검정 등이 그 예시입니다. 이와 같은 검정들은 많은 통계 프로그램, 혹은 프로그래밍 언어(python 등)에서 손쉽게 수행할 수 있습니다.
시계열 데이터를 다룰 땐 번거롭더라도 이와 같은 검정을 수행하는 게 좋습니다. 그래야 검정 과정 상의 오류를 피할 수 있고, 필요한 경우 차분을 통해 정상성을 만족하는 데이터로 변환할 수 있기 때문입니다.

차분(difference)은 특정 기간 동안 데이터가 얼마나 변화했는지를 구하는 연산입니다.  차분은 시계열 데이터를 다루는 데 있어 꽤나 유용한데, 적절한 차분을 통해 데이터의 정상성을 만족시킬 수 있기 때문입니다.

  주가와 주가수익률 간의 관계가 차분의 대표적인 예시입니다. 주가수익률은 특정한 기간동안의 주가 변화량을 의미하는데, 이는 차분의 정의와 딱 들어맞습니다.

또한 대부분의 경우 주가수익률은 정상성을 만족합니다.
단순히 생각해봐도 그렇습니다. 굳이 다른 검증을 거치지 않더라도, 주가수익률이 지속적으로 상승/하락한다거나, 수익률이 무조건 확정적인 주기를 갖는다거나 하는 가정은 어딘가 이상해 보입니다. 이러한 데이터의 경우 정상성을 만족하는 경우가 많고, 통계적 검증을 수행하기도 유용합니다.

  금융 시계열 데이터에 있어 정상성을 만족해야 한다는 가정은 중요합니다.
  정상성을 만족하지 않는 경우 검증 과정에서 오류가 발생할 가능성이 크고, 이에 따라 데이터를 올바르게 다루는 것이 힘들어집니다.
  따라서 정상성에 대한 사실들을 잘 숙지하고, 필요한 경우 차분을 적절히 수행하여 정상성을 만족하는 데이터로 바꿔주는 과정이 필요합니다.


***

ㄹㅇ 비문학 지문이네.