从给定分布进行随机采样



好吧,所以我有这两个部分CDF

def cdfH1a(x):
    return 0.189497583190681*np.sqrt(2 * np.pi)*sp.erf(np.sqrt(2)* (x/2))
def cdfH1b(x):
    return 0.0141047395886939*np.sqrt(np.pi)*sp.erf(7.07106781186547*x - 14.1421356237309)

我已经这样做是为了找到经验的CDF

sorted = np.sort(sampleH1)
yVals = np.arange(len(sorted))/float(len(sorted))
plt.plot(sorted, yVals)
plt.show()

,但我不知道如何从CDF中生成10000个随机样品(将这些样品放入SampleH1中)

目前,我正在这样做,但我认为这是不对的

sampleH1 = []
for x in sampleH0: 
    sampleH1.append(x + (cdfH1a(x) + cdfH1b(x)))

其中sampleh0是正态分布的CDF

的10000个样品

如果有人能散发出一些灯光,谢谢

如果您使用的是numpy,则可以抛弃循环:

sampleH1 = sampleH0 + cdfH1a(sampleH0) + cdfH1b(sampleH0)

相关内容

  • 没有找到相关文章

最新更新