2017-03-01 151 views
1

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

+0

你为什么需要EDF?你应该从你的数据中抽样(与替换),这些将是你的引导样本 – maxymoo

回答

0

您通过排序样本中得到的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 

但是,如果你只是想重新取样,然后你只需从具有相等概率和更换您的样品得出。

如果这对您来说过于“高贵”,您可以使用某种内插来获得平滑分布。

+0

EDF是由**定义** steppy! – maxymoo

+0

@maxymoo是的,我知道。但通常人们并不是真正对edf感兴趣,而是作为估计“真实”分布的手段。我们可以有充分的理由假设真正的分布是平稳的。此外,根据您使用新样本的情况,从真实分布平滑的离散分布抽样可能会导致人为因素。 –

+0

这很有趣......你是否经常平滑自举? – maxymoo