在进行正式的数据分析之前,必须要保证数据的质量,故而我们要处理缺失值、异常值这些脏数据。本篇博客参照了如何使用R语言解决可恶的脏数据一文,进行了模拟脏数据清洗。
一、缺失值
缺失值的处理要依据数据的类型和其内容进行相应处理,常用的方法有行删除、众数替代、均值替代以及多重插补法等等。
以下举个例子:
通过summary(df)得到df简单描述统计如下:
很明显,每列都随机产生了一定数量的缺失值,接下来我们来对这份数据进行清洗。
- 了解缺失值的分布情况,这里我们通过VIM包中的aggr()函数对缺失值分布进行可视化:
由上图可知Tel变量、Sex变量和Age变量已经不存在缺失值,接下来通过mice包对Freq变量、Amount变量和ATV变量进行多重插补。该包可以对数值型数据和因子型数据进行插补。对于数值型数据,默认使用随机回归添补法(pmm);对二元因子数据,默认使用Logistic回归添补法(logreg);对多元因子数据,默认使用分类回归添补法(polyreg)。其他插补法,可通过ce查看相关文档。
以上就是重复值清洗的全部过程。
二、异常值
1.识别异常值
一般我们通过四分位距来识别异常值,我们把上四分位数和下四分位数之差定义为四分卫距,把超过上四分位数1.5倍四分位距和低于下四分位数1.5倍四分位距的数据认定为异常值,举例:

由箱线图可知,有一部分数据落在上四分位数的1.5倍四分位距之上,即异常值,接下来我们将其找出:
由结果可知异常值分别为第104、106、110、114、116、118、120这7个点,处理异常值一般有两种方法,即剔除和替补,剔除很简单,重点讲讲替补:
以上就是异常值清理的过程。
本篇博客重在我个人体验了一下数据清洗的过程,可以看成是按我个人理解的笔记,有啥不当之处还请各位看官不吝赐教~
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!