Python/Time Series with Python
TimeSeries with Python _ ETS Model
MINSU KANG
2019. 12. 25. 19:34
지금까지는 시계열 데이터를 분석하기 위해 Pandas 모듈의 사용법을 익혀왔다면, 이제부터가 본격적으로 시계열의 대한 포스팅이라 할 수 있다.
보통 시계열 데이터라는것은 일반적으로 시간의 따라 어떠한 값이 나타나져있는 값(예를 들어 내가 살아온 인생동안의 몸무게)라고 할 수 있다. 이러한 시계열데이터는 크게 3가지로 구분할 수 있는데, 첫째가 Trend(추세) 두번째가 Seasonal(계절성) 그리고 세번째가 추세와 계절성으로 설명할 수 없는 Error이다.
위의 그림을 살펴봐도 전반적으로 증가하는 Trend(추세)를 띄고 있으며, 연초에는 감소하다 연말에 증가하는 계절성을 가지고 있다는 것을 알 수 있다.
시계열이란 학문은 일반적인 시계열데이터의 추세와 계절성을 제거하고, 나머지 오류가 어떠한 모형을 나타내고 있는지 분석하는 학문인것 같다. 그러기에 추세와 계절성으로 설명할 수 없는 Error마저 모형으로 설명할 수 있다면, 그 시계열이야 말로 진정 예측 가능한 모형이지 않을까 한다.
이번 포스팅에서 설명하고자 하는 ETS Model도 데이터를 이렇게 세 분류(Error, Trend, Seasonal)로 나타내는 모형으로, 파이썬에서 간다한게 할 수 있다.
airline = pd.read_csv(path, index_col = 'Month', parse_dates=True)
airline = airline.dropna()
airline.plot()
from statsmodels.tsa.seasonal import seasonal_decompose
result = seasonal_decompose(airline['Thousands of Passengers'], model = 'multiplicative')
result.trend
result.seasonal
result.plot()
이렇게 파이썬의 seasonal_decompose 메소드를 이용하면 시계열 데이터의 3가지 분석을 할 수 있고, 각 분석값을 시계열로 또한 추출할 수 있다.