Scipy Weibull CDF计算

时间:2014-12-11 20:57:19

标签: python scipy cdf weibull

我在Scipy做生存计算并且无法获得正确的值。

我的代码:

x,a,c = 1000,1.5,5000

vals = exponweib.cdf(x,a,c,loc = 0,scale = 1)

Val应该等于0.085559356392783004,但我得到的是0。

如果我定义自己的功能,我会得到正确的答案: def weibCumDist(x,a,c):     返回1-np.exp( - (x / c)** a)

我可以使用自己的功能,但我很好奇我做错了什么。有什么建议吗?

感谢。

1 个答案:

答案 0 :(得分:4)

您还没有正确地将参数映射到scipy的参数。实现等同于weibCumDist

In [22]: x = 1000

In [23]: a = 1.5

In [24]: c = 5000

In [25]: exponweib.cdf(x, 1, a, loc=0, scale=c)
Out[25]: 0.08555935639278299

请注意,exponweibexponentiated Weibull distribution

您可能想要使用scipy.stats.weibull_min。这是分发的实现,通常被称为""威布尔分布:

In [49]: from scipy.stats import weibull_min

In [50]: weibull_min.cdf(x, a, loc=0, scale=c)
Out[50]: 0.08555935639278299