使用Python从Beta分布获取分位数

5

我需要获取beta分布的第N分位数,或等价地,95%或99%的百分位数。在Maple中,这要容易得多,因为它允许符号输入-但是Python如何实现呢?

我已经搜索了stackoverflow,并且似乎人们通常只关注正态分布。


我有点糊涂。你是在问一个方法,比如说,判断x=1是否处于95%的百分位吗?你可以使用scipy.stats.beta来实现。 - Julien
谢谢@Julien,我刚刚做了那件事。 - irene
2个回答

6
我最终选择了ppf:
scipy.stats.beta.ppf(prob,2,N-2)

更好了。123 - Petter

1
您可以使用以下函数计算beta分布的分位数:
from scipy.stats import beta
import numpy as np
a, b = 2.31, 0.627
x = np.linspace(beta.ppf(0.01, a, b), beta.ppf(0.99, a, b), 100)
distribution=beta.pdf(x, a, b)
def quantile(x,quantiles):
    xsorted = sorted(x)
    qvalues = [xsorted[int(q * len(xsorted))] for q in quantiles]
    return zip(quantiles,qvalues)
quantiles = quantile(distribution,[0.05,0.16,.5,.84, 0.95])

非常感谢!最终我使用了ppf,但这确实很有帮助。 - irene

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接