log(0 ^ 0)给出0但0 * log(0)给出NaN

时间:2017-08-18 18:00:07

标签: r

在处理loglikelihoods时,我有时会想到:

alpha*log(x) # log version of log(x^alpha)

在非日志情况下,如果xalpha都为零,则R假设0 ^ 0 = 1,这通常是期望的行为(例如:“零观察”零概率“有概率1)。但是alpha*log(x)版本给出了NaN:

alpha <- 0
x <- 0
log(x^alpha) # gives 0
alpha*log(x) # gives NaN

我读过0*Inf = NaN是IEEE标准,但我们应该做什么呢?为alpha = 0创建特定案例?在这种情况下不使用日志?还有别的吗?

我想这是一个非常常见的场景,我想知道其他人是如何处理的,或者是否有一些常见的做法。

1 个答案:

答案 0 :(得分:5)

R逐步完成代数方法,这些步骤是

log(0 ^ 0)= log(1)= 0

0 * log(0)= 0 * Inf =?