本节目标
学完本节,你将能够:
- 理解数据清洗在质量评估与建模之间的角色
- 掌握清洗的目标与原则:可追溯、可复现、有依据
- 掌握缺失值处理的两种思路:删除与填补
- 理解重复行识别与去重的逻辑
- 理解异常值处理的多种策略(删除/截尾/保留并标注)
- 理解类型与格式统一的意义
1. 清洗流程概述
在质量评估之后、建模分析之前的关键环节
数据清洗的角色
在尽量不引入新偏差的前提下,把缺失、重复、异常、类型错误等问题处理成“可分析”的整洁数据。
医学研究:清洗决策(如删缺失还是填补、异常值删还是截尾)往往需要结合专业判断,并记录在分析报告中。
目标与原则
- 目标:得到每一行对应一条有效观测、每一列类型正确且含义明确的数据框。
- 可追溯:保留原始数据或清洗脚本。
- 可复现:用脚本而非手工改表。
- 有依据:删除或填补要有理由并说明。
典型步骤(建议顺序)
- 缺失值处理(删除或填补)
- 重复行识别与去重
- 异常值识别与处理(删除 / 截尾 / 保留并标注)
- 类型与格式统一(数值 / 因子 / 日期等)
具体顺序可根据数据情况调整,但建议先缺失与重复,再异常与类型。
为什么处理缺失
缺失要么导致后续函数报错或结果变为 NA,要么在建模时被默认删除,影响样本量。处理方式主要有“删除”和“填补”两类;选择哪种需结合缺失机制与分析目的。
删除与保留
- 若缺失很少且可认为“完全随机”,可对分析用到的列做完整个案筛选。
- 若某列缺失过多且非关键,可先删列再分析。
- 注意:行删除会改变样本量,需在报告中说明。
简单填补
当缺失不可忽略且不宜删行时,可考虑简单填补:
- 数值列:均值、中位数或分组中位数。
- 分类列:众数或“缺失”作为单独类别。
复杂方法(如多重插补)在后续课程或专题中再学。
重复行
重复行可能来自重复录入或多次导出。需先识别(如整行完全相同,或按业务主键如“患者 ID + 就诊日期”判定),再决定保留哪一条(通常保留第一条)。
异常值处理思路
异常值可能是录入错误或真实极端值。处理没有统一答案:
- 删除:直接剔除可疑记录。
- 截尾:如将超过 P99 的改为 P99。
- 保留并做敏感性分析:比较包含/不包含异常值的结果。
医学上常结合临床合理范围(如收缩压 80–200 mmHg)做判断。
为什么要统一
读入的列有时是字符型(如 "12"、"男/女"),需要转为数值或因子;日期可能以字符串形式存在,需统一解析。统一后便于后续运算与建模。
小结
- 清洗要有据可查、可复现。
- 常见顺序:缺失 → 重复 → 异常 → 类型。
- 缺失:删除(完整个案)或简单填补(均值/中位数/众数)。
- 重复:按主键去重,保留一条。
- 异常:结合统计规则与临床范围,删除/截尾/敏感性分析。