daniel7481의 개발일지

2022년 NH투자증권 빅데이터 경진대회 | 데이터, 문화가 되다 본문

Project

2022년 NH투자증권 빅데이터 경진대회 | 데이터, 문화가 되다

daniel7481 2022. 10. 19. 18:38
반응형

https://aifactory.space/competition/detail/2126

 

2022년 NH투자증권 빅데이터 경진대회 | 데이터, 문화가 되다

 

aifactory.space

AI Tech을 진행하면서 같은 팀원과 경진대회를 준비했다. Data 쪽 처음 프로젝트인지라 부담도 되고 걱정도 많이 되었다. 결론적으로 말하자면 대회에 참가할 수는 없었다. 우리가 옳다고 믿는 가설이 결국에는 참이 아니었기에, 다시 가설을 세우고 증명할 시간적 여유가 되지 않아 참여할 수는 없었다. 그러나 작성해놓지 않으면 그냥 사라지는 것이기 때문에 실패한 이유와 개선할 점 등을 정리 해보려고 한다.

준비

먼저 데이터에 대해서 자세히는 말해줄 수는 없지만 고객 정보/해외 국내 주식 거래내역/ 계좌 정보 등이 있었다. 정제되어 있지는 않은 데이터여서 전처리에 시간이 상당량 쓰였다. 우리 팀이 집중한 포인트는 주식의 시장민감도 Beta였다. 모든 종목에 대하여 시장민감도를 계산한 후, 각 고객이 거래 내역을 토대로 그 사람의 투자 성향을 알아낼 수 있다고 믿었고, 이 투자 성향을 바탕으로 연령대 / 투자 수익 / 자산 규모 등의 피처를 통해 이 사람의 투자 성향을 예측할 수 있다고 믿었다. 

역활

먼저 준비 단계에서 다양한 가설들을 찾아보았다. 무작정 가설을 세울 수 없었기에 이미 선행 연구가 되어 입증된 가설들을 들고 오는 것이 내 역활이었다. 이를 위해 다양한 기관의 논문들을 읽어봤는데, 주로 참고한 곳이 자본시장연구원이었다. https://www.kcmi.re.kr/

 

자본시장연구원

최고의 자본시장 Think Tank 자본시장연구원 홈페이지를 방문해주신 것을 환영합니다. 보고서, 정기간행물, 세미나 · 영상자료 등을 제공합니다.

www.kcmi.re.kr

그 중 코로나19 국면의 개인투자자: 투자행태와 투자성과를 많이 참고하였다. 노션에 따로 정리해둔 곳이 있다.

https://flame-catfish-71e.notion.site/_-12214065d7ce4372944cf4a0596ac112

 

자료조사 _ 손용찬

코로나19를 기점으로, 인구 구성비를 감안할 때 주식 직접 투자는 30~40대가 가장 활발하다.

flame-catfish-71e.notion.site

이를 통해 알아낸 것은 다음과 같다.

30대, 남성, 소액투자자가 60대 이상, 여성, 고액 투자자보다 더 투기적인 성격을 띈다.

최초계좌개설일에 따라 투자 경험이 부족한 투자자를 나누고, 이들이 친숙한 주식(대형주)를 살 가능성이 높다라는 가정을 세울 수 있다

연령대가 낮을수록, 남성일수록, 투자자산 규모가 작을수록 보유 종목 수가 적고, 이를 통해 위험성이 높은 투자를 하는 경향이 있다는 가설을 세울 수 있다.

연령대가 낮을수록, 남성일수록, 투자자산 규모가 작을수록 거래회전율이 높다 == 보유기간이 적다, 자주 거래를 함으로써 거래 수수료가 많이 발생된다.

연령대가 낮을수록, 남성일수록, 투자자산 규모가 작을수록 일중거래 비중이 높다.

투자 자산이 클수록 높은 수익률을 보이는 경향이 있고, 연령대가 높을수록 거래비용 차감 전 수익률은 낮으나, 연령대가 높을수록 단기 매매를 하는 경향이 있어 거래 비용 차감 후 수익률은 20대가 가장 적다.

etc..

무엇보다 각 고객의 위험성향을 알아내야 하는데, 이 지표를 beta를 통해 표현하려고 하였다. beta란 시장민감률로, 이 종목이 시장 대비 변동률을 나타낼 수 있다. 1은 시장과 동일하고, 1보다 큰 값은 시장 대비 변동률이 크며, 0보다 작을 시에는 시장을 역행하는 종목(인버스)이다.

이를 위해 KOSPI, KOSDAQ, S&P500 등의 변동률을 가져오고, 국내 주식/ 미국 주식 종목 별 수익률을 가져온 다음 pd.cov로 베타를 구하였다. 이 과정에서 전처리하는 데에 시간을 많이 빼앗겼던 것 같다. 처음인지라 스킬도 부족했고, 많이 헤멨다.

이제 각 고객별 위험성향을 구입한 종목에 대하여 (종목을 구입한 양)/(전체 거래 내역량) * (종목의 베타값)해준 후 더해줘서 이 사람의 투자 성향을 알아냈다. 

여기서 문제가 발생하는데, 우리가 예상하지 못한 점은 종목의 수익률이 대부분 1로 수렴한다는 사실이었다. 몇 개의 이상치를 제외하고는 전부 0, 1에 근사했다. 이러한 베타 값으로는 고객별 차이점을 알아낼 수 없었다. 연령대, 자산 규모 별로 시각화를 하여도 전부 비슷한 값을 출력하게 되었다. Beta라는 데이터에 대한 성질을 고려하지 못한 결과였다. 

AI Tech을 진행하면서 준비한 거라 다 엎고 처음부터 할 여유는 없었다. 이렇게 프로젝트가 끝나게 되는데, 그 전에 모두 모여서 무엇이 문제였는지, 어떻게 개선할 수 있는지를 공유하였다. 

- # 추론한 주제
    - 로보어드바이저 서비스 기획
        - **로보어드바이저**: 대중적 자산관리 서비스
    - 투자자의 위험성향을 분석해서 각 투자자를 분류
    - 분류를 바탕으로 포트폴리오 이론을 적용해서 리스크 관리 서비스 제공


1. 초기 가설 수립
    - **평균적인 가계 혹은 개인이라는 표본을 추출해야 한다.**
        - 이유: 분류 기준을 잡기 위해서. 본 데이터 안에서는 설문 조사 등의 추가 데이터를 확보할 수 없었기 때문에 '표준'이 필요했다.
    - **일반적인 통념 테스트**
        - 성별
        - 연령
        - 자산규모
        - 등에 따라 위험성향이 갈릴 것이다.
    - **개인의 위험성향에 따라 고객을 분류할 수 있다.**
        - 개인의 위험성향 정의
            - **투자한 종목의 위험도( $ /beta $)**

2. 데이터 전처리
    - 고객정보 데이터(`cus_ifo.csv`)의 중첩된 정보 처리
        - 최빈값을 기준으로 merge
    - 주식 종목 베타값 계산
        1. 각 종목의 변화율 계산
        2. 종목이 속한 시장(ex. KOPI, KOSDAQ)


3. 시각화(EDA)
    - 상관관계가 있는 변수
        - 연령과 자산
        - 연령과 수익금액
        - 주 거래 시장과 수익금 구간
        - 거래 유형과 수익금 구간
    - 상위구간 표본을 늘릴수록 국내 주식 거래 횟수와 해외 주식 거래 횟수의 차이가 줄었다.
    - 초기 가설의 일반적인 통념은 본 데이터에서 유의미하게 나타나지 않았다.

4. 가설 검정
    - 개인의 위험성향에 따라 고객을 분류할 수 있다.
        - 본 데이터에서 의미있지 않았다.
        - 실패한 이유
            - beta는 1로 수렴하는 형태를 띄기 때문에 개개인 별로 큰 차이를 나타낼 수 있지 않았다.
            - 개인의 위험성향을 표현하기에는 더 많은 데이터(변수)를 고려해야 한다.
            - beta에 너무 매몰됐다. 오히려 주어진 데이터로 EDA와 분류를 진행했다면 결과는 아무도 몰랐을 것.
            - 분석 기술의 미흡함 (속도, 방향성)
            - 부족한 도메인 지식(만능 실패사유)
            - 가설에만 너무 집중했다.

5. 개선할 수 있는 점
    - 지금 진행하는 서브태스크가 인풋 대비 충분한 효율이 나올까를 꾸준히 의심하는 것
    - 데이터에 먼저 집중했어야 했다.
    - 리소스(ex. 능력, 데이터의 상태)가 부족했기 때문에 가설 수립 및 검증에만 몰입했다.
    - 현재 테스트하는 가설이 정말 강력한가를 점검해야 한다.

6. 얻은 점
    - `Pandas` 라이브러리랑 친해졌다.
    - 타 학과와 협업한 경험
        - 컴공과는 다른 접근방법을 알 수 있었다.
    - 결국 데이터가 중요하다.
        - 그에 맞는 가설을 세우는게 더 효과적일 수 있다.
    - 효율적인 시각화에 대한 고민
        - 시각화는 체화를 하는게 좋겠다.(특히 속도)
    - 회고의 중요성
        - 어차피 프로젝트는 대부분 실패한다. 그 과정에서 무엇이 남는지 기록해나가고, 기록을 바탕으로 발전해야 한다.

프로젝트를 마무리할 수 없었다는 점이 너무나 아쉽지만 남는 것이 없지 않다. 이 실패가 앞으로의 여정에 도움이 될 거라고 믿어 의심치 않는다.

반응형

'Project' 카테고리의 다른 글

STS를 활용한 간단한 QNA봇 만들기  (1) 2022.11.09
[AI Tech P Stage] Semantic Text Similarity 대회  (0) 2022.11.03