Intrygujący w tym wyniku jest to, jak bardzo wygląda rozkład współczynnika korelacji. Jest powód.
Załóżmy, że (X,Y) jest dwuwymiarową normalną z zerową korelacją i wspólną wariancją σ2 dla obu zmiennych. Narysuj próbkę (x1,y1),…,(xn,yn) . Jest dobrze znane i łatwo ustalone geometrycznie (tak jak Fisher sto lat temu), żerozkład współczynnika korelacji próbki
r=∑ni=1(xi−x¯)(yi−y¯)(n−1)SxSy
jest
f(r)=1B(12,n2−1)(1−r2)n/2−2, −1≤r≤1.
(Tutaj, jak zwykle, i ˉ y są średnimi próbki, a S x i S y są pierwiastkami kwadratowymi obiektywnych estymatorów wariancji.) x¯y¯SxSy jestfunkcją Beta, dla którejB
1B(12,n2−1)=Γ(n−12)Γ(12)Γ(n2−1)=Γ(n−12)π−−√Γ(n2−1).(1)
Aby obliczyć , możemy wykorzystać jego niezmienność przy rotacjach w R n wokół linii generowanej przez ( 1 , 1 , … , 1 ) , wraz z niezmienniczością rozkładu próbki przy tych samych obrotach, i wybrać y i / S y to dowolny wektor jednostkowy, którego składniki sumują się do zera. Jeden taki wektor jest proporcjonalny do v = ( n - 1 , - 1 , … ,rRn(1,1,…,1)yi/Sy . Jego standardowe odchylenie wynosiv=(n−1,−1,…,−1)
Sv=1n−1((n−1)2+(−1)2+⋯+(−1)2)−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−√=n−−√.
W związku z tym musi mieć taki sam rozkład jakr
∑ni=1(xi−x¯)(vi−v¯)(n−1)SxSv=(n−1)x1−x2−⋯−xn(n−1)Sxn−−√=n(x1−x¯)(n−1)Sxn−−√=n−−√n−1Z.
Therefore all we need to is rescale r to find the distribution of Z:
fZ(z)=∣∣n−−√n−1∣∣f(n−−√n−1z)=1B(12,n2−1)n−−√n−1(1−n(n−1)2z2)n/2−2
for |z|≤n−1n√. Formula (1) shows this is identical to that of the question.
Not entirely convinced? Here is the result of simulating this situation 100,000 times (with n=4, where the distribution is uniform).
Pierwszy histogram przedstawia współczynniki korelacji natomiast drugi histogram przedstawia współczynniki korelacji ( x i , v i ) , i = 1 , … , 4 ) dla losowo wybrany wektor v i, który pozostaje stały dla wszystkich iteracji. Oba są jednolite. Wykres QQ po prawej stronie potwierdza, że te rozkłady są zasadniczo identyczne.(xi,yi),i=1,…,4(xi,vi),i=1,…,4) vi
Oto R
kod, który wytworzył fabułę.
n <- 4
n.sim <- 1e5
set.seed(17)
par(mfrow=c(1,3))
#
# Simulate spherical bivariate normal samples of size n each.
#
x <- matrix(rnorm(n.sim*n), n)
y <- matrix(rnorm(n.sim*n), n)
#
# Look at the distribution of the correlation of `x` and `y`.
#
sim <- sapply(1:n.sim, function(i) cor(x[,i], y[,i]))
hist(sim)
#
# Specify *any* fixed vector in place of `y`.
#
v <- c(n-1, rep(-1, n-1)) # The case in question
v <- rnorm(n) # Can use anything you want
#
# Look at the distribution of the correlation of `x` with `v`.
#
sim2 <- sapply(1:n.sim, function(i) cor(x[,i], v))
hist(sim2)
#
# Compare the two distributions.
#
qqplot(sim, sim2, main="QQ Plot")
Odniesienie
R. A. Fisher, Frequency-distribution of the values of the correlation coefficient in samples from an indefinitely large population. Biometrika, 10, 507. See Section 3. (Quoted in Kendall's Advanced Theory of Statistics, 5th Ed., section 16.24.)