Вы можете создавать свои собственные дистрибутивы, используя scipy.stats.rv_continous
Пример использования:
from scipy.stats import rv_continuous
def my_pdf_function(x, c1, c2):
return (x**2 * c1 + c2)
class cuadratic_distribution(rv_continuous):
def _pdf(self, x):
# For example: c1=1, c2=2/3 (normalized between x=0 and x=1)
return my_pdf_function(x, c1=1, c2=2/3)
my_pdf = cuadratic_distribution(a=0, b=1, name='my_pdf')
my_pdf.cdf([-1, 0.4, 2])
>>> array([0. , 0.316, 1. ])
Обратите внимание, что вы должны установить соответствующиеграницы распределения (a
и b
), а также соответствующие значения c1 и c2 для обеспечения 0