我正在尝试在 Python 上实现非参数引导。它需要取一个样本,从中构建一个经验分布函数,然后从这个 edf 生成一堆样本。我该怎么做?
在 scipy 中,如果您知道描述它的确切公式,我只找到了如何制作自己的分布函数,但我只有一个 edf。

最佳答案

通过对样本进行排序得到的 edf:

N = samples.size
ss = np.sort(samples) # these are the x-values of the edf
                      # the y-values are 1/(2N), 3/(2N), 5/(2N) etc.
edf = lambda x: np.searchsorted(ss, x) / N

但是,如果您只想重新采样,那么您只需以相等的概率和替换从您的样本中抽取。

如果这对您来说太“繁琐”了,您可能可以使用某种插值来获得平滑的分布。

关于python - 如何从经验分布函数中取样,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42541421/

10-09 06:21
查看更多