如何为时间序列绘制互相关矩阵?

时间:2011-08-05 22:28:43

标签: r graph plot ggplot2 time-series

我的数据的时间序列表示如下(没有行和列)注释:

      L1 L2 L3 L4
t=1    0  1  1  0
t=2    0  1  1  1
t=3    1  0  1  1
t=4    0  1  1  0

我正在把它读成R:

timeseries = read.table("./test", header=F)

我正在使用

绘制L1的时间序列
ts.plot(timeseries$V1)

并将互相关函数绘制为:

ccf(timeseries$V1, timeseries$V2)

现在,有人可以告诉我如何绘制交叉相关矩阵,显示L1-L4的此功能输出?基本上,这样的东西(在我的例子中,是一个4x4的图表矩阵):

enter image description here

3 个答案:

答案 0 :(得分:6)

似乎还有另一种琐碎的方式!

timeseries = read.table("./test", header=F)
acf(timeseries)

给我一​​个相关图矩阵。当然,如果需要协方差,还可以将其他选项传递给acf

答案 1 :(得分:2)

这样做的一个简单方法是在绘图设备上创建一个绘图矩阵,并逐个放置每个ccf绘图:

M <- matrix(sample(0:1,40,replace = TRUE),nrow = 10)

par(mfrow= c(4,4))
for (i in 1:4){
    for (j in 1:4){
        ccf(M[,i],M[,j])
    }
}

但是,如果你稍等一下,那些知道时间序列包装更密切的人可能会使用一个更好的功能。

答案 2 :(得分:2)

M与joran的帖子中一样的地方尝试:

pnl <- function(x, y = x) { par(new = TRUE); ccf(x, y) }
pairs(as.data.frame(M), upper.panel = pnl, diag.panel = pnl, cex.labels = 1)