簡體   English   中英

如何為時間序列繪制互相關矩陣?

[英]How do I plot a cross correlation matrix for timeseries?

我有一個時間序列表示我的數據如下(沒有行和列)注釋:

      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矩陣的圖表):

在此輸入圖像描述

似乎還有另一種瑣碎的方式!

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

給我一個相關圖矩陣。 當然,如果需要協方差,還可以將其他選項傳遞給acf

這樣做的一個簡單方法是在繪圖設備上創建一個繪圖矩陣,並將每個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])
    }
}

但是,如果你稍等一下,那些知道時間序列包裹更密切的人可能會使用一個更好的功能。

試試這個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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM