Wie plotten ACF-Plot und PACF-Plot für eine Zeitreihe in R mit ggplot2?Wie plotten Autokorrelationsdiagramm und partielles Autokorrelationsdiagramm in R mit ggplot2?
Antwort
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)
danke. Tatsächlich waren diese Funktionen in früheren Versionen des Prognosepakets nicht vorhanden. – Chaatak
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)
haben Sie schon einen Versuch gemacht? –