앞으로 게시할 포스팅은 주로 순천향대학교 빅데이터공학과 김영민 교수님의 '시계열 분석' 수업자료에 기반을 두었으며 포스팅 내용의 출처는 김영민 교수님의 수업자료에 있음을 우선적으로 알려드립니다.
데이터사이언스 분야에서도 데이터분석가가 되기 위해서는 통계적인 지식이 필수적이다. 통계라는 것은 시간과 무조건적으로 관련되어 있으며 이는 곧 시계열 자료 즉, Time-Series Data와도 밀접하게 연관되어 있음을 의미하기도 한다. 학교에서 '시계열 분석' 전공과목을 들으면서 이 학습시간을 효율적으로, 그리고 나의 머릿속에 오래도록 남기게 하기 위해서 시계열 분석 관련 포스팅을 남기려 한다. 블로그에서는 주로 이론적인 면을 다루며 R을 사용하여 시계열 분석을 실습해보는 코드는 해당 Github의 레포지토리에 남기려고 한다.
#Github link : https://github.com/young-hun-jo/TimeSeries_Unstructured_data
이제 시작해보자. 첫 포스팅은 어려운 이론적인 내용이라기보다 시계열 데이터의 큰 특징과 모형을 알아본다. 나무를 보기 전에 숲을 먼저 보는 것과 같은 느낌이라고 생각하고 들어가자. 목차는 다음과 같다.
1. 시계열 데이터 특징과 분석의 목적
2. 시계열 변동 요인과 모형
3. 시계열 자료의 예측방법
4. 시계열 자료의 예측평가와 기준
1. 시계열 데이터 특징과 분석의 목적
시계열 데이터란, 시간을 통해 순차적으로 발생한 관측치의 집합이라고 할 수 있다. 이렇게 순차적으로 발생한 연속적인 관측치는 서로 관련이 있다. 하지만 하나 알아두어야 할 점이 있다. 바로,
"이 때 시계열은 반드시 고정된(fixed) 시간 구간의 관측치어야 한다."
즉, 시계열이 불규칙적인 시간 구간이여서는 안된다는 것이다. 어떤 구간은 Daily 구간이였다가, 어떤 구간은 Monthly, 또 어떤 구간은 Yearly... 이렇게 다양한 구간이 동시에 존재해서는 안된다는 것이다.
그리고 시계열 데이터에 크게 두 가지로 나눌 수 있다.
-
정상시계열(Stationary) : 평균과 표준편차가 일정하다는 조건이 선행되야 분석이 가능하다. 대표적인 예시로는 ARIMA모델 이 있다.
-
비정상시계열 : 차분이나 log함수를 씌워 정상시계열로 변환 후 분석을 해야 한다.
그렇다면 이러한 시계열 데이터를 대체 왜 분석할까? 그 목적은 무엇일까? 결론부터 말하면 "미래 값을 예측하기 위해"서이다. 즉, 시계열이 갖고 있는 법칙성을 발견해 이를 모형화하고, 이 추정된 모형을 통해서 미래값을 예측(forecast)하기 위해 시계열 데이터를 분석하는 것이다.
참고로 한 가지 추가로 알아두어야 할 점은 시계열 구간을 작은 범위에서 큰 구간으로는 변환할 수 있지만 반대로는 불가능하다. 밑의 예시를 보고 이해하자.
-
'Monthly' -> 'Quarterly -> 'Yearly' ( 변환 가능! )
-
'Yearly' -> 'Quarterly' -> 'Monthly' ( 변환 불가능! )
2. 시계열 변동요인과 모형
세상에 존재하는 데이터가 우리가 가장 좋아하는 형태로 안정적이고 이쁜(?) 데이터면 얼마나 좋을까!? 하지만 현실은 그렇지 못하다. 다양한 또는 괴상한 변동이 존재하는 시계열 데이터가 있기 마련이다. 따라서 일정한 패턴에 따라 정의할 수 있는 시계열 변동 모형을 알아보자.
-
추세(Trend) 변동 : 상승과 하락이 있는 변동
-
계절(Season) 변동 : 1년안에 월, 분기로 반복되는 패턴
-
순환(Circulation) 변동 : 경기변동이라고도 하며, 5년, 10년처럼 장기간 동안 간격을 두고 상승, 하락이 주기적으로 반복되는 패턴을 말한다. 이 때는 데이터가 크며 추세변동과 결합해 주로 분석을 진행
-
불규칙(irregular) 변동 : 1,2,3번 변동으로는 설명할 수 없는 패턴. 모형은 두가지로 나누어진다.
-
승법(곱셈) 모형 : 추세*계절*순환*불규칙 변동
-
가법(덧셈) 모형 : 추세+계절+순환+불규칙 변동
-
3. 시계열 자료의 예측방법
다음은 주어진 시계열 자료를 이용해서 미래의 값을 예측하는 방법이다. 크게 양적, 질적 예측방법이 존재한다.
-
양적예측방법 : 과거에 대한 정보(양적 자료)를 이용해 예측에 필요한 경험적 법칙을 추정해 예측하는 방법이다. 쉽게 말해서 "과거의 패턴은 A였으니 미래에서도 A패턴이 지속될거야" 라고 예측하는 것이다. 양적예측방법에는 또 두 가지로 나뉘는데,
-
평활법과 분해법 : 주어진 데이터를 잘 설명하는 것에 초점을 맞춘 방법이라 할 수 있다.
-
확률적 시계열 분석 : ARIMA(시간영역), Fourier 분석(주파수 영역) 총 2가지가 존재한다.
-
-
질적예측방법 : 미래 예측을 위해 전문가들의 주관적 견해를 사용한다. 또는 과거의 정보가 없거나 불충분한 경우에 사용을 한다. 대표적인 방법으로는 델파이 기법과, 시나리오 기법이 있다.
4. 시계열 자료의 예측평가와 기준
이제 양적 또는 질적 예측방법을 통해서 미래의 값을 예측했을 것이다. 그렇다면 이렇게 예측한 값이 적절한지 아닌지를 판단해야 한다. 우선 평가하는 방법은 크게 두 가지가 있다.
위 그림을 보면서 2가지의 평가방법이 있다는 것을 알아두자. 첫 번째 방법은 사전평가와 모형추정을 같이 진행한다는 점, 두 번째 방법은 모형추정을 먼저하고 사전평가를 시행한다는 점이 큰 차이점이다. 그런데 필기에도 써놓았듯이 평가하는 방법이 머신러닝 모델의 성능을 평가할 때와 매우 비슷하다. 특히 두 번째 방법에서 사전평가를 중간단계에 둔 점은 머신러닝 모델의 성능을 중간평가하는 역할을 하는 Validation Data와 매우 비슷하다.
다음은 예측평가의 기준이다. 예측평가는 기본적으로 error값을 기준으로 한다. error란, 실제값에서 예측값을 뺀 차이이다.
예측평가 기준은 크게 5가지가 있으며 눈여겨보고 넘어가자. 이 중에서 가장 많이 쓰이는 기준은 평균 제곱근 오차인 RMSE 이다.
-
평균 제곱 오차(MSE)
-
평균 제곱근 오차(RMSE)
-
평균 절대 오차(MAE)
-
평균 절대 백분비 오차(MAPE)
-
타일의 불일치계수
'Data Science > 시계열(Time-Series) 분석' 카테고리의 다른 글
AR(AutoRegressive), MA(Moving Average), ARMA Models (0) | 2020.07.14 |
---|---|
Box-Jenkins 방법론과 ARIMA 모델의 기초 (0) | 2020.07.14 |
시계열의 분해법(Time-series decomposition) (0) | 2020.05.28 |
ETS 모델과 벤치마크로 미래의 값 예측하기 (0) | 2020.05.28 |
시계열 데이터(Time-Series) 분석, 예측방법 (0) | 2020.04.30 |