4. 三参数威布尔分布的位置参数估计
三参数威布尔模型与位置参数的作用
两参数威布尔分布假设寿命从 0 开始就可能失效,但许多产品存在一个“最小寿命”门槛:在门槛之前几乎不可能失效。三参数威布尔分布引入位置参数 γ(也称最小寿命或阈值参数),其可靠度函数为:
R(t) = exp{ −[ (t − γ) / η ]^β },t ≥ γ;当 t < γ 时 R(t) = 1。
其中 β 为形状参数,η 为尺度参数(特征寿命,相对 γ 的偏移量),γ 为位置参数。γ 的物理含义是“最早可能失效的时间”,它把分布整体沿时间轴右移。若忽略 γ 而直接用两参数拟合,会系统性低估早期可靠度、扭曲 β 的估计。
从图中可见:γ 越大,密度曲线整体右移,左侧被“截断”。这意味着在 γ 之前的数据点理论上不应出现失效;若试验中在 γ 之前观察到失效,说明模型假设与数据矛盾,需要重新审视失效机理或数据质量。
位置参数估计的实操方法
三参数威布尔分布的 MLE 对 γ 的估计较为敏感,直接三维搜索容易陷入局部最优。工程上常用“条件 MLE + 一维搜索”策略:固定 γ,对剩余数据做两参数 MLE,再以对数似然为目标对 γ 做一维优化。
下面用一组教学示例数据演示完整流程。数据为某轴承的失效时间(小时),共 12 个失效样本,无删失:
t = [152, 198, 245, 310, 380, 455, 530, 620, 710, 820, 950, 1100]
最小失效时间 t(1) = 152 h,因此 γ 的搜索上界为 152。使用 Python 实现条件 MLE 与一维搜索:
import numpy as np
from scipy.optimize import minimize_scalar
from scipy.stats import weibull_min
t = np.array([152, 198, 245, 310, 380, 455, 530, 620, 710, 820, 950, 1100], dtype=float)
def neg_log_lik_gamma(gamma):
"""固定 gamma,对 (t - gamma) 做两参数 Weibull MLE,返回负对数似然"""
if gamma >= t.min():
return 1e12 # 约束:gamma 必须小于最小失效时间
shifted = t - gamma
# 两参数 Weibull MLE(形状 c,尺度 scale)
c, loc, scale = weibull_min.fit(shifted, floc=0)
# 对数似然:sum log f(t_i)
logpdf = weibull_min.logpdf(shifted, c, loc=0, scale=scale)
return -np.sum(logpdf)
# 一维搜索 gamma,区间 [0, t_min)
res = minimize_scalar(neg_log_lik_gamma, bounds=(0, t.min() - 1e-6), method='bounded')
gamma_hat = res.x
# 用最优 gamma 重新拟合 beta 和 eta
shifted = t - gamma_hat
beta_hat, _, eta_hat = weibull_min.fit(shifted, floc=0)
print(f"gamma_hat = {gamma_hat:.2f} h")
print(f"beta_hat = {beta_hat:.4f}")
print(f"eta_hat = {eta_hat:.2f} h")
print(f"负对数似然 = {res.fun:.4f}")
示例运行结果(教学示例,非实测):
gamma_hat = 98.35 h
beta_hat = 2.147
eta_hat = 612.80 h
负对数似然 = 78.42
解释:估计得到最小寿命约 98 h,形状参数约 2.15(略大于 2,说明失效概率随时间缓慢上升),特征寿命(相对 γ)约 613 h,即绝对特征寿命约为 γ + η ≈ 711 h。
拟合优度评估
三参数模型比两参数多一个参数,必须检查增益是否显著。常用方法:
- 对数似然比检验:比较两参数与三参数模型的 −2ΔlnL,服从 χ²(1) 分布。若 −2ΔlnL > 3.84(α=0.05),则 γ 显著不为 0。
- Anderson-Darling 统计量:对 (t − γ̂) 做两参数 Weibull 的 AD 检验,观察 p 值是否大于 0.05。
- 概率图目视检查:将 t 变换为 ln(t − γ̂),在 Weibull 概率纸上应近似直线。
用示例数据计算两参数 MLE 的对数似然,与三参数比较:
# 两参数 MLE(不减去 gamma)
c2, _, scale2 = weibull_min.fit(t, floc=0)
ll2 = np.sum(weibull_min.logpdf(t, c2, loc=0, scale=scale2))
ll3 = -res.fun
lr_stat = 2 * (ll3 - ll2)
print(f"两参数对数似然 = {ll2:.4f}")
print(f"三参数对数似然 = {ll3:.4f}")
print(f"LR 统计量 = {lr_stat:.4f}, 临界值(0.05) = 3.84")
print("结论:", "γ 显著" if lr_stat > 3.84 else "γ 不显著")
示例输出(教学示例):
两参数对数似然 = -80.15
三参数对数似然 = -78.42
LR 统计量 = 3.46, 临界值(0.05) = 3.84
结论:γ 不显著
实操检查清单
| 检查项 | 判断标准 | 不通过时的处理 |
|---|---|---|
| γ 是否小于最小失效时间 | γ̂ < t(1) | 检查数据中是否有早于 γ 的失效,或重新设定搜索上界 |
| γ 的物理合理性 | γ̂ 与已知最小寿命/磨合期一致 | 若 γ̂ 过大或过小,检查失效机理是否单一 |
| LR 检验 | −2ΔlnL > 3.84 | 不显著时考虑退回两参数模型 |
| AD 检验 p 值 | p > 0.05 | p 过小说明分布假设不成立,考虑混合模型 |
| 概率图线性 | ln(t−γ̂) 对 Weibull 变换近似直线 | 弯曲说明 β 非常数,可能为混合分布 |
完成以上步骤后,即可得到三参数威布尔模型的完整参数 (γ̂, β̂, η̂),并据此计算任意时刻的可靠度 R(t) 与分位数寿命 tp = γ + η[−ln(1−p)]1/β。