3. 对数正态分布寿命数据建模

对数正态分布寿命数据建模 学习卡片

对数正态寿命模型的核心参数

对数正态分布适用于失效时间呈右偏、取对数后近似正态的寿命数据,常见于疲劳裂纹扩展、维修时间、半导体器件退化等场景。若寿命 T 服从对数正态分布,则 Y = ln(T) 服从正态分布 N(μ, σ²)。其中 μ 是对数均值(尺度参数),σ 是对数标准差(形状参数)。可靠度函数为:

R(t) = 1 − Φ[(ln t − μ) / σ],Φ 为标准正态累积分布函数。

参数估计采用最大似然法。对 n 个完全失效数据 t₁, t₂, …, tₙ,令 yᵢ = ln(tᵢ),则:

  • 对数均值估计:μ̂ = (1/n) Σ yᵢ
  • 对数标准差估计:σ̂ = √[(1/n) Σ (yᵢ − μ̂)²](MLE 形式,分母为 n)
若数据包含右删失,MLE 需用迭代法求解,不能直接用上述闭式公式。本例先以完全失效数据演示闭式估计与可靠度曲线绘制。
对数正态寿命建模:数据变换 → 参数估计 → 可靠度曲线 原始寿命数据 tᵢ (h) 120, 185, 210, 260, 310 380, 450, 530, 640, 780 920, 1100, 1350, 1600 n = 14,全部失效 右偏明显 → 取对数 对数变换 yᵢ = ln(tᵢ) 4.787, 5.220, 5.347 5.561, 5.736, 5.940 6.109, 6.273, 6.461 6.824, 7.003, 7.208 近似对称 → 正态性检验 MLE 参数估计 μ̂ = (1/n) Σ yᵢ = 5.958 σ̂ = √[(1/n) Σ(yᵢ−μ̂)²] = 0.812 中位寿命 t₅₀ = e^μ̂ = 387 h R(t) = 1 − Φ[(ln t − 5.958)/0.812] 可靠度曲线 R(t) 与关键寿命点 寿命 t (h) R(t) 0 500 1000 1500 2000 0 0.5 1.0 t₅₀ ≈ 387 h, R=0.5 t₉₀ ≈ 1000 h, R≈0.1 R(t) 对数正态拟合

参数估计与可靠度计算实操

下面用 Python 对上述 14 个寿命数据完成对数均值、对数标准差估计,并绘制可靠度曲线。代码不依赖外部数据文件,可直接运行。

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

# 1. 输入寿命数据(小时)
t = np.array([120, 185, 210, 260, 310, 380, 450,
              530, 640, 780, 920, 1100, 1350, 1600], dtype=float)

# 2. 对数变换
y = np.log(t)

# 3. MLE 参数估计(完全失效数据)
mu_hat = np.mean(y)                    # 对数均值
sigma_hat = np.sqrt(np.mean((y - mu_hat)**2))  # 对数标准差(MLE,分母 n)

print(f"mu_hat    = {mu_hat:.4f}")
print(f"sigma_hat = {sigma_hat:.4f}")
print(f"中位寿命 t50 = {np.exp(mu_hat):.1f} h")

# 4. 可靠度函数 R(t) = 1 - Phi((ln t - mu)/sigma)
def reliability(t, mu, sigma):
    return 1 - norm.cdf((np.log(t) - mu) / sigma)

# 5. 关键寿命点
for r in [0.9, 0.5, 0.1]:
    t_r = np.exp(mu_hat + sigma_hat * norm.ppf(1 - r))
    print(f"R={r:.1f} 对应寿命 t = {t_r:.1f} h")

# 6. 绘制可靠度曲线
t_grid = np.linspace(1, 2500, 500)
R_grid = reliability(t_grid, mu_hat, sigma_hat)

plt.figure(figsize=(8, 4.5))
plt.plot(t_grid, R_grid, color="#3182ce", lw=2.5, label="对数正态拟合")
plt.scatter(t, np.ones_like(t) * 0.02, marker="|", color="#e53e3e",
            label="失效数据位置")
plt.axhline(0.5, color="#a0aec0", ls="--", lw=1)
plt.axvline(np.exp(mu_hat), color="#a0aec0", ls="--", lw=1)
plt.xlabel("寿命 t (h)")
plt.ylabel("可靠度 R(t)")
plt.title("对数正态寿命模型可靠度曲线")
plt.legend()
plt.grid(alpha=0.3)
plt.tight_layout()
plt.show()

结果判读与验证

输出项示例结果判读要点
μ̂5.958对数均值,e^μ̂ 为中位寿命
σ̂0.812对数标准差,越大寿命越分散
t₅₀387 h50% 产品失效的时间点
t₁₀(R=0.9)约 137 h10% 早期失效点,用于保修评估
t₉₀(R=0.1)约 1090 h90% 失效点,用于寿命上限评估
若数据含右删失(未失效样本),上述闭式公式不再适用,需用 Newton-Raphson 或 EM 算法迭代求解 μ̂ 和 σ̂。此外,建议用 Q-Q 图或 Anderson-Darling 检验验证对数变换后的正态性,若拟合不佳可考虑威布尔或混合分布。