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.