Die Mathematik, die benötigt wird, um ein genaues Ergebnis zu erhalten, ist kompliziert, aber wir können einen genauen Wert für den erwarteten quadratischen Korrelationskoeffizienten relativ schmerzlos ableiten . Es hilft erklären , warum ein Wert nahe hält zeigt und warum die Länge zu erhöhen n der Irrfahrt nicht die Dinge ändern.1/2n
Es besteht die Gefahr von Verwirrung über Standardbegriffe. Die absolute Korrelation, auf die in der Frage Bezug genommen wird, sowie die Statistiken, die sie ausmachen - Varianzen und Kovarianzen -, sind Formeln , die man auf jedes Paar von Realisierungen von Zufallsläufen anwenden kann . Die Frage ist, was passiert, wenn wir uns viele unabhängige Erkenntnisse ansehen. Dafür müssen wir Erwartungen über den Zufalls-Walk-Prozess stellen.
(Bearbeiten)
Bevor wir fortfahren, möchte ich Ihnen einige grafische Einblicke geben. Ein Paar unabhängiger zufälliger Spaziergänge ist ein zufälliger Spaziergang in zwei Dimensionen. Wir können den Pfad zeichnen, der von jedem ( X t , Y t ) zu X t + 1 , Y t + 1 verläuft . Wenn dieser Pfad nach unten tendiert (von links nach rechts, auf den üblichen XY-Achsen aufgetragen) , müssen alle Y- Werte negiert werden, um den absoluten Wert der Korrelation zu untersuchen . Zeichnen Sie die Pfade auf Achsen, deren Größe dem X und entspricht(X,Y)(Xt,Yt)Xt+1,Yt+1YX - Werte gleich Standardabweichungen und überlagern die kleinsten Quadrate von Y zu X . Die Steigungen dieser Linien sind die absoluten Werte der Korrelationskoeffizienten, die immer zwischen 0 und 1 liegen .YYX01
Diese Abbildung zeigt solcher Wanderungen mit einer Länge von jeweils 960 (mit normalen Standardunterschieden). Kleine offene Kreise markieren ihre Startpunkte. Dunkle Kreise markieren ihre endgültigen Positionen.15960
Diese Hänge sind in der Regel ziemlich groß. Perfekt zufällige Streudiagramme dieser vielen Punkte hätten immer Steigungen nahe Null. Wenn wir die hier auftretenden Muster beschreiben müssten, könnten wir sagen, dass die meisten 2D-Irrwege allmählich von einem Ort zum anderen wandern. (Dies sind jedoch nicht unbedingt ihre Start- und Endpunkte!) In etwa der Hälfte der Fälle erfolgt diese Wanderung in diagonaler Richtung - und die Steigung ist dementsprechend hoch.
Der Rest dieses Beitrags skizziert eine Analyse dieser Situation.
(Xi)(W1,W2,…,Wn)Wiσ2
x=(x1,…,xn)
V(x)=1n∑(xi−x¯)2.
Eine gute Möglichkeit, diesen Wert zu berechnen, besteht darin, den halben Durchschnitt aller quadrierten Differenzen zu berechnen:
V(x)=1n(n−1)∑j>i(xj−xi)2.
xXn
E(V(X))=1n(n−1)∑j>iE(Xj−Xi)2.
Die Differenzen sind Summen von iid-Variablen,
Xj−Xi=Wi+1+Wi+2+⋯+Wj.
WkWkσ2
E((Wi+1+Wi+2+⋯+W2j))=(j−i)σ2.
Daraus folgt leicht
E(V(X))=1n(n−1)∑j>i(j−i)σ2=n+16σ2.
xy
E(C(X,Y)2)=3n6−2n5−3n2+2n480n2(n−1)2σ4.
XYn
ρ2(n)=E(C(X,Y)2)E(V(X))2=3403n3−2n2+3n−2n3−n.
Obwohl dies nicht konstant ist, nähert es sich schnell einem Grenzwert von 9 / 40. Seine Quadratwurzel, ungefähr0,47nähert sich daher dem erwarteten absoluten Wert vonρ ( n ) (Und unterschätzt es).
Ich bin sicher, dass ich Rechenfehler gemacht habe, aber Simulationen bestätigen die asymptotische Genauigkeit. In den folgenden Ergebnissen werden die Histogramme vonρ2( n ) zum 1000Bei jeder Simulation zeigen die vertikalen roten Linien den Mittelwert, während die gestrichelten blauen Linien den Wert der Formel anzeigen. Klar ist es falsch, aber asymptotisch ist es richtig. Offensichtlich die gesamte Verbreitung vonρ2( n ) nähert sich einer Grenze als nsteigt. Ebenso die Verteilung von| ρ(n) | (das ist die Menge des Interesses) wird sich einem Limit nähern.
Dies ist der R
Code, um die Figur zu erzeugen.
f <- function(n){
m <- (2 - 3* n + 2* n^2 -3 * n^3)/(n - n^3) * 3/40
}
n.sim <- 1e4
par(mfrow=c(1,4))
for (n in c(3, 10, 30, 100)) {
u <- matrix(rnorm(n*n.sim), nrow=n)
v <- matrix(rnorm(n*n.sim), nrow=n)
x <- apply(u, 2, cumsum)
y <- apply(v, 2, cumsum)
sim <- rep(NA_real_, n.sim)
for (i in 1:n.sim)
sim[i] <- cor(x[,i], y[,i])^2
z <- signif(sqrt(n.sim)*(mean(sim) - f(n)) / sd(sim), 3)
hist(sim,xlab="rho(n)^2", main=paste("n =", n), sub=paste("Z =", z))
abline(v=mean(sim), lwd=2, col="Red")
abline(v=f(n), col="Blue", lwd=2, lty=3)
}