2016-07-31 6 views

Antwort

6

Es gibt viele Möglichkeiten, dies zu tun, und Sie können sie finden, wenn Sie ein paar Minuten damit verbringen, es zu googeln oder diese Website zu durchsuchen.

Ein Weg ist ggAcf und ggPacf aus dem forecast Paket. Sie erstellen ggplot2 Objekte, die Sie dann mithilfe der ggplot-Syntax und -Parameter anpassen können.

series <- rnorm(300) 
plot <- ggAcf(series) 

enter image description here

+0

danke. Tatsächlich waren diese Funktionen in früheren Versionen des Prognosepakets nicht vorhanden. – Chaatak

4

Neben der forecast::ggAcf Funktion ist es auch recht schnell, es zu tun, sich mit ggplot. Das einzige Ärgernis ist, dass die Grenzen des Konfidenzintervalls nicht zurückgibt, so dass Sie sie selbst berechnen müssen.

ACF Plotten mit ggplot und keine weiteren Pakete

# plot acf with ggplot 
ggacf <- function(series) { 
    significance_level <- qnorm((1 + 0.95)/2)/sqrt(sum(!is.na(series))) 
    a<-acf(series, plot=F) 
    a.2<-with(a, data.frame(lag, acf)) 
    g<- ggplot(a.2[-1,], aes(x=lag,y=acf)) + 
      geom_bar(stat = "identity", position = "identity") + xlab('Lag') + ylab('ACF') + 
      geom_hline(yintercept=c(significance_level,-significance_level), lty=3); 

    # fix scale for integer lags 
    if (all(a.2$lag%%1 == 0)) { 
    g<- g + scale_x_discrete(limits = seq(1, max(a.2$lag))); 
    } 
    return(g); 
} 

#example: plot correlogram of an AR(1) process 
require('stats'); 
ggacf(arima.sim(model=list(ar=0.9), n=300)); 

Beispiel erforderlich: ACF aufgetragen mit ggplot für einen AR (1) Prozess

Unten sehen Sie die Ausgabe aus dem Code-Schnipsel zu sehen. Das Grundstück

  • enthält das 95% Konfidenzintervall für AKK
  • zeigt nicht die Autokorrelation bei 0, die immer 1 ist (und macht härter die Handlung meiner Ansicht nach lesen)

acf plotted with ggplot