전통적 시계열 분해법
이전 시계열 분해 소개 글에서도 언급했던 전통적 시계열 분해, Seasonal Decomposition은 단순히 계절 성분, 추세-주기 성분, 나머지 성분으로 성분을 나누며, 덧셈, 곱셈 분해 두 가지의 분해법으로 나눌 수 있었다.
전통적 시계열 분해법에서는 계절 성분이 계절 주기마다 항상 일정하다고 가정하고 진행한다.
전통적 시계열 분해법의 문제점
- Seasonal Decomposition이기 때문에 초기와 마지막 일부 데이터에 대해서 추세 추정값을 알 수 없다. 실제 Statsmodels 라이브러리에서 seasonal_decompose라는 함수를 사용할 때 계산에만 사용되는 앞과 뒤 일부 데이터에 대해서는 추세 추정값을 얻을 수 없다. (다만, 옵션에 two-sided로 설정 가능하긴 함)
예를 들어, Seasonal(period or freq)를 12로 주었을 때 앞 6개, 뒤 6개 데이터에 대한 추세 추정값을 측정할 수 없음. - 데이터에서 급격한 증가나 감소가 발생하는 부분이 있을 때 전통적 시계열 분해에서는 smoothing이 너무 강하게 일어난다. 추세-주기 측정법이 이를 많이 반영하지 못하게 하기 때문.
- 전통적 시계열 분해법은 위에서 언급했듯이 계절 성분이 계절 주기마다 반복된다, 즉, 일정하다라고 가정하는데 이는 일부 시계열 데이터에서는 맞지 않는 가정일 수 있다. 예를 들어, 시간에 따른 변화가 나타날 때는 단순히 seasonal 패턴만으로는 변화를 다루기 어렵다.
- 특이한 패턴이 갑자기 등장할 때 다루기 어렵다.
편리하게 사용될 수 있고 널리 알려진 분해법이기 때문에 아직까지도 많이 사용되고 있는 전통적 시계열 분해이지만 등장한지 100년이라는 시간이 넘어 더 좋은 분해법을 사용하지 않을 이유는 없다. 실제 여러 유명한 article이나 document를 조금만 찾아보면 classical 시계열 분해 사용을 지양하라는 문구를 많이 찾아볼 수 있다.
X11 분해
X11 분해법은 미국 인구조사와 캐나다 통계청에서 만든 시계열 분해법이다. X11은 분기별, 월별 데이터를 분해할 때 주로 사용되는 분해법이다.
X11은 전통적 시계열 분해법을 기반으로 가지면서도 전통적 시계열 분해법의 단점을 보완하기 위해 추가적인 단계와 특징을 포함하고 있다. X11은 앞과 뒤 데이터 양끝점에서도 추세-주기 측정값을 얻을 수 있고 계절 성분을 시간에 따라 느리게 변할 수 있게 가변이 가능하게 만들었다.
위의 이미지 두개를 보고 전통적 시계열 분해법과 X11 분해법을 비교해보자.
잘보면 전통적 시계열 분해법에서는 계절성(seasonal) 그래프가 원본 데이터가 급격하게 바뀌더라도 그대로 반복되는 것을 볼 수 있다. 하지만 X11 분해법에서는 아주 조금씩 계절 성분이 변화하는 것을 볼 수 있다.
또, 추세-주기(trend)성분을 보면 X11이 전통적 방법에서보다 좀 더 세밀하게 추세를 따라가는 것을 확인할 수 있다.
결과적으로 X11은 2009년즈음에 발생하는 급격한 전자 장비 지수 하락의 패턴을 좀 더 잘 잡아내고 좀 더 낮은 resid를 얻을 수 있다.
X11분해는 시간에 따라 계절 성분이 조금씩 변할 수 있도록 가변성을 주었기 때문에 위와 같이 부-시계열 그래프를 그려보면 시간에 따른 계절성 변화를 관찰할 수 있다.
SEATS 분해
SEATS 분해는 Seasonal Extraction in ARIMA Time Series의 약자로 ARIMA 모델에서 계절성을 추출하여 분해에 사용한 것이다. X11과 매우 비슷하며, X11 분해법과 마찬가지로 월별 또는 분기별 데이터에만 사용할 수 있다.
실제로 데이터 분해 결과를 보면 X11 분해와 비슷한 것을 볼 수 있다.
STL 분해
STL 분해는 X11과 SEATS 분해법과는 다르게 다양한 상황에서 사용할 수 있는 강력한 시계열 분해법이다. STL은 Seasonal and Trend Decomposition using Loess의 약자로 Loess를 사용하여 계절성분과 추세성분 분해를 진행한다는 뜻이 담겨 있다. STL 분해에서는 Loess라는 비선형 관계를 추정하기 위한 기법이 주목된다.
STL 분해법의 장점
- 어떤 종류의 계절성 데이터가 오더라도 다룰 수 있다.
- 계절 성분이 시간에 따라 변하더라도 사용자가 변화율을 조정하여 대응할 수 있다.
- 전통적 분해법의 문제점이었던 추세-주기의 과한 smoothing도 조정할 수 있어 해결했다.
- 데이터 중에서 이상치가 있는 부분은 추세-주기, 계절 성분 패턴에 영향을 주지 않도록 설정할 수도 있다.
STL 분해법의 단점
- 덧셈 분해만 지원한다.
STL 분해 원리
STL분해법은 Loess라는 기법을 중심으로 추세-주기와 계절성분을 구하게 된다. 이때 추세-주기 성분의 window, 계절성분의 window를 설정하여 sliding window처럼 각 점들을 훑고 지나가면서 smoothing된 line을 찾는다.
즉, window에 의해 점들이 나타내는 경향 선을 찾는다고 볼 수 있다. 그렇기 때문에 window의 사이즈가 작으면 line이 급격하게 변할 것이고 사이즈가 크면 좀 더 완만하게 변할 것이다. (window의 size는 관측하는 점들 개수)
이 window값들은 항상 홀수로 설정해야 한다고 한다.
window를 만들고 점들의 경향을 나타내는 선을 만들 때 다양한 함수를 사용할 수도 있다. 예를 들어, 오른쪽 처럼 비선형 함수를 사용하여 점들의 경향을 나타낼 수도 있는 것!
결과적으로 위와 같은 그래프로 점들의 경향을 나타내는 선들이 여러 개 생기면서 추세-주기, 계절 성분을 구하게 된다.
Reference
https://otexts.com/fppkr/decomposition.html
Chapter 6 시계열 분해 | Forecasting: Principles and Practice
2nd edition
otexts.com
https://post.naver.com/viewer/postView.nhn?volumeNo=28094462&memberNo=18071586
파이썬 - 시계열 데이터 분석
[BY 데이터브이] 시계열 데이터의 정의시계열 데이터는 일정한 시간 간격으로 순차적으로 기록된 관측 ...
m.post.naver.com
https://www.statsmodels.org/dev/generated/statsmodels.tsa.seasonal.seasonal_decompose.html
statsmodels.tsa.seasonal.seasonal_decompose — statsmodels
If set to > 0, the trend resulting from the convolution is linear least-squares extrapolated on both ends (or the single one if two_sided is False) considering this many (+1) closest points. If set to ‘freq’, use freq closest points. Setting this param
www.statsmodels.org
https://seunghan96.github.io/ts0/otext1/
(Forecasting ; Principles and Practice) 1.시계열 분해
seunghan96.github.io
https://m.blog.naver.com/sw4r/221026930294
LOESS를 이용한 Seasonal-Trend Decompostion방법!
LOESS(LOcal regrESSion)를 통한 STD에 대해서 알아보자. running mean을 이용하는 것은 가장...
blog.naver.com
'ML & DL > 시계열' 카테고리의 다른 글
[시계열 분해 (Time Series Decomposition)] (0) | 2022.10.22 |
---|