2. 可靠性数据清洗与质量可视化
可靠性分析中最常见的失败,不是模型选错,而是数据本身带着“隐性缺陷”进入建模流程。一个寿命数据集可能同时存在:某台设备未记录失效时间、某次试验因提前终止而只留下“已运行 800 h 未失效”的记录、某个传感器瞬时跳变产生 106 h 的荒谬寿命值。若这些数据未经识别与处理就直接拟合 Weibull 分布,得到的形状参数 β 和特征寿命 η 会严重偏离真实情况。本节围绕三类核心质量问题——缺失值、异常值、截尾数据——建立“识别—可视化—决策”的闭环。
三类质量问题的本质区别
缺失值是“该有的字段为空”,例如某条记录缺少失效时间或工作应力。它影响的是样本量与可用维度。异常值是“数值存在但不可信”,例如寿命为负、远超物理上限、或与同批次样本严重偏离。它影响的是参数估计的稳健性。截尾数据则完全不同:它不是错误,而是真实且必须保留的信息。右截尾表示“到观测结束时仍未失效”,左截尾表示“失效发生在某时刻之前但未精确观测”,区间截尾表示“失效发生在某区间内”。把截尾数据当缺失值删除,会系统性高估可靠性;把截尾数据当精确失效时间处理,会系统性低估寿命。
识别方法:从统计规则到可视化
缺失值识别最直接的方式是统计每个字段的缺失率,并观察缺失是否随机。若“失效时间”缺失集中在某条产线或某个时间段,说明缺失并非随机,可能与该批次工艺相关,此时简单删除会引入偏差。
异常值识别常用三种规则:一是物理边界,如寿命不能为负、不能超过设备设计寿命的若干倍;二是统计边界,如基于四分位距的 IQR 规则,超出 Q1−1.5×IQR 或 Q3+1.5×IQR 视为可疑;三是模型残差,如用同批次数据拟合后,标准化残差绝对值大于 3 的记录需复核。以下示例展示 IQR 规则的实现:
import numpy as np
life = np.array([1200, 1350, 980, 1500, 1100, 1e6, 1250, 1400, 1050, 1300])
q1, q3 = np.percentile(life, [25, 75])
iqr = q3 - q1
low, high = q1 - 1.5*iqr, q3 + 1.5*iqr
outliers = life[(life < low) | (life > high)]
print("下界", low, "上界", high, "异常值", outliers)
# 示例输出:下界约 662.5,上界约 1737.5,异常值 [1000000.]
截尾数据识别依赖数据字典中的“状态”字段。常见编码为:1=精确失效,0=右截尾,2=左截尾,3=区间截尾。若数据表中只有“时间”列而没有“状态”列,必须回溯原始工单或试验记录补齐,否则无法区分“运行了 800 h 后失效”与“运行了 800 h 仍未失效”。
质量可视化:热力图、箱线图与缺失矩阵
数据质量热力图适合按“字段×批次”展示缺失率或异常率,颜色越深表示问题越集中,能快速定位是全局性缺失还是局部批次异常。箱线图适合展示寿命分布并直接暴露离群点,箱体为 IQR 范围,须线延伸至非异常极值,须线之外的点即为候选异常值。缺失矩阵则以矩阵形式逐行逐列标记“有值/缺失”,能直观看出缺失是否成块出现——成块缺失往往意味着某个采集环节整体失效,而非随机漏记。
清洗决策:从识别到可建模数据
识别之后必须形成明确的处理决策,而不是“看着办”。缺失值方面:若缺失率低于 5% 且为随机缺失,可删除对应记录;若缺失率较高但字段重要,可用中位数、同批次均值或回归插补,并新增“是否插补”标记列,便于后续敏感性分析。异常值方面:先复核原始工单或传感器日志,确认是录入错误则修正,确认是真实极端事件则保留并单独标注,不可直接删除——极端失效往往正是可靠性分析最关心的尾部信息。截尾数据方面:必须保留,并在建模时使用带截尾状态的似然函数,例如右截尾样本对似然贡献为可靠度 R(t) 而非概率密度 f(t)。
一个可执行的清洗决策表如下,字段与判断依据均围绕可靠性数据本身:
| 问题类型 | 识别依据 | 处理动作 | 输出标记 |
|---|---|---|---|
| 缺失值 | 字段为空,缺失率统计 | 删除或插补 | imputed=0/1 |
| 异常值 | IQR 越界或残差>3 | 复核后修正或保留 | outlier_flag=0/1 |
| 右截尾 | 状态=0,未失效 | 保留,进入似然 | censored=right |
| 左截尾 | 状态=2,失效早于观测 | 保留,进入似然 | censored=left |
| 区间截尾 | 状态=3,失效在区间内 | 保留,进入似然 | censored=interval |
最后需要强调:数据清洗不是一次性动作,而是与建模目标绑定的决策过程。若目标是估计早期失效概率,则左截尾和短寿命样本权重更高;若目标是评估长期可靠性,则右截尾样本不可丢弃。每一次删除、插补或标记,都应在数据版本中留痕,使清洗后的数据集可追溯、可复现,避免“清洗”变成不可解释的数据篡改。