2013-01-10 10 views
6

In R, è possibile eseguire un correlogramma ACF delle serie temporali e le bande dell'intervallo di confidenza verranno tracciate in blu chiaro. Ma quando tiro la struttura dell'oggetto ACF, non riesco a trovare questi valori. Qualcuno sa come estrarre i valori delle bande dell'intervallo di confidenza?Estrarre i valori dell'intervallo di confidenza dal correlogramma ACF

ad es.

List of 6 
$ acf : num [1:27, 1, 1] 1 0.06453 -0.06354 0.00213 -0.01324 ... 
$ type : chr "correlation" 
$ n.used: int 501 
$ lag : num [1:27, 1, 1] 0 1 2 3 4 5 6 7 8 9 ... 
$ series: chr "tser[i:(i + 500)]" 
$ snames: NULL 
- attr(*, "class")= chr "acf" 

enter image description here

+0

come si traccia il tuo acf? quale pacchetto stai facendo causa? – agstudy

+0

Penso che sia incorporato nel pacchetto delle statistiche. http://stat.ethz.ch/R-manual/R-patched/library/stats/html/acf.html – pat

risposta

7

che ho avuto uno sguardo alla funzione e non riesco a vedere un modo facile per estrarre l'intervallo di confidenza. La regione viene calcolata nella funzione plot.acf. Per vedere questa funzione, utilizzare

getS3method("plot", "acf") 

In questa funzione, c'è una variabile clim, questo è quello che siete dopo. Il modo più semplice è copiare plot.acf in myplot.acf, ma restituire il valore clim.

+0

grazie per quello. Non sembra un compito troppo facile, ma se non riesco a trovare altro modo ... Dovrò provare a modificare il codice. Qualsiasi post rapido su come esattamente modificare sarebbe apprezzato. – pat

+1

@pat Basta commentare le istruzioni 'return' e invece restituire' clim' – csgillespie

+0

Questo dovrebbe essere accettato come risposta. Ecco il codice per richiamare la funzione: 'dump (" plot.acf ", file =" function_dump_plot_acf.txt ", envir = asNamespace (" stats "))'. Inoltre è necessario sostituire 'invisible()' con 'return (clim)' – user1700890

1

So che questa domanda è super vecchia, ma se qualcuno vuole i valori dell'intervallo di confidenza è solo il valore z del livello di confidenza diviso per il numero di osservazioni del numero di osservazioni utilizzate. Nella funzione plot.acf questo è calcolato qui:

clim0 <- if (with.ci) 
    qnorm((1 + ci)/2)/sqrt(x$n.used) 

dove with.ci è un valore logico che indica se l'utente vuole tracciare gli intervalli di confidenza o meno e ci è il livello di confidenza desiderato (ad esempio 0,95, 0,9, ecc ...)

EDIT: questo è l'intervallo di confidenza se si assume i valori ritardati sono rumore bianco, se questo non è il caso in cui v'è una correzione è possibile applicare

clim <- clim0 * sqrt(cumsum(c(1, 2 * x$acf[-1, i, j]^2))) 

si può leggere un po ' di più su quello here

Problemi correlati