问题描述
例如,假设我有 p1
和 p2
:
p1 <- pnorm(-50)
p2 <- pnorm(-49)
我想知道它们的区别,即 p2-p1
,或等效的 log(p2-p1)
。不出所料,他们直接计算出的差值对计算机来说为零:
identical(p2-p1,0)
# [1] TRUE
通常,处理 pnorm
中极值的最佳方法是使用对数值:
ln_p1 <- pnorm(-50,log.p = T)
ln_p2 <- pnorm(-49,log.p = T)
但是,我不知道如何操纵 ln_p1
和 ln_p2
并在不经历极端值的情况下得到我需要的东西。
是否有一个函数可以直接返回两个极端分位数的概率差异的对数?如上例所示,可能类似于:pnorm_between(-50,-49,log.p = T)
?
我为什么要这样做:
我正在使用 p2-p1
函数处理 log(p2-p1)
(或 optim()
)上的优化(最大化)问题。初始条件有时不可避免地非常极端,导致 p2
和 p1
的极端值,在这种情况下,函数无法在几乎平坦的梯度上迭代自己。虽然可以调整所需的精度,但初始条件也是高度可变的,因此不知道什么精度是足够的。因此,我正在考虑将优化转换为对数或 logit 尺度,但一直无法这样做......
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)