当前位置: 代码迷 >> python >> 使用 python 从 beta 分布中获取分位数
  详细解决方案

使用 python 从 beta 分布中获取分位数

热度:25   发布时间:2023-06-16 10:19:26.0

我需要获得 beta 分布的第 N 个分位数,或者等效地,95% 或 99% 的百分位数。 这在 Maple 中要容易得多,它允许符号输入——但是在 Python 中这是如何完成的呢?

我搜索过stackoverflow,似乎人们经常只关心正态分布。

我最终得到了 ppf:

scipy.stats.beta.ppf(prob,2,N-2)

您可以使用以下函数计算 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])
  相关解决方案