异常值该删还是该留
拿到一份数据,画完箱线图或直方图,总会看到几个孤零零的点落在主体分布之外。这时最容易犯的错误,是直接把它们删掉,然后当作数据已经干净了。删之前先问一句:这个值到底是记录错了,还是它本来就该长这样。
先分清异常值的两种来源
异常值大致来自两类原因,处理方式完全不同。
- 数据产生环节的错误:录入时多打一个零、单位混用(米和厘米写在一起)、传感器瞬时故障、时间戳错位导致两条记录拼到一起。这类值在原数据里找不到合理解释,属于脏数据。
- 真实存在的极端情况:高收入人群的收入、极端天气下的用电量、大促当天的订单量。它们稀少,但确实发生了,删掉就等于抹掉了业务里最重要的一小段事实。
判断方法很朴素:回到原始记录去看。比如有一份订单数据,某笔金额比均值高出两个数量级,就去查这笔订单的创建时间、商品明细、支付流水。能对上,就是真实极端值;对不上,或者压根查不到这条记录,多半是错误。
用统计规则只能筛出候选
常见的 3σ 法则、IQR 四分位距,作用是把「值得看一眼的点」挑出来,而不是直接判定它们该删。
- 3σ 假设数据近似正态分布。偏态严重的收入、流量、金额数据直接套用,会把大量正常的高值误判成异常。
- IQR 对偏态更稳健,通常以 Q1−1.5×IQR 和 Q3+1.5×IQR 为界。但「1.5」只是经验系数,换成 3 也常见,取决于你对极端的容忍度。
- 这两种方法都只用了单变量信息。一个值在单列里看着离谱,放到多列关系里可能完全正常。
所以正确用法是:先用规则缩小范围,再逐条人工或按业务逻辑复核。把统计输出当成线索清单,而不是删除指令。
三种处理方式,对应三种情形
复核之后,通常落到下面三种做法之一。
- 修正:能定位到具体错误原因时优先修正,而不是删除。单位错了就换算,小数点错位就移动,时间戳错位就拆回两条记录。修正保留了样本量,也保留了这条记录里的其他正确字段。
- 删除:只有当这条记录整体不可信、且无法修复时才删。删除要留痕,记录删了多少条、依据是什么,方便后续复查。如果异常值占比很高,更要警惕,那往往说明数据采集环节出了问题,而不是数据本身脏。
- 保留并标记:真实极端值应当保留,同时新增一列标记,比如
is_outlier。这样在建模或做汇总时,可以按需选择是否纳入,而不是在清洗阶段就把选择权丢掉。
一个可复用的处理流程
把上面的判断整理成固定顺序,每次遇到异常值都按这个流程走一遍。
- 第一步,用箱线图、直方图或分位数把候选异常值找出来,先看清楚分布形状。
- 第二步,对每个候选值回溯原始记录和采集链路,判断是错误还是真实极端。
- 第三步,错误能修就修,修不了再考虑删;真实极端值保留并加标记。
- 第四步,记录本次处理的口径和影响范围,写进数据说明里。
- 第五步,如果同一类异常反复出现,回头改采集或录入环节,从源头减少。
删与留取决于你接下来要做什么
同一批异常值,在不同任务里的处理可以不一样。
如果目标是描述整体水平,比如算平均客单价,极端值会明显拉高均值,此时可以同时给出剔除前后的两个结果,并说明差异。如果目标是识别风险或异常行为,那些极端值恰恰是要找的对象,删掉就本末倒置了。如果目标是训练模型,可以保留全部数据但做稳健处理,比如对连续变量做截尾或变换,而不是直接删行。
判断标准始终是:这个值是否真实、是否与当前问题相关。真实且相关的,留下;失真或无关的,处理掉。把这两点想清楚,异常值就不再是一个需要凭感觉决定的麻烦。
相关文章
拿到一份新数据,先做这 6 项检查
拿到一份陌生数据集时,直接跑分析往往会在中途返工。这篇教程给出 6 项可落地的检查:从字段含义、行数与主键,到缺失、量纲、时间范围和分布形态,每一步都给出判断标准和记录方式,帮你把问题挡在建模之前。
Excel 里最容易埋下的 5 个错误
很多数据问题不是分析环节造成的,而是从录入和整理时就埋下了。本文列出 5 个常见错误:合并单元格、数字存为文本、日期格式混乱、表头多行、空行与空列,并给出每个错误的判断方法和修改做法,适合日常用 Excel 处理数据的人对照检查。
怎么判断数据源可靠不可靠
面对一份来源不明的数据,如何判断它能不能用?本文给出一套可操作的检查流程,从出处、字段定义、时间范围、更新机制到交叉验证,帮你快速筛掉不靠谱的数据源,减少后续返工。