時系列回帰分析
定義
時系列回帰分析とは、文字どおり時系列データを使って回帰分析する技術のことを言う。本来、回帰分析が時系列データを扱うには適していないのは事実だが、それにもかかわらず、複数の時系列データを扱う時には、回帰分析のアイディアとツールを借りるのが良い時がある。
実践
例えば、上のように二種類のデータxとyが与えられているとしよう。もちろん、二つのデータの形が完全に同じではなく、各時点で異なるが、全体的に見ればxの上下動が時差$k=10$をおいてyでも似たように起こっているのが分かる。
実際にyを赤い実線で一画面に映してみると、上のような姿を示す。それによりxに10の時差を与えて単純回帰分析を行うと、推測がだいたい合っているのを確認できる。
実際のフィットを青い実線で表示してみると、完璧ではないが、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"))