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

计算对数似然时避免-inf(MATLAB),matlab,exponent,Matlab,Exponent,用MATLAB进行计算时 对数似然=log1/1e8*exp-0.5*SSR 如果SSR即标准平方误差较大,例如SSR=1e4,则exp变为零,对数似然变为-inf 有什么数字/数学技巧可以解决这个问题吗 谢谢假设您的日志是自然对数: log(a*exp(b)) = log(a) + log(exp(b)) = log(a) + b. 其中a=1/1e8,b=-0.5*SSR 此外,log1/1e8=log1-log1e8,因此上面的值变成-log1e8+b,而第一项是常数,可以预先计算。假设

用MATLAB进行计算时

对数似然=log1/1e8*exp-0.5*SSR

如果SSR即标准平方误差较大,例如SSR=1e4,则exp变为零,对数似然变为-inf

有什么数字/数学技巧可以解决这个问题吗

谢谢

假设您的日志是自然对数:

log(a*exp(b)) = log(a) + log(exp(b)) = log(a) + b.
其中a=1/1e8,b=-0.5*SSR 此外,log1/1e8=log1-log1e8,因此上面的值变成-log1e8+b,而第一项是常数,可以预先计算。

假设您的对数是自然对数:

log(a*exp(b)) = log(a) + log(exp(b)) = log(a) + b.
其中a=1/1e8,b=-0.5*SSR
此外,log1/1e8=log1-log1e8,因此上面的结果变成了-log1e8+b,而第一项是常数,可以预先计算。

简单的方法类似于p=1/1e8*exp-0.5*SSR;然后是pp<1e-100=1e-100。。。Log_似然=logp;您应该将日志和exp过程结合起来。读这篇文章,一个简单的方法应该是p=1/1e8*exp-0.5*SSR;然后是pp<1e-100=1e-100。。。Log_似然=logp;您应该将日志和exp过程结合起来。读这个