2017-04-21 63 views
0

我有一個大範圍的可能性向量,範圍在(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

回答

0

你有沒有考慮過對數似然函數?

L = (p1 * p2 * p3) ** N變成ln(L) = N * (ln(p1) + ln(p2) + ln(p3)) 這會對數值精度問題更具抗性。

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

+0

你好使用ln(L),我意識到我是多麼不好解釋了我的問題,我已經基本上編輯它。 – Canuck

+0

我嘗試了類似的東西,但我相信我可能已經實現它不正確,感謝您的幫助,我會審查 – Canuck