Sto provando a calcolare questa distribuzione posteriore in R. Il problema è che il numeratore, che è il prodotto di un gruppo di dbern (p_i, y_i) < 1, è troppo piccolo. (Il mio n è circa 1500). Quindi, R sputa 0 e anche i valori posteriori per tutti \ theta sono 0.Prodotto di probabilità troppo piccolo - R dà solo 0
Per chiarire, ogni y_i ha il proprio p_i, insieme questi p_i fanno un vettore di n elementi per n y's. Ogni theta ha il proprio vettore n-elemento di p_i.
Un esempio riproducibile (del numeratore)
p <- sample(seq(0.001,0.999,by=0.01), 1500, replace=T)
y <- sample(c(0,1), 1500, replace=T)
dbern(y, p) # 1500-element vector, each element < 1
prod(dbern(y, p)) # produces 0
exp(sum(log(dbern(y, p)))) # produces 0
EDIT (contesto): Sto facendo un analisi bayesiana punto di cambio (jstor.org/stable/25791783 - occidentale e Kleykamp 2004). A differenza del continuo y nel foglio, il mio y è binario, quindi sto usando il metodo di aumento dei dati in Albert e Chib (1993). Con questo metodo, la probabilità di y è Bernoulli, con p = cdf-normal (x'B).
Quindi, come p dipende da theta? È perché theta è il punto di svolta. Una delle x è un tempo fittizio - se theta = 10, ad esempio, il tempo fittizio = 1 per tutte le osservazioni dopo il giorno 10 e = 0 per tutte le osservazioni prima del giorno 10.
Quindi, p dipende da x, x dipende da theta - quindi, p dipende da theta.
Ho bisogno della quantità di cui sopra perché è il pieno condizionale di theta nel campionamento Gibbs.
si dovrebbe lavorare con 'log.likelihood' – Nishanth
Ho provato. Se non sbaglio, è necessario prendere il log della verosimiglianza (<0), sommare questi 1500 numeri negativi, quindi exp (la somma)? Anche così, la somma è così negativa che l'exp (la somma) sarà ancora pari a 0. Potrebbe essere che sto sbagliando? – Heisenberg
ok, inserisci un esempio riproducibile per noi per provare – Nishanth