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

alb*_*rto 2 r

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

alpha*log(x) # log version of log(x^alpha)
Run Code Online (Sandbox Code Playgroud)

在非对数的情况下,如果两个xalpha是零,R假定0 ^ 0 = 1,这是通常所期望的行为(例如:场景"零组的意见,即具有零概率"具有概率1).但是在alpha*log(x)版本中给出了NaN:

alpha <- 0
x <- 0
log(x^alpha) # gives 0
alpha*log(x) # gives NaN
Run Code Online (Sandbox Code Playgroud)

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

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

Jos*_*ans 5

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

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

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