반응형

주식투자를 하는데 있어 다양한 투자 방법이 존재하지만, 여러 자산군의 조합을 통해 분산투자를 하는 방법이 경영대학원을 비롯해 모든 투자론에 가장 기초로 통용되고 있다. 그러기 위해서는 여러 자산군을 함께 놓고 비교할 필요가 있는데, 여기에 단순히 비교하기 어려운 점이 몇가지가 있다.

 

1. 각 주가지수의 단위가 다르다. 현재, KOSPI는 2,000 언저리에 있고, 나스닥은 10,000, S&P 500은 3,000, 다우존스는 25,000 등 각 지수별로 상이하기 때문에 똑같이 맞춰줄 필요가 있다.

 

2. 자산군들은 여러 나라에 골고루 분포되어야 하는데, 나라별로 거래일이 상이하다. 일반적으로, 평일엔 거래가 가능하지만, 각 국가별로 휴일이 다르기 때문이다. 예를 들어, 우리나라는 설과 추석에 쉬지만 미국의 국경일에는 쉬지 않는 것 처럼 말이다.

 

 

 

Delete Missing Data로 null값들을 제거해준 후, Unpivot을 통해 여러 데이터를 한꺼번에 모아서 차트를 만들어 줄 수 있다. x축은 date, value를 설정해 y축으로 활용하고, 아래 사진에서 표시한것처럼 데이터가 25000개이므로, Show rows를 30,000개로 설정하면 아래 차트와같이 나올 것이다.

하지만, 여전히 문제가 남아있는 것은 scale의 차이 때문에 유독 튀어올라 보이거나, 너무 낮은 값들이 존재한다. 이를 맞춰주기 위해서 정규화(Normalization)가 필요하다. 정규화는 쉽게 말해, 값을 크기로 나눠 최대값을 1로 맞춰주는 것으로 이해해도 좋다. 정규화를 하면 좋은 것은 스케일의 차이로 인한 통계 해석의 어려움을 줄이고, 그 사이에서 패턴을 찾을 수 있다는 것이다.

 

Normalize 함수를 이용해, 우리가 활용할 value(각 지수의 값)를 index(코스피, 나스닥 등등 지수의 구분)로 group by해주고, MinMaxScaler로 선택해주면 된다.

 

그 결과는 아래와 같이 나타낼 수 있다. 뭔가 금융에서 그럴싸하게 보이게 만들어진 것 같다.

 

위 분석 방법의 문제점도 있다. 가장 쉽게 생각할 수 있는 것은 중간에 결측치를 빼준 것인데, 결측치를 빼줬을 때 엄청난 금융시장에 충격이 가해진다면 (예를 들어, 911테러나 코로나) 그런 위기 상황에서 자산의 상관관계를 분석하기는 어려울 것이다. 하지만, 아주 긴 시계열로 전반적인 트렌드를 살펴보고자 한다면 이렇게 분석하는 것도 그리 나쁘지 않은 선택이 되리라 판단한다.

 

 


위 내용은 모두 아래의 Brightics Studio의 Tutorial을 기반으로 작성하였습니다.

 

https://www.brightics.ai/kr/docs/ai/s1.0/tutorials/87_py_stock_price_analysis?type=insight

 

Brightics Studio

 

www.brightics.ai

 

반응형