In diesem Beitrag werden die Antworten in den Kommentaren zur Frage erläutert.
Sei . Fixiere jedes e 1 ∈ R n der Längeneinheit. Ein solcher Vektor kann immer orthonormal vervollständigt werden ( e 1 , e 2 , … , e n ) ( zum Beispiel mittels des Gram-Schmidt-Prozesses ). Diese Änderung der Basis (von der üblichen) ist orthogonal: Sie ändert die Längen nicht. So ist die Verteilung vonX=(X1,X2,…,Xn)e1∈Rn(e1,e2,…,en)
(e1⋅X)2||X||2=(e1⋅X)2X21+X22+⋯+X2n
hängt nicht von . Die Annahme von e 1 = ( 1 , 0 , 0 , … , 0 ) zeigt, dass dies die gleiche Verteilung wie hate1e1=(1,0,0,…,0)
X21X21+X22+⋯+X2n.(1)
Da der Normale iid werden, können sie geschrieben werden als σ - mal iid Standard - Normalvariablen Y 1 , ... , Y n und deren Quadrate sind σ 2 mal Γ ( 1 / 2 ) Verteilungen. Da die Summe von n - 1 unabhängig Γ ( 1 / 2 ) Verteilungen ist Γ ( ( n - 1 ) / 2 )XiσY1,…,Ynσ2Γ(1/2)n−1Γ(1/2)Γ((n−1)/2)haben wir festgestellt, dass die Verteilung von (1) is that of
σ2Uσ2U+σ2V=UU+V
U=X21/σ2∼Γ(1/2)V=(X22+⋯+X2n)/σ2∼Γ((n−1)/2) are independent. It is well known that this ratio has a Beta(1/2,(n−1)/2) distribution. (Also see the closely related thread at Distribution of XY if X∼ Beta(1,K−1) and Y∼ chi-squared with 2K degrees.)
Since
X1+⋯+Xn=(1,1,…,1)⋅(X1,X2,⋯,Xn)=n−−√e1⋅X
for the unit vector e1=(1,1,…,1)/n−−√, we conclude that Z is (n−−√)2=n times a Beta(1/2,(n−1)/2) variate. For n≥2 it therefore has density function
fZ(z)=n1−n/2B(12,n−12)(n−z)n−3z−−−−−−−−−√
on the interval (0,n) (and otherwise is zero).
As a check, I simulated 100,000 independent realizations of Z for σ=1 and n=2,3,10, plotted their histograms, and superimposed the graph of the corresponding Beta density (in red). The agreements are excellent.
Here is the R
code. It carries out the simulation by means of the formula sum(x)^2 / sum(x^2)
for Z, where x
is a vector of length n
generated by rnorm
. The rest is just looping (for
, apply
) and plotting (hist
, curve
).
for (n in c(2, 3, 10)) {
z <- apply(matrix(rnorm(n*1e5), nrow=n), 2, function(x) sum(x)^2 / sum(x^2))
hist(z, freq=FALSE, breaks=seq(0, n, length.out=50), main=paste("n =", n), xlab="Z")
curve(dbeta(x/n, 1/2, (n-1)/2)/n, add=TRUE, col="Red", lwd=2)
}