Ho una rappresentazione in serie dei miei dati come segue (senza riga e colonna) annotazioni:
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
Sto leggendo questo in R come:
timeseries = read.table("./test", header=F)
Sto progettando timeseries per L1 usando
ts.plot(timeseries$V1)
e tracciare la funzione di correlazione incrociata come:
ccf(timeseries$V1, timeseries$V2)
Qualcuno può dirmi come posso tracciare una matrice di correlazione incrociata che mostra l'output di questa funzione per L1-L4? Fondamentalmente, qualcosa del genere (nel mio caso, una matrice 4x4 di grafici):
risposte:
5 per risposta № 1Sembra esserci un altro modo banale di farlo!
timeseries = read.table("./test", header=F)
acf(timeseries)
mi dà una matrice di grafici di correlazione. Naturalmente, ci sono altre opzioni a cui è possibile passare acf
se è necessaria una covarianza.
2 per risposta № 2
Un modo banale per farlo è semplicemente creare una matrice di grafici sul dispositivo di stampa e posizionarli ciascuno ccf
trama uno per uno:
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])
}
}
Ma se aspetti un po ', qualcuno che conosce più intimamente i pacchetti di serie temporali può passare con una funzione che lo fa un po' più bene.
2 per risposta № 3
Prova questo dove M
è come nel post di 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)