随机数和一组随机数之间的最小差的 PDF 是多少

机器算法验证 可能性 分布 密度函数 指数分布
2022-01-23 21:04:43

我有一个包含 N 个随机数(从均匀分布中选择)的列表(我们称之为接下来,我从同一个分布中滚动另一个随机数(我们称这个数字为“b”)。现在我在列表中找到最接近数字“b”的元素并找到这个距离。{LN}R(0,1){LN}

如果我重复这个过程,我可以绘制通过这个过程获得的距离分布。

时,这种分配方法是什么?N

当我在 Mathematica 中模拟它时,它看起来好像接近指数函数。如果列表是 1 个元素长,那么我相信这将完全遵循指数分布。

查看指数分布的维基百科,我可以看到有关该主题的一些讨论:

在此处输入图像描述

但我无法解释他们在这里所说的内容。这里的“k”是什么?我的情况是他们在的限制中所描述的吗?n

编辑:在 Bayequentist 给出非常有用的直观回答后,我现在明白的行为应该接近狄拉克三角函数。但我仍然想了解为什么我的数据(就像一堆指数分布中的最小值)似乎也是指数的。有没有办法可以弄清楚这个分布到底是什么(对于大但有限的N)?N

下图是这样的分布对于大但有限的 N 的样子: 在此处输入图像描述

EDIT2:这是一些模拟这些分布的python代码:

%matplotlib inline
import math
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
numpoints = 10000
NBINS = 1000

randarray1 = np.random.random_sample((numpoints,))
randarray2 = np.random.random_sample((numpoints,))

dtbin = []

for i in range(len(t1)):
    dt = 10000000
    for j in range(len(t2)):
        delta = t1[i]-t2[j]
        if abs(delta) < abs(dt): 
            dt = delta
    dtbin.append(dt)

plt.figure()
plt.hist(dtbin, bins = NBINS)
plt.show()
4个回答

如果您一直在寻找到上面下一个值的距离,并且如果您在处插入了一个额外的值,所以这总是有答案,那么使用旋转对称,这些距离的分布将与最小值的分布相同上的独立均匀随机变量1Dn+1[0,1]

那将有等密度对于大和小 ,这个密度可以用来近似,解释你发现的指数形状。P(Dd)=1(1d)n+1f(d)=(n+1)(1d)n0d1ndf(d)nend

但是您的问题稍微复杂一些,因为您对与上方下方最近值的有符号距离感兴趣。的 iid 指数随机变量中的最小值是具有速率的指数随机变量。负值的可能性近似值实际上变成了拉普拉斯分布,其中记住这是针对大和小的(特别是真实密度为,除非λ2λd

f(d)ne2n|d|
nd012<d<12)。随着的增加,这几乎将所有密度集中在处,就像 Bayequentist 对 Dirac delta 分布极限的响应一样n0

的情况下,密度的近似值看起来像这样,与模拟数据的形状相匹配。n=106

在此处输入图像描述

时,中的所有实数因此,从中最接近的数字的距离将接近 0,因为距离分布接近Dirac delta 分布NLN(0,1)(0,1)LNNN

以下是一些模拟: 在此处输入图像描述

这是一个代码片段:

n <- 100000
Ln <- runif(n)

nSim <- 10000
distances <- rep(0,nSim)
for (i in 1:nSim){
  b <- runif(1)
  distances[i] <- min(abs(Ln-b))
}
hist(distances,main="N=100000")

有没有办法可以弄清楚这个分布到底是什么(对于大但有限的N)?

两个标准 Uniform 随机变量的差异是 Triangular(-1,0,1) 与 pdf上定义1|x|(1,1)

的差异的绝对值f(x)

在此处输入图像描述

重复练习次并取最小距离相当于找到父 pdf阶统计量,由下式给出:n(1st)f(x)

在此处输入图像描述

我正在使用 Mathematica的mathStatica包中的 OrderStat 函数来自动化细节,并且支持域是 (0,1)。该解决方案具有幂函数分布,其 pdf 格式为g(x)=axa1

下图比较了(红色虚线曲线)...与蒙特卡罗模拟(波浪形蓝色曲线)的精确 pdf 图g(x)n=10

在此处输入图像描述

模拟:当您使用Mathematica进行模拟时,这是我在Mathematica中用于数据模拟的代码:

  data = Table[Min[Abs[RandomReal[{}, 10] - RandomReal[]]], 20000];

让你得到一个大于d作为您的结果,您的样本中的所有数字都必须是d远离b. 任何人发生这种情况的概率x0只是范围之外的概率质量b±d. 叫那个poutside. 所有人都发生这种情况的概率xi在您的示例中是(poutside)N. 如果xi从单位区间中统一选择,则poutside为了b多于d从边界将是12d,这给了poutsideN=(12d)N. 对于大N和小d, 可以近似为e2Nd.