Jak zbudować próbnik Gibbsa regresji Bayesowskiej mieszanki w języku R?

Nov 30 2020

Pracuję na próbniku Gibbsa o trzech parametrach i znamy pełny rozkład warunkowy trzech parametrów.

Odpowiedzi

TrungDung Nov 30 2020 at 11:05

Uwaga: to tylko komentarz, ale aby zacytować długi kod, umieściłem go tutaj.

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)))
  }

Błąd mówi, że może $p1$ i $p0$są NA. Moje doświadczenie ze sprawdzaniem tego typu błędów jest takie. Zamiast pętli for, po prostu daj$ite=2$ i $j=1$. Oblicz p1 i p0 jako swoje formuły. Sprawdź dokładnie, czy są NA, czy nie. Jeśli kody są symetryczne względem$iter$ i $j$i jeśli możesz poprawić błąd w tym przypadku, to przejdzie.