聊聊如何清理数据

王建峰·2023年03月03日 10:56
清理数据可以帮助最大限度地减少错误。

数据清理包括发现和解决潜在的数据不一致或错误以提高数据质量。错误是任何不反映所测量的真实值(例如,实际重量)的值(例如,记录的重量)。 

在此过程中,审查、分析、检测、修改或删除“脏”数据以使数据集“干净”。数据清理也称为数据清洗。 

一 为什么数据清理很重要

在定量研究中,收集数据并使用统计分析来回答研究问题。使用假设检验,可以了解数据是否支持研究预测。 

示例:定量研究 

调查一种新药是否可以减轻疲劳的影响。 

在药物治疗之前和结束时对参与者进行了调查。使用封闭式问题,可以在1到7的范围内询问有关参与者的经历和症状的问题 

错误通常是不可避免的,但清理数据可以帮助最大限度地减少错误。如果不删除或解决这些错误,最终可能会得出错误或无效的研究结论。 

示例:数据错误大多数问题都是正面的,但有些问题有负面的框架来吸引参与者。 

问题:请从1到7对同意或不同意这些陈述的程度进行评分。 

正向回答:早上醒来时我感觉休息得很好。 

负面回答: 晚上睡了8小时后,我感觉没有精神。 

这两个问题衡量的是同一件事:受访者早上醒来后的感受。但是在分析之前需要对负面措辞问题的答案进行反向编码,以便所有答案始终指向同一方向。 

反向编码意味着在相反的方向上翻转数字标度,以便极值(例如,1或7)对于每个问题都意味着相同的事情。 

如果忘记在分析之前对这些答案进行逆向编码,可能会因为数据错误而得出无效的结论。 

如果数据不准确或无效,可能会在结论中犯I类或II类错误, I 类错误是假阳性结论, II 类错误是假阴性结论。这些类型的错误结论实际上可能会产生重大后果,因为它们会导致错误的投资或错失机会。 

示例:I类错误 

根据结果,犯了I类错误。得出的结论是药物有效,但实际上无效。 

组织决定投资这种新药,人们开的是这种药,而不是有效的疗法。 

二 脏数据与干净数据

脏数据包括不一致和错误。这些数据可能来自研究过程的任何部分,包括糟糕的研究设计、不合适的测量材料或有缺陷的数据输入。 

干净的数据满足一些高质量的要求,而脏数据在一个或多个方面存在缺陷。让我们比较脏数据和干净数据。 

有效数据

有效数据符合特定类型信息(例如,整数、文本、日期)的特定要求。无效数据与该观察所接受的可能值不匹配。 

示例:数据验证 

如果使用数据验证技术,则表格上的出生日期只有在以某种方式格式化时才能被识别,例如,作为dd-mm-yyyy。 

日字段最多允许31个数字,月份字段最多12个数字,年份字段最多2023个数字。如果任何数字超过这些值,则不会提交表单。 

没有有效数据,数据分析程序可能没有意义。最好使用数据验证技术来确保数据在分析之前采用正确的格式。 

数据准确性

在测量中,准确性是指观察值与真实值的接近程度。数据有效性与观察的形式有关,而数据准确性与实际内容有关。 

示例:不准确的数据 

向调查受访者提出以下问题: 

多久亲自去一次杂货店购物?

每天 

一个星期一次 

双周 

每月一次 

一个月不到一次 

绝不 

一些受访者选择“双周”作为他们的答案。但是这个词可以表示每周两次或每两周一次,而且这些频率完全不同。 

你不知道每个人是如何解释这个词的,所以你的数据是不准确的,因为反应项目不充分。 

数据完整性

完整的数据被彻底测量和记录。不完整的数据是缺少信息的报表或记录。 

示例:不完整的数据 

在在线调查中,参与者开始输入对开放式问题的回答。但是他们会分心并在返回调查之前做其他事情。他们在没有填写完整答案的情况下继续下一个问题。 

重建丢失的数据并不容易。有时,可以联系参与者并要求他们重做调查或访谈,但可能得不到原本会得到的答案。 

数据一致性

干净的数据在数据集中是一致的。对于样本中的每个成员,不同变量的数据应该排列成逻辑合理的。 

示例:不一致的数据 

在调查中,收集有关人口统计变量的信息,包括年龄、民族、教育水平和社会经济地位。一位参与者输入“13”作为他们的年龄和博士水平教育作为他们获得的最高学位。 

这些数据是不一致的,因为在你的特定样本中,一个13岁的人极不可能拥有博士学位。更有可能是输入了错误的年龄。 

数据唯一性

在数据收集中,可能会不小心将同一参与者的数据记录两次。 

示例:重复条目 

在在线调查中,参与者填写问卷并按两次Enter键提交。数据会在这边报告两次。 

在数据清理中检查相同条目的数据并删除任何重复条目非常重要。否则,数据可能会出现偏差。 

统一的度量

使用相同的计量单位报告统一的数据。如果数据并非全部采用相同的单位,则需要将它们转换为标准度量。 

示例:非均匀数据 

在一项调查中,要求参与者以英镑为单位输入他们的总工资。 

一些参与者回答他们的月薪,而其他人报告他们的年薪。 

除非提供时间单位,否则参与者可能会使用不同的时间范围来回答这个问题。无法确定他们是在报告月薪还是年薪。 

三 如何清理数据

每个数据集都需要不同的技术来清理脏数据,但需要以系统的方式解决这些问题。需要尽可能多地保存数据,同时确保最终得到一个干净的数据集。 

数据清理是一个困难的过程,因为一旦收集了数据就很难查明错误。通常无法知道数据是否准确地反映了某物的实际值。 

在实践中,可能会专注于以更明显的方式查找和解决与数据集的其余部分不一致或不匹配的数据点。这些数据可能缺少值、域外值、格式不正确或不相关。 

可以根据需要选择一些技术来清理数据,最终得到的是尽可能完整的有效、一致、唯一且统一的数据集。 

数据清洗工作流程

通常,通过广泛扫描数据来开始数据清理。系统地审查和诊断问题,然后根据标准化程序修改个别项目。工作流程可能如下所示: 

应用数据验证技术来防止脏数据输入。 

筛选数据集是否存在错误或不一致。 

诊断数据条目。 

开发用于将数据映射为有效值的代码。 

根据标准化程序转换或删除数据。 

并非所有这些步骤都与每个数据集相关。可以在必要时仔细应用数据清理技术,并清楚地记录流程以提高透明度。 

通过记录工作流程,可以确保其他人可以查看和复制程序。 

(1)数据验证

数据验证涉及应用约束以确保拥有有效且一致的数据。它通常甚至在收集数据之前应用,在设计问卷或其他需要手动数据输入的测量材料时应用。 

不同的数据验证约束可帮助最大程度地减少需要进行的数据清理工作。 

数据类型约束:只有特定类型的值才能被接受,例如数字或文本。 

示例:数据类型约束 

如果日期同时包含文本和数字(例如,2023年3月20日),而不仅仅是数字(例如,20-03-2023),则该日期将不被接受。 

范围限制:值必须在一定范围内才有效。 

示例:范围约束 

为年龄在18到45岁之间的目标人群设计了一份问卷。在报告年龄时,参与者只能输入18到45岁之间的值才能继续填写表格。 

强制约束:必须输入一个值。 

示例:强制约束填写表格的参与者必须选择一个写着“我同意”的按钮才能开始。 

(2)数据筛选

收集数据后,最好创建原始数据集的备份并安全存储。如果在工作流程中犯了任何错误,始终可以通过复制备份并从数据集的新副本开始工作来重新开始。 

数据筛选涉及检查数据集是否存在不一致、无效、缺失或域外数据。可以手动或使用统计方法执行此操作。 

第1步:整理数据集

这些操作将帮助使数据井井有条且易于理解。 

将每个变量(度量)变成一列,将每个个案(参与者)变成一行。 

为列提供唯一且合乎逻辑的名称。 

从数据集中删除所有空行。 

第2步:目视扫描数据以寻找可能的差异

浏览数据集并回答以下问题: 

日期、文本或数字数据是否存在格式不规则? 

某些列是否有大量缺失数据? 

是否有任何行重复条目? 

某些列中的特定值是否看起来是极端异常值? 

记下这些问题并考虑如何在数据清理过程中解决它们。 

第3步:使用统计技术和表格/图表探索数据

通过收集描述性统计数据和可视化,可以确定数据的分布方式并识别异常值或偏度。 

使用箱线图、散点图或直方图直观地探索数据 

检查数据是否呈正态分布 

为每个变量创建摘要(描述性)统计数据 

在频率表中总结定量数据 

通过可视化,可以大致了解定量变量数据是如何分布的。箱线图和散点图可以显示数据是如何分布的,以及是否有任何极值。检查变量是否服从正态分布非常重要,这样就可以为研究选择合适的统计检验。 

如果mean、median和mode都彼此相差很多,则数据集中可能存在应该查看的异常值。 

(4)数据诊断及处置

在大致了解之后,可以开始深入了解数据集的细节。需要创建一个标准程序来检测和处理不同类型的数据。 

如果没有适当的计划,可能最终只会挑选一些数据点进行清理,从而导致数据集出现偏差。 

下面重点介绍脏数据常见问题的处理方法: 

重复数据 

无效数据 

缺失值 

异常值 

重复数据删除

重复数据删除意味着检测并删除任何相同的数据副本,只留下数据集中的唯一案例或参与者。 

示例:重复数据 

删除在电子表格中编译数据,其中列是问题,行是参与者。每行包含一个参与者的数据。 

按列对数据进行排序,然后逐行查看数据以检查是否有相同的行。删除一行的相同副本。 

如果重复数据留在数据集中,它们会使结果产生偏差。一些参与者的数据将比其他参与者的数据权重更大。 

无效数据

使用 数据标准化,可以识别不同格式的数据并将其转换为统一格式。 

与数据验证不同,可以在收集数据后将标准化技术应用于数据。这涉及开发代码以将脏数据转换为一致且有效的格式。 

如果在数据输入时没有数据限制,或者如果数据格式不一致,则数据标准化会很有帮助。 

示例:无效数据 

使用开放式问题,要求参与者报告他们的年龄。回复包含数字和文字的混合,还有一些拼写错误。这些是一些示例: 

23 

二十 

19 

十八 

22 

字符串匹配方法

要标准化不一致的数据,可以使用严格或模糊的字符串匹配方法来识别数据与有效值之间的精确匹配或接近匹配。 

字符串是字符序列。将数据字符串与希望获得的有效值进行比较,然后删除或转换不匹配的字符串。 

严格的字符串匹配:任何与有效值不完全匹配的字符串都被认为是无效的。 

示例:严格的字符串匹配 

有效值包括18到45之间的数字以及首字母大写的任何拼写正确的表示数字的单词。 

在这种情况下,严格匹配只会接受5个值中的3个。 

23 

二 

19 

十 

22 

模糊字符串匹配:识别和更正与有效值紧密匹配或近似匹配的字符串。 

示例:模糊字符串匹配 

有效值包括18到45之间的数字以及任何表示数字的单词。使用计算机程序允许任何与数据集中这些有效值非常匹配的值。 

对于紧密匹配的字符串,程序会检查需要进行多少次编辑才能将字符串更改为有效值,如果编辑次数足够少,它就会进行这些更改。 

模糊字符串匹配将接受所有五个值。 

23 

二十 

19 

十八 

22 

匹配后,可以将文本数据转换为数字,以便所有值的格式保持一致。 

模糊字符串匹配通常优于严格字符串匹配,因为保留了更多数据。 

缺失数据

在任何数据集中,通常都会有一些缺失数据。这些单元格在电子表格中显示为空白。 

缺失数据可能来自随机或系统原因。 

随机缺失数据包括数据输入错误、注意力不集中或测量错误。 

非随机缺失数据是由混淆、设计不当或不适当的测量或问题引起的。 

处理缺失数据

处理缺失数据的方法通常包括: 

按原样接受数据 

从分析中删除个案 

重建丢失的数据 

随机缺失数据通常被保留,而非随机缺失数据可能需要移除或替换。 

通过 删除,可以从分析中删除缺少数据的参与者。但是样本可能会变得比预期的要小,因此可能会失去统计能力。 

示例:缺失数据删除 

决定从调查数据集中删除所有缺少数据的参与者。这会将样本从114名参与者减少到77名。 

或者,可以使用 插补法根据合理估计将缺失值替换为另一个值。使用其他数据替换缺失值以获得更完整的数据集。 

谨慎应用插补很重要,因为存在偏差或不准确的风险。 

异常值

异常值是与数据集中大多数其他数据点不同的极值。异常值可以是真实值或错误。 

应始终保留 真正的异常值,因为它们仅代表样本中的自然变化。例如,参加100米奥林匹克短跑训练的运动员的速度比大多数人高得多。他们的冲刺速度是自然的异常值。 

异常值也可能由测量错误、数据输入错误或不具代表性的抽样引起。例如,如果误读了计时器,可能会记录极短的冲刺时间。 

检测异常值

异常值总是在任何可变数据集的极端。 

可以使用多种方法来检测异常值: 

将值从低到高排序并检查最小值和最大值 

在箱线图中可视化数据并搜索异常值 

使用统计程序识别极值 

处理异常值

确定异常值后,将决定如何处理数据集中的异常值。主要选择是保留或删除它们。一般来说,应该尝试尽可能多地接受异常值,除非很明显它们代表错误或不良数据。记录删除的每个异常值及其原因非常重要,以便其他研究人员可以遵循程序。 

本文来自微信公众号 “数据驱动智能”(ID:Data_0101),作者:晓晓,36氪经授权发布。

+1
3

好文章,需要你的鼓励

参与评论
评论千万条,友善第一条
后参与讨论
提交评论0/1000

下一篇

作为阿里云低碳科技加速器明星企业,极熵科技成立于2014年,是一家以专业的能源管理、智能微网为切入点,以工业及能源互联网技术为抓手的高新技术企业。

2023-03-03

36氪APP让一部分人先看到未来
36氪
鲸准
氪空间

推送和解读前沿、有料的科技创投资讯

一级市场金融信息和系统服务提供商

聚焦全球优秀创业者,项目融资率接近97%,领跑行业