파이썬을 활용한 시계열분석
[강의소개 및 인터뷰]
https://www.fastcampus.co.kr/data_camp_pytime/
http://blog.fastcampus.co.kr/221455834018
[약력]
(현) S연구소 인공지능센터 데이터 싸이언티스트
(전) S사 빅데이터랩 데이터 싸이언티스트
(전) 서울대학교 산업공학과 금융공학 전공 박사
(통계학과 데이터마이닝 전공 석사, 수학과 학사)
[활동 이력]
(S사) 프로젝트
- 영업/마케팅 매출기여도 분석 및 최적투자 포트폴리오 시뮬레이션
- 부품 수급 자동화 및 비용 최적화를 위한 수요예측
- 프로모션 효과 향상을 위한 고객 구매확률 예측 및 전략기획
- 고객 불만 사전대응을 위한 경보 시스템 구축 분석
- 제품 불량 원인 파악을 위한 이상탐지 분석 및 수명 예측
- 광고 효과 향상을 위한 고객 프로파일 예측 및 추천 확률 계산
- 서비스/앱의 고객 이탈확률 분석 및 Life Cycle 분석
(H사, S사) 시장분석, 파생상품, 외환시스템, 계량경제, 시계열분석, 데이터마이닝 등 강의
(S연구소) 확률 및 확률과정, 병렬처리, 고차원 자료분석, 시뮬레이션 등 강의
(E대학) 계량경제, 경제통계, R, Matlab, SAS 등 강의
(S대학) 수치해석, 수요예측, 최적화, 투자위험관리, 금융시계열분석, 금융공학 사례분석 등 강의
[시계열분석 코멘트]
현재 인공지능센터에서 AI알고리즘을 활용한 데이터 분석 업무를 담당하고 있습니다.
개인적인 분석철학은 이론/실무/현업에 치우치지 않은 객관적인 인싸이트를 내고자 함이며, 이를 위해 이론적인 학습과 데이터분석 실무경험, 그리고 협업의 도메인 특성에 따른 변화를 지속적으로 두루 살피고 있습니다.
시계열분석은 다양한 분석 알고리즘 중 하나의 큰 축으로, 많은 분석들에서 시간특성(시계열)의 반영이 그 어떠한 알고리즘에서도 파악할 수 없는 패턴을 잘 반영한다는 강점을 증명되어 왔습니다. 따라서 시계열분석 사고에 대한 보유는 작게는 여러분들 각자의 시야를 넓혀줄 뿐 아니라, 크게는 현업의 적재되어 있는 문제들의 새로운 출발이 될 수도 있다고 감히 말씀드립니다!
이러한 방향에 여러분의 의지가 담길 때, 여러분의 삶이 긍정적으로 변화되는 모습을 보실 수 있으실 것입니다.
[시계열 분석, 왜 중요한가요?]
시간은 우리의 삶에서 뗄 수가 없는 존재 이듯, 시간 흐름에 반영되는 많은 데이터 패턴들은 어떠한 분석에서도 그 성능과 효과를 높이고 있습니다. 따라서 시간 관점에서의 데이터 패턴을 분석에 반영하는 것은 현재의 상황에 대한 설명을 더욱 상세하게 제시해줄 수 있고, 이를 미래의 관점으로도 반영할 수 있습니다!
[그럼, 시계열 분석은 어디에 쓸 수 있나요?]
한마디로 하자면 시계열 분석은 모든 분석 주제에 활용될 수 있습니다. 과거와 현재에 대한 해석에 강력하고 미래에 대한 예측 성능 향상에 기여할 수 있습니다. 그리고 주로 경영/경제 관련부서에서 전통적으로 많이 활용되어 왔지만, 영업/마케팅/구매/전략/인사 등 모든 부서의 의사결정이 필요한 문제들에 시계열분석의 관점을 반영하여 분석할 수 있습니다.
[그렇다면, 시계열 분석은 어떻게 학습해야 하나요?]
시계열 분석은 시간의 흐름에 따른 특징과 패턴을 이해하는 것이 목적입니다. 현업에서의 현상과 문제상황을 파악하는 것이 시계열 분석의 핵심이니까요. 이를 위해선 크게 2가지 필요한데, 첫째는 시간 흐름에 따른 데이터 패턴을 잘 이해/추정하는 것이 필요하고, 둘째로 이러한 패턴을 분석싸이클에 담아 시계열분석의 구조를 이해하고 그 결과를 해석하는 방법을 익히셔야 합니다. 발생한 시간흐름의 현상을 이해하고 미래에 반영하는 방법을 실습하다 보면, 스스로 시계열 분석 문제에 대한 의사결정이 가능해지고 결과를 해석하실 수 있으실 것입니다.
[활용데이터 예시]
1) 수요예측을 위한 공공자전거 공유경제 데이터 (https://www.kaggle.com/c/bike-sharing-demand)
2) 부동산 가격 예측을 위한 데이터 (https://www.kaggle.com/c/house-prices-advanced-regression-techniques#description)
3) 대기중 CO2농도 예측울 위한 데이터 (statsmodels or sklearn)
4) 국제항공 운송인원 예측 데이터 (statsmodels or sklearn)
5) 날씨 예측을 위한 Specific 데이터(https://www.kaggle.com/mahirkukreja/delhi-weather-data)
6) 제조사별 고객 스마트폰 사용 기록(http://www.killbiller.com/)
[강의계획서(총8주)]
Chapter 1. 데이터분석 싸이클 이해 및 시계열 데이터분석 준비 (총1주)
[1주차 - 환경세팅(이론80%+실습20%)]
1) 데이터분석 싸이클 이해하기
: 데이터 플랫폼/엔지니어/고객/싸이언티스트 관점에서
: 데이터수집/변수정리/데이터분리/기초통계확인/데이터특성시각화/모델적용/검증/에러분석 등
2) 분석을 공감하는 자세
: 통계의 한계와 강점, 그리고 데이터싸이언티스트 스킬셋
3) 분석 단계별 의사결정을 위한 수학/통계언어 이해하기
: 데이터 구조와 구조에 따른 분석방향 이해하기 (Cross-sectional/Time Series/Pooled/Panel Data)
: 기술통계 기본용어 (Descriptive Statistics)
: 가설검정 정리 및 분석해석을 위한 가이드 (추론통계/가설세팅/검정종류/신뢰수준/유의확률(p-value)/검정통계량/의사결정)
4) 컴퓨터와 소통하기 위한 프로그래밍 언어(Python)의 이해하기
: 도구설치(Anaconda)/도구사용을위한 툴설치(Jupyter Lab)/작업경로설정/기본문법정리(pandas, numpy)
Chapter 2. 시계열 데이터패턴 추출이해 및 적용하기 (총3주)
[2~4주차 - 분석세팅(이론10%+실습90%)]
1) 분석 모델 방향이해 및 시계열 모델방향 이해하기
: 시계열 데이터와 패널 데이터의 전처리 방향
: 학습과 테스트 데이터의 구분 방향
: 학습 방향에 따른 알고리즘 구분
: 기준 알고리즘(회귀분석, 데이터마이닝) 및 비교 알고리즘(시계열)
2) 데이터패턴 및 분석 단계별 목적 차이 이해하기 (시계열 vs. 기계학습)
: 독자적인 시계열 패턴 성분
: 검증지표와 잔차진단의 이해
: 시계열 데이터패턴의 장단점 이해
3) 시계열 회귀분석 정리를 통한 시계열분석 준비하기
: 결정론적 모형 및 확률론적 모형
: 검증/잔차진단/결과해석 이해하기
4) 시계열분석 단계별 목적 이해 및 해석하기
: 데이터준비 방향 (비시계열 및 시계열)
: 전처리 방향 (시간현실/스케일링/다중공선성)
: 모델링 방향 (정상성 테스팅)
: 검증지표 방향 (검증지표/유의점/편향-분산 상충관계)
: 잔차진단 방향 (정상성/장규분포/자기상관/등분산성)
5) 시계열데이터 이해 및 비교를 위한 베이스분석 구현하기
: 데이터 정리 및 특성 추출 (Feature Engineering)
: 시계열 데이터 시각화 통한 데이터 이해(Visualization)
: 시계열 데이터 모델링과 검증에 사용할 데이터 분리 이해 (Train/Validate/Test)
: 시계열 분석결과 비교를 위한 베이스 모델 적용 (Linear Regression)
: 결과 예측력의 성능 확인을 위한 검증 (Evaluation)
: 추가성능 향상을 위한 아이데이션 및 검증결과 해석 (Error Analysis)
: 분석 싸이클 재사용 효율을 높이기 위한 단계별 함수화 (Functionalization)
Chapter 3. 머신러닝 모형 비교를 통한 시계열 모형 이해 및 적용하기 (총4주)
[5주차 - 머신러닝으로 예측성능 향상(이론10%+실습90%)]
1) 베이스분석과 머신러닝분석의 성능 비교를 위한 다양한 예측방법론 이해하기
: LASSO/ElasticNet/GradientBoosting/XGBoost/LigntGBM/DecisionTree/RandomForest 등
: 머신러닝 패키지 활용 방법 이해
: Python에서의 적용 방법 이해를 위한 실습 및 세부 옵션 등의 이해
: 분석 싸이클 구현을 통한 성능 향상 확인 및 추가성능 향상을 위한 아이데이션
[6주차 - 시계열 모델링 특성 및 전통적 시계열 모형 이해(이론70%+실습30%)]
1) 시계열 데이터의 기본 가정 및 4대 주요모형 이해하기
: 백색잡음(White Noise)/랜덤워크(Random Walk)/자기회귀(Autoregression)/이동평균(Moving Average)/Wold Decomposition Theorem 등
2) 시계열 데이터 패턴 분해 및 시차들간의 상관성 이해하기
: Trend/Seasonality/Decomposition/Autocorrelation/Partial Autocorrelation
3) 발산하는 자료의 정상화를 통한 모형 안정성 이해
4) 전통적인 예측 기본 방법론 이해 및 검증 데이터 셋 분리 이해
: Moving/Smoothing/ETS/ARIMA 등
[7주차 - 선형/비선형 시계열분석 및 자동화 적용(이론40%+실습60%)]
1) 선형/비선형 모델 적용 및 성능 확인하기
: 머신러닝과 시계열분석의 데이터와 활용목적 차이 확인
: 기존 베이스 분석싸이클 대비 시계열 분석싸이클의 분석목적 차이확인
2) 선형 시계열분석 적용 및 성능 확인
: ARIMA/SARIMA/SARIMAX/Automation 등
3) 비선형 시계열분석 적용 및 성능 확인
: Kalman Filter/Exponential Smoothing 등
[8주차 - 다변량 시계열분석으로 모형 확장 및 예측 설명 이해(이론60%+실습40%)]
1) 다변량 시계열 모델 차이 이해 및 성능 확인하기
: Vector Autoregressions(VAR)/Dynamic Vector Autoregressions(DVAR)/Vector Error Correction Models(VECM)
2) 다변량 시계열 모델을 통한 예측 설명력 이해 및 시뮬레이션하기
: 다변량 시계열 분석의 해석력 강점 확인 및 해석 방법 이해
: 변수들 간의 공적분(커플링/디커플링) 움직임 분석 (Cointegration)
: 변수별 입력 데이터 변경을 통한 미래 예측 시뮬레이션 분석 (Impulse Response Analysis)
: 변수들간의 인과관계 확인 및 시간에 따른 선행성/후행성 분석 (Granger Causality/Dynamic Effect Transmission)
: 에러 분해를 통한 예측결과의 변수의 영향력/설명력 분석 (Error Variance Decomposition)
Chapter 4. 신규 시계열 모델 구현 및 시계열분석 요약하기
[9주차 - 최종 시계열모델 구현을 통한 예측성능 최대화(이론10%+실습90%)]
1) 모델 성능 향상을 위해 가능한 접근이 무엇인지 고민해보기
2) 기존 예제 데이터를 활용하여 분석 성능 최대화하기
3) 시계열분석을 언제 끝내야 하는지 고민해보기
4) 선형/비선형/단변량/다변량 시계열 분석 요약 및 이해도 정리하기
5) 자신의 업무/데이터를 기반으로 시계열분석을 활용할 수 있는 가능성 논의해보기[7주차 - 기본 선형 시계열분석(이론80%+실습20%)]
1) 선형 모델 적용 및 성능 확인하기
: 머신러닝과 시계열분석의 데이터와 활용목적 차이 확인
: 기존 베이스 분석싸이클 대비 시계열 분석싸이클의 분석목적 차이확인
2) 선형 시계열분석 적용 및 성능 확인
: AR/MA/ARMA 등
[8주차 - 적분 선형 시계열분석 및 자동화(이론70%+실습30%)]
1) 적분 선형 시계열분석 적용
: ARIMA/SARIMA 등
2) 선형 시계열분석 알고리즘 정리 및 자동화
: Auto-ARIMA/SARIMAX Automation 등
Chapter 4. 고급 시계열 모형 이해 및 활용하기 (총1주)
[9주차 - 비선형 및 다변량 시계열분석으로 고급 알고리즘 이해(이론80%+실습20%)]
1) 비선형 시계열분석 적용 및 성능 확인
: Kalman Filter/Exponential Smoothing 등
2) 다변량 시계열 모델 차이 이해 및 성능 확인하기
: Vector Autoregressions(VAR)/Dynamic Vector Autoregressions(DVAR)/Vector Error Correction Models(VECM)
3) 다변량 시계열 모델을 통한 예측 설명력 이해 및 시뮬레이션하기
: 다변량 시계열 분석의 해석력 강점 확인 및 해석 방법 이해
: 변수들 간의 공적분(커플링/디커플링) 움직임 분석 (Cointegration)
: 변수별 입력 데이터 변경을 통한 미래 예측 시뮬레이션 분석 (Impulse Response Analysis)
: 변수들간의 인과관계 확인 및 시간에 따른 선행성/후행성 분석 (Granger Causality/Dynamic Effect Transmission)
: 에러 분해를 통한 예측결과의 변수의 영향력/설명력 분석 (Error Variance Decomposition)
Chapter 5. 신규 시계열 모델 구현 및 시계열분석 요약하기
[10주차 - 최종 시계열모델 구현을 통한 예측성능 최대화(이론10%+실습90%)]
1) 모델 성능 향상을 위해 가능한 접근이 무엇인지 고민해보기
2) 기존 예제 데이터를 활용하여 분석 성능 최대화하기
3) 시계열분석을 언제 끝내야 하는지 고민해보기
4) 선형/비선형/단변량/다변량 시계열 분석 요약 및 이해도 정리하기
5) 자신의 업무/데이터를 기반으로 시계열분석을 활용할 수 있는 가능성 논의해보기