像x ^ 2这样的概率分布

时间:2018-11-20 16:06:06

标签: numpy probability probability-distribution

我搜索了一会儿,找不到适合我需要的任何概率分布。分发看上去应该类似于函数c1 * x^2 + c2。我在numpy中找到的最接近的是Beta分布,其中alpha = 0.5和beta = 0.5。但我不喜欢其中部的平原地区。有人有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用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.   ])

请注意,您应该适当地设置分布的边界(ab),以及c1和c2的对应值,以确保0