이번 포스팅에서는 비정상(Non-stationary) 시계열 중 하나인 Random Walk 시계열에 대해서 포스팅하려고 한다. 여기서 다루는 내용은 다음과 같다.
1. Random Walk 란?
1.1 정의
시계열 데이터 $X_t$가 아래와 같은 모형을 따른다고 해보자.
$$X_t = X_{t-1}+Z_t\tag{1.1}$$
$$X_t = \mu+ X_{t-1}+Z_t\tag{1.2}$$
여기서 $Z_t$는 평균이 0이고 분산은 $\sigma^2$인 백색 잡음(White Noise)이며 $X_0$는 초기값으로 실수값으로 간주하자. 또한 $\mu=E(X_t-X_{t-1})$이다. 이때 식 (1.1)을 Random Walk 모형이라고 하고 (1.2)를 Random Walk with Drift 모형이라고 한다.
위 모형이 Random Walk라고 불리는 이유는 만약 $Z_t$가 대칭 분포인 경우 이전 데이터 값 $X_{t-1}$가 주어졌다고 할 때 그다음 데이터 값 $X_t$가 앞으로 가거나(높아지거나) 뒤로 갈(낮아질) 확률이 각각 50대 50이기 때문이다. 다시 말해 현재 시점을 기준으로 높아지거나 낮아질 확률이 반반으로써 이는 마치 랜덤으로 앞으로 또는 뒤로 걸어가는 것과 같아서 Random Walk로 불린다.
Random Walk를 자기 회귀모형식으로 표현하면 $AR(1)$이 되고 그 계수가 1인 것을 알 수 있으며 이는 정상성 조건(자기 회귀 계수의 절대값이 1보다 작아야 한다는 조건)을 만족하지 않는다.
$$(1-\phi_1B)X_t = Z_t, \phi_1 = 1$$
이때 특성 방정식
$$1-\phi_1z=0$$
는 $\phi_1=1$인 경우 근은 $z=1$이며 (1을 보통 단위라는 말을 써서) 단위근(Unit Root)을 가진다고 한다. 또한 단위근을 가지는 경우 Random Walk를 단위근 비정상성(Unit-root Non-stationary) 모형이라고 한다.
-- 참고 --
단위근이 문제가 되는 이유는 $\phi_1$ 추정치에 편향(Bias)이 생기며 다변량 시계열 분석시 두 시계열에 실제로 관계가 없지만 관계가 있는 가짜 회귀 모형을 만들 수 있다고 한다.
1.2 성질
1) Random Walk는 예측 불가능하다.
예측 가능(Predictable)이란 말은 과거의 값을 이용하여 미래를 예측할 수 있다는 뜻으로 이해하자. Random Walk가 예측 불가능인 이유를 알아보기 위해 먼저 시계열 데이터 $X_1, \ldots, X_n$이 있다고 하자. 가장 최근 시점은 $n$이다.
이때 $n+1$시점 예측값(1-step Forecasting) $X_{n+1, n}$는 다음과 같이 예측 오차 제곱합을 최소로 하는 $E(X_{n+1}|X_n, X_{n-1}, \ldots, X_1)$이 되며 아래와 같이 계산된다.
$$X_{n+1, n} = E(X_{n+1}|X_n, X_{n-1}, \ldots, X_1) = X_n$$
다음으로 $n+2$시점 예측값(2-step Forecasting)은 다음과 같다.
$$\begin{align}X_{n+2, n} &= E(X_{n+2}|X_n, X_{n-1}, \ldots, X_1) = E(X_{n+1}+Z_{n+2}|X_n, X_{n-1}, \ldots, X_1) \\ &= X_{n+1,n} = X_n \end{align}$$
이런 식으로 계산하면 $n+l$ 시점 예측값 ($l$-step Forecasting) $X_{n+l,n} = X_n$이다. 즉, 미래값을 예측하는데에는 현재값만 중요하며 과거 데이터는 예측에 사용되지 않는 다는 것이다. 즉, 과거의 값을 이용하여 미래값을 예측할 수 없다. 따라서 Random Walk는 예측 불가능하다(Random Walk with Drift 모형도 마찬가지로 예측 불가능하다.)
2) Random Walk의 예측 오차 분산은 무한대로 발산한다.
Random Walk $X_t$의 예측 오차 분산을 계산하기 위해 $X_t$를 백색 잡음 $Z_t$로 표현해보자.
$$X_t = X_0+Z_t + Z_{t-1}+\cdots+Z_1$$
Random Walk with Drift의 경우는
$$X_t = t\mu+X_0+Z_t+ Z_{t-1}+\cdots+Z_1$$
이다. 보통 백색 잡음을 충격(Shock)이라고도 하는데 위의 표현식이 이야기해주는 것은 과거 충격효과가 현재에도 그대로 영향을 미친다는 것을 의미한다. 이는 시계열이 강한 기억(Strong Memory) 성질을 갖고 있다는 것을 의미한다.
$n+l$시점의 예측값에 대한 예측 오차 $e_{n+l, n}=X_{n+l} - X_{n+l,n}$의 분산은 다음과 같다.
$$\begin{align}\text{Var}(e_{n+l,n}) &=\text{Var}(X_{n+l} - X_{n+l,n}) \\ &= \text{Var}(Z_{n+l}+\cdots+Z_{n+1}) = l\sigma^2\end{align}$$
Random Walk with Drift 모형의 경우는
$$\begin{align}\text{Var}(e_{n+l,n}) &=\text{Var}(X_{n+l} - X_{n+l,n}) \\ &= \text{Var}( l\mu+Z_{n+l}+\cdots+Z_{n+1}) = l\sigma^2\end{align}$$
어느 경우에나 예측 분산은 시점 $l$이 커짐에 따라 무한대로 발산하는 것을 알 수 있다. 예측 분산이 무한대로 발산한다는 것 $X_{n+l}$이 어떠한 값도 가질 수 있다는 것을 의미하므로 예측치 $X_{n+l,n}$이 시점 $l$이 커질수록 유용하지 않다는 것을 의미한다.
2. 단위근 검정(Unit Root Test)
아래와 같은 $AR(1)$ 모형을 생각해보자.
$$ X_t = \phi_1X_{t-1}+e_t \tag{2.1} $$
$$X_t = \phi_0 + \phi_1 X_{t-1}+e_t \tag{2.2} $$
여기서 $e_t$는 오차항이다.
단위근 검정은 주어진 $AR(1)$ 모형이 Random Walk인지 아닌지를 검정하는 테스트이다. 즉, 아래와 같은 귀무가설 대립 가설을 검정한다.
$$H_0 : \phi_1=1 \text{ vs } H_a : \phi<1$$
단위근 검정은 Dickey-Fuller 검정이라고도 한다.
귀무가설 하에서 $\phi_1$의 최소 제곱 추정량을 $\hat{\phi}_1$과 오차 분산 $\hat{\sigma}^2_e$는 다음과 같이 계산된다.
$$\hat{\phi}_1 = \frac{\sum_{t=1}^NX_{t-1}X_t}{\sum_{t=1}^NX_{t-1}^2}, \text{ } \hat{\sigma}^2_e=\frac{\sum_{t=1}^N(X_t-\hat{\phi}_1X_{t-1})^2}{N-1}$$
여기서 $X_0=0$이다. 이때 Dickey-Fuller 검정 통계량 $DF$은 다음과 같다.
$$DF = \frac{\hat{\phi}_1-1}{\text{std}(\hat{\phi}_1)}=\frac{\sum_{t=1}^NX_{t-1}e_t}{\hat{\sigma}_e\sqrt{\sum_{t=1}^NX_{t-1}^2}}$$
$DF$ 통계량은 실제 $\phi_0$이 0이 아닌 경우 점근 정규 분포를 따르므로 P Value를 구할 수 있지만 데이터 개수 $N$이 꽤 커야 한다고 한다. 그리고 $\phi_0=0$이지만 모형을 (2.2)로 사용한 경우 $DF$의 점근 분포가 알려지지 않은 분포이며 이때 P Value는 시뮬레이션을 통해서 계산된다고 한다.
이번 포스팅에서는 Random Walk와 이를 검정하는 단위근 검정(Dickey Fuller Test)에 대해서 알아보았다. 다음 포스팅에서는 Dickey Fuller Test(또는 Augmented Dickey Fuller Test)에 대한 구체적인 내용을 공부하고 파이썬을 이용하여 테스트해보는 방법을 포스팅하려고 한다.
'통계 > 시계열 모형' 카테고리의 다른 글
[시계열 분석] 10. Phillips-Perron Test(검정) with Python (422) | 2022.04.18 |
---|---|
[시계열 분석] 9. (Augmented) Dickey-Fuller Test(검정) with Python (419) | 2022.04.14 |
[시계열 분석] 7. ARMA 모형에 대해서 알아보자 with Python (803) | 2021.09.18 |
[시계열 분석] 6. 이동 평균 모형(Moving Average Model) 적합하기 with Python (809) | 2021.08.20 |
[시계열 분석] 5. 자기 상관 함수(Autocorrelation Function : ACF)과 부분 자기 상관 함수(Partial Autocorrelation : PACF) with Python (1038) | 2021.07.31 |
댓글