为什么我们渐近地接近值 0 比值 1 “更多”?

Why we get to approach asymptotically the value 0 "more" than the value 1?

提问人:Alecos Papadopoulos 提问时间:7/29/2019 最后编辑:Alecos Papadopoulos 更新时间:7/29/2019 访问量:66

问:

对于这里的人来说,这可能是基本的。我只是一个计算机用户。

我在标准正态累积分布函数 (CDF) 的极值(0 和 1)附近徘徊,我注意到我们可以得到变量的大负值的非常小的概率值,但对于大的正值,我们在另一端没有得到相同的范围,其中值“1”已经出现在变量的较小(绝对值)值中。

从理论角度来看,标准正态分布的尾部概率在零附近是对称的,因此 X=-10 左边的概率质量与 X=10 右边的概率质量相同。因此,在 X=-10 时,CDF 与零的距离与它在 X=10 时与单位的距离相同。 但是计算机/软件复合体没有给我这个。

我们的计算机和软件(通常)计算方式中是否有某种东西造成了这种不对称现象,而实际关系是对称的?

在“r”中完成的计算,使用普通笔记本电脑。

这篇文章是相关的,从尾部的 qnorm 获取高精度值

r 精密 浮动精度

评论

2赞 Eric Postpischil 7/29/2019
致接近投票者:这是一个关于浮点格式的问题,而不是关于统计数据的问题。它属于 Stack Overflow。
1赞 r2evans 7/29/2019
阿莱科斯,虽然我不怀疑你的发现(我相信埃里克的答案),但我很好奇你究竟是如何发现这种现象的。(也许为什么,如果你愿意放纵的话。
1赞 Alecos Papadopoulos 7/29/2019
@r2evans 这是一个小型计算项目,用于评估变量域中尽可能大的正态和相关 CDF。在某些统计模型中,我们需要这样做,在这些模型中,估计涉及优化一个函数,该函数包括正态 CDF 或生存函数的对数,并且必须迭代求解。虽然这种难以察觉的概率不属于现实世界,但在使用基于梯度的方法等进行迭代搜索时,软件可能会尝试一个极值——如果它被评估为正好为零或一,估计例程就会崩溃。
1赞 Eric Postpischil 7/29/2019
像许多数学库和应用程序一样,R 有一个函数,用于处理 1: 附近的数字对数,该函数返回 1+x 的对数。假设你有一个互补的累积分布(又名生存)函数 Ft(x) = 1−F(x),而不是累积分布函数 F(x)。然后 log(F(x)) = log(1-Ft(x)) = log1p(-Ft(x))。因此,当 F 接近 1(并且浮点精度不足以表示它的接近程度)时,Ft 接近 0(并且可以使用更高的精度),并且可能是更好的结果。在 0 附近分布对称时,Ft(x)=F(−x)。log1plog1p(x)log1p(-Ft(x))
0赞 Eric Postpischil 7/29/2019
因此,要计算 CDF 在 1 附近的对数,您可以使用 .log1p(-F(-x))

答:

5赞 Eric Postpischil 7/29/2019 #1

浮点格式将数字表示为符号 s(+1 或 -1)、有效 f 和指数 e。每种格式都有一些固定的基数 b,因此表示的数字是 sf•b e而 f 被限制为 [1, b) 中,并且可以表示为某个固定数字 p 的基数 b 数字。 这些格式可以通过使 e 非常小来表示非常接近于零的数字。但是它们最接近 1(除了 1 本身)是 f 尽可能接近 1(除了 1 本身)并且 e 是 0 或 f 尽可能接近 b 并且 e 是 −1。

例如,在许多语言和实现中常用的 IEEE-754 binary64 格式中,b2,p 为 53,对于正常数字,e 可以低至 −1022(有些次正常数字可能更小)。这意味着最小的可表示正态数为 2−1022。但在 1 附近,要么 e 是 0 而 f 是 1+2−52,要么是 e 是 -1,f 是 2−2−52后一个数字更接近 1;它是 sfbe = +1•(2−2−52)•2−1 = 1−2−53double

因此,在这种格式中,我们可以得到 2−1022 与零的距离(使用次正态数字更接近),但只能达到 2−53 与 1 的距离。

评论

0赞 Alecos Papadopoulos 7/29/2019
谢谢,这就是我一直在寻找的答案。