4. 分布拟合失败案例
在可靠性数据分析中,分布拟合是寿命建模的第一步。无论是用极大似然估计(MLE)还是最小二乘拟合,软件报出“未收敛”“迭代次数超限”“参数估计为负”或“协方差矩阵奇异”都是常见故障。很多初学者第一反应是换软件或换数据,但真正的原因往往集中在三处:参数初值不合理、数据与分布形状不匹配、样本量或截尾结构导致似然面病态。本节围绕威布尔、对数正态、指数三种常用寿命分布,讲清楚不收敛时怎么调初值、怎么判断该不该换模型。
一、先分清“不收敛”的三种典型表现
不同软件报错措辞不同,但底层问题可以归为三类。第一类是迭代发散:参数估计在两次迭代间来回跳动,或形状参数 β 越跑越大。第二类是收敛到边界:威布尔形状参数被压到接近 0 或极大值,对数正态的 σ 趋近 0,指数分布则表现为 λ 估计异常。第三类是数值奇异:Hessian 矩阵不可逆,标准误算不出来,通常意味着参数之间强相关或数据信息量不足。
判断时不要只看“是否收敛”这一个布尔值。应同时观察:对数似然值是否稳定、参数标准误是否有限、拟合优度(如 Anderson-Darling 统计量)是否合理。一个“收敛了但标准误巨大”的结果,和没收敛一样不可用。
二、参数初值的调整方法
极大似然迭代本质上是沿着似然面爬坡,初值决定了起点落在哪个盆地。对威布尔分布,常用矩估计给初值:由样本均值与标准差反推形状参数。若数据明显单调上升的故障率,β 初值可取 1.5~3;若早期失效为主,β 初值取 0.5~1。尺度参数 η 可用样本中位寿命或平均寿命作为初值。对数正态分布中,μ 取对数寿命的样本均值,σ 取对数寿命的样本标准差,这是最稳妥的初值。指数分布只有一个参数 λ,初值取“失效数/总试验时间”即可,几乎不会因初值失败,它不收敛通常另有原因。
# 以威布尔为例的初值构造思路(示例参数,非实测)
样本寿命 t = [120, 185, 210, 260, 300, 355, 420, 510, 640, 820]
ln_t = ln(t)
mu0 = mean(ln_t) # 对数均值
sigma0 = std(ln_t) # 对数标准差
beta0 = 1.2 / sigma0 # 形状参数初值近似
eta0 = exp(mu0) # 尺度参数初值近似
# 将 (beta0, eta0) 作为 MLE 迭代起点
如果软件允许,还可以做“网格搜索 + 局部优化”:在 β∈[0.3, 5]、η 取样本分位数范围内粗扫似然值,选最大点作为初值再精修。这对小样本(n<15)尤其有效。
三、什么时候该换模型,而不是继续调初值
调初值只能解决“起点不好”,解决不了“数据形状不支持该分布”。典型信号包括:威布尔拟合后 β 估计接近 1 且置信区间跨过 1,说明数据更像指数分布;对数正态拟合后 σ 极小、残差呈系统性弯曲,说明寿命分布可能更接近威布尔;指数分布拟合的 AD 统计量显著偏大,说明故障率并非常数。此时应做概率图目视检查:把样本点画在对应分布的概率纸上,看是否成直线。威布尔概率图看 ln(-ln(1-F)) 对 ln(t),对数正态看 Φ⁻¹(F) 对 ln(t),指数看 -ln(1-F) 对 t。点列明显弯曲就换模型。
四、一个可复现的排障示例
假设某批次轴承的失效时间(小时)为:120、185、210、260、300、355、420、510、640、820,另有 5 台在 900 小时仍未失效(右截尾)。直接用默认初值做威布尔 MLE,软件报“迭代未收敛”。按上面的思路处理:
- 先算对数寿命均值 μ₀≈5.72、对数标准差 σ₀≈0.52,得 β₀≈2.3、η₀≈305,作为初值重新拟合,迭代在 8 步内收敛,得到 β≈2.1、η≈340(示例结果,用于说明流程)。
- 检查标准误:β 的标准误约 0.35,η 约 28,均有限,说明结果可用。
- 画威布尔概率图,点列基本成直线;再与对数正态、指数分别比较 AD 统计量,威布尔最小,故保留威布尔模型。
如果第 1 步调整初值后仍不收敛,就应怀疑截尾处理方式:部分软件对右截尾数据的似然写法不同,需确认是否把未失效样本正确计入“生存概率”项,而不是简单删除。删除截尾样本会系统性低估寿命,也会让似然面变陡、更难收敛。
五、模型选择的判断顺序
建议按“先形状、后数值”的顺序决策:先用概率图判断数据大致服从哪族分布,再用 AD 或对数似然比较候选模型,最后才看参数是否收敛、标准误是否合理。对可靠性数据,威布尔适合故障率单调变化的情形,对数正态适合早期上升后趋缓的寿命数据,指数仅适用于故障率近似恒定的场景。三者不是随便替换的关系,选错模型比不收敛更危险。
把初值调整和模型选择分开处理,是这类排障的核心纪律:初值解决“算不出来”,模型选择解决“算出来对不对”。两者都通过,拟合结果才具备工程可用性。