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相关、稳健回归)。
三、标准化与归一化:消除量纲,但不改变秩
标准化(Z-score)将变量变换为均值0、标准差1;归一化(Min-Max)将变量线性映射到[0,1]。二者都是线性变换,因此不改变皮尔逊相关系数和Spearman秩相关——这一点常被误解。它们真正影响的是:基于距离的算法(KNN、聚类、SVM)、正则化回归中惩罚项对各变量的相对作用、以及多变量综合指标的构建。
但在关联分析流程中,标准化仍有实际意义:当使用偏相关、岭回归、或基于距离的变量聚类来辅助判断关联结构时,未标准化的变量会因量纲差异主导距离计算。例如温度(单位℃)与压力(单位kPa)数值范围相差两个数量级,直接计算欧氏距离会使压力主导结果。此时应先标准化再计算。
此外,归一化对异常值敏感:Min-Max的极值直接决定映射范围,一个极端点会把其余数据压缩到很窄区间。因此归一化前应先处理异常值,或改用稳健缩放(如基于中位数和IQR的RobustScaler)。
四、把四步串成一条可复现的处理链
下面给出一个可直接参考的处理顺序与判断依据,示例数据为某工艺过程采集的8个变量、1200条记录(示例参数,非实测):
1. 缺失诊断:统计各变量缺失率与缺失模式
- 缺失率 < 5% 且近似MCAR → 可考虑删除或简单填充
- 缺失率较高或呈MAR → 回归填充 / MICE
2. 异常检测:对每个变量做IQR,对多变量做马氏距离
- 标注候选点,结合工艺记录判断是错误值还是真实极端值
- 错误值:修正或剔除;真实极端值:保留,做稳健分析
3. 变换与缩放:先处理异常值,再做标准化/归一化
- 距离类、正则类方法 → Z-score 或 RobustScaler
- 需要固定区间 → Min-Max(前提是异常值已处理)
4. 关联分析:同时计算Pearson与Spearman
- 两者差异大 → 检查异常值与非线性
- 与填充前结果对比 → 评估缺失处理的影响
一个值得养成的习惯是做敏感性对比:分别用“删除缺失”“均值填充”“回归填充”三套数据计算同一组相关系数,若结果稳定,说明关联结构稳健;若差异明显,则必须在结论中说明处理方式及其影响。同理,对异常值可比较“剔除前/后”的相关系数变化,变化幅度本身就是关联稳健性的一个指标。
总结来看,数据清洗与预处理不是关联分析之前的“杂活”,而是关联结论可信度的组成部分。缺失机制决定样本代表性,异常值判断决定关联是否被个别点绑架,缩放决定多变量方法是否公平,而敏感性对比则把这一切从“默认操作”变成“可解释的判断”。把每一步的处理依据和影响记录下来,关联分析的结果才真正可复现、可讨论。