데이터이야기

DB 노하우, 데이터직무, 다양한 인터뷰를 만나보세요.

[분석 7기] 누구에게나 열려있는 빅데이터 분석의 가능성!

데이터 이야기
작성자
dataonair
작성일
2015-01-14 00:00
조회
5277


‘최고팀’의 일일 환율 예측 프로젝트

누구에게나 열려있는 빅데이터 분석의 가능성!



<분석 전문가 과정 7기 인터뷰> 바로가기▶


미니 프로젝트라니! R도 잘 모르고, 통계도 잘 모르는데, 무엇을 어떻게 하라고~
주제를 무엇으로 정해야 할지도 모르겠고, 어떻게 시작해야 할지 난감한 표정들로 모인 우리는 일단 팀 이름부터 정했다.
이름하여 최고팀(최고+5팀)! 이왕 시작한 거 최고의 5팀이 되어 보자고 다짐하며 정한 이름이었는데,
이름대로 7기에서 최고의 팀으로 선정됐다^^ 최오팀은 백형충 팀장을 중심으로 윤상택,김성희,차순표,최선애
팀원 다섯 명이 역할을 분담하여 프로젝트를 진행했다.



환율에 대해 잘 모르는 사람들이 모여 환율에 영향을 주는 원인들(환율에 선행되는 지수)을 함께 찾기 위해 맨 처음 한 일은 논문이나 자료를 찾아보는 것이었다. 각자 찾은 자료를 공유하고 공부하는 과정을 거치면서 처음에는 잘 이해되지 않았던 내용들이 조금씩 눈에 들어오기 시작했다. 그 자료에 나온 내용을 기본으로 데이터를 모을 수 있었다. 짧은 기간이었지만, 이 프로젝트를 통해 특정 분야의 분석에 필요한 해당 도메인 지식을 쌓아 해당 분야의 데이터를 읽는 과정을 실제로 경험했다. 분석 도구로 데이터 분석까지 해 봄으로써 데이터 사이언티스트의 역할을 조금이나마 맛볼 수 있었다. 이런 경험이 최고팀원들에게는 또 다른 도전의 가능성을 주었다고 생각한다.



Challenge

프로젝트 주제를 정할 때, 다양하고 흥미로운 제안이 많이 나왔다. 이 가운데 ‘이별 예측 커플’, ‘(연령 별, 가족 구성원 등에 따른) 최적의 이사장소’ 등은 처음에는 꽤 가능성이 있어 보였다.
학위 논문을 써 본 사람이라면, 경험이 없는 상태에서 논문 주제 선정이 얼마나 위험한지를 알 것이다. 빅데이터 분석 프로젝트도 다를 게 없었다.


우선, ‘이별 예측 커플’ 주제는 너무나 참신하고 재미있어 보였다. SNS에서 오가는 글을 텍스트 마이닝하여 이별할 커플 사이에 어떤 말이 오갔는지를 찾아보고, 이별 전에 자주 쓰는 말이 오가는 커플은 이별할 가능성이 높다고 가정한 것이었다. 하지만 이 주제가 얼마나 무모한 것이었는지는 금방 드러나고 말았다. 데이터를 구할 곳이 없었던 것이다. 이별한 사람들은 SNS를 탈퇴하거나 잠수를 탔고, 한국 사람의 정서상 자신의 심리적 상태, 특히 연인과의 상태를 공개적으로 언급하는 사람이 별로 없었기 때문이다.


데이터를 어디에서, 어떻게

역시 문제는 데이터였다. 새로운 주제를 떠올릴 때마다 ‘그럼 데이터를 어디에서, 어떻게’라는 벽에 부딪혔고, 주제가 참신하고 재미있어도 결국 데이터 확보가 매우 중요함을 알게 됐다. 결국 부동산 관련 주제나 여타 주제도 데이터를 구할 방법을 찾지 못해 포기하기에 이르렀다.
그럼 원/달러 환율 예측은 어떨까 ‘너무 어렵지 않을까 그래도 성공하면 의미가 있고 가치도 높지 않을까’라며 다들 고민하던 찰나, 지도 강사의 ‘원달러환율 예측… 무난하게 갈 수 있을 듯 합니다’라는 한마디에 희망을 얻어 최고팀은 환율에 대해 공부를 하기 시작했다.


이 분야에 관심을 갖고 있던 윤상택 팀원을 선두로 환율 관련 논문과 자료를 찾아 나섰다. 주가 예측을 선정했던 조가 많았다. 환율 예측은 그동안 빅데이터 아카데미의 수료 프로젝트 주제로 다뤘던 적이 없는 새로운 프로젝트라 최고팀에게는 ‘한번 해보자’는 의지를 다지게 했다.


Solution

논문을 보면 <그림 1>처럼 많은 변수 중에서도 몇 가지 공통적으로 나오는 것들이 있었다. 즉 금리,S&P500지수,엔화 환율,기초 경제 변수,경상수지 등이 그것이다. 그 데이터가 정확히 무슨 뜻인지는 몰랐지만, 일단 찾을 수 있는 데이터를 각자 찾아보기로 했다. 엔달러,원달러,원/엔화 등 환율, 금리, 금값, KOSPI 지수 등을 찾기로 했다.


dbin_374.png

<그림 1> 원/달러 환율 영향변수 메커니즘 구성도


<그림 1>은 오른쪽 위편이 원인이 되어 왼쪽의 원/달러 상승 또는 원/달러 하락을 일으킨다고 볼 수 있다. 예를 들어 선진국에서 경기가 과열되면 금리가 인상된다. 이는 수요 감소로 이어져 선진국들의 경제 성장율이 둔화가 된다. 이로 인해 수출이 영향을 받게 되어 경상수지가 악화되면, 원/달러의 환율이 올라하게 되고 주가를 떨어뜨린다. 반대의 경우는 경기 침체는 기업 투자를 위축시켜 자본재의 수입 감소로 이어져 경상 수지가 흑자로 전환된다. 결국 원/달러 환율이 하락하게 되고(원화 가치가 올라가므로) 주가는 상승하게 된다. 이런 메커니즘 가운데 정부의 시장 개입의 강도와 범위에 따라서 조정이 되기도 한다.


데이터 구하기

dbin_375.png

<그림 2> 데이터 수집 과정


일단 어떤 데이터를 확보해야 할지를 정했다. 분석할 데이터를 정하고 나니, 데이터를 가져오는 방법은 무척 다양했다.


최고팀원들을 각자 나누어 데이터를 확보하기로 했다. 가정 먼저 혹보할 데이터는 5년 이내로 지정했다. 이유는 2007년도에 서브프라임 모기지론 사태가 발생하면서 환율의 유동 폭이 너무 컸기 때문이다. 이런 특이한 사태 발생으로 인해 정부가 정책적으로 환율을 관리하던 당시의 데이터를 사용하면, 예측율이 정확하지 않을 수 있었기 때문이다. 데이터를 가져온 방법은 처음에는 복사/붙여쓰기를 이용해 관련 웹사이트의 화면을 긁어왔다. 통계청 사이트에서 일부 파일 데이터를 내려 받기도 했다. 프로젝트 사이사이 멘토의 도움으로 R 스크립트로 웹사이트의 자료를 읽어오는 방법이나, QUANDL을 이용해 지정한 기간의 데이터를 골라 가져오는 방법도 적용했다.


하지만 이 중 어느 하나만을 사용할 수는 없었고 모든 방법을 동원해야만 했다. 우리가 원하는 데이터가 어느 한 곳에, 한 포맷으로 존재하지 않기 때문이다.


데이터 만들기

합치기
열심히 모은 데이터를 한 곳에 모을 때, 우리는 다시 벽에 부딪혔다. 데이터의 기준 날짜가 서로 달랐던 것이다. 예를 들어 경상수지,소비자 물가지수는 월별 데이터이고, GPD 성장률은 분기별 데이터였다. 이렇듯 데이터가 일별,주별,월별,분기별로 다양했고, 이런 다양한 데이터를 어떻게 합쳐야 할지가 고민이었다.


결론부터 말하자면, 일별 데이터는 통계에서 흔히 이용하는 평균값을 이용해 주별 데이터 또는 월별 데이터로도 만들 수 있다. 하지만 주별 데이터를 일별로 이용하게 될 경우 데이터가 가진 성격을 흐트러뜨릴 수 있다. 이는 정확하지 않은 분석 결과로 이어진다는 사실을 멘토로부터 들었다. 그래서 최고팀은 프로젝트 초기에 결정한 주간 예측을 일간 예측으로 바꿔야 했다. 일별 데이터가 주별 데이터보다 더 풍부한 것을 보고, 과감히 일별 데이터만 이용해 일별 예측을 하기로 한 것이다.


dbin_376.png

<그림 3> 변수 선택과정


유실 데이터 처리
일별 데이터들만 보니, 또 다른 문제가 발견됐다. 해외 데이터의 날짜와 우리나라 데이터의 날짜가 서로 일치하지 않았다. 이유는 휴일이 다르기 때문이었다. 맨 처음에는 모든 데이터에 존재하는 날짜를 기준으로 가져와 합쳤는데, 환율 데이터가 유실(missing)되기 때문에 문제가 될 수 있었다. 예를 들어 원/달러 환율은 2014-02-02 데이터가 존재하는데, S&P500 지수는 해당 데이터가 없었다. 이 문제 해결을 위해 최고팀이 첫 번째로 시도했던 방법은 공통 날짜의 데이터만 가져오는 것이었다. 이렇게 하면, 앞의 2014-02-02일의 원/달러 환율 데이터는 사라지게 된다. 그래서 원/달러 환율의 날짜를 기준으로 다른 변수들의 데이터를 합쳤다. 그럼 2014-02-02의 원/달러 환율은 존재하는데, S&P500 지수는 NA로 존재하지 않게 된다. 이런 데이터들은 이전 날짜의 데이터로 채웠다.

일단 25개 변수로 이루어진 데이터세트가 완성되었고, 이 데이터들을 어떤 모형으로 돌릴까 고민을 해 보았다. 하지만 환율은 시계열(time series)이라고 하기엔 무리가 있었다. 나라별 경제 상황,주가 등 사람의 활동이나 경제 활동에 의해 변경되는 지표이지, 봄,여름,가을,겨울 등 어떤 계절적 요인(seasonality)에 영향을 받지 않는 변수이기 때문이다. 그래서 결정된 방법이 회귀분석(regression)이었다!

회귀분석을 하기에 앞서 우리팀은 상관분석을 해 보았다.


dbin_377.png

<그림 4> 상관관계


<그림 4>에서도 보듯이, KOSPI,DOW 지수,S&P500 지수가 원/달러 환율에 영향을 많이 주는 것으로 보였다.

첫 번째 회귀분석 결과를 보면, 다음 <그림 5>와 같다.


dbin_378.png

<그림 5> 첫 번째 회귀분석 결과


가장 높은 상관 관계를 보인 것은 S&P500 High, Kospi open, Nasdaq open 지수로, 가장 큰 설명변수로 선정되었다. 그러나 R-squared 값은 0.747로 나타났다. 위 설명 변수들로 원/달러 환율을 75% 정도의 정확도로 예측 가능하다는 말이다. 최고팀의 목표는 90% 이상이었으므로 실망할 수밖에 없었다.

이때, 지도 강사의 조언이 따랐다. “대륙 대표 지수, 환율에 영향을 주는 주가 데이터를 추가해 보세요.”

그래서 최고팀은 10년 채권 수익률, 5년 채권 수익률, 중국 상하이 지수, 유로/달러 환율, CAC40(프랑스 지수), 미국 국채 데이터, DAX(독일) CSI 300(중국) 등의 대륙 대표 지수, 다른 나라 화폐와의 환율, 주가 지수 등을 추가하였다. 이로써 최종 사용된 변수는 52개였다.


dbin_379.png

<그림 6> 두 번째 회귀분석 결과


최고팀은 놀랐다. R-Squared 값이 0.976정도로 올라갔기 때문이다.
변수를 추가한 거밖에 없는데, 결과는 놀라웠다. 표가 중간에 생략되어 잘 보이진 않지만, 가장 밀접한 중요변수로는 원/위엔화,위엔화/달러,니케이(Nikkei) 225 변수 순으로 첫 번째 회귀분석 모델 안에서의 중요 변수들이 달라졌다.

이때 지도 강사의 조언이 다시 따랐다. “미국 관련 지수들은 하루씩 늦게 적용해야 합니다.”


dbin_380.png

<그림 7> 미국의 지수들을 하루씩 늦게 적용


<그림 7>을 보듯이, 5월 2일자 데이터를 이용해 5월 3일의 환율을 예측해야 했으므로 환율 데이터를 하루씩 뒤로 미루고, 한국이 5월 2일일 때, 미국/유럽 지수들은 5/1일 데이터이므로 하루씩 당겨 <그림 7>과 같이 조정을 하였다.


dbin_381.png

<그림 8> 최종 회귀분석 결과


조정된 데이터를 가지고 마지막으로 돌려보았다. R-squared 값은 이전보다 조금 떨어졌지만, 그럼에도 많은 부분을 설명해 주고 있었다. 만약 시간이 조금 더 있었더라면, 데이터를 정제하면서 실수는 없었는지, 다른 추가할 변수들을 찾아서 Adjusted R-squared 값이 0.99가 나올 때까지 도전해 볼 수 있었을 텐데 하는 아쉬움이 남았다.


Conclusion

회귀분석(regression analysis)은 관찰된 연속형 변수들에 대해서 종속변수(우리가 알고자 하는 변수)와 독립변수(종속변수에 영향을 주는 변수) 사이의 상관관계를 나타내는 선형 관계식을 구하는 기법으로, 통계 예측에 많이 이용된다. 우리 팀이 사용한 회귀분석은 엄밀히 말해 하나의 종속변수와 여러 독립변수 사이의 관계를 보는 다중 회귀 분석이었다.

회귀분석을 이용하기 위해서는 여러 가정이 전제돼야 하지만, 여기서 소개하는 것은 생략한다. 회귀 모형의 적합도는 R2값을 사용하는데, 이는 회귀모형의 독립 변수가 종속변수의 몇 %를 설명하고 있는지를 나타내는 지표다.

최고팀의 프로젝트 결과는 다양하게 활용할 수 있다. 최고팀이 아직 도전해 보지 못한 여러 예측 모델을 사용해서 예측을 해 보거나 또 다른 변수를 추가해서 R-squared 수치가 99%가 될 때까지도 도전해 볼 수 있다. 그리고 데이터만 있다면, 다양한 방법으로 여러 산업 분야에서 활용할 수 있다.




첫째, 주,월 단위의 예측에 도전해 볼 수 있다

주간/월간 예측을 통해 기업에서 보유한 돈의 환율을 예측하여 외국환 거래 시 참고할 수 있을 것이다. 앞서 설명했듯이, 일별 데이터를 월간 데이터로 변경해 월 단위의 데이터까지 넣어 모델을 만들어 보고, 일별,월별 예측 데이터를 사용한다면 정확도는 올라갈 것으로 예상된다.

둘째, 추가 파생 변수들을 도출, classification 방법으로 등락 여부를 예측할 수 있다

등락 폭으로 파생 변수를 생성하여 classification 방법으로 등락 자체 예측을 추가하면, 더 정교한 모델을 도출해 기업 투자에 활용할 수 있다.



예측에는 항상 한계와 위험성이 있게 마련이다. 환율의 변동의 차가 크지 않기 때문에 오차의 범위가 좀 더 클 수도 있다. 아무리 예측을 잘한다 해도 당시의 시장 상황이나 정부의 적극적인 시장 개입 등 고려해야 할 변수를 이번 모델에 적용하지 못한 점은 예측의 한계라고 볼 수 있다.


모두가 분석 전문가가 될 수 있다!

우리 팀원들 중에 분석 전문가는 아무도 없었다. 그럼에도 8주라는 기간 동안 많은 것을 배웠고 각자 많은 부분을 느꼈다. 요즘은 도구를 구입하지 않아도 되고, 자료를 얻기 위해 도서관을 들락거릴 필요도 없다. 누구에게나 데이터는 개방되어 있고, 누구나 사용할 수 있도록 제공되는 무료 분석 툴을 쉽게 인터넷을 통해 접할 수 있다. 컴퓨터와 인터넷이 발달한 지금은 우리 모두에게 기회가 열려시대다. 앞서 알아 봤듯이 최고팀에서 시도한 모델은 회귀분석 모델 가운데 하나다. 모델보다 선행되어야 할 중요한 것은 데이터를 모으고 정제하는 과정이다. 이 과정이 실제 분석의 80% 이상을 차지했다고 볼 수 있다. 무엇을 하기 위해 어떤 데이터가 필요하고, 어떻게 모을 것인가에 집중한다면, 그 이후에 모델을 찾고 분석하는 것은 툴이 해 줄 것이다.

예측 시스템이나 분석 프로그램은 아무리 아마추어라 하더라도 데이터를 모을 수 있는 끈기, 원하는 분야에 대해서 공부하려는 자세와 열정이 더해진다면, 최고팀보다 더 좋은 결과를 이끌어 낼 수 있다고 생각한다. 두려워 말고 한번 도전해 보기를 바란다. 누구나 전문가의 길로 들어설 수 있는 시대가 왔다. 그리고 이 글로 인해 누군가에게 도움이 되길 바란다. (글: 최선애)



dbin_382.png

dbin_383.png




출처 : 한국데이터베이스진흥원

제공 : DB포탈사이트 DBguide.net