Итак, у меня есть это две части 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()
, но я не знаю, как генерировать 10000 случайных выборок из моей ВПР (такие образцы будут введены в sampleH1)
в настоящее время, я делаю это, но я не думаю, что это правильно
sampleH1 = []
for x in sampleH0:
sampleH1.append(x + (cdfH1a(x) + cdfH1b(x)))
Где sampleH0 10000 выборок из нормально распределенной CDF
Если кто-то может пролить некоторый свет, что было бы здорово, спасибо
Вы, вероятно, ищет [Обратное преобразование Sampling] (https://en.wikipedia.org/wiki/Inverse_transform_sampling). –