❗️블로그 옮김: https://www.taemobang.com
방태모
안녕하세요, 제 블로그에 오신 것을 환영합니다. 통계학을 전공으로 학부, 석사를 졸업했습니다. 현재는 가천대 길병원 G-ABC에서 Data Science를 하고있습니다. 통계학, 시계열, 통계적학습과 기계
www.taemobang.com
※ prerequisite
단일 시계열 자료에 대한 예측의 대표적인 통계적 모형이라고 할 수 있는 ARIMA 모형을 소개한다. 앞선 글에서 본 평활법과 달리 시계열 자료를 다루는 통계적 모형에는 가정이 필요로 되며, 그에따라 일반적 자료가 아닌 시계열 자료에 대해 통계적 모델링을 이해하기 위해서는 기초적인 개념에 대한 이해가 필요하다. ARIMA 모형을 소개하기 전에 갖고 있어야할 기본적 개념에 대해 먼저 알아보자.
1. 기초
(1) 시계열 분석(Time series analysis)
회귀 분석에서 종종 한 개 또는 여러 개의 시계열의 현재 값으로 다른 시계열의 값을 예측하기도 하는데, 이러한 형태의 분석을 "시계열 분석"이라 부르진 않는다. 시계열 분석은 단일 시계열 또는 서로 다른 시점에서의 여러개의 종속된 시계열의 값을 비교하는데 초점을 둔다(e.g. 시계열 분석의 예측 모형 중 하나가 ARIMA 모형).
(2) 시계열 모형의 확률 변수
임의의 시점 $t$에서 시계열을 $Y_t$로 표현한다고 하자. 이를 하나의 확률변수(Random variables)라 하면, 실제로 관측된 자료는 확률변수 $Y_t$의 모집단으로부터 각 시점에서 얻어진 표본으로 볼 수 있다. 이를 실현값(Realizations)이라 한다. 일반적으로 이 확률변수들의 집합 $\left \{ Y_t,\; t = 0, \pm 1, \pm 2, \cdots \right \}$를 확률과정(Stochastic process)라 하고, 특히 이 $t$가 시간을 나타낼 때 우리는 이를 "시계열 과정" 또는 "시계열 모형"이라고 한다. 정리하면 시계열 모형에서 $Y_t$는 시점 $t$의 확률변수이며 $y_t$는 그 실현값이다.
(3) 시계열 자료 분석 시 우선적으로 고려해야할 사항
○ 추세(Trend)
○ 계절성(Seasonality)
○ 이상치(Outliers)
○ 계절 요인과는 무관한 장기 순환성(Long-run cycle or period)
○ 시간에 따라 분산이 일정한가?
○ 평균이나 분산에 급작스러운 변화가 없는가?
2. ARIMA 모형
ARIMA 모형은 대표적인 통계적 시계열 예측 모형으로, 현재값을 과거값과 과거 예측오차를 통해 설명한다. 이 모형을 적합하려면 시계열 $Y_t$가 정상성 조건을 만족하는 정상 시계열(Stationary series)이여야 한다(정확하게는 약정상성, weak stationarity). 또한, 주어진 시계열 자료에 적합한 ARIMA($p, d, q$)를 결정하는 절차는 Box-Jenkins method를 따르며, ACF(Autocorrelation function : 자기상관함수)로 시계열의 특성을 파악하고 적절한 차수의 ARIMA 모형을 선택한다.
ARIMA 모형에 대한 설명 전에 먼저, 정상성과 ACF에 대해 정리하자.
(1) 정상성(Stationary)
먼저 정상성이라는 조건이 필요한 이유에 대해 한번 생각해보자. 이 생각이 정답이라는 것은 아니다. 우리는 시간의 순서에 따라 기록되지 않은 일반적인 자료들을 분석할 때, 확률표본(Random samples)들에 i.i.d(All samples are independent and identically distributed) 가정을 한다. 시간에 종속되어있는 시계열은 상식적으로 i.i.d 가정을 할 수 없다. 그래서 이러한 시계열 자료에 대해 예측 모형을 적합하고 통계적 검정을 하기 위해서는 분석을 단순화 시킬 수 있는 새로운 가정이 필요하다. 이중 가장 중요한 것이 시계열 모형의 확률적 성질이 시간에 따라 변하지 않는다고 가정하는 정상성 가정이다.
ARIMA 모형은 해당 시계열이 약정상성(Weak stationarity)를 만족한다고 가정하며, 약정상성을 만족해야 좋은 적합력과 예측 성능을 보여줄 수 있을 것이다. 시계열 $y_t$가 다음의 세 조건을 만족할 때 약정상성을 가진다고 표현한다. 시계열 분석에서 말하는 정상 시계열(Stationary series)은 약정상성을 가지는 시계열을 말한다.
① 평균이 모든 시점 $t$에서 동일하다 : 추세, 계절성, 순환성 등의 패턴이 보이지 않게 된다.
② 분산이 모든 시점 $t$에서 동일하다 : 자료 변화의 폭이 일정하게 된다.
③ $y_t$와 $y_{t-h}$ 간의 공분산(즉, $y_t$의 자기공분산 함수)이 모든 시점 $t$에 대해 동일 : 시간에 따라 상이한 자기상관적 패턴을 보이지 않게됨.
약정상성을 만족하지 않는 시계열을 비정상(non-stationary) 시계열이라고 하며, 이를 정상화시키는 방법에는 추세 제거(Detrending), 차분(Differencing) 등이 있다.
참고로, 강한 정상성(엄격한 의미의 정상성)은 다음의 조건을 만족해야한다.
$f(y_t, y_{t_2}, \cdots, y_{t_n}) = f(y_{t_1+k}, y_{t_2+k}, \cdots, y_{t_n+k})$
즉, 어떠한 시점들의 결합확률분포(Joint pdf)의 시간의 축을 이동해도, 그 분포가 변화하지 않을 때 해당 시계열은 강한 정상성을 가진다. 실제로 어떤 확률 과정이 이를 만족하는지 보이는 것은 현실적으로 불가능하다.
(2) ACF와 PACF
"자기상관(Autocorrelation)"이란, 시계열 자료가 갖는 잠재적 서열적인 상관성을 의미한다.
① 자기공분산 함수(Autocovariance function)
$\gamma(h) = Cov(y_t, y_{t-h}) = E[(y_t-\mu)(y_{t-h}-\mu)], $ $h = 0, \pm1, \pm2, \cdots$
$y_t$와 일정 시차 $h$ 이후 시점인 $y_{t-h}$ 간의 공분산을 자기공분산 함수라고 한다. 위와 같이 정의되며, 이에 따른 자기공분산 함수의 성질은 다음과 같다.
(a) $\gamma(0) = Var(y_t)$
(b) $\gamma(-h) = \gamma(h)$
두 번째 성질에 따라 최초시점($h = 0$)에서 대칭임을 알 수 있다.
② 자기상관 함수(ACF : Autocorrelation function)
$\rho(h) = \frac{Cov(y_t, y_{t-h})}{\sqrt{Var(y_t)} \sqrt{Var(y_{t-h})} }, $ $h = 0, \pm1, \pm2, \cdots$
자기공분산 함수를 scaling한 형태가 ACF에 해당한다. 공분산(Covariance)은 중심화(Centering) 시킨 두 확률변수의 곱의 기댓값, 상관계수(Correlation coefficients)는 표준화(Standardized)시킨 두 확률변수의 곱의 기댓값이라는 개념을 머릿속에 가지고 있따면 자기공분산 함수와 자기상관 함수의 식을 기억하기 쉬울 것이다. $y_t$를 정상 시계열이라고 가정하면, 모든 시점에서 분산이 동일하기 때문에 위 식은 다음과 같이 정리된다.
$\rho(h) = \frac{Cov(y_t, y_{t-h})}{\sqrt{Var(y_t)} \sqrt{Var(y_{t-h})} } = \frac{Cov(y_t, y_{t-h})}{Var(y_t)} = \frac{\gamma(h)}{\gamma(0)}, $ $h = 0, \pm1, \pm2, \cdots$
이에 따른 ACF의 성질은 다음과 같다.
(a) $\rho(0) = 1$
(b) $\rho(-h) = \rho(h)$
마찬가지로 최초시점($h=0$)에서 대칭이다. 정상 시계열의 ACF를 표본 버전으로 바꾼 Sample ACF는 다음과 같이 주어질 것이다.
$\hat{\rho}(h) = \frac{\sum_{t = h+1}^T (y_t - \bar{y})(y_{t-h} - \bar{y})}{\sum_{t=1}^T (y_t - \bar{y})^2},$ $h = 0, \pm1, \pm2, \cdots$
③ 편자기상관 함수(PACF: Partial autocorrelation function)
$\frac{Cov(y_t, y_{t-h} | y_{t-1}, y_{t-2}, \cdots, y_{t-h+1})}{\sqrt{Var(y_t | y_{t-1}, y_{t-2}, \cdots, y_{t-h+1})} \sqrt{Var(y_{t-h} | y_{t-1}, y_{t-2}, \cdots, y_{t-h+1})}}$
식이 매우 복잡해보이지만, 간단하다. PACF는 시점 $t$와 $t-h$ 사이에 관측된 시계열 값이 주어질 때, $y_t$와 $y_t-h$의 조건부 상관을 시차 $h$의 함수로 나타낸 것이다. 즉, 예를 들어 $h = 1$인 1차 편자기상관은 결국 1차 자기상관과 똑같은 식이 된다. 복잡해보이는 PACF 식이 나타내는 의미를 조금씩 다르게 해석해보자. $y_t$와 $y_{t-h}$간의 PACF를 해석하는 상황이라고 가정한다.
(a) 두 시점($t$, $t-h$) 사이에서 관측된 시계열 값으로 설명이 되고 남은 부분(또는 설명되지 않은 부분)에 대한 상관계수를 의미한다.
(b) 두 시점 사이에서 관측된 시계열 값들의 상호의존성은 제외한 $y_t$와 $y_{t-h}$만의 자기상관함수를 의미한다.
(c) $y_t$와 $y_{t-h}$에 대한 상관을 구하는데, 두 시점 값 각각과 두 시점 사이값들간의 회귀를 실시하여 회귀로 설명되는 부분은 없애고(즉, 두 시점이 사이 시점 값들에 의해 설명되는 부분은 제거하고), 잔차들 간의 상관을 구한 것을 의미한다.
(3) 모형 소개
이제 ARIMA 모형을 설명할 준비가 끝났다. 모형식을 일반화하여 적기 위해(차수 1, 2인 경우 설명 생략. $p$, $d$, $q$로 일반화) $y_t$를 평균이 존재하는 정상 시계열이라고 가정한다. 다음의 notation을 기억하자.
$B$ : 후향연산자(Backshift operator) i.e. $B^b y_t = y_{t-b}$
$\delta_p = (1-\phi_1-\phi_2 - \cdots - \phi_p)\mu$
$\phi_p(B) = (1-\phi_1B-\phi_2B^2 - \cdots - \phi_pB^p)$
$\theta_q(B) = (1 + \theta_1B + \theta_2B^2 + \cdots + \theta_qB^q)$
$\Phi_p(B^s) = (1 - \Phi_1B^s, - \Phi_2B^{2s} - \cdots - \Phi_PB^{PS})$
$\Theta_Q(B^s) = (1 + \Theta_1B^s + \Theta_B^{2s} + \cdots + \Theta_QB^{Qs})$
① $AR(p)$ models(Autoregressive models : 자기회귀 모형)
$\phi_p(B)y_t = \delta_p + \epsilon_t,$ $\cdots$ (Eq 1)
$AR(p)$ 모형은 시계열의 현재값 $y_t$를 $p$개 과거값들의 선형결합으로 예측을 수행한다. (Eq 1) $\delta_p$를 좌변으로 넘기면 다음과 같이 정리도 가능하다.
$\phi_p(B)(y_t - \mu) = \epsilon_t$ $\cdots$ (Eq 2)
$\epsilon_t$는 모형으로 설명되지 않는 오차를 의미하며 $y_t$와는 독립이며 다음의 분포를 따른다.
$\epsilon_t \sim WN(0, \sigma^2_{\epsilon})$
$WN$은 백색 잡음(White noise)을 의미한다. 백색 잡음은 일정한 평균과 분산을 가지는 무상관인 확률변수들의 모임으로 이해하면 된다. 만약, 백색 잡음들이 정규분포를 따른다고 가정하는 경우 Gaussian $WN$이라 하며, 다음과 같이 표기한다.
$\epsilon_t \sim N(0, \sigma^2_{\epsilon})$
모형으로는 설명되지 않는 부분을 나타내는 이 오차항은 앞으로 소개할 모든 모형에 포함된다. 참고로 주의해야할 개념은, 독립이면 무상관이지만, 그 역은 정규분포 외의 경우에는 일반적으로 성립하지 않는다. 즉, 무상관이라고 해서 독립은 아니라는 말이다.
② $MA(q)$ models(Moving average models : 이동평균 모형)
$(y_t - \mu) = \theta_q(B)\epsilon_t$
$MA(q)$ 모형은 시계열 $y_t$를 현시점의 오차와 $q$개의 과거 오차들의 선형결합으로 예측을 수행한다. 여러 책과 프로그램에서 $\theta$ 항의 부호를 (-)로 정의하는 경우가 많으므로 주의가 필요하다. 통계 분석 프로그램 R에서는 위와 같이 (+) 부호를 사용한다(SAS는 음의 부호).
③ $ARMA(p, q)$ models
$\phi_p(B)y_t = \delta + \theta_q(B)\epsilon_t$
$ARMA(p, q)$ 모형은 AR(p) 모형과 MA(q) 모형을 결합시킨 것이다. 즉, 시계열 $y_t$를 $p$개 과거값들과 현시점 오차, $q$개의 과거 오차들의 선형결합으로 예측을 수행한다.
④ $ARIMA(p, d, q)$ models
$\phi_p(B)(1-B)^d y_t = \delta + \theta_q(B)\epsilon_t$
원 시계열 $y_t$의 $d$차 차분계열에 대해 $ARMA(p, q)$ 모형을 적합한 것과 같다. 즉, 비정상성을 가지는 원 시계열에 대해 적용할 수 있는 모형이라고 할 수 있다. 차분에 관해서는 이 글의 마지막에 간략히 설명한다.
⑤ $ARIMA(p, d, q)(P, D, Q)_s$ models
$\phi_p(B)\Phi_P(B^s)(1-B^s)^D(1-B)^d y_t = \delta + \theta_q(B)\Theta_Q(B^s)\epsilon_t$
승법(Multiplicative) 계절 ARIMA 모형으로, 기존의 ARIMA 모형에 계절성을 승법적으로 고려한 것이라고 생각하면된다.
(4) 차수 결정 방법
① $AR(p)$ models
ACF가 지수적으로(또는 순환하며) 작아지고, 처음 $p$개의 PCAF 값만 유의하게 나타남(절단).
② $MA(q)$ models
PACF가 지수적으로(또는 순환하며) 작아지며, 처음 $q$개의 ACF 값만 유의하게 나타남(절단).
③ $ARMA(p, q)$ models
ACF와 PACF가 모두 지수적으로(또는 순환하며) 작아지는 패턴을 보임($p$나 $q$ 모두 2이하에서 식별한다).
계절 ARIMA 모형의 차수 $(P, Q)$에 대해서도 유사한 방법이 적용된다. 즉, 주기에 비례하는 시차에서 ACF와 PACF 값의 패턴을 보고 차수를 결정하면 된다. 사실 이렇게 ACF와 PACF 그림을 통해 적절한 차수를 결정하는 것은 분석자의 주관이 개입하며 특정 차수로 결정내리기 애매한 경우가 많기 때문에, 적절한 모형 선택 기준(e.g. AIC, Consistent AIC, BIC, etc.)을 이용한 경험적인(Empirical) 선택이 필요한 경우가 많다. 이러한 경우 R의 auto.arima{forecast} 함수는 분석자가 원하는 모형선택 기준에 따라 차분을 포함한 최적의 ARIMA 모형을 선택해준다.
(5) 모형진단(Model diagnostic)에 관해
ARIMA 모형의 차수를 결정하는 정석적인 방법은 Box-Jenkins 방법론에 따라서, 모형을 식별하고 모수를 추정해 최종모형을 선택하는 것이다. 그후 모형진단 부분으로 넘어간다. 모형진단에서는 적합된 모형으로 부터 얻어진 적합값과 실제값의 차이인 잔차(백색 잡음)들이 무상관인지에 대해 검토한다.
그 중 한가지 방법은 추정된 모형으로 부터 얻어진 잔차의 ACF를 살펴보고 잔차간 자기상관이 있는지 체크하는 방법이다. 우리는 모형을 적합하고 난 후의 남은 잔차에는 자기상관이 남아있지 않길 바란다. 즉, 적합하게 식별된 ARIMA 모형의 잔차의 ACF는 모두 통계적으로 0인 자기상관계수를 가질것이다. 이렇게 그림을 통해 잔차의 ACF를 살펴보는 방법 외에, 잔차의 ACF가 유의하게 0과 다른지 검정하는 T-test($H_0:$ ACF=0)와 모든 시점에서 ACF가 0인지 검정($H_0 :$ 모든시점 ACF=0)하는 포트맨토 검정(Portmanteau test)등이 있다.
백색 잡음(잔차)은 우리가 모형구축을하는 변수인 $Y_t$의 요소이다. 즉, 백색 잡음이 서로 연속적이거나 상관관계가 있다면, 모형의 AR이나 MA부분에 의해 설명되지 않는 $Y_t$상의 자기상관관계가 남아있다는 말과 동일하다. 만약 잔차가 자기상관관계가 있으면, 이는 백색 잡음(백색 잡음은 무상관인 확률 변수의 집합)이 아니므로 이에 부합하는 잔차를 가진 다른 모형을 찾아야 한다. 이것은 초기의 추정된 ACF와 PACF를 다시 재검토 해야함을 의미한다.
(6) 차분(Differencing)
추세(Trend) 또는 계절성(Seasonality)이 존재하는 비정상 시계열의 경우 흔히 차분을 이용해 정상 시계열로 만든다. 다음의 식은 시계열 $y_t$에 대해 일차 차분을 수행하는 것을 의미한다.
$\triangledown y_t = (1-B)y_t = y_t - y_{t-1}$
차분 기호의 아래 첨자는 차분의 시차(Lag)를 나타낸다. 예를 들어, 계절성을 보이는 월별 자료(Monthly data)의 경우 흔히 12-차분 $\triangledown_{12} y_t = y_t - y_{t-12}$을 사용한다. 차분을 통해 정상성을 만족하는 (차분된) 시계열에 대해 ARMA 모형을 적합할 수 있다(즉, ARIMA 모형을 의미).
차분의 위 첨자는 차분의 반복 횟수를 나타낸다. 예를 들어 다음은 일차 차분된 계열에 대해 다시 일차 차분을 수행하는 경우를 말한다.
$\triangledown^2 y_t = (1-B)^2 y_t = (1-2B+B^2)y_t = y_t - 2y_{t-1} + y_{t-2}$
'시계열 자료분석' 카테고리의 다른 글
[FPP3] 1.1 시계열 자료의 예측 가능성에 대해 (0) | 2021.04.30 |
---|---|
Count Time Series 분석에 대해 (0) | 2021.03.17 |
계층적 시계열 분석 (0) | 2020.10.25 |
시계열 평활법 (2) | 2020.07.01 |
댓글