3. 数据清洗与预处理实战

多变量关联分析的目标是刻画变量之间的真实依赖关系,而这一目标对数据质量极为敏感。相关系数、偏相关、互信息、回归系数等指标,本质上都是在“样本协方差结构”上做文章。一旦缺失值处理不当、异常值未被识别、量纲差异未消除,得到的关联强度甚至关联方向都可能被扭曲。本节围绕四个关键环节展开:缺失值处理、异常值检测、标准化与归一化,并说明它们各自如何影响关联分析结果。

一、缺失值:先判断机制,再选择策略

缺失值处理的第一步不是“填”,而是判断缺失机制。通常区分三类:完全随机缺失(MCAR)、随机缺失(MAR)和非随机缺失(MNAR)。判断依据来自业务理解与数据本身:若某传感器在高温时段系统性掉线,缺失就与变量取值相关,属于MNAR;若缺失仅由录入偶发遗漏造成,则更接近MCAR。机制判断直接决定后续策略的合理性。

常见处理策略及对关联分析的影响如下:

  • 整行删除(listwise deletion):实现简单,但当缺失比例较高或缺失非随机时,会缩小样本并引入选择偏差,导致相关系数偏移。经验上缺失比例超过5%~10%就应谨慎。
  • 均值/中位数填充:会人为压缩该变量的方差,使相关系数向0衰减。对中位数填充而言,若缺失集中在尾部,衰减更明显。
  • 回归填充或K近邻填充:利用其他变量信息估计缺失值,能较好保留变量间结构,但若填充模型本身引入了强关系,会人为抬高相关强度,需在报告中说明。
  • 多重插补(MICE):生成多组完整数据分别分析再合并,能反映插补不确定性,是关联分析中较稳健的选择。

实操中建议先做缺失模式可视化(如缺失矩阵、按变量统计缺失率),再决定策略。示例:某工艺数据集共1200行,变量A缺失率8%、变量B缺失率3%,且A的缺失集中在B取值较高的区间,提示可能为MAR。此时采用以B及其他相关变量为预测因子的回归填充,比直接删除更合理。

二、异常值:区分错误值与真实极端值

异常值检测要回答两个问题:这个点是录入/测量错误,还是真实的极端工况?前者应修正或剔除,后者应保留甚至单独分析,因为真实极端值往往正是关联关系最强的区域。

常用检测方法:

  • 单变量方法:3σ准则(适用于近似正态)、IQR法则(箱线图,稳健性更好,通常以Q1−1.5IQR与Q3+1.5IQR为界)。
  • 多变量方法:马氏距离(考虑变量间协方差,适合检测联合异常)、孤立森林、LOF(局部异常因子)。

异常值对关联分析的影响是双向的:单个远离主体的点可能大幅拉高或拉低皮尔逊相关系数,甚至改变符号;而若异常值来自真实的高值区,剔除反而会截断关系。因此建议采用“检测—标注—判断—处理”的闭环:先用IQR或马氏距离标出候选点,再结合业务记录判断性质,最后选择剔除、截尾(winsorize)或保留并做稳健分析(如Spearman相关、稳健回归)。

皮尔逊相关系数对异常值高度敏感,而Spearman基于秩次,稳健性更好。当数据存在可疑极端值时,可同时报告两者,若差异显著,说明关联结构受极端点影响较大。

三、标准化与归一化:消除量纲,但不改变秩

标准化(Z-score)将变量变换为均值0、标准差1;归一化(Min-Max)将变量线性映射到[0,1]。二者都是线性变换,因此不改变皮尔逊相关系数和Spearman秩相关——这一点常被误解。它们真正影响的是:基于距离的算法(KNN、聚类、SVM)、正则化回归中惩罚项对各变量的相对作用、以及多变量综合指标的构建。

但在关联分析流程中,标准化仍有实际意义:当使用偏相关、岭回归、或基于距离的变量聚类来辅助判断关联结构时,未标准化的变量会因量纲差异主导距离计算。例如温度(单位℃)与压力(单位kPa)数值范围相差两个数量级,直接计算欧氏距离会使压力主导结果。此时应先标准化再计算。

此外,归一化对异常值敏感:Min-Max的极值直接决定映射范围,一个极端点会把其余数据压缩到很窄区间。因此归一化前应先处理异常值,或改用稳健缩放(如基于中位数和IQR的RobustScaler)。

原始数据 缺失 / 异常 / 量纲 缺失值处理 删除 / 填充 / 多重插补 影响:方差压缩、选择偏差 异常值检测 IQR / 马氏距离 / 孤立森林 影响:相关符号与强度偏移 标准化 / 归一化 Z-score / Min-Max / Robust 影响:距离类算法、正则回归 关联分析 相关系数 / 偏相关 互信息 / 回归系数 变量聚类 结果判读 稳健性检验 Pearson vs Spearman 敏感性对比

四、把四步串成一条可复现的处理链

下面给出一个可直接参考的处理顺序与判断依据,示例数据为某工艺过程采集的8个变量、1200条记录(示例参数,非实测):

1. 缺失诊断:统计各变量缺失率与缺失模式
   - 缺失率 < 5% 且近似MCAR → 可考虑删除或简单填充
   - 缺失率较高或呈MAR → 回归填充 / MICE
2. 异常检测:对每个变量做IQR,对多变量做马氏距离
   - 标注候选点,结合工艺记录判断是错误值还是真实极端值
   - 错误值:修正或剔除;真实极端值:保留,做稳健分析
3. 变换与缩放:先处理异常值,再做标准化/归一化
   - 距离类、正则类方法 → Z-score 或 RobustScaler
   - 需要固定区间 → Min-Max(前提是异常值已处理)
4. 关联分析:同时计算Pearson与Spearman
   - 两者差异大 → 检查异常值与非线性
   - 与填充前结果对比 → 评估缺失处理的影响

一个值得养成的习惯是做敏感性对比:分别用“删除缺失”“均值填充”“回归填充”三套数据计算同一组相关系数,若结果稳定,说明关联结构稳健;若差异明显,则必须在结论中说明处理方式及其影响。同理,对异常值可比较“剔除前/后”的相关系数变化,变化幅度本身就是关联稳健性的一个指标。

标准化与归一化不会改变相关系数,因此不要指望通过缩放“改善”相关性。它们的作用在于让距离度量、正则惩罚和多变量综合指标公平对待各变量。若发现缩放后关联结果变化,通常是因为流程中混入了基于距离的步骤,而非相关系数本身改变。

总结来看,数据清洗与预处理不是关联分析之前的“杂活”,而是关联结论可信度的组成部分。缺失机制决定样本代表性,异常值判断决定关联是否被个别点绑架,缩放决定多变量方法是否公平,而敏感性对比则把这一切从“默认操作”变成“可解释的判断”。把每一步的处理依据和影响记录下来,关联分析的结果才真正可复现、可讨论。