티스토리 뷰
[Pandas] 데이터 분석 실무 - 시계열 데이터 분석(자기상관, ACF, PACF, 백색잡음,계절성 분해, SARIMA)
sikaro 2024. 2. 15. 13:39목표
시계열 데이터의 성분을 설명할 수 있다.
시계열 데이터의 특성에 맞는 통계 분석을 할 수 있다.
시계열 분석 절차를 순서대로 설명할 수 있다.
시계열 데이터
순차적인 시간의 흐름에 따라 기록된 데이터를 의미
Y=T+S+C+R 또는 Y = T * S * C * R
추세(Trend) = 시간의 흐름에 따라 점진적이고 지속적인 변화(지속적인 증가)
계절성(Seasonality) = 특정 주기에 따라 일정한 패턴을 갖는 변화(여름에는 많고, 겨울에는 적고)
싸이클(Cycle) = 경제 또는 사회적 요인에 의한 변화(예 : 경기 변동)이며, 일정 주기가 없고 장기적인 변화
잔차(Residuals) = 설명할 수 없는 변화(추세, 계절성, 싸이클로 설명할 수 없는 부분을 담당한다)
책에 따라서 T+S+R로만 설명하는 곳도 있다.
싸이클의 경우 관측하기 힘들어 없는 경우도 있다.
추세, 계절성에 대해서 설명할 수 있고, 사이클로 설명할 수 있다.
그래서 궁극적인 목표는 R을 줄이는 것이다.
시계열 분석의 특징
현재 시점의 시계열 데이터를 분석하는 데 이전 시간의 값이 현재에도 영향을 끼칠 것이라는 가정하에 회귀분석을 진행한다.
선형회귀와는 다르게 독립적이지 않음
이전 값 1년이 현재 시점인 yt에 영향을 준다.
주가에서 독립적인 이벤트일 경우 = 200>58000>10 원
현실 : 200>210>205 원
이를 자기상관(Auto correlation)이라고 부른다.
시계열 분석 vs 단순 회귀
시계열 분석 | 단순 회귀 |
자기 상관 존재 | 자기 상관 없음 |
대표적으로 자기회귀, 이동평균, 자기회귀누적이동평균,벡터자기회귀모델 등이 존재 | 독립변수와 종속변수는 서로 다른 변수일 경우가 많음 |
현재 시점에 가까운 데이터일수록 서로 강한 관계를 맺는 경향 존재 | 선형 회귀로 시계열 데이터를 분석하려면 더 까다로운 가정 필요 (선형성 가정이 필요하다) |
집값을 예측하는데 단순회귀는 집값을 예측하는데 방 개수, 위치 이런식으로 독립 변수와 종속변수가 다르다.
시계열이면 전날의 가격이 후에도 반영
자기회귀 모델(AR)
AR 모델은 시계열의 미래 값이 과거 값에 기반한다는 모델
즉, 이전 값의 영향을 받는 것이 특징
AR(1) : yt = a + r1yt-1 + et
AR(2) : yt = a + r1yt-1 + r2yt-2 + et
즉, 어제시점(yt-1), 그제 시점 값의 영향을 받는다.
a는 상수항, et는 잔차
et는 설명할 수 없는 부분을 메꿔주는 역할이다.
AR(차수) 형태로 표현한다.
일반적으로 AR(p)의 차수 p는 자기상관함수(ACF)와 편자기상관함수(PACF) 그래프에 기반하여 결정한다.
대표적인 예씨는 주식 그래프
이동평균 모델(MA)
Moving average
전체적인 편향성을 다루는 모델
설명변수가 과거의 예측 오차로만 이루어져 있다.
설명변수가 최근 오차항으로만 구성되어 있는 특징
따라서 전체적인 편향성, 즉, 모델이 설명하지 못한 부분에 대해서만 고려하는 모델
현재 데이터가 이전 시점의 오차에 의해 설명이 되면 값이 변동을 일으킨 방향에 대해서만 영향을 받습니다.
불규칙 변동이 누적되어 전반적인 평균이 이동하는, 따라서 평균의 값이 바뀌는 모델을 만들 수가 있습니다.
MA(1) : yt = O1et-1
MA(1) : yt = O1et-1+O2et-2+et
et-1 = 어제 시점의 오차
et-2 = 그제 시점의 오차
이전 시점의 값에 기반하는 것인 아닌, 이전 시점의 예측 오차(et-1)에 가중치를 두어 미래의 값을 예측
평균과 분산 모두 파라미터 값에 상관없이 시간에 따라 일정한 값을 갖는 것이 특징.
그리고 강한 평균 회귀를 보여주며 예측이 평균으로 빠르게 수렴하는 특징이 있다.
이유는 잔차들이 Autocorrelation이 없는 백색 잡음(white nosie)로 이루어진 함수이기 떄문이다.
MA(q)로 나타낸다.
차수 q도 똑같이 자기상관함수(ACF)와 편자기상관함수(PACF) 그래프에 기반하여 결정한다.
ARIMA 모델
AR과 MA를 동시에 고려하고, 누적(I(으로 추세까지 고려한 모델
'자귀회귀 누적 이동평균 모델'이라고도 불린다.
차분이 주는 효과 : 시계열의 수준에서 나타나는 변화를 제거한다.
위로 올라가는 계절성 현태의 그래프라면 거의 선 수준으로 만들어준다.
위로 올라가는 계절성 그래프는 시점이 올라갈수록 평균이 각기 다르다.
계절성이나 추세를 제거하는 데 효과적인 방법이 차분이다.
ARIMA(p,d,q) = AR(p) + I(d) + MA(q)
d는 누적의 차수
>AR이나 MA 모델 혼자로는 역동성을 설명하기엔 부족한 경우가 있음
->ARMA 모델로 결합
>I(d)는 차분이기 떄문에 그냥 d번만큼 차분을 하면 된다.
> 정상성 만족을 위해 차분이 가미되면서 ARIMA가 됨
정상성
정상성을 나타내는 시계열은 관측치가 시간과 무관하여야 한다.
(즉 시간에 상관없이 일정한 평균과 분산을 갖고 있어야 함)
시간이 지날 때마다 우상향하는 추세가 있다면 가장 낮을 떄의 평균과 높을 떄의 평균이 다르다.
정상성이 가미된 모델(차분한 모델)이라면 시간에 따라 x축 선을 따라서 그려진다(음파 그래프 생각하면 된다)
변동은 있을지언정 시간에 따라 평균의 값은 일정하다.
분산도 시간에 구애받지 않고 동일한 수준으로 나타나야 한다.
즉, 시간이 지날수록 위 아래의 폭이 커지지 않아야 한다.
원계열을 자기 상관 그래프(ACF)를 그리면 아래로 내려가는 그래프이지만,
반면에 차분 ACF그래프는 각각의 변화만을 설명한다.
ACF는 corr(yt,yt) 상관계수를 나타내는 것
시점이 옮기면서 범위 안으로 빠르게 수렴한다.
만약 차분을 하면 , corr값이 자기 자신을 제외하고는 거의 0이다.
즉, 거의 관계가 없음이 보여진다.
이런 경우에는 정상성이 있다고 볼 수 있다.
하지만 정상성 체크를 위해선 윤곽스 검증이라던가 객관적 수치를 나타내는 걸 봐야 한다.
시계열 분석 순서
정상성은 시계열 분석을 하면서 꾸준하게 확인해주어야 한다.
원계열 시도표 확인 -> 추세 & 계절성 분리 -> 잔차 확인 -> 잔차가 백색잡음인가? NO -> 불규칙 변동 분리 -> 다시 잔차확인
잔차가 백색 잡음인가? Yes -> 모델 선택 -> 예측 결과 확인 및 해석
백색 잡음이 아니라면 추가적으로 어떤 것을 분리할 수 있는지 고려하는 부분이 불규칙 변동 분리
(예, 싸이클, 홀리데이 이펙트)
싸이클 = 비지니스 사이클, 홀리데이 (월드럽, 올림픽, 추석)
그 부분을 다시 한번 분리하여 백색 잡음으로 만든다.
백색 잡음의 사이즈가 점점 줄어들게 만들어야 한다.
잔차를 확인하고 백색 잡음이 아니라면 불규칙 패턴을 파악하고 백색 잡음이 되도록, 그리고 백색 잡음의 사이즈가 점점 줄어들도록 하는 것이 주요하다.