시계열분석과 포트폴리오 최적화

김대한·2022년 2월 18일
1
post-thumbnail

시계열 분석이란?

시계열 분석이란, 어떤 현상에 대하여 과거에서부터 현재까지의 시간에 흐름에 따라 기록된 데이터를 바탕으로 미래의 변화에 대한 추세를 분석하는 방법입니다. 시간의 흐름을 고려한다는 점이 일반 분석과는 다르다고 할 수 있습니다. -

결국 과거의 데이터를 분석하여 미래를 예측하는 분석법이라 할 수 있다. 다른분석과의 차이는 '시간'을 고려했다는 것이 큰 차이점이다.

대표적인 모델로는

  • ARIMA
  • GARCH
  • VAR
  • RNN
  • LSTM

등등이 있다.

그중 가장 기본적인 개념의 모델이 AR(autoregressive) Model인데 자신의 바로 전 과거의 데이터를 활용하는 모델로 만약 내가 저녁 메뉴를 고를 때 '어제 불고기를 먹었으니 오늘은 초밥을 먹자' 라는 생각을 하는 것을 예시로 들 수 있다.

시계열은 분석할 때 중요한 것들 중 하나는 Trend와 Cycle을 고려해야한다는 것이다. 아무런 수정이 없는 날것의 원계열 데이터는 단순한 그래프의 등락만을 고려하는 것이 아닌 그래프의 규칙적인 Cycke(계절적, 기간적)과 시기에 따른 Trend(올림픽, 휴가철, 유행) 이외 특정 분야의 불규칙적인 term을 고려하여 데이터를 분석해야 한다.

예제

호주 당뇨병 치료약(anti-diabetic) 월별 Sales 데이터 사용 예정 https://raw.githubusercontent.com/selva86/datasets/master/a10.csv
모든 회사에 있는 월별 매출, 가입자, 등 실적 데이터에 활용

필요 라이브러리 import

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.seasonal import seasonal_decompose

데이터 불러오기 및 확인

df=pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/a10.csv', parse_dates=['date'], index_col='date') # parse_dates를 통해 데이터를 str에서 date로 파싱, index_col로 시계열 데이터 인덱스 지정
df.head()
df['value'].plot()

seasonal_decompose 적용 및 출력

result= seasonal_decompose(df, model='additive', two_sided=False)
result.plot()
plt.show()

시계열 데이터 분석

시계열 데이터 예측모델 제작

시계열 데이터 활용

profile
나는 고양이야 다만 개같을 뿐이지

0개의 댓글