시계열분석을 하기 위해서는 정상성(Stationarity)을 만족해야 한다.
정상성이란 '시계열의 특징이 관측된 시간과 무관함'을 의미.
ex) 7일전~1일전까지의 시계열 특징이 오늘~6일후와 동일하지 않다.
정상성은 크게 강정상성
, 약정상성
으로 나뉜다.
- 강정상성
을 만족하는 경우는 대부분 약정상성
을 만족한다.
강정상성
이란 기저를 이루는 확률분포가 언제가 같아야한다는 것이다약정상성
이다.정상성의 조건
- 평균이 일정
- 분산이 일정
- 두 시점 사이의 자기공분산(Autocovariance)은 시차(time lag)에만 의존
* 자기공분산 = 서로 다른 2개의 시간에 대한 변수 값의 공분산
ex) 평균은 일정하지 않으나, 분산이 일정한 경우
ex2) 평균도 일정하지 않고 분산도 일정하지 않은 경우
💡하지만, 생각보다 약정상성을 만족하는 경우도 많지 않다.
정상성
을 만족한다고 볼 수 없다.비정상성 시계열의 특징
- 추세가 있음
- 계절성이 있음
- 분산에 변동이 있음
💡샘플 예시처럼 시각적으로 분류가 가능한 경우도 있겠지만, 실제 데이터 상에서는 육안으로 확인하기 '애매'할 경우가 분명 존재할 것이다.
정상성 만족 기준을 판단하는 방법
- ACF plot을 통한 판단
- ACF plot이 규칙성없이 있는 경우 '정상성'을 만족시킨다고 할 수 있음.- 검정을 통한 판단 (이 포스팅에서는 검정방법에 대한 자세한 내용은 다루지 않겠다)
- KPSS 검정
- ADF 검정
ACF가 감소하는 패턴이 보인다 -> 비정상성 시계열
자기상관계수 (ACF. Autocorrelation Coefficient)
- 시점 t와 시점 (t+k)의 (k기간 떨어진 값)들의 상관계수
= 시점 t에서의 값과 (t+k)시점에서의 값이 얼마나 상관있는지를 나타낸 값
부분 자기상관계수 (PACF.partial autocorrelation coefficient)
서로 다른 두 지점 사이의 관계를 분석할 때 중간에 있는 값들의 영향을 제외시킨 상관관계 개념
== 시점 t에서의 값과 (t+k)시점에서의 값이 얼마나 상관있는지를 시점 사이의 간접적인 상관성을 제외하고 나타낸 값
평균이 일정하지 않은 시계열은 차분(differencing)을 통해, 분산이 일정하지 않은 경우는 변환(transformation)을 통해 정상화할 수 있다.
회귀분석(regression)
- residual을 통해 추세와 계절성 제거
평활법(smoothing)
차분(differencing)
차분?
- 현시점 자료에서 전 시점 자료를 빼는 것을 의미
시간 t일 때의 값 - 시간 (t-1)일 때의 값
정상성(Stationary)을 만드는 방법 중 하나
차분에 대해서는 뒷부분 ARIMA파트에서 다시 다룬다.
*자기상관성
x가 y의 시점 lag된 값들로 구성됨(과거값)
자기 상관성을 시계열 모형으로 구성한 것
일반적인 multiple regression과는 다른 접근이 필요. independence assumption이 위배되므로 최소제곱법은 사용x
선형회귀를 사용하지 않는 이유
- 선형회귀 분석은 독립항등분포 데이터가 있음을 가정
시계열데이터를 최소제곱선형회귀 모델에 적용해도 되는 경우
1) 시계열의 행동에 대한 가정
2) 오차에 대한 가정
- 특정 시기의 오차는 시기에 관련없음. 오차에 대한 자기 상관함수 그래프는 패턴이 없음.
- 오차의 분산은 시간으로부처 독립적
이러한 가정이 성립된다면 보통최소제곱회귀는 주어진 입력에 대한 계수의 비편향추정량이 됨.
x가 y의 시점 lag된 값의 error들로 구성됨(과거 예측오차)
시간이 지날수록 관측치의 평균값이 지속적으로 증가하거나 감소하는 경향을 표현한 시계열 모형
현시점의 자료를 유한한 개수의 오차항(백색잡음)의 결합으로 표현하기 때문에 언제나 정상성 만족
AR모형과 반대로 ACF에서 절단점을 갖고, PACF가 빠르게 감소
ACF를 통해 차수 결정(AIC가 작은 모형으로 결정)
arima 개념을 잘 이해하기 위해서는 ar,ma,arma와의 관계를 생각할 줄 알아야 한다.
⭐⭐⭐ ar,ma,arma 모델을 적용하기 위해서는 데이터가 정상성을 만족해야 한다.
하지만 실생활에서 정상성을 만족하는 케이스는 많지 않으므로, 차분 등을 통해 정상성을 만족하도록 바꿔주어야 한다.
이처럼 차분 후 AR / MA / ARMA 모델로 적용하는 과정을 'ARIMA'라고 하는 것이다.
EX) 정상성을 만족하지 않는 경우 1차/2차 차분을 통해 정상성을 만족시켜준다.
차분한 뒤 ACF를 보면서 정상성을 만족하는지 확인한다. 규칙성이 없는 것고 급증하는 경우가 정상성을 만족하는 것이다.
백색잡음 시계열?
case
lag=0일 때는 신경 x
급증/감 -> 정상성 만족
시계열데이터를 차분한 뒤 ACF, PACF를 봤을 때 ACF가 q시차 이후 0으로 절단되고, PACF가 지수적으로 감소하거나 소멸하는 sin함수 형태를 보이면 -> MA모델을 선택한다.
그런데, 해석에 있어서 주관적일 수 있음
MA(1) 모델이 '우선은' 적합하다고 추정
residual의 3시그마 limit
실질적으로는 d를 먼저 1 or 2로 결정하고
p= 1~20, q=1~20의 범위에서 autoarima
AIC가 가장 작은 조합을 찾는다.
A. 일반화 선형 모델(GLM)은 데이터를 시간순으로 고려할 것을 요구하지 않는다.
이유
GLM?
GLM의 설계와 가정은 본질적으로 데이터의 연대순 순서를 설명하지 않고 대신 독립성을 가정하고 시간적 종속성을 직접 모델링하지 않는 방식으로 변수 간의 관계에 중점을 둔다.
통계적 독립성: GLM은 많은 기존 통계 모델과 마찬가지로 관측값이 서로 독립적이라고 가정한다. 이는 한 관찰의 결과가 다른 관찰의 결과에 의존하지 않는다는 의미다. 시계열 데이터에서는 관측치가 시간에 따라 상관될 수 있기 때문에 이 가정이 위반되는 경우가 많다(예: 오늘 매출이 어제 매출에 영향을 받을 수 있음).
모델 구조: GLM은 데이터 포인트의 순서나 순서를 명시적으로 통합하지 않고 종속변수와 하나 이상의 독립변수 간의 관계를 모델링하도록 설계되었습니다. 모델은 데이터 포인트가 표시되는 순서에 관계없이 종속변수의 관측값과 예측값 간의 차이를 최소화하는 독립변수에 대한 계수를 추정하는 데 중점을 둡니다.
시간적 구성 요소 부족: 시계열 모델(예: ARIMA, 지수 평활화, 딥 러닝의 LSTM 네트워크)과 달리 GLM에는 추세, 계절성 또는 자기 상관을 직접 모델링하는 구성 요소가 포함되어 있지 않다.
시간적 순서와 자기 상관이 중요한 요소인 시계열 예측의 경우 일반적으로 다른 모델이 더 적합하다. 그러나 과거 데이터를 독립변수를 활용하는 것을 통해 GLM모델에서도 시계열의 특징을 반영할 수 있다.
A. 딥러닝모델을 사용할 때에는 정상성을 요구하지 않는다. 그러나 딥러닝의 경우 입력의 모든 입력 채널의 값이 -1과 1사이로 조정될 때 가장 잘 동작하여 관련한 전처리작업은 필요하다.
참고)
- pandas의 resample 메서드로 업샘플링과 다운샘플링 기능 구현
- shift() : 이전일자의 데이터 값 가져옴
- tslm() : 시계열 데이터에 대한 쉬운 선형회귀 방법론 제공