Math-00.数学分布-29.Weibull分布

Weibull 分布(Weibull distribution)是 $(0,\infty)$ 上的灵活寿命分布,通过形状参数 $k$ 控制风险率递增、恒定或递减;$k=1$ 时退化为 指数分布,广泛用于可靠性工程与生存分析。

段末注释风险率(hazard rate)$h(t)=f(t)/S(t)$ 表示时刻 $t$ 瞬时失效强度;Weibull 的 $h(t) \propto t^{k-1}$。

读前说明:连续分布,下文给出 PDF。系列:00 规划 | 前置:22.指数


1. 产生背景与直观

图 1 Weibull 直观

Waloddi Weibull(1951)用于描述材料强度与寿命。最弱环模型:大量独立微缺陷中最早失效时间趋 Weibull。$k>1$ 表示老化(越用越容易坏);$k<1$ 表示早期失效( burn-in 后改善)。


2. 定义与参数

$X \sim \mathrm{Weibull}(k, \lambda)$(scipy:weibull_min(c=k, scale=λ)):

要素 内容
支撑集 $[0, +\infty)$
形状 $k > 0$
尺度 $\lambda > 0$

3. PDF 与 CDF

图 2 PDF 随 k 变化

3.1 PDF

$$
f(x) = \frac{k}{\lambda}\left(\frac{x}{\lambda}\right)^{k-1} \exp\left[-\left(\frac{x}{\lambda}\right)^k\right], \quad x \ge 0
$$

3.2 CDF 与生存函数

$$
F(x) = 1 - \exp\left[-\left(\frac{x}{\lambda}\right)^k\right], \quad S(x) = \exp\left[-\left(\frac{x}{\lambda}\right)^k\right]
$$

分位数:$x_p = \lambda [-\ln(1-p)]^{1/k}$。


4. 数字特征

公式
$\mathbb{E}[X]$ $\lambda ,\Gamma(1 + 1/k)$
$\mathrm{Var}(X)$ $\lambda^2 \left[\Gamma(1+2/k) - \Gamma^2(1+1/k)\right]$
风险率 $h(t)$ $\dfrac{k}{\lambda}\left(\dfrac{t}{\lambda}\right)^{k-1}$
$k$ 风险率 含义
$k=1$ 常数 无记忆 → Exp
$k>1$ 递增 磨损/老化
$k<1$ 递减 infant mortality

5. 与其他分布的关系

关系 说明
Exponential $k=1$:$\mathrm{Weibull}(1,\lambda)=\mathrm{Exp}(1/\lambda)$
Rayleigh $k=2$ 特例
Gumbel 极值 经变换联系极值分布
Gamma / Log-normal 同为正值寿命备选
Cox 模型 半参数风险,Weibull 为参数特例

6. 前提假设

假设 含义 违背时
$X\ge 0$ 寿命/等待时间非负
风险率可建模 失效强度随时间按幂律变化 恒定风险 → 指数
独立寿命(经典) 各单元失效独立 竞争风险 → 多因失效模型
形状 $k$ 合理 $k<1$ 递减、$k=1$ 恒定、$k>1$ 递增风险 多阶段 → 混合 Weibull

段末注释:$k=1$ 时 Weibull 退化为指数;广泛用于可靠性、生存分析。


7. 适用场景

图 3 适用场景

场景 示例
可靠性 轴承、芯片寿命
生物/临床 设备或患者生存时间(含删失)
材料强度 断裂应力
酶/试剂稳定性 失活时间(若 hazard 单调)
wind 工程 风速极值(经变换)

8. 局限与误用

图 4 局限

问题 说明
风险率非单调 浴盆曲线 → 混合 Weibull / Cox
强删失未处理 需生存分析(KM、Cox)
与 Log-normal 竞争 尾部行为不同,需 QQ/ AIC 比较
$k$ 估计方差大 小样本拟合不稳定
多模态寿命 单 Weibull 不够

9. 参数估计与推断

9.1 MLE

对未删失样本 $x_i$,对数似然:

$$
\ell(k,\lambda) = n\ln k - nk\ln\lambda + (k-1)\sum\ln x_i - \sum (x_i/\lambda)^k
$$

数值优化求 $\hat{k},\hat{\lambda}$。

9.2 检验

  • K-S / Anderson-Darling 拟合优度
  • 与指数性检验:$H_0: k=1$

10. 示例与代码

场景:模拟 $k=2, \lambda=100$ 的元件寿命,MLE 拟合并画 PDF。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt

k, lam = 2.0, 100.0
data = stats.weibull_min.rvs(c=k, scale=lam, size=200, random_state=42)

# MLE via fit
k_hat, loc, lam_hat = stats.weibull_min.fit(data, floc=0)
print(f"true k={k}, lam={lam}; fit k={k_hat:.2f}, lam={lam_hat:.1f}")

x = np.linspace(0, 250, 300)
plt.figure(figsize=(8, 4))
plt.hist(data, bins=25, density=True, alpha=0.6, label='data')
plt.plot(x, stats.weibull_min.pdf(x, k, scale=lam), '--', label='true')
plt.plot(x, stats.weibull_min.pdf(x, k_hat, scale=lam_hat), '-', label='fitted')
plt.xlabel('lifetime'); plt.legend()
plt.savefig('weibull_fit.png', dpi=150)

# hazard: h(t) = (k/lam)*(t/lam)^(k-1)
t = np.linspace(1, 200, 100)
h = (k_hat/lam_hat) * (t/lam_hat)**(k_hat-1)
print("hazard at t=100:", (k/lam)*(100/lam)**(k-1))

11. 小结

  • Weibull($k,\lambda$):灵活寿命族;$k=1$ 为指数,$k>1$ 老化,$k<1$ 早期失效。
  • 风险率幂律形式 $t^{k-1}$ 是选型关键。
  • 22.指数21.对数正态 常并列比较。

系列导航22.指数 | 24.Gamma


参考文献

  1. scipy.stats.weibull_min
-------------本文结束感谢您的阅读-------------