在计算对数似然时避免-inf(MATLAB)

时间:2015-03-31 15:39:23

标签: matlab exponent

使用MATLAB计算时

Log_likelihood = log((1 / 1e8)* exp(-0.5 * SSR)),

如果SSR(即标准平方误差)很大(例如SSR = 1e4)则exp()变为零并且Log_likelihood变为-inf。

有没有可以解决这个问题的数字/数学技巧?

谢谢

1 个答案:

答案 0 :(得分:6)

假设您的log是自然对数:

log(a*exp(b)) = log(a) + log(exp(b)) = log(a) + b.

a=(1/1e8)b = -0.5*SSR
此外,log(1/1e8) = log(1) - log(1e8),所以上面变为-log(1e8) + b,而第一项是常数,可以预先计算。