/ / Wie zeichne ich eine Kreuzkorrelationsmatrix für Zeitreihen? - r, Graph, Plot, ggplot2, Zeitreihen

Wie zeichne ich eine Kreuzkorrelationsmatrix für Zeitreihen? - r, Graph, Plot, ggplot2, Zeitreihen

Ich habe eine Zeitreihen-Darstellung meiner Daten wie folgt (ohne die Zeilen- und Spalten-Annotationen):

      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

Ich lese das in R als:

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

Ich zeichne Zeitreihen für L1 mit

ts.plot(timeseries$V1)

und Zeichnen der Kreuzkorrelationsfunktion als:

ccf(timeseries$V1, timeseries$V2)

Kann mir bitte jemand sagen, wie ich eine Kreuzkorrelationsmatrix plotten soll, die die Ausgabe dieser Funktion für L1-L4 anzeigt? Grundsätzlich so etwas (in meinem Fall eine 4x4 Matrix von Plots):

Bildbeschreibung hier eingeben

Antworten:

5 für die Antwort № 1

Es scheint eine andere triviale Art zu sein, es zu tun!

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

gibt mir eine Matrix von Korrelationskurven. Natürlich gibt es andere Optionen, an die man weitergeben kann acf wenn eine Kovarianz benötigt wird.


2 für die Antwort № 2

Eine triviale Art, dies zu tun, besteht darin, einfach eine Matrix von Plots auf Ihrem Plotting-Gerät zu erstellen und jedes zu platzieren ccf Handlung in eins nach dem anderen:

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])
}
}

Aber wenn Sie ein bisschen warten, kann jemand, der die Zeitreihenpakete vertrauter kennt, mit einer Funktion, die das ein bisschen schöner macht, vorbeischauen.


2 für die Antwort № 3

Probieren Sie das wo M ist wie in joran's post:

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)