我需要获得β分布的第N个分位数,或者相当于95%或99%的百分位数。这在Maple中更容易,它允许符号输入 - 但是如何在Python中完成?
我搜索过stackoverflow,似乎人们常常只关注正态分布。
谢谢!
答案 0 :(得分:5)
我最终选择了ppf:
scipy.stats.beta.ppf(prob,2,N-2)
答案 1 :(得分:1)
您可以使用以下函数计算β分布的分位数:
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])