시계열분석 9

미국 근원 소비자물가지수(Core Consumer Price Index) 변화율 추정 - Python 활용

1. Core CPI 개요 및 BIS API 사용법 근원 소비자물가지수는 기존 소비자물가지수(CPI)에서 외부 공급 충격 요인이 될 수 있는 식품과 에너지 부문을 제외한 지수다. 미국의 월별 소비자 가격 변동을 보여주는 대표 지수이므로 글로벌 인플레이션 수준을 가늠하고 연준의 금리 정책을 전망하는 단서가 된다. 미국 노동통계국이 운영하는 U.S. BUREAU OF LABOR STATISTICS에서는 CPI를 포함해 여러 글로벌 경제 지표를 API로 제공하고 있으며 파이썬 requests 모듈로 간단히 필요한 데이터를 호출할 수 있다. 중요한 부분은 requests.post()의 인자로 던져주는 data다. 지표 코드(seriesid)와 수집할 기간(startyear, endyear)을 json 형식으로 ..

파이썬을 활용한 애플 주가수익률 예측 분석 - (2). 변수간 상관분석 및 예측변수 정상성 검정

본격적으로 모델링을 수행하기 전에 변수간 상관관계가 어떤지, 예측변수의 정상성이 확보되었는지 확인할 필요가 있다. 특정 설명변수가 예측변수와 상관관계가 강하거나 특정 설명변수 간 상관관계가 강하다면 해당 변수를 유심히 살펴야 한다. 전자의 경우 예측변수에 후행하는 것은 아닌지, 후자의 경우 동일한 외생변수를 갖거나 둘 사이에 상호 인과성이 존재하는 것은 아닌지 등을 확인하고, 해당 변수를 소거하거나 집계를 통해 시점 혹은 분포를 변환해줘야 한다. 또한, 예측변수 내에 설명변수들로 하여금 예측변수를 추정하기 어렵도록 하는 특정 분포(추세, 계절성)의 존재 여부 역시 확인해야 한다. 예측변수 자체가 시간에 따라 그 분포(평균, 표준편차)를 달리한다면 단일변수를 통한 회귀분석은 물론 다중변수 모델링은 제대로 ..

파이썬을 활용한 애플 주가수익률 예측 분석 - (1). 데이터 확인 및 예측 안정성 확보

본 시리즈는 파이썬으로 시계열 자기상관 특성 및 마켓, 안전자산, 대체자산 등과의 동시간대 연관성을 분석하고 Apple Inc(AAPL) 주가를 예측한다. 튜토리얼 작성을 위해 금융전략을 위한 머신러닝(한빛미디어), 실전 시계열 분석(한빛미디어) 외 야후파이낸스 및 FRED API 공식문서 등을 참고하였으며 작업 과정에서 추가로 참고하게 되는 자료들은 이후 각 편 내에 서술하도록 하겠다. 1편에서는 간단히 데이터를 불러와 누락된 분포를 살피고, 시계열 기간을 동일하게 맞춘다. 그 다음, 예측에 필요한 데이터를 추출하기 위한 시계열 분석 작업을 간단히 수행하도록 한다. Step 1. Import Packages numpy와 pandas를 포함해 seaborn, matplotlib은 데이터 분석을 위해 언제..

주가 데이터 분석을 위한 로그 변환의 의미, ln(1+return)과 return의 실질적 근사(+파이썬 코드)

주가 데이터를 그대로 분석하기에는 여러 가지 제약이 있다. 단일 주가를 분석할 때에는 그 자체로 정상성이 확보되어 있지 않다는 점, 여러 주가를 비교분석할 때에는 각 종목마다 분포(스케일)가 다르다는 점이 대표적이다. 따라서 일반적으로 금융 시장 매크로를 분석하거나 머신러닝 모델을 구축할 때 price가 아닌 return을 활용하는 경우가 많다. 더 나아가 논문 수식이나 자료를 찾다 보면 단순히 net return(이하 return)을 쓰기보다 로그를 취한 ln(1+return)이 빈번하게 등장한다. 직관적으로 ln(1+return)은 return과 (거의) 같다. 정확히 말하면 로그 수익률 ln(1+return)은 연속복리 개념을 가정하므로 실제로는 수익률 단위가 분, 초, 밀리세컨드 이하로 내려가야만..

금융 분석을 위한 파이썬 프로그래밍 - 보충자료 01. 파이썬 기초 문법(자료형, Data type)

파이썬에는 여러 가지 자료형, 즉 데이터 타입이 존재합니다. 그중에서도 우리는 단일 데이터를 표현해 주는 int, float, bool, str(엄밀히 말하면 연결된 char입니다만 char 자료형은 현 단계에서 접할 일이 많지 않습니다. 그래서 문자열 str을 단일 데이터 표현형으로 대체합니다.)과 다중 데이터를 표현해 주는 list, dict, set, 그리고 마지막으로 벡터 및 행렬 표현을 위한 numpy, pandas까지 빠르게 다뤄보도록 하겠습니다. ​ Step 1. 단일 데이터 표현 1-1. int int 자료형은 정수를 표현할 수 있습니다. 변수에 1이나 2와 같은 정수를 담아주면 파이썬은 해당 변수의 자료형을 int로 인식합니다. print() 함수로 변수가 가리키는 데이터를 출력할 수 있..

금융 분석을 위한 파이썬 프로그래밍 - 04. 머신러닝 예측 모델링

본 장에서는 기계학습 방법론에 대해 간단히 알아본 다음, 파이썬 패키지로 제공되는 주요 기계학습 알고리즘을 사용해 보도록 하겠습니다. Step 1. 데이터 불러오기 이번에도 역시 테슬라 주가를 불러오는 것부터 시작합니다. ​ Step 2. 예측값 정의 2-1. 기계학습 기계학습은 함수를 만드는 방식 중 하나입니다. y=ax+b라는 함수가 있습니다. 만약, 출력값이 입력값 대비 항상 2배가 되어야 하는 함수를 구해야 한다면 단순하게 a=2, b=0으로 설정하면 됩니다. 하지만 출력값이 입력값 대비 언제는 2배가 될 수도 있지만, 경우에 따라 1.5배가 되거나 어쩌면 -2배도 될 수도 있다면 함수를 어떻게 정의해야 할까요? 이때는 확률적 방법론을 사용해야 합니다. 경우에 따라 확률적으로 1.5배가 되거나 -..

금융 분석을 위한 파이썬 프로그래밍 - 03. 회귀 분석, 정규성 검정, 상관 분석, 쌍체 검정

Step 1. 데이터 불러오기 이제 데이터 불러오는 작업은 익숙해졌을 것입니다. 지난 글과 동일하게 야후파이낸스 패키지로 2010년 상장일부터 최근까지의 테슬라 주가를 가져오겠습니다. (작성시점 : 2022-07) ​ Step 2. 데이터 분할 우선, 전체 기간의 데이터(종가)를 확인하겠습니다. 데이터를 봤을 때, 2020년 전후로 움직임에 많은 차이가 있는 것 같습니다. 2020년 이전에는 매우 잔잔했던 반면 그 이후는 급등과 급락을 반복하고 있습니다. 최근 2년간 테슬라 주가는 유례없는 움직임을 보이고 있습니다. 데이터를 분석할 때는 분석하고자 하는 대상이 분명해야 합니다. 여기서는 '2020년 이전과 이후, 테슬라 주가 추세는 통계적으로 차이가 있는가?'를 확인하고자 합니다. 눈으로 봤을 때는 당연..

금융 분석을 위한 파이썬 프로그래밍 - 02. 차트 시각화, 시계열 분해, 자기상관분석

Step 1. 데이터 불러오기 이제 데이터 불러오는 것은 어렵지 않습니다. yfinance 라이브러리를 사용해 테슬라(TSLA) 주가 정보를 가져오겠습니다. stocks 인스턴스를 생성했고, 객체 내에 내장된 history() 함수로 2010년부터 최근 데이터까지 가져왔습니다. (작성 시점: 2022-07) ​ Step 2. 차트 시각화 파이썬에서 사용하는 대표적인 시각화 라이브러리는 matplotlib과 seaborn이 있습니다. 여기서는 matplotlib을 사용해 차트를 그리는 법을 배워보겠습니다. 참고로 seaborn은 matplotlib을 기반으로 더 다양한 색상과 통계 차트를 제공하고 있으니, 검색해 보시길 권장 드립니다. 처음 보는 라이브러리를 사용하게 되면 어떻게 구현되어 있는지 깃허브 등..

과거 주가 데이터로 미래 주가를 예측할 수 있을까? - 파이썬 시계열 패턴 검색

Step 0. 패턴 검색 이번에는 현재 차트와 유사한 차트를 찾아서 매매에 활용하는 패턴 검색을 파이썬으로 구현해보자. 패턴 검색은 과거 주가에서 현재 주가와 유사한 패턴을 관측한 다음, 과거 주가 이후의 흐름을 확인하는 것을 통해 앞으로의 주가를 예상해보는 방식이다. Step 1. 코스피 종가 가져오기 2010년부터 현재까지의 데이터를 스크리닝한다. 즉, 유사한 패턴을 관측하는 가장 먼 시점은 2010년이다. Step 2. 기준 구간 확인 종가만 추출해서 검색하고자 하는 현재 주가의 패턴을 확인한다. 여기서 현재 주가는 6월 2일까지만 확인한다. 마지막에 6월 2일 이후 주가를 그려보면서 패턴 검색 방식의 예측을 검증해보기 위함이다. 코스피는 올해 1월에 급락 후 횡보하는 모습을 보인다. 이와 유사한 ..

1