Yanıtlar:
Bu sorunun resmi olarak çözülmesi için öncelikle
" dağılımı || x || ^ 2 = 1 kısıtlamasına tabidir "
Doğal yol, 'nin . Ve bunu koşullu olarak uygulamak için . Kullandığımız ise polar koordinatları , dönüşümün Jacobian'ı Bu nedenle, dağılımının koşullu yoğunluğu
Sonuç: Bu yoğunluk, Jacobian yüzünden birim küredeki bir noktaya Normal yoğunluğu uygulamaktan farklıdır.
İkinci adım ve parametre uzayını keşfetmek için bir Markov zinciri Monte Carlo algoritması tasarlayın . İlk denemem, , yani en yakın alanda başlatılan bir Gibbs örnekleyicisinde olacaktı. ve Gibbs içinde Metropolis tarzında bir seferde bir açıyla ilerlemek:
Ölçeğin , , , ideal bir hedefe doğru, adımların kabul oranları karşı ölçeklendirilebilir .
ve için varsayılan değerlerle, yukarıdaki örneği gösteren bir R kodu :
library(mvtnorm)
d=4
target=function(the,mu=1:d,sigma=diag(1/(1:d))){
carte=cos(the[1])
for (i in 2:(d-1))
carte=c(carte,prod(sin(the[1:(i-1)]))*cos(the[i]))
carte=c(carte,prod(sin(the[1:(d-1)])))
prod(sin(the)^((d-2):0))*dmvnorm(carte,mean=mu,sigma=sigma)}
#Gibbs
T=1e4
#starting point
mu=(1:d)
mup=mu/sqrt(sum(mu^2))
mut=acos(mup[1])
for (i in 2:(d-1))
mut=c(mut,acos(mup[i]/prod(sin(mut))))
thes=matrix(mut,nrow=T,ncol=d-1,byrow=TRUE)
delta=rep(pi/2,d-1) #scale
past=target(thes[1,]) #current target
for (t in 2:T){
thes[t,]=thes[t-1,]
for (j in 1:(d-1)){
prop=thes[t,]
prop[j]=prop[j]+runif(1,-delta[j],delta[j])
prop[j]=prop[j]%%(2*pi-(j<d-1)*pi)
prof=target(prop)
if (runif(1)<prof/past){
past=prof;thes[t,]=prop}
}
}
, (sürekli) rasgele bir değişken olduğundan kesinlikle mümkün değildir . 1 varyans olmasını istiyorsanız, yani (burada tilde varyansı tahmin ettiğimiz anlamına gelir), varyansının . Ancak bu talep ile çelişebilir . Yani, bu varyansı olan örnekler almak için diyagonalinin değerine eşit olması gerekir .
Örneğe genel olarak bu dağıtımı için, standart normalleri IID oluşturmak ve sonra çok-katlı ile olabilir , kare kökü , ardından anlamına eklemek .