애들센스


Unit root testing 금융공학

Unit root test는 어찌보면 간단하다. 돈이 있는 사람은 matlab과 Econometrics Toolbox를 이용하여 'adftest()'함수를 호출하면 그만이다. 그럼 나처럼 돈없는 사람은 R을 가지고 하면 된다(물론 'tseries'라는 패키지를 설치한다)

R에서는 'Augmented Dickey-Fuller Test' 또는 'Phillips-Perron Unit Root Test'를 사용하는데, 다음과 같이 사용할 수 있다(단위근을 가진다는 귀무가설을 기각하는 예)
x <- rnorm(1000) # no unit-root
adf.test(x)
Augmented Dickey-Fuller Test
data: x
Dickey-Fuller = -10.0235, Lag order = 9, p-value = 0.01 <- Safe to reject null hypothesis
that x has a unit root
alternative hypothesis: stationary
Warning message:
In adf.test(x) : p-value smaller than printed p-value

PP.test(x)
Phillips-Perron Unit Root Test
data: x
Dickey-Fuller = -33.4783, Truncation lag parameter = 7, p-value = 0.01<- Safe to reject null hypothesis
that x has a unit root
다음은 귀무가설을 기각하지 못하는 예
y <- diffinv(x) # contains a unit-root
adf.test(y)
Augmented Dickey-Fuller Test
data: y
Dickey-Fuller = -1.7578, Lag order = 9, p-value = 0.6808 <- Fail to reject null hypothesis
that x has a unit root
alternative hypothesis: stationary

PP.test(y)
Phillips-Perron Unit Root Test
data: y
Dickey-Fuller = -1.9082, Truncation lag parameter = 7, p-value = 0.6172 <- Fail to reject null hypothesis
that x has a unit root

그런데 직접 만들려고 하니까 이용가능한 소스가 그리 많치 않다. 다행히 quantcode에서 엑셀 또는 c#으로 구현해 놓은 것이 있다(구글신에 'c/c++ unit root test'라고 검색하니까 'unit test'만 잔뜩 나온다. 원하는 c/c++코드는 다행이 못 찾겠고...)
1.Unit root testing demo using Augmented Dickey fuller test
2.ADF testing application in C#

[DOWNLOAD:엑셀버전]unitdemo.xls
[DOWNLOAD:c#버전]adftest.zip
[DOWNLOAD:c#버전에 필요한 GSL 라이브러리]libgslcblas_d.zip

덧글

댓글 입력 영역