涉及非常小数字的可能性

Likelihood involving very small numbers

我有一个很大的似然向量,它们都在(0 到 1)范围内,但所有数字都比 1 小很多。我需要计算这些向量乘积的最大似然。

如何避免下溢,我的钳工在我所有的尝试中都失败了。我采取的第一步是将数组除以数组中的最大值。 我正在最大化 n 次采样的两个概率之和的乘积,最终我需要根据 BIC 最小化:

BIC = -2. * ln(L) + 5n_theta(nz)

无论如何 L 是一个非常小的数组,形式为

L = product of ([(p(z1|a) + p(z1|b)), (p(z2|a) + p(z2|b)), ...., (p(zn|a) + p(zn|b))])

这是一个示例,其中有两个参数 ab,我改变了数组的大小 n,每个 p< 1

您是否考虑过使用对数似然法?

L = (p1 * p2 * p3) ** N 变为 ln(L) = N * (ln(p1) + ln(p2) + ln(p3)) 这将更能抵抗数值精度问题。

然后你可以直接在-2.0 * ln(L) + 5n_theta(nz)

中使用ln(L)