数据分析基础——R语言(处理缺失值)

进行简单的数据处理时,我们处理的基本都是完整的数据集,但是实际问题中我们经常会遇到带有缺失值的数据,处理此类数据也就显得尤为重要。

处理缺失值的一般步骤

首先我们列出处理缺失值的一般步骤,对整个流程有一个大致的了解。

  1. 识别缺失数据;
  2. 检查导致数据缺失的原因;
  3. 删除包含缺失值的实例或用合理的数值插补缺失值。

数据缺失的种类

  1. 完全随机缺失(MCAR)
  2. 随机缺失(MAR)
  3. 非随机缺失(NMAR)

完全随机缺失:若某变量的缺失数据与其他任何观测和未观测变量都不相关,则数据为完全随机缺失。

随机缺失:若某变量上的缺失数据与其他观测变量相关,与他自己的未观测值不相关,则数据为随机缺失。

非随机缺失:若缺失数据不属于上两种则是非随机缺失。

识别缺失值

要想处理缺失值,首先我们就要去识别出来哪些数据是缺失值,R语言中,NA代表缺失值,NaN代表不可能的值,Inf和-Inf代表的是正无穷和负无穷。有对应的函数is.na()、is.nan()、is.infinite()可以分别用来识别缺失值,不可能值以及无穷值,返回的结果是TRUE/FALSE。

要想统计缺失值的个数,我们可以直接通过sum()函数来对TRUE/FALSE进行统计,其中TRUE的逻辑值是1,FALSE的逻辑值为0,同样不可能的值以及无穷值也可以用此方法进行判断。

探究缺失值

对于缺失值,我们只统计他的个数是不可取的,本节中给出探究缺失值的几种方法。

一、图表显示缺失值

我们可以用一个图标的形式去展示缺失值,在R语言中mice包中的md.pttern()函数提供了一个可以生成矩阵来显示缺失值的表格,示例如下:

library(lattice)
library(mice)
data(sleep,package="VIM")
md.pattern(sleep)

得到的图表结果以及图形结果如下:

二、图形展示缺失值

md.pattren()函数已经给我们清晰的列出了每一项的缺失值,但是图形时一种更能够清晰的表达缺失值的一种方法,VIM包中提供了大量的可视化函数,我们来学习一下其中的一些函数。

aggr()函数

library(VIM)
aggr(sleep,prop=FALSE,numbers=TRUE)

matrixplot()函数

matrixplot()

marginplot()函数

marginplot(sleep[c("Gest","Dream")],pch=c(20),col=c("darkgray","red","blue"))

缺失值的处理

一、删除

对于缺失值的处理首先我们先采用第一种最简单的方法——删除缺失值所在的行,R语言中提供了两种删除缺失值的函数,分别是complete.cases()函数和na.omit()函数。

对于删除的处理直接对数据进行使用即可,这里不做演示。

二、多重插补法

多重插补(MI)是一种基于重复模拟的处理缺失值的方法,在面对复杂的缺失值问题时,MI是常选用的方法,它将从一个包含缺失值的数据集中生成一组完整的数据集。本节中我们将使用R中的mice包对数据集进行插补。

mice包中多重插补法的工作流程如下:

Rå¤éæè¡¥æ³mice

 

基于mice包的分析通常要符合以下的过程:

library(mice)
imp <- mice(mydata,m)
fit <- with(imp, analysis)
pooled <- pool(fit)
summary(pooled)

过程说明:

  • mydata是一个包含缺失值的矩阵或数据框
  • imp是一个包含m个插补数据集的列表对象,同时还含有完成插补过程的信息。默认的m的值为5。
  • analysis是一个表达式对象,用来设定应用于m个插补数据集的统计分析方法。
  • fit是一个包含m个单独统计分析结果的列表对象。
  • pooled是一个包含这m个统计平均分析结果的列表对象。

三、简单插补法

简单插补法,即用某个值(如均值、中位数、众数)来替换变量中的缺失值。注意的一点是,这些替换是随机的,这也就意味着不会引入随机误差。

四、处理缺失值的其他方法

R语言支持其他一些缺失值的处理方法。

软件包描述
Hmisc包含多种函数,支持简单插补、多重插补和典型变量插补。
mvnmle对多元正太分布数据中缺失值的最大似然估计。
cat对线性模型中多元类别型变量的多重插补。
arrayInpute、Seqknn处理微阵列缺失数据的实时函数。
longitudinalData相关的函数列表,比如对时间序列缺失值进行插补的一系列函数。
kmi处理生存分析缺失值的Kaplan-Meier多重插补。
mix一般位置模型中混合类别型和连续型数据的多重插补。
pan多元面板数据或聚类数据的多重插补。

 

  • 14
    点赞
  • 123
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
商务数据分析与应用——基于R课后习题解析是针对商务数据分析的一门课程,通过学习和应用R语言的相关知识与技术,来解决商务数据分析的问题和挑战。以下是对该课程的习题解析。 该课程的习题主要涵盖了数据导入与整理、数据可视化、统计分析、机器学习等多个方面。 在数据导入与整理方面,学生需要掌握如何使用R语言中的相关函数和包来导入不同格式的数据,如CSV、Excel等。此外,还需学习如何对数据进行清洗和处理,包括缺失值处理、异常值处理等。 在数据可视化方面,学生需要学习如何使用R语言中的ggplot2包来绘制各种类型的图形,如散点图、柱状图、折线图等,以便更直观地展示数据。 在统计分析方面,学生需要学习如何使用R语言中的相关函数和包进行统计分析,如描述性统计分析、假设检验、回归分析等。学生还需要学习如何解读和解释统计分析的结果。 在机器学习方面,学生需要学习如何使用R语言中的机器学习包,如caret、randomForest等,来构建和评估机器学习模型。学生还需学习如何选择合适的特征变量、调整模型的参数以及评估模型的性能。 通过完成这些习题,学生可以巩固和应用所学的相关知识和技术,提高商务数据分析的能力和水平。同时,通过解析习题,学生可以更好地理解和掌握R语言的使用,为将来在商务数据分析工作中的应用提供实际操作的指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二哥不像程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值