我想根据各种类型的连续概率分布函数(PDF)生成用于测试的样本。例如,我有一个超过24小时的PDF,我想知道事件发生的概率是10分钟,20分钟,30分钟......等等。
因此,我想计算P(a< X< a + n),其中n是我选择的时间值。是否存在任何能够使用Python执行此操作的模块?它是否也可用于PDF的总结?
我想使用蓝色PDF检索红色直方图。我已经能够在这里完成,因为我已经知道每个时间片的事件数,但我想自动完成。这是一个Weibull函数,但它可能是其他任何东西(主要是普通和威布尔)。
在python中有什么东西可以帮助我吗?
感谢。
编辑:威布尔的CDF和PDF代码:
def weibull_pdf(scale, shape, x):
"""
Determine the probability P(x ).
:param scale: Scale parameter of Weibull distribution.
:param shape: Shape parameter of Weibull distribution.
:param x: Value.
:return: Value of f(x).
"""
if x < 0:
return 0
return (shape / scale) * ((x / scale) ** (shape - 1)) * np.exp(- (x / scale) ** shape)
def weibull_cdf(scale, shape, x):
"""
Determine the cumulative distributive function for the Weibull distribution.
:param scale: Scale parameter of Weibull distribution.
:param shape: Shape parameter of Weibull distribution.
:param x: Upper bound of the distribution.
:return: P(x <= X).
"""
if x < 0:
return 0
return 1 - np.exp(- (x / scale) ** shape)
PDF的确定如下:
# Determination of the PDF function.
for i in range(1, 10):
cdf = weibull_cdf(SCALE, SHAPE, i) - weibull_cdf(SCALE, SHAPE, i - 1)
print"CDF for interval [{}, {}]: {}".format(i - 1, i, str(cdf))
x = [i / (INPUTS_NB / 10.0) for i in range(INPUTS_NB)]
results = [weibull_pdf(SCALE, SHAPE, x[j]) for j in range(len(x))]
edit2:好的,所以当我编写代码时我没有注意到这一点,但我已经在上面一批代码中回答了我自己的问题(确定了PDF函数)。但是,感谢DYZ的信息。只需要做P(X