24.03.12 TIL

예진·2024년 3월 12일
0

TIL

목록 보기
48/68

실전 프로젝트가 끝났다.
마무리하는 기념으로 분석 프로세스 정리.


서론

프로젝트 개요 :

  • 주식을 이용한 시계열 대시보드 작성.
    • 데이터를 수집하고, Database 적재.
    • 태블로로 데이터를 시각화.
    • (선택) 시계열 모델로 주가 예측.
    • 위 전체 과정의 데이터 파이프라인 구축.

목적과 목표 설정 :

  • 직장도 자리잡고 집도 구한 데이터 분석가 A모씨,
    자신감이 붙은 사회 초년생 A씨는 1000만원으로 주식에 도전한다.
    자신의 지식을 활용해 주식을 분석하기에 최적화된 대시보드를 구성해보자!
  • 목적 : 주식을 관리할 수 있는 실시간 대시보드를 제작하여 이미 산 주식에 대한 매니지먼트 시스템을 제공.
  • 목표 :
    • Big Quary 활용하여 Database에 적재.
    • 태블로로 목적에 맞는 데이터 시각화.
    • 시계열 모델로 주가 예측.
    • 주식 정보를 넣으면 데이터 적재, 대시보드 업데이트, 시계열 예측까지 자동화 수행하는 파이프라인 구축

목차(PPT 및 발표 순서)

  1. 문제 정의
  • 주제 및 목표
  • 가정 (1000만원 주린이, 사회초년생)
  1. 전처리 및 EDA
  • 데이터 수집 및 전처리
  1. 모델링
  • 모델 선택
  • 학습 및 발전 과정
  • 검증
  1. 대시보드 1
  • 대시보드 구성 요소
  • 각 워크시트별 목표
  1. 대시보드 2
  • 대시보드 구성 요소
  • 각 워크시트별 목표
  • 보조지표를 활용한 통계 분석
  1. 마무리
  • 결론
  • 한계점 및 개선 사항

데이터 수집

야후 파이낸스 모듈 : yfinance
→ 파이썬에서 주식 시장의 데이터를 가져오고 분석할 수 있는 라이브러리, 원하는 종목의 데이터를 볼 수 있음

데이터 전처리

수집방법 : yfinance(애플, 아마존, 마이크로소프트)
수집기간: 2021-01-01 ~ today-1
사용데이터 : close

모델링

<모델 선택 : prophet>

→ 메타에서 공개한 시계열 예측라이브러리로 시간에 따른 트렌드, 계절성, 휴일효과등을 반영하여 미래의 값을 예측할 수 있음

→ y(t)=g(t)+s(t)+h(t)+ϵi

g(t) :시간 t에 대한 트렌드를 나타냄

s(t) : <푸리에 급수>를 사용하여 연간, 월간, 주간, 일간의 주기성을 나타냄

h(t) : 휴일 및 특별 이벤트와 같은 외부요인에 대한 변동을 나타냄

<모델링 적용>

1. Apple

a. 학습데이터 설정 : '2021-01-01'~'2023-09-30'

  • 2023년 1월달의 급증을 완화하고자 최근 하락한 구간을 포함
  • prophet을 활용한 apple의 주가 트렌드 확인
  • 2024년 3월 이전지점부터 거래 가격이 상승하는 추세를 보임
  • 토요일, 일요일은 거래가 불가능하여 가격에 대한 변동이 없음
  • 월별 추세는 3월부터 9월까지 가격상승이 활발

b.모델링 학습

  1. 2023/6/30 까지 학습

  1. 2023/9/30 까지 학습 + 조정 모델링

  • 학습기간에 따라 예측 추세가 달라짐
    → 마지막 학습추세가 상승일 경우 주식가격이 계속상승
    → 마지막 학습추세가 하락일 경우 완만한 예측

c.성능평가

  • MSE(Mean Squared Error) : 회귀 모델의 성능을 평가하는 지표로, 예측값과 실제값의 차이를 제곱하여 평균화한 값
  1. 2023-6-30 까지 학습

  • MSE : 919.8576673748671
  1. 2023/9/30 까지 학습 + 조정 모델링

  • MSE : 18.312049744884167

2. Amazon
a. 학습데이터 설정 : '2021-01-01'~'2023-09-30'
2023년 1월달의 급증을 완화하고자 최근 하락한 구간을 포함

a-1. prophet을 활용한 amazon의 주가 트렌드 확인

  • 애플보다 주가의 상승이 가파름
  • 연도별로 6월달에 상승하고 9월이후로는 하락

b. 모델링 학습

  • 2021년도의 데이터의 진폭보다 2022년도의 데이터 진폭이 더 커진것을 고려
    → seasonality_mode = 'multiplicative'
  • 미국의 휴일 고려
  • 시간에 따른 트렌드를 완만하게 고려

c. 성능평가
MSE 80.5708 → MSE 37.6734

3. Microsoft
a. 학습데이터 설정 : '2021-01-01'~'2023-09-30'
2023년 1월달의 급증을 완화하고자 최근 하락한 구간을 포함

a-1. prophet을 활용한 microsoft의 주가 트렌드 확인

  • 23년 3월 이후 상승 추세
  • 다른 주식보다 월별 추세가 -30 ~ 30으로 더 가파르다(애플: -15~15, 아마존: -10~10)

b. 모델링 학습

  • 미국의 휴일 고려
  • 시간에 따른 트렌드를 완만하게 고려
  • 2021년도의 데이터의 진폭보다 2022년도의 데이터 진폭이 더 커진것을 고려
    → seasonality_mode = 'multiplicative'

c. 성능 평가
MSE 332.8274 → MSE 120.8591

빅쿼리 연동

빅쿼리란 :

  • 빅쿼리는 대용량의 구조화된 데이터를 저장, 쿼리 및 분석할 수 있는 클라우드 기반의 데이터베이스 시스템
  • 빅쿼리는 자동으로 데이터를 분산 저장하고 처리하는 기능을 제공하여 대규모 데이터셋에 대한 고성능 쿼리 처리를 가능

모델링을 통해 예측된 값과 기타 대시보드를 위한 값들 csv 형태로 저장 후
google.cloud, pandas-gbq 모듈을 통해 빅쿼리에 적재를 위한 코드를 하나로 통합하여
파이프라인을 구축
google.cloud: Google이 제공하는 클라우드 컴퓨팅 플랫폼으로, 다양한 서비스와 도구를 제공하여 애플리케이션을 구축, 배포 및 관리
pandas-gbq: 파이썬에서 Google BigQuery와 데이터를 읽고 쓰는 데 사용되는 확장 모듈

대시보드1_개요


1. 종목별 수익률
2. 종목별 가격
3. 종목별 구성 비율
4. 종목별 목표 수익률
5. 종목별 예측 가격

대시보드 2_상세페이지

  1. 종가, 최저가, 최고가
  2. 예측 그래프
  3. 관련 뉴스
  4. 손실률 보완 추천 주식
  5. 목표 수익률 달성도
  6. 캔들차트
  7. 보조지표

캔들차트

캔틀차트 - 주식의 증감을 색상으로 확인할 수 있음.
상세정보 : 시가, 종가, 최저가, 최고가를 포함.
하루동안 시장에서 일어난 주가의 변동과 매수와 매도 중 어떤 심리가 시장에 작용했는지까지 확인 가능.
캔들차트의 모양과 꼬리의 형태를 직접 확인하고 해석하며 주식시장의 다양한 신호를 파악.

보조지표

보조지표 - 각 종목마다 차별화된 전략을 세울 수 있도록 다양한 보조지표를 확인 가능.

주가는 높은 확률로 볼린저 밴드의 상한선과 하한선의 안쪽에서 움직인다.
예를 들어, 볼린저밴드의 상하한선의 간격이 좁아지고 넓어지는 것을 이용해 큰 변동성을 예측할 수 있다.
또한 주가가 볼린저 밴드의 상하한선을 이탈한다면,
현재 주가가 과열된 상태거나 과소 평가된 상태이므로 추세가 반전될 가능성이 크다.

골든 크로스(Golden Cross)는 단기 이동평균선이 장기 이동평균선을 아래에서 위로 상향 돌파하는 시점을 의미.
단기적인 주가의 추세가 장기적인 주가의 추세보다 빨리 상승하는 것을 의미하며,
이 교차점에 가격이 상승세로 돌입했다는 강력한 신호로 해석한다.

주식의 종가와 함께 MACD, 장단기 이동평균선, 볼린저 밴드 등
다양한 전통적인 지표를 통해 주식 데이터를 해석을 돕고 의사결정의 근거로 활용할 수 있다.

결론

  • 파이프라인 구축을 통해 데이터 적재부터 예측까지 가능하게 구현.
  • 결론 :
    “본 서비스는 전체 보유 주식에 대한 현황과 개별 주식에 대한 단기 변동성 추세를 통해
    거래 여부 및 장기 가격 예측을 통해 매수/매도 여부를 결정하는 데에 도움을 준다”

한계점 및 개선사항

  • 데이터 예측시 과대적합에 대한 기준을 판단하기 어려움
    → Apple 주식 모델 예측시 MSE가 18로 다른 모델링 대비 오차가 낮게 평가.
    → 마지막 학습 기간에 따라 예측추세가 반영되기 때문에 학습기간 이후 추세에 따라 예측에 오차가 발생.

  • 추천 주식의 범위가 적음
    포트폴리오의 크기가 작음(∵기기 성능의 한계 및 중요도 순위)
    → 추천 주식 풀의 사이즈인 100개라는 사이즈가 너무 작으며, 주식을 하나씩만 추천한 것도 너무 제한적.

profile
Data Analysis / 맨 땅에 헤딩

0개의 댓글