gpt4 book ai didi

python - scipy.stats 中的毛刺分布

转载 作者:太空宇宙 更新时间:2023-11-04 02:19:42 25 4
gpt4 key购买 nike

我正在尝试计算毛刺分布的均值和标准差,但我不太确定如何输入它。我使用的 pdf 是:f(x) = (alpha*gamma*lambda**alpha*x**(gamma-1))/(lambda+x**gamma)**(alpha+1) 来自 IFoA 公式。

我计算出的参数为:alpha = 2.3361635751273977,lambda = 10.596809948869414 和 gamma = 0.5 以获得均值 = 500 和标准差 = 600。

有人可以建议我应该如何将数据输入到 scipy.stats.burrscipy.stats.burr12 中吗?

最佳答案

你需要burr12在这里,不是 burr。 (不同之处在于 x 的幂的符号位于另一个幂中。令人困惑的是,它是 burr12 在 SciPy 之外通常简称为 Burr,而不是 SciPy 称为 burr。)

Burr XII PDF 在 SciPy 中编写为 c*d*x**(c-1)*(1+x**c)**(-d-1) 其中 c , d 是正形状参数。你的公式

(alpha*gamma*lamda**alpha*x**(gamma-1)) / (lamda+x**gamma)**(alpha+1)

用 lambda 代替 1,因此涉及一些缩放。 SciPy 文档说

burr12.pdf(x, c, d, loc, scale) is identically equivalent to burr12.pdf(y, c, d) / scale with y = (x - loc) / scale.

因此,为了使 lamda+x**gamma 成为 1 + (x/scale)**gamma 的常数倍数,我们需要 比例lamda**(1/gamma)。指数对应于 SciPy 符号,如 c = gammad = alpha。让我们测试一下:

from scipy.stats import burr12
alpha = 2.3361635751273977
lamda = 10.596809948869414
gamma = 0.5

scale = lamda**(1/gamma)
c = gamma
d = alpha
print(burr12.mean(c, d, loc=0, scale=scale))
print(burr12.std(c, d, loc=0, scale=scale))

打印

500.0
600.0

关于python - scipy.stats 中的毛刺分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51911597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com