2020. 12. 6. 22:33ㆍ계량경제학
본격적인 시계열 분석에 들어가기 앞서, 시계열 분석에서 중요한 개념인 백색잡음(White Noise)와 랜덤워크(Random walk) 개념에 대해서 정리해보겠습니다.
[백색잡음(White Noise)]
백색잡음은 평균이 0이고 분산이 일정한 상수(
만약

만약에 우리가 가지고 있는 시계열 데이터에서 "시계열적인 부분"을 모두 제외한다면 남는 것은 White Noise뿐입니다.

우리가 시계열 분석을 통해 이상적으로 시계열 분석을 수행했다면, 예측 오차는 White Noise를 따를것입니다. 그렇기 때문에 시계열 모형의 오차가 White Noise라는 것은 "시계열적인 부분"을 잘 잡아 냈다는 신호로 볼 수 있을 것입니다.
Python으로 White Noise를 만들어보겠습니다. 사용하는 데이터는(direction-f.tistory.com/63)를 참고하시면 되며, S&P 500 Index입니다. 다만 여기서는 Plotting의 용이성을 위해 평균을 0으로 하지 않고 가지고 있는 데이터의 평균값을 집어 넣었습니다.
##White Noise
wn = np.random.normal(df.mean(), scale = df.std(),size = len(df))
df["wn"]=wn
df["wn"].plot()
plt.title("White Noise")
plt.show()

[Random Walk]
Random Walk는 단순 Random number를 generation하는 것과는 다릅니다. Random Walk는 해당 Sequence에서 그 전의 값이 그 다음 값에 영향을 주기 때문입니다. 예를 들어 Random Walk는 다음과 같이 표현할 수 있습니다.

가장 간단한 Random Walk 프로세스 사례는 다음과 같습니다.
stpe 1. -1 또는 1로 시작
step 2. -1 또는 1를 Random하게 선택하고, 전의 값에 더함
Python을 활용하여 위의 간단한 Random walk를 시뮬레이션 해보겠습니다.(출처 : Introduction to Time Series Forecasting with Python)
seed(1)
random_walk = []
random_walk.append(-1 if random() <0.5 else 1)
for i in range(1,1000):
movement = [-1 if random() <0.5 else 1]
value = random_walk[i-1]+movement[0]
random_walk.append(value)
plt.plot(random_walk, "r-")
plt.title("Random walk")
plt.show()

[Stationarity]
주가, 금융 Index같은 경우는 위에서 말한것과 같이 Random walk Process를 많이 따르게 됩니다. 하지만 Random walk Process를 따르는 모형에 대한 통계적 추정을 하기가 현실적으로 어렵습니다. 따라서 시계열 정상성(Stationarity) 가정이 필요하게 됩니다.
약한 정상성(Weak Stationary)은 아래와 같은 성질 만족하게 됩니다.
확률과정

만약 시계열이 정상성이 아니라면 통계적으로 우리가 추정해야 할 모수는
Stationarity는 ADF test(Augmented Dickey-Fuller test)를 통해서 검정할 수 있습니다. ADF Test 검증 모형은 아래와 같습니다.

해당 Test의 귀무가설(
귀무가설(
대립가설(

만약
Python에서 statsmodels 패키지를 활용하여 쉽게 ADF Test를 수행할 수 있습니다.
import statsmodels.tsa.stattools as sts
sts.adfuller(df["Close"])
'''
(1.059624647407287,
0.9948568682915807,
6,
6774,
{'1%': -3.43131571888621,
'5%': -2.8619667679228646,
'10%': -2.5669971648470256},
55484.34577265247)
'''
sts.adfuller(df["wn"])
'''
(-82.61985810790189,
0.0,
0,
6780,
{'1%': -3.4313148639438347,
'5%': -2.861966390170326,
'10%': -2.5669969637620627},
105778.09936636973)
'''
위의 결과에서 2번째 줄이 P-value를 나타내며, 일반적으로 P-value가 0.05미만일 때 해당 데이터는 정상성을 가진다고 볼 수 있습니다. White noise같은 경우는 정상성을 가지고 있으며, S&P500 index의 경우에는 비정상성을 띄고 있습니다.
'계량경제학' 카테고리의 다른 글
시계열(Time series) > Autoregressive model(자기회귀모형) (1) | 2020.12.21 |
---|---|
시계열(Time series) > ACF, PACF (0) | 2020.12.19 |
시계열(Time series) > 데이터 핸들링 (0) | 2020.12.04 |
Experiments and Quasi-Experiments(실험/준실험 연구)3 > Difference-in-Difference(이중차분법) (2) | 2020.11.29 |
Experiments and Quasi-Experiments(실험/준실험 연구)2 (0) | 2020.11.22 |