韦伯分布(威布尔分布,Weibull distribution)

韦伯分布(Weibull distribution) 一般用来统计可靠性或寿命检验时用,例如:预计在有效寿命阶段有多少次保修索赔?预计将在 8 小时老化期间失效的保险丝占多大百分比?

在管理科学与工程领域,见到一些学者假定产品的需求为韦伯分布。因为正态分布或者泊松分布过于理想化,韦伯分布相对来说更接近现实一些(从概率密度函数来看,韦伯分布一般具有长尾分布,即右偏分布的特点)。

韦伯分布的概率密度函数为:

f ( x , λ , k ) = { k λ ( x λ ) k − 1 e − ( x / λ ) k x ≥ 0 0 x < 0 f(x, \lambda, k)=\begin{cases} \frac{k}{\lambda}(\frac{x}{\lambda})^{k-1}e^{-(x/\lambda)^k}\quad & x\geq0\\ 0 & x<0 \end{cases} f(x,λ,k)={λk(λx)k1e(x/λ)k0x0x<0

其中, x x x 是随机变量, λ \lambda λ 是比例参数(scale), k k k 是形状参数(shape), k = 1 k=1 k=1 时,韦伯分布是指数分布。而如果 λ = 1 \lambda=1 λ=1 时,则称为最小化的韦伯分布(weibull_min,python 中的 scipy 所带,此时 − x -x x 对应的分布为最大化的韦伯分布,weibull_max )

均值:
λ Γ ( 1 + 1 k ) \lambda\Gamma(1+\frac{1}{k}) λΓ(1+k1)

方差:
λ 2 [ Γ ( 1 + 2 k ) − Γ ( 1 + 1 k ) 2 ] \lambda^2\left[\Gamma(1+\frac{2}{k})-\Gamma(1+\frac{1}{k})^2\right] λ2[Γ(1+k2)Γ(1+k1)2]

其中, Γ \Gamma Γ 为伽马函数(伽马函数并不是完全单调上升的,分界点为 1.4616,小于 1.4616 时单调下降),
Γ ( z ) = ∫ 0 ∞ t z − 1 e t d t \Gamma(z)=\int_0^\infty\frac{t^{z-1}}{e^t}dt Γ(z)=0ettz1dt

用 python 画伽马函数的概率密度曲线:

import numpy as np
import matplotlib.pyplot as plt


# define the pdf of weibull distribution
def weib(x, scale, shape):
    return (shape / scale) * (x / scale)**(shape - 1) * np.exp(-(x / scale) ** shape)


scale = 50
shape = 1.5
x = np.arange(1, scale*2)
y = np.zeros(len(x))  # [0 for i in range(len(x))]
for i in range(len(x)):
    y[i] = weib(x[i], scale, shape)

scale = 50
shape = 2.5
y1 = np.zeros(len(x))  # [0 for i in range(len(x))]
for i in range(len(x)):
    y1[i] = weib(x[i], scale, shape)
scale = 50
shape = 4
y2 = np.zeros(len(x))  # [0 for i in range(len(x))]
for i in range(len(x)):
    y2[i] = weib(x[i], scale, shape)


scale = 30
shape = 2.5
y3 = np.zeros(len(x))  # [0 for i in range(len(x))]
for i in range(len(x)):
    y3[i] = weib(x[i], scale, shape)
scale = 70
shape = 2.5
y4 = np.zeros(len(x))  # [0 for i in range(len(x))]
for i in range(len(x)):
    y4[i] = weib(x[i], scale, shape)


plt.subplot(2, 1, 1)
plt.plot(x, y, 'r', label='scale=50, shape=1.5')
plt.plot(x, y1, 'b', label='scale=50, shape=2.5')
plt.plot(x, y2, 'g', label='scale=50, shape=4')
plt.legend()
plt.subplot(2, 1, 2)
plt.plot(x, y3, 'r', label='scale=30, shape=2.5')
plt.plot(x, y1, 'b', label='scale=50, shape=2.5')
plt.plot(x, y4, 'g', label='scale=70, shape=2.5')
plt.legend()
plt.show()

韦伯分布(威布尔分布,Weibull distribution)_第1张图片
从图形可以看出,不论增加比例参数(均值也会随着增加),还是增加形状参数(均值一般也会随着增加),分布都更加类似正态分布。

你可能感兴趣的:(统计学,python)