缺失值侦测与处理

 

缺失值的侦测的方法:

1、mice包中的md.pattern()函数可以生成一个以矩阵或数据框形式展示缺失值模式的表格

这个矩阵呢,表示像第一行缺失0个的模式有13行,像第二行缺失1个的模式有1行,如此类推

所以呢,一共就有0*13+1*1+1*3+2*1+3*7=27个缺失值,也可以算每列的,age列缺0个,hyp列缺8个,bmi列缺9个,chl列缺10个,共缺0+8+9+10=27个

2、VIM包中可可视化数据集中缺失值模式的函数:aggr()、matrixplot()、scattMiss()

 aggr(nhanes,prop=FALSE,numbers=TRUE) 

此外,当prop参数设置为true时,将用比例代替计数

 matrixplot(nhanes) 

此处,缺失的地方为红色,其他的数值较小,颜色较浅;数值越大,颜色越重。

另,不适合非数值数据,会把非数值数据判断成缺失

 marginplot(nhanes[c("hyp","chl")],pch=c(20),col=c("darkgray","red","blue")) 

 

缺失值的处理一般有以下几种方法:

1、将含缺失值的记录删除

2、根据变量之间的相关关系填补缺失值

3、根据记录之间的相似性填补缺失值

4、使用能够处理缺失值的工具

 

将含缺失值的记录删除

一般适用于以下情况:

此条记录中含有较多变量的缺失值

 

得到数据中至少含有一个变量的缺失值的记录 的计数

nrow(data[!complete.cases(data),]

剔除含有缺失值的记录

data=data[complete.cases(data),]
或者
data=na.omit(data)

 得到每行数据的缺失值个数

apply(data,1,function(x) sum(is.na(x)))

 

用最高频率值填补缺失值

填补缺失值最简便和快捷的方法是使用一些代表中心趋势的值,因为他们反映了变量分布的最常见值。例如平均值、中位数、众数等。

对于接近正态的分布来讲,平均值数就是最佳选择;

对于偏态分布或者有离群值的分布而言,中位数是更好的代表数据中心趋势的指标。

填补data的noNum列的缺失值:

data[is.na(data$noNum,"noNum"]=median(data$noNum,na.rm=T)  

对于名义变量,常使用众数填补。

通过变量的相关关系来填补缺失值

缺失值为数值变量时常使用相关性计算线性回归,

缺失值为名义变量时常通过绘图观察规律进行填充。

产生变量之间的相关值

cor(data[,4:18],use="complete.obs")  

 改善结果输出形式:

symnum(cor(data[,4:18],use="complete.obs"))

 

找出相关性比较高的变量,通过线性回归对缺失值进行计算填充

填充名义变量时常用的绘图函数(lattice包):

histogram(~mxPH|season,data=algae)
histogram(~mxPH|size*speed,data=algae)
stripplot(size~mxPH|speed,data=algae,jitter=T)  

 

根据记录之间的相似性填补缺失值

度量两个记录之间的相似性:欧氏距离,找出与任何含有缺失值的案例最相似的10条记录

两种方法:

1、计算这10条记录的中位数,并用中位数来填补缺失值。若为名义变量,采用众数

2、采用这些最相似数据的加权均值。权重的大小随着距待填补缺失值的个案的距离增大而减小。可采用高斯核函数从距离获得权重。若相邻个案距待填补缺失值的个案的距离为d,则它的值在加权平均中的权重为 w(d)=exp(-d)

注:在计算距离时,一般要对数值变量进行标准化。即 yi=(xi-xbar)/sigma(x)

 

转载于:https://www.cnblogs.com/Hyacinth-Yuan/p/7887181.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415236.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高德地图 amap 设置鼠标样式

我的需求,要在高德地图里面做一个地图选点的功能。这个功能很简单,但是高德地图的默认鼠标样式是一只小手,不适合做选点用。 高德地图中有4中样式如下图 对应名称如下: pointer,default,move&#xff0c…

Android 自定义软键盘实现

module链接&#xff1a;https://download.csdn.net/download/meixi_android/10652565 compile project(:edlibrary) , :edlibrary <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/…

前端学习(2657):vue3实现计算器

第一步 引入ref 第二步 第三步

微信小程序map作为子组件wx.createMapContext失效

我是将map封装成了子组件进行使用&#xff0c;发现wx.createMapContext无论如何都没有效果。最后&#xff0c;定睛一看&#xff0c;原来将map放到子组件中&#xff0c;再使用wx.createMapContext需要增加额外的参数this 具体使用方法如下&#xff1a; const mapCtx wx.create…

昨晚通宵把服务器格式化,重新配置环境。

1.备份代码和数据 备份数据库用到命令&#xff1a;mysqldump -u 用户名 -p 数据库名 > 导出文件名 2.然后登录阿里云后台停止服务器&#xff0c;再格式化磁盘。 3.配置软件源 Ubuntu中软件更新的源服务器地址存储再/etc/apt/soures.list 每一行的开头是deb和deb-src&#xf…

vscode设置折行字数

在vscode设置中查找Word Wrap。 将默认的80换成200 即可。

SpringCloud stream连接RabbitMQ收发信息

百度上查的大部分都是一些很简单的单消费者或者单生产者的例子&#xff0c;并且多是同一个服务器的配置&#xff0c;本文的例子为多服务器配置下的消费生产和消费者配置。 参考资料&#xff1a;https://docs.spring.io/spring-cloud-stream/docs/Elmhurst.RELEASE/reference/ht…

前端学习(2659):组件间传参

第一步 第二步 第三步 子组件定义 第四步

Android 实现验证码效果图

自定义验证码图片view public class CheckView extends View {Context mContext;String mCheckCode null;Paint mTempPaint new Paint();private final int mPointNum;private final int mLineNum;private int mTextLength;private final float mTextSize; // private f…

JavaScript的基本语法

1.JavaScript中的表示符合保留关键字&#xff1a;JavaScript中定义的符号必须以字母&#xff0c;下划线_或美元符$开始&#xff0c;其他字符可以是字母数字&#xff0c;下划线或者美元符。如变量名&#xff0c;函数名等。但是&#xff0c;标识符不能是JavaScript中的保留关键字…

Android 视频播放器,VideoView播放视频

实现demo&#xff1a;https://download.csdn.net/download/meixi_android/13729352 获取视频时长 delyedTime videoView.getDuration();//单位毫秒&#xff08;ms&#xff09; 引入视频模块 implementation project(:dkplayer-java) implementation project(:dkplayer-ui)视…

工作174:数组转换为对象项目案例

/* getAction("/task",).then(res>{console.log(res)let List[]res.data.items.map((value,index)>{/!* console.log(value.task_recode)*!/List.push({...value.task_recode})})this.tableDataListconsole.log(this.tableData)})*/ 本次直接处理 转换为数…

AAPT2 error: check logs for details.

/1、全部替代你的项目build.gradle内容&#xff1a; // Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {repositories { // maven { // url https://maven.google.com // }mavenCe…

工作175:数据在表格横坐标动态显示

1数据格式 2对数据进行处理 created() {getAction("/task/arrange").then(res>{console.log(res)this.tableDatares.data.itemsthis.timeres.data.timeconsole.log(this.time)res.data.time.map((value,index)>{console.log(value)let arr {prop:,label:value.…