Risposte:
La risoluzione formale di questo problema richiede innanzitutto una corretta definizione di a
" distribuzione soggetta al vincolo che "
Il modo naturale è definire la distribuzione di base a . E per applicare questo condizionale al caso . Se utilizziamo coordinate polari , il giacobino della trasformazione è Pertanto la densità condizionale della distribuzione di| | X | | = ϱ ϱ = 1 x 1 = ϱ cos ( θ 1 )
Conclusione: questa densità differisce dalla semplice applicazione della densità normale a un punto sulla sfera unitaria a causa del Jacobiano.
Il secondo passo è considerare la densità target e progetta un algoritmo Monte Carlo a catena Monteov per esplorare lo spazio dei parametri . Il mio primo tentativo sarebbe quello di un campionatore di Gibbs, inizializzato nel punto sulla sfera più vicino a , cioèe procedendo un angolo alla volta in modo Metropolis-entro-Gibbs:[0,π]d-2×[0,2π]μμ
Le scale , , , possono essere ridimensionate rispetto ai tassi di accettazione dei passaggi, verso un obiettivo ideale del .
Ecco un codice R per illustrare quanto sopra, con i valori predefiniti per e :Σ
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}
}
}
x E [ ( x - μ ) 2 ] ˜ = 1 non è strettamente possibile poiché è una variabile (continua) casuale. Se desideri che abbia una varianza di 1, ovvero (dove la tilde significa che stimiamo la varianza), allora dovrai richiedere che la sua varianza sia . Tuttavia, questa richiesta potrebbe essere in conflitto con . Cioè, per ottenere campioni con questa varianza è necessario che la diagonale di sia uguale a . 1 ΣΣ1
Per provare questa distribuzione in generale, è possibile generare normali standard iid e quindi moltiplicare per , la radice quadrata di , quindi aggiungere i mezzi . Σ μ