R语言:用R语言填补缺失的数据
原文链接:http://tecdat.cn/?p=4740
缺少数据在分析数据集时可能不是一个微不足道的问题。
如果缺失数据的量相对于数据集的大小非常小,那么为了不偏离分析而忽略缺少特征的少数样本可能是最好的策略,但是留下可用的数据点会剥夺某些数据的特征。
尽管某些快速修正如均值替代在某些情况下可能很好,但这种简单的方法通常会向数据中引入偏差。
在这篇文章中,我们将使用airquality数据集(在R中提供)来推测缺失值。
为了本文的目的,我将从数据集中删除一些数据点。
快速分类缺失数据
有两种类型的缺失数据:
MCAR:随意丢失。
MNAR:不是随意丢失的。随机数据丢失是一个更严重的问题,在这种情况下,进一步检查数据收集过程并尝试理解信息丢失的原因可能是明智的。例如,如果调查中的大多数人没有回答某个问题,他们为什么这样做?这个问题不清楚吗?
假设数据是MCAR,太多丢失的数据也可能成为一个问题。
pMiss < - function(x){sum(is.na(x))/ length(x)* 100}
我们发现臭氧几乎失去了25%的数据点,因此我们可能会考虑将其从分析中删除或收集更多的测量数据。
其他变量低于5%的阈值,所以我们可以保留它们。就样本而言,仅缺少一个特征会导致每个样本缺失25%的数据。如果可能,应丢弃缺少2个或更多特征(> 50%)的样本。
查看缺失的数据模式
该mice软件包提供了一个很好的功能md.pattern(),可以更好地理解丢失数据的模式
输出结果告诉我们,104个样本是完整的,34个样本只错过臭氧测量,4个样本只错过了Solar.R值,等等。
一个可能更有用的视觉表示可以使用下面的VIM包得到
该图有助于我们理解几乎70%的样本没有遗漏任何信息,22%的人缺少臭氧值,剩余的样本显示其他遗漏的模式。通过这种方法,我认为情况看起来更清楚一些。
marginplot
左边的红色方块图显示Solar.R的分布与臭氧缺失,而蓝色方块图显示剩余数据点的分布。
如果我们假设MCAR数据是正确的,那么我们预计红色和蓝色方块图非常相似。
输入缺失的数据
现在我们可以使用该complete()函数返回已完成的数据集。
completedData < - complete(tempData,1)
首先,我们可以使用散点图并将臭氧对所有其他变量进行绘图
xyplot(tempData,Ozone_Wind + Temp + Solar.R,pch = 18,cex = 1)
密度图:
densityplot
stripplot(tempData,pch = 20,cex = 1.2)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php面向对象基础详解【星际争霸游戏案例】
- Linux系统下Nginx支持ipv6配置的办法
- Smarty模板变量与调节器实例详解
- Linux中搭建完整的samba服务器全攻略(centos版)
- Thinkphp5 自定义上传文件名的实现方法
- PHP读取文件,解决中文乱码UTF-8的方法分析
- Linux低电量自动关机的实现办法
- php设计模式之工厂方法模式分析【星际争霸游戏案例】
- PHP+Apache实现二级域名之间共享cookie的方法
- linux虚拟机配置静态IP地址的完整步骤
- laravel-admin利用ModelTree实现对分类信息的管理
- Linux系统下快速配置HugePages的完整步骤
- Laravel5.1 框架关联模型之后操作实例分析
- PHP实现的多进程控制demo示例
- 你可能不知道的一些linux文件权限管理办法