如果我将对数似然性分解为其总和,那么MLE可能性评估如何如此不同?

时间:2012-09-27 14:08:24

标签: matlab statistics

这是我在Matlab尝试做MLE时注意到的。我的第一个估算器使用了pdf的对数可能性,并将产品作为总和破坏了。例如,日志weibull pdf (f(x)=b ax^(a-1)exp(-bx^a))被分解为:

log_likelihood=log(b)+log(a)+(a-1)log(x)-bx^a

评估这与此截然不同:

log_likelihood=log(bax^(a-1)exp(-bx^a))

两个阶段的计算机做什么不同?第一个给出了更大的数字(几个数量级)。

2 个答案:

答案 0 :(得分:4)

根据您使用的数字,这可能是一个数字问题:如果将非常大的数字与非常小的数字组合在一起,由于数字精度的限制,您可能会得到不准确的信息。

一种可能性是你在第二种情况下失去了一些准确性,因为你在不同的比例下操作。

答案 1 :(得分:3)

我致力于实现系统发育树最大可能性的科学软件项目,并始终遇到有关数值精度的问题。通常下降是......

  1. 在模型中具有相同值的竞争应用程序之间
  2. 手动计算MLE分数时,
  3. 按计算中的操作顺序。
  4. 这一切都归结为第三,甚至在你的情况下。当计算中的指数被缩放时,小数字和非常大数字的多重复制会导致奇怪的结果。在着名的“What Every Computer Scientist Should Know About Floating-Point Arithmetic”中有很多关于此的内容。但是,我所提到的只是缺少它,如果这就是你感兴趣的那些。

    总而言之,您所看到的问题是计算函数时浮点/双精度数和运算表示中的严格数值问题。我不太熟悉MATLAB,但它们可能有一个任意精度类型,可以给你更好的结果。

    除此之外,尽可能长时间保持象征性,如果你对变量大小有任何直觉(如a总是与x相比总是非常大),那么请确保你是明智地选择括号的顺序。

    第一个等式应该更好,因为它正在处理添加log s,并且应该比第二个更稳定 - 尽管x^a让我有点厌倦,因为它会支配等式,但无论如何它都会在实践中。