有没有人知道如何在scipy的'genextreme'发行版中设置'q'参数(控制下尾概率)?
#/ usr / bin / env python
将numpy导入为np
将pylab导入为plt
来自scipy.stats import genextrememu,sigma = 10,4 #问题:如何在genextreme中设置q,下尾或上尾概率?
生成50个值
rv = genextreme(c = [0],loc = mu,scale = sigma)
x = np.linspace(0,40,50)#从0-40y_pdf = rv.pdf(x)
plt.plot(x,y_pdf,'ro-',label ='PDF')y_cdf = rv.cdf(x)
plt.plot(x,y_cdf,'b * - ',label ='CDF')plt.legend()
plt.show()
答案 0 :(得分:1)
q
不是scipy genextreme distribution的参数。它是方法ppf
(cdf的反转)和isf
(生存函数的反转)的参数。如果你查看其他发行版的文档 - 例如。 norm,gamma - 您会看到所有类级文档字符串在其“参数”中列出q
,但该文档概述了所有方法的参数。 genextreme
具有标准的位置和比例参数,以及一个形状参数c
。
示例:
>>> genextreme.cdf(genextreme.ppf(0.95, c=0.5), c=0.5)
0.94999999999999996
您可以找到有关generalized extreme distribution on wikipedia的更多信息,但请注意,scipy中使用的shape参数与维基百科文章中的形状参数符号相反。例如,以下内容生成维基百科图:
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import genextreme
# Create the wikipedia plot.
plt.figure(1)
x = np.linspace(-4, 4, 201)
plt.plot(x, genextreme.pdf(x, 0.5), color='#00FF00', label='c = 0.5')
plt.plot(x, genextreme.pdf(x, 0.0), 'r', label='c = 0')
plt.plot(x, genextreme.pdf(x, -0.5), 'b', label='c = -0.5')
plt.ylim(-0.01, 0.51)
plt.legend(loc='upper left')
plt.xlabel('x')
plt.ylabel('Density')
plt.title('Generalized extreme value densities')
plt.show()
结果:
当c
< 0,分布支持的左端是loc + scale / c
。以下内容使用c = -0.25
,scale = 5
和loc = -scale / c
创建分布图(因此支持的左端为0):
c = -0.25
scale = 5
loc = -scale / c
x = np.linspace(0, 80, 401)
pdf = genextreme.pdf(x, c, loc=loc, scale=scale)
plt.plot(x, pdf)
plt.xlabel('x')
plt.ylabel('Density')
简介:
scipy文档网站上的stats
tutorial提供了有关分发类的更多信息,包括shifting and scaling a distribution部分。