欢迎来到数据清理(Data Cleaning)的世界!

你好!欢迎来到 Exam ATPA 学习旅程中最重要的章节之一。你可能听过“垃圾进,垃圾出”(garbage in, garbage out)这句话。在预测分析中,模型的质量取决于你喂给它的数据。现实世界的数据往往很混乱——它们会有“洞”(缺失值)和奇怪的“惊喜”(离群值)。在本章中,我们将学习如何识别这些问题,更重要的是,如何修复它们,让你的模型大放异彩!

第一部分:处理离群值(Outliers)

想象一下,你正在查看一群成人的身高数据。大多数人的身高都在 5 到 6 英尺之间。突然,你看到一个记录显示某人身高 12 英尺!这就是一个离群值(outlier)——一个与其他观测值明显不同的数据点。

究竟什么是离群值?

离群值是指在总体随机样本中,与其他数值距离异常远的观测值。离群值可能由以下原因造成:
1. 数据输入错误:有人把“12”误打成了“120”。
2. 测量误差:传感器出现故障。
3. 自然变异:有时候,极端数值是真实存在的(例如在平均薪酬研究中的亿万富翁收入)。

单变量与多变量离群值(Univariate vs. Multivariate Outliers)

在预测分析和精算工作中,离群值主要有两种类型:
• 单变量离群值(Univariate outliers):在单一变量中具有极端或异常数值的观测值(例如,当典型年薪范围为 \$40,000 至 \$150,000 时,出现 \$10,000,000 的年薪)。
• 多变量离群值(Multivariate outliers):独立检查每个变量时看似完全正常,但在两个或多个变量之间同时呈现出异常、不合理或极端组合的观测值。例如,一个年龄为 \(12\) 岁但拥有 \(10\) 年驾驶经验的人,或者一间拥有 \(1\) 间卧室却有 \(8\) 间浴室的住宅。每个数值在数据集中各自单独看都是合理的,但结合起来却极为反常。

如何发现离群值

如果你无法单凭盯着电子表格找出它们,不用担心!我们为这两种类型都准备了工具:
单变量检测:
• 盒须图(Boxplots):绘制在“须”之外的独立点会被标记为潜在的离群值。
• IQR 规则:从数学上讲,如果一个点低于 \(Q_1 - 1.5 \times IQR\) 或高于 \(Q_3 + 1.5 \times IQR\),通常被称为离群值。
• Z-分数(Z-Scores):如果一个观测值的 \(Z\)-分数满足 \(|Z| > 3\),说明它离平均值超过 3 个标准差,会被标记为潜在离群值。

多变量检测:
• 散点图与散点图矩阵(Scatterplots and Scatterplot Matrices):双变量图有助于将变量对可视化,以揭示偏离整体相关性模式的数据点。
• 马氏距离(Mahalanobis Distance):一种统计度量指标,用于测量观测值与多变量均值(质心)之间的距离,并考虑了所有变量之间的相关性与协方差。具有较大马氏距离的点属于多变量离群值,即使其各个单独的坐标值都不是单变量离群值。

我们该如何处理它们?

一旦发现离群值,你有三个主要选择:
1. 保留它:如果你认为数据准确且代表了一种真实(尽管罕见)的现象。
2. 删除它:如果你确定这是一个错误,或者它会对你的模型产生不相称的偏差。
3. 转换/封顶(Transform/Cap):这通常称为温莎化(Winsorization)。你用一个较不极端的数值(例如第 99 百分位数的值)来替换极端值。

快速回顾:离群值会扭曲你的平均值、放大方差(variance)并扭曲模型系数。在按下“删除”键之前,请务必先进行调查!

关键总结:

离群值并不总是“坏”数据;它们只是“不同”的数据。你的工作是检查单变量和多变量的异常,并判断它们是有用的信号还是扰人的噪音。


第二部分:缺失数据——数据集中的“洞”

当观测值中的某个变量没有存储任何数值时,就会出现缺失数据。这是精算工作中常见的头痛问题,可能是因为保单持有人没有回答问卷问题,或者系统未能记录交易。

为什么缺失数据是一个问题?

大多数预测模型(如标准的 GLMs)无法处理缺失值。如果一行数据中有缺失值,软件可能会直接丢弃整行数据,从而浪费了其他列中极具价值的信息!

缺失的三种类型

要解决这个问题,我们首先需要了解数据为什么会缺失。
1. 完全随机缺失(MCAR):没有任何规律。这就像有人不小心把咖啡洒在账本的几页随机页面上。
2. 随机缺失(MAR):缺失情况与其他已观测到的数据有关。例如,男性回答体重问题的概率可能比女性低。
3. 非随机缺失(MNAR):缺失情况与缺失值本身有关。例如,收入非常高的人可能拒绝在表格上报告其收入。

你知道吗? MNAR 是最难处理的,因为数据缺失的原因“隐藏”在缺失数据本身之中!

处理缺失数据的策略

1. 删除记录
• 列删除(Listwise Deletion):如果任何数值缺失,则删除整行。这很简单,但可能导致大量数据流失。
• 何时使用:仅在缺失数据量非常少且缺失机制属于 MCAR 时使用。

2. 插补
插补(Imputation)是指用估计值填补漏洞。
• 均值/中位数/众数插补:用该列的集中趋势填补漏洞。警告:这会减少数据的方差,并可能导致模型过度自信!
• 预测插补:使用微型模型(如回归分析或 \(k\)-最近邻算法)根据其他变量来预测缺失值应该是多少。

3. 添加缺失值标记(Missing-Value Flag)
与其单纯插补,你可以建立一个明确的二元缺失值标记(例如,若缺失则 \(Is\_Missing = 1\),否则为 \(0\))。对于原始变量,你用一个常数(如中位数或 \(0\))填补缺失位置。这让模型能够捕捉到“数据缺失”这一事实本身是否包含预测信息!

关键总结:

永远不要忽视缺失数据。选择“什么都不做”实际上就是让你的软件删除这些行,这可能会使你的结果产生偏差。


第三部分:常见陷阱与技巧

应避免的常见错误

• 不要盲目删除:如果某个列中有 40% 的数据缺失,删除这些行会摧毁你的数据集。考虑删除该列而不是整行。
• 留意“隐藏”的缺失值:有时缺失数据不是空白单元格。它们可能被编码为“999”、“未知”或“0”。请务必检查你的摘要统计(summary statistics),看看是否有数值看起来很可疑。
• 插补目标变量:通常情况下,你不应该插补目标变量(你试图预测的响应变量)。直接移除那些记录即可。

一个简单的类比

把清理数据想象成准备一顿饭。离群值就像是一颗比其他辣椒辣 100 倍的辣椒——如果你把它留在里面,可能会毁了整道菜。缺失数据就像食谱中缺少的食材——你可以选择放弃那道菜(删除),替换成类似的东西(插补),或者意识到缺少食材是厨师忘了去购物的一种征兆(缺失值标记)。

考试总结检查清单

• 识别离群值:检查单变量离群值(盒须图、IQR、\(Z\)-分数)和多变量离群值(散点图矩阵、马氏距离)。
• 诊断缺失机制:确定缺失机制属于 MCAR、MAR 还是 MNAR。
• 选择处理行动:根据机制和业务背景,在删除记录、插补或添加缺失值标记之间选择合适的行动。
• 记录:在 ATPA 评估报告中,务必解释并记录你为什么选择特定的清理行动。

继续加油!你做得很好。掌握数据清理是成为顶级预测分析师的基础。一旦你的数据干净了,预测建模的部分就会变得容易得多!