Réponses:
(J'ai écrit cela en réponse à un autre post, qui était marqué comme un double de celui-ci pendant que je le composais; je me suis dit que je le posterais ici plutôt que de le jeter. On dirait qu'il dit des choses assez similaires à whuber's mais c'est juste assez différent pour que quelqu'un puisse en retirer quelque chose.)
Une marche aléatoire est de la forme
Notez que
D'où .
Notez également que
Par conséquent .
C'est-à-dire que vous devriez voir une corrélation de près de 1 car dès que commence à devenir grand, et sont presque exactement la même chose - la différence relative entre eux a tendance à être assez petite.
Vous pouvez le voir plus facilement en traçant vs .
Nous pouvons maintenant le voir de manière quelque peu intuitive - imaginez que a dérivé jusqu'à (comme nous le voyons dans ma simulation d'une marche aléatoire avec un terme de bruit normal standard). Alors va être assez proche de ; il peut être ou mais il est presque certain qu'il se situe à quelques unités de . Donc, alors que la série dérive de haut en bas, l'intrigue de vs va presque toujours rester dans une plage assez étroite de la ligne ... mais à mesure que grandit, les points couvriront plus et de plus grands tronçons le long deligne (la propagation le long de la ligne croît avec , mais la propagation verticale reste à peu près constante); la corrélation doit approcher 1.
Dans le contexte de votre question précédente , une «marche aléatoire» est une réalisation d'une marche aléatoire binomiale. L'autocorrélation est la corrélation entre le vecteur ( x 0 , x 1 , … , x n - 1 ) et le vecteur des éléments suivants ( x 1 , x 2 , … , x n ).
Voici le R
code qui a produit les images.
set.seed(17)
n <- 1e3
x <- cumsum((runif(n) <= 1/2)*2-1) # Binomial random walk at x_0=0
rho <- format(cor(x[-1], x[-n]), digits=3) # Lag-1 correlation
par(mfrow=c(1,2))
plot(x, type="l", col="#e0e0e0", main="Sample Path")
points(x, pch=16, cex=0.75, col=hsv(1:n/n, .8, .8, .2))
plot(x[-n], x[-1], asp=1, pch=16, col=hsv(1:n/n, .8, .8, .2),
main="Lag-1 Scatterplot",
xlab="Current value", ylab="Next value")
mtext(bquote(rho == .(rho)))