Mikosch und Starica betonen, dass die ACF nicht eine hyperbolische Funktion folgen; In dieser Abbildung wird gezeigt, wie ein Missbrauch statistischer Werkzeuge zu falschen Schlussfolgerungen führen kann - die Daten sind in den anderen Fenstern von Abbildung 1.1 als unkorreliert dargestellt! Wie auch immer, das ist eine Diskussion für Cross Validated Stack Exchange.
Sie können nichtlineare Regressionsanpassungen mit nls
vornehmen. Ich habe das ACF eines AR (2) -Prozesses mit den Parametern 0.8 und 0.1 als Beispiel verwendet (die Anpassung ist hier natürlich nicht korrekt, aber es zeigt einige der Probleme, die beim Arbeiten mit Autokorrelationsfunktionen auftreten können).
set.seed(1e2)
## AR(2) simulation
arsim <- arima.sim(list(ar = c(0.8,0.1)),n = 1000)
## Autocorrelation function of absolute values:
myacf <- acf(abs(arsim),ci = 0)
## Fit acf = b*x^(-c)
nls_fit <- nls(y ~ b*x^(-c),
data.frame(x = myacf$lag[-1], y = myacf$acf[-1]), #Remove lag 0
start = list(b=1,c=1))
curve(nls_fit$m$getPars()[1]*x^(-nls_fit$m$getPars()[2]),
add = TRUE,col="red")
Beachten Sie, wie ich die Daten bei einer Verzögerung 0, da 0^(-c)
entfernen ist nicht sinnvoll. Dies ist in Übereinstimmung mit dem, was die Autoren normalerweise tun (ignorieren bei Lag 0 - macht nie Sinn, plotten sowieso. Warum ist es der Standardwert plot.acf
Ich weiß es nicht).
Mikosch schlägt in der Regel die IID Konfidenzbänder zu entfernen, die standardmäßig angezeigt werden, wenn die Daten eindeutig nicht iid. Sie tun dies mit der plot.acf
Option ci = 0
.
Papierverbindung: http://www-stat.wharton.upenn.edu/~steele/HoldingPen/StaricaLongRangeQ.pdf –