Rで2つの時系列データ間の交差相関を取りたい
やりたいこと
Rで2つの時系列データ間の交差相関を取りたい。そして2つの系列データ間の遅れ時間や相関の周期性を調べたい。
やりかた
標準で交差相関をとる関数ccfが用意されている。
使用例
データの準備
library(tidyverse) set.seed(123) n = 200 df = tibble( No = 1:n, x = cumsum(rnorm(n)), y = lag(1.234*x -3.456 + rnorm(n),10,fill=NA) ) %>% na.omit() df %>% gather("key", "value", -1) %>% ggplot(aes(No, value, color=key)) + geom_point() + geom_line()
交差相関の計算
res = ccf(df$x, df$y)
-10で相関係数が最大になっている。サンプルデータを作るときもyはxに対して10コマ送らせているのできちんと遅れ時間を求められた。