Scipy:如何适应威布尔分布?

时间:2016-07-10 02:10:41

标签: python scipy

通过

拟合威布尔分布我完全感到困惑
weibull_params = sp.stats.exponweib.fit(df.speed, floc=0, f0=1)
# Returns (1, 1.7358162061451901, 0, 9.4955614228786978)

这些参数如何与https://en.wikipedia.org/wiki/Weibull_distribution中的威布尔分布相对应?具体来说,wiki ac中的lambdak是什么?

http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.exponweib.html#scipy.stats.exponweib中,pdf定义为

exponweib.pdf(x, a, c) =
    a * c * (1-exp(-x**c))**(a-1) * exp(-x**c)*x**(c-1)

但在维基百科中,PDF是

enter image description here

另外,如果我将exponweib.pdf与它返回的参数

一起使用,我会得到不同的结果
df['speed'].hist(bins=arange(0, df.speed.max()), alpha=0.5, normed=True)

def weib(x,lamb,k):
    return (k / lamb) * (x / lamb)**(k-1) * np.exp(-(x/lamb)**k)
k_shape, lamb_scale = weibull_params[1], weibull_params[3]
plt.plot(x, weib(x, lamb_scale, k_shape), label='self-defined weibull')

plt.plot(x, sp.stats.exponweib.pdf(x, k_shape, lamb_scale, loc=0, scale=1),'--', label ='custom_order')
plt.legend()

enter image description here

0 个答案:

没有答案