본문 바로가기

backup

[HFT 시스템 트레이딩]기초 통계2

지난 글에서 평균, 분산, 왜도, 첨도의 기초 통계에 대해서 했는데,

본래 공식에 의하면 데이타셋을 한번에 더하고, 제곱하고 등등 연산을 하여야 각각의 값을 구할 수 있습니다.


그런데 빅데이타 상황에서 데이타를 모두 메모리에 넣는 것도 문제이고, 제곱뿐만 아니라 값을 네제곱해서 변수에 넣는 것도 엄청 큰 일입니다.


그래서 기초 통계를 구하는 것도 조금 다른 방법이 필요로 합니다.

값을 하나 추가하고 평균, 분산, 왜도, 첨도를 모두 갱신하고, 다시 값을 하나 추가하고 다시 통계를 내고하는 방법을 사용하여야 합니다.

그렇게 하면 대량의 데이타를 처리하는데 있어서 변수의 크기 문제, 메모리 문제, 속도 문제 모두 개선을 할 수 있습니다.


혹시나 이미 다른 사람이 구현한 것이 있는가 해서 찾아봤는데, 마침 아래의 주소의 글을 찾았습니다.


http://www.johndcook.com/skewness_kurtosis.html


자세한 내용은 위에 들어가보시고 헤더 파일과 핵심 부분은 밑에 붙입니다.





아래 부분이 핵심입니다.






여기서 M1, M2, M3, M4는 지난 글에서 말했던 1차 모멘트, 2차 모멘트, 3차 모멘트, 4차 모멘트입니다.


값이 하나 추가될 때 마다. 1,2,3,4차 모멘트를 갱신합니다. 모멘트만 있으면 바로 평균, 분산, 왜도, 첨도를 구할 수 있습니다.


다음 글에서는 기초 통계를 해서 통화쌍 데이타를 일차적으로 분석해보겠습니다.