Cet article développe les réponses dans les commentaires à la question.
Soit . Fixez tout e 1 ∈ R n de longueur unitaire. Un tel vecteur peut toujours être complété sur une base orthonormée ( e 1 , e 2 , … , e n ) (au moyen du processus de Gram-Schmidt , par exemple). Ce changement de base (par rapport à l'habituel) est orthogonal: il ne change pas de longueurs. Ainsi, la répartition desX= ( X1, X2, … , Xn)e1∈ Rn( e1, e2, … , En)
( e1⋅ X)2| | X| |2= ( e1⋅ X)2X21+ X22+ ⋯ + X2n
ne dépend pas de . Prendre e 1 = ( 1 , 0 , 0 , … , 0 ) montre que cela a la même distribution quee1e1= ( 1 , 0 , 0 , … , 0 )
X21X21+ X22+ ⋯ + X2n.(1)
Étant donné que le sont iid normal, ils peuvent être écrits comme σ fois iid standards variables normales Y 1 , ... , Y n et leurs places sont σ 2 fois r ( 1 / 2 ) distributions. Etant donné que la somme de n - 1 indépendante Γ ( 1 / 2 ) des distributions est Γ ( ( n - 1 ) / 2 )XjeσOui1,…,Ynσ2Γ(1/2)n−1Γ(1/2)Γ((n−1)/2), nous avons déterminé que la distribution de est celle de(1)
σ2Uσ2U+σ2V=UU+V
où et V = ( X 2 2 + ⋯ + X 2 n ) / σ 2 ~ Γ ( ( n - 1 ) / 2 ) sont indépendants. Il est bien connu que ce rapport a une Beta ( 1 / deux , ( n - 1U=X21/σ2∼Γ(1/2)V=(X22+⋯+X2n)/σ2∼Γ((n−1)/2) distribution. (Voir également le fil étroitement lié àDistribution de X Y si X ∼ Beta ( 1 , K - 1 ) et Y ∼ chi-carré avec 2 K degrés.)(1/2,(n−1)/2)XYX∼(1,K−1)Y∼2K
Puisque
X1+⋯+Xn=(1,1,…,1)⋅(X1,X2,⋯,Xn)=n−−√e1⋅X
pour le vecteur unitaire , nous concluons queZest( √e1=(1,1,…,1)/n−−√Zfois par Beta(1/2,(n-1)/2)variable aléatoire. (n−−√)2=n(1/2,(n−1)/2) Pouril a donc une fonction de densitén≥2
fZ(z)=n1−n/2B(12,n−12)(n−z)n−3z−−−−−−−−−√
sur l'intervalle (et sinon est zéro).(0,n)
A titre de contrôle, je simulé réalisations indépendantes de Z pour σ = 1 et n = 2 , 3 , 10 , tracé de leurs histogrammes, et superposé au graphique de la densité Beta correspondant (en rouge). Les accords sont excellents.100,000Zσ=1n=2,3,10
Voici le R
code. Il effectue la simulation au moyen de la formule sum(x)^2 / sum(x^2)
pour , où est un vecteur de longueur généré par . Le reste consiste simplement à boucler ( , ) et à tracer ( , ).Zx
n
rnorm
for
apply
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)
}