我正在尝试计算R中的这种后验分布。问题是分子(这是一束dbern(p_i,y_i)
为了明确起见,每个y_i都有自己的p_i,这些p_i共同构成n个y的n个元素的向量。每个theta具有其自己的p_i的n元素矢量。

可重现的示例(分子)

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

编辑(上下文):我正在做贝叶斯变化点分析(jstor.org/stable/25791783-Western和Kleykamp 2004)。与本文中的连续y不同,我的y是二进制的,因此我使用的是Albert和Chib(1993)中的数据扩充方法。使用该方法,y的似然度为伯努利,其中p = cdf-normal(x'B)。

那么p如何取决于theta?这是因为theta是变更点。 x之一是时间虚拟对象-例如,如果theta = 10,则对于第10天之后的所有观察对象来说,时间虚拟对象= 1,对于第10天之前的所有观察对象而言,则是0虚拟对象。

因此,p取决于x,x取决于theta-因此,p取决于theta。

我需要上述数量,因为这是吉布斯采样中theta的全部条件。

最佳答案

解决此类精度问题的一种方法是在日志空间中工作。但是,这会引入分母的对数和积,这通常可能很痛苦。

如果您出于优化目的而计算后验,请注意,您也许可以完全舍弃分母:您无需进行规范化即可找到argmax

关于r - 可能性的乘积太小-R仅给出0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16127435/

10-12 22:38