Я использую настраиваемую функцию f(x)
для определения настраиваемого распределения с использованием класса copy
rv_continuous
. Мой код:
class my_pdf_gen(rv_continuous):
def _pdf(self, x, integral):
return f(x)/integral
, где integral
обеспечивает нормализацию. Я могу создать его экземпляр с
my_pdf = my_pdf_gen(my_int,a = a, b = b, name = 'my pdf')
с a,b
верхним и нижним пределом диапазона значений и my_int= scipy.integrate.quad(f, a, b)[0]
. Я также могу создать случайную выборку данных, используя my_pdf.rvs(my_int, size = 5)
, но это очень медленно. (До 6 секунд, когда size=9
).
Я читал, что следует также перезаписать некоторые другие методы в классе (например, _ppf
), но из примеров, которые я обнаружил, мне это не ясно как этого добиться в моем случае.
Большое спасибо!