시계열 회귀 분석

시계열 회귀 분석

정의

시계열 회귀 분석이란 말 그대로 시계열 데이터회귀분석하는 기법을 말한다. 원래 회귀분석 자체가 시계열 데이터를 다루는데 있어서 적합하지 않은 것은 사실이지만, 그럼에도 불구하고 복수의 시계열 데이터를 다룰 때는 회귀분석의 아이디어와 툴을 빌리는 것이 좋을 때가 있다.

실습

1.png

가령 위와 같이 두 종류의 데이터 x와 y가 주어져있다고 하자. 물론 두 데이터의 개형이 완전히 같은 것도 아니고, 각 시점에서는 상이하지만 전체적으로 보았을 땐 x의 등락이 시차 $k=10$ 정도의 여유를 두고 y에서도 비슷하게 일어나는 것을 볼 수 있다.

2.png

실제로 y를 빨간 실선으로 한 화면에 찍어보면 위와 같은 모습을 보인다. 이에 따라 x에 10의 시차를 주고 단순회귀분석을 해보면 다음과 같이 추측이 얼추 맞아떨어짐을 확인할 수 있다.

20190731\_143111.png

3.png

실제 적합치를 파란 실선으로 나타내보면 완벽하지는 않아도 x가 y를 꽤 정확하게 예측할 수 있음을 확인할 수 있다. 물론 데이터에 딱맞는 분석법은 아니지만, 필요하다면 언제든지 사용할 수 있어야한다.

코드

아래는 R 로 작성한 예제코드다.

library(TSA)
set.seed(150421)
data("bluebird")
x<-ts(c(scale(bluebird[-(1:10),1])))
y<-ts(c(scale(-zlag(bluebird[,2],d=10)[-(1:10)])))
example=ts.intersect(x,y)
win.graph(6,5); plot(example,yax.flip = T)
win.graph(6,4); plot(example[,1]); lines(example[,2],col='red')
legend("topright",pch=16,col=1:2,legend=c("x","y"))
out<-lm(y~zlag(x,d=10)); summary(out);
win.graph(6,4); plot(y); lines(c(rep(NA,10),fitted(out)),col='blue')
legend("topright",pch=16,col=c(1,4),legend=c("x","fitted"))
댓글