如何以数值稳定的方式评估log(1 - normal_cdf(x))
?此处,normal_cdf
是标准正态分布的累积分布函数。
例如,在Python中:
import scipy
from scipy.stats import norm
np.log(1 - norm.cdf(10))
因为
-inf
几乎等于RuntimeWarning: divide by zero encountered in log
,所以给norm.cdf(10)
和1
。是否有像logsumexp
这样的函数可以避免数值下溢? 最佳答案
由于正态分布关于0对称,所以我们有
1 - F(x) = P(X > x)
= P(X < -x)
= F(-x)
因此
np.log(1 - norm.cdf(10)) = np.log(norm.cdf(-10))
= norm.logcdf(-10)
关于python - 以数值稳定的方式评估log(1-normal_cdf(x)),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50282805/