Comment construire un échantillonneur Gibbs de régression bayésienne de mélange en R?
Nov 30 2020
Je travaille sur un échantillonneur Gibbs de trois paramètres et nous connaissons la distribution conditionnelle complète de trois paramètres.
Réponses
TrungDung Nov 30 2020 at 11:05
Remarque: Ceci n'est qu'un commentaire mais pour citer un long code, je le mets ici.
for (ite in 2:NSim){ #Full conditional for pi pi[ite]=rbeta(1, sum(delta[ite-1,])+0.5, sum(1-delta[ite-1,])+0.5) #Full conditional for delta for(j in 1:4){ p1=pi[ite]*exp(-beta[ite-1,j]^2/(20)) p0=((1-pi[ite])*10^3)*exp(-500*beta[ite-1,j]^2) cat('\n',ite,j,(p1/(p0+p1))) delta[ite,j]=rbinom(1, 1,prob=(p1/(p0+p1))) }
L'erreur dit que peut-être $p1$ et $p0$sont des NA. Mon expérience lors de la vérification de ce type d'erreur est la suivante. Au lieu de la boucle for, donnez simplement$ite=2$ et $j=1$. Calculez p1 et p0 comme vos formules. Vérifiez soigneusement s'ils sont des NA ou non. Si les codes sont symétriques par rapport à$iter$ et $j$, et si vous pouvez corriger l'erreur dans ce cas, cela passera.