R语言-异常数据处理2

在R中进行基于稳健马氏距离的异常检验

前言

  我们研究的数据中经常包含着一些不同寻常的样本,这称之为异常值(Outlier)。这些异常值会极大的影响回归或分类的效果。异常值产生的原因有很多,其中可能是人为错误、数据测量误差,或者是实际确实存在这样的异常。为了使模型能够反映大部分数据的规律,所以在数据预处理阶段要进行异常值检测,为下一步分析奠定基础。还有一类情况是,当研究人员希望发现不平凡的事物时,异常值检测本身就是分析的首要目的。例如在信用卡欺诈、计算机入侵检测等问题中。此时由于样本的不平衡性,导致一般的分类方法无法使用,必须转而考虑异常检测方法。

  一种常用的异常检验思路是观察各样本点到样本中心的距离。如果某些样本点的距离太大,就可以判断是异常值。这里距离的度量一般使用马氏距离(Mahalanobis Distance)。因为马氏距离不受量纲的影响,而且在多元条件下,马氏距离还考虑了变量之间的相关性,这使得它优于欧氏距离。

  但是传统的马氏距离检测方法是不稳定的,因为个别异常值会把均值向量和协方差矩阵向自己方向吸引,这样算出来的样本马氏距离起不了检测异常值的所用。所以首先要利用迭代的思想构造一个稳健的均值和协方差矩阵估计量,然后计算稳健马氏距离(Robust Mahalanobis Distance)。这样使得异常值能够正确地被识别出来。

  在mvoutlier包中提供了基于稳健马氏距离的异常值检验方法。我们首先构造一个二维变量的人工数据,其中80个样本是标准正态分布,另一小撮别有用心的样本是均值为5,标准差为1的观测值。我们首先使用uni.plot函数在一维空间中观察这个数据。

    library(mvoutlier)set.seed(1234)x <- cbind(rnorm(80), rnorm(80))y <- cbind(rnorm(10, 5, 1), rnorm(10, 5, 1))z <- rbind(x,y)# 一维数据的异常检验res1 <- uni.plot(z)# 返回异常值的编号which(res1$outliers==T)################################> library(mvoutlier)> set.seed(1234)> x <- cbind(rnorm(80), rnorm(80))> y <- cbind(rnorm(10, 5, 1), rnorm(10, 5, 1))> z <- rbind(x,y)> # 一维数据的异常检验> res1 <- uni.plot(z)> # 返回异常值的编号> which(res1$outliers==T)[1] 20 62 81 82 83 84 85 86 87 88 89 90

%E5%BC%82%E5%B8%B8%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%862Rplot01.bmp

  上图中红色点表示疑似异常值,因为它偏离均值太远。更多时候我们会处理多元异常检测问题,此时用aq.plot函数来实行基于稳健马氏距离的异常值检验方法。下图中左上角图形为原始数据,右上角图形的X轴为各样本的稳健马氏距离排序,Y轴为距离的经验分布,红色曲线为卡方分布,蓝色垂线表示阀值,在阀值右侧的样本判断为异常值。左下和右下两张图均是用不同颜色来表示异常值,只是阀值略有不同。可以观察到那一小撮异常值被正确的判断出来,但也有两个正常值被误判为异常值,此时需要调整参数。

    # 基于稳健马氏距离的多元异常值检验res2 <-aq.plot(z)# 返回异常值的编号which(res2$outliers==T)################################> res2 <-aq.plot(z)> which(res2$outliers==T)[1] 20 62 81 82 83 84 85 86 87 88 89 90

%E5%BC%82%E5%B8%B8%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%862Rplot02.bmp

  如果数据的维数过高,例如基因数据那样几千个变量,数据之间变得稀疏,从而使得距离不再有很大意义。此时可以融合主成分降维的思路来进行异常值检验。mvoutlier包中提供了pcout函数来进行高维空间异常检验。下面是以swiss数据集为例来判断异常值。

    # 在高维空间中的异常值检验data(swiss)res3 <- pcout(swiss)# 返回异常值的编号which(res3$wfinal01==0)################################> # 在高维空间中的异常值检验> data(swiss)> res3 <- pcout(swiss)> # 返回异常值的编号> which(res3$wfinal01==0)Delemont Franches-Mnt   Porrentruy        Broye        Glane 2            3            6            7            8 Gruyere       Sarine      Veveyse    La Vallee      Conthey 9           10           11           19           31 Entremont       Herens     Martigwy      Monthey   St Maurice 32           33           34           35           36 Sierre         Sion V. De Geneve 37           38           45 

参考资料

  • R语言:处理异常值1

  • R语言:处理异常值2

转载于:https://www.cnblogs.com/cloudtj/articles/5520230.html

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

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

相关文章

【遥感数字图像处理】实验:遥感影像增强方法大全处理看过来(Erdas版)

目录 1、空间增强(spatial enhancement) 1.1 卷积增强(convolution) 1.2 非定向边缘增强(non-directional edge)

《零基础看得懂的C++入门教程 》——(2)什么是数据类型、变量?一看便会

一、学习目标 了解基本常用的数据类型了解什么是变量 目录 预备第一篇&#xff0c;使用软件介绍在这一篇&#xff0c;C与C使用的软件是一样的&#xff0c;查看这篇即可&#xff1a;《软件介绍》 想了解编译原理和学习方法点这篇&#xff0c;学习方法和一些原理C与C都是相同的…

pycharm 快捷键介绍

CtrlN (Navigate | Class) 打开输入框输入要查找的类名 Ctrl空格 代码自动补全 Ctrl空格&#xff08;按两次&#xff09;对于没有导入的类自动完成导入代码并自动补全 AltF7 查找方法变量在工程中的所有应用 CtrlQ (View | Quick Documentation). 快速查看文档 …

【遥感数字图像处理】实验:遥感图像分析方法大全(Erdas版)

一.实验目的: 掌握遥感数字图像分析的机理与方法,理解遥感数字图像分析在遥感图像计算机自动解译中的重要作用。 二.实验平台:ERDAS IMAGINE 9.1 三.实验要求:掌握遥感数字图像的邻域分析;查找分析;指标分析;叠加分析;归纳分析;坡度、坡向提取;高程分带和地形阴…

db2和mysql语句区别_db2和mysql语法的区别是什么

MySQL默认使用大小写敏感的数据库名、表名和列名(可以通过lower_case_table_names参数控制是否大小写敏感)&#xff0c;DB2数据库对大小写不敏感。虽然MySQL与DB2都遵循并符合SQL92标准且大多数SQL相互兼容&#xff0c;但是在一些细节的实现上有一些不同的地方。比如&#xff1…

查缺补漏系统学习 EF Core 6 - 数据查询

这是 EF Core 系列的第四篇文章&#xff0c;上一篇文章讲述了 EF Core 中的实体迁移与数据播种。这篇文章盘点一下 EF Core 的几种数据查询方式&#xff0c;内容较多分上下两篇。点击上方或后方蓝字&#xff0c;阅读 EF Core 系列合集。简单查询在 EF Core 中&#xff0c;每个查…

Android Studio之导入别人的module后config.gradle配置文件没有生效

1 问题 导入了别人项目的module,但是在别人项目里面的根目录有config.gradle文件&#xff0c;里面有些版本信息&#xff0c;其他module的build.gradle文件用到了这里面的配置&#xff0c;如下&#xff0c;我把module导入我的项目&#xff0c;怎么让这个文件生效呢&#xff1f;…

《零基础看得懂的C++入门教程 》——(3)表达式花样挺多鸭

一、学习目标 了解变量之间的计算了解什么是表达式了解什么是自增、自减 目录 预备第一篇&#xff0c;使用软件介绍在这一篇&#xff0c;C与C使用的软件是一样的&#xff0c;查看这篇即可&#xff1a;《软件介绍》 想了解编译原理和学习方法点这篇&#xff0c;学习方法和一些…

php 设计模式 - 单例

概述&#xff1a; 作为对象的创建模式&#xff0c;单例确保某一个内在系统中只存在一个实例&#xff0c;它不可以创建副本。 克隆函数&#xff08;__clone &#xff09;以及构造函数(__construct )必须声明为私用&#xff0c; 防止外部程序 创建一个新类 &#xff0c;而失去…

prometheus python client

为什么80%的码农都做不了架构师&#xff1f;>>> 当我刚开始准备使用Python写一个promethues的client的时候&#xff0c;并没有想到过程这么麻烦。github上的大佬们也没兴趣帮我解决这些细节的问题。以下是我在使用prometheus_client遇到的一些问题&#xff0c;仅供…

php之无限极分类

http://blog.csdn.net/kankan231/article/details/8462349/转载于:https://www.cnblogs.com/jeremyjs/p/4798169.html

【遥感数字图像处理】实验:遥感影像分类(监督、非监督分类)完整流程(Erdas版)

一.实验目的: 理解计算机图像分类的基本原理,掌握数字图像非监督分类以及监督分类的具体方法和过程,以及两种分类方法的区别。 二.实验平台:ERDAS IMAGINE 9.1 三.实验要求:掌握非监督分类;非监督分类结果评价;监督分类;监督分类结果评价;分类后处理。 四.实验…

mysql5.7.16安装版_mysql数据库5.7.16安装版怎么安装图解

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…

重大跨越!Windows 11 23H2 25115 推送:2023 年更新测试开启,水印回归

面向 Dev 频道的 Windows 预览体验成员&#xff0c;微软现已发布 Windows 11 预览版 Build 25115。主要变化1.微软宣布从 Dev 频道切换到 Beta 频道的选项正式关闭&#xff0c;Beta 频道将继续测试 Windows 11 版本 22H2&#xff0c;而 Dev 频道将开启 2023 年更新 Windows 11 …

团队第二次冲刺第三天

已经明白自己犯错误的地方&#xff0c;经过今天的改正&#xff0c;成功调用数据库储存用户名和密码。 明天对于数据库更加完善。转载于:https://www.cnblogs.com/dotacai/p/5521506.html

Android Studio编译提示如下attribute layout_constraintBottom_toBottomOf (aka com.luck.pictureselector:layou

1 问题 Android Studio编译提示错误如下 AAPT: error: attribute layout_constraintBottom_toBottomOf (aka com.luck.pictureselector:layout_constraintBottom_toBottomOf) not found.2 解决办法 在app的build.gradle文件里面添加依赖如下 implementation androidx.const…

《零基础看得懂的C++入门教程 》——(4)条件判断原来如此

一、学习目标 了解什么是条件判断了解多个条件判断了解输入了解什么是逻辑与、逻辑或 目录 预备第一篇&#xff0c;使用软件介绍在这一篇&#xff0c;C与C使用的软件是一样的&#xff0c;查看这篇即可&#xff1a;《软件介绍》 想了解编译原理和学习方法点这篇&#xff0c;学…

Django学习笔记(4)

为什么80%的码农都做不了架构师&#xff1f;>>> 首先提一个问题&#xff1a;在Django中如何处理CRSF(Cross-site request forgery)? 先看一下CSRF原理。 其实就是恶意网站利用正常网站的cookie去非法请求。 ##Java处理方式## 一般做法需要后台和前端配合采取策略去…

MySQL复制--slave设置读取binlog的位置

change_master->global_init_info->Master_info::mi_init_info->Rpl_info_handler::init_info->Rpl_info_file::do_init_info ->mi->rli->rli_init_info()->初始化./relay-bin.000001,4如果relay-log.info不存在的话&#xff0c;否则读取//初始化mas…

【遥感数字图像处理】实验:遥感专题地图制作经典流程(Erdas版)

实验目的:掌握计算机辅助下遥感专题地图的制作。实验平台:ERDAS 9.1实验要求:掌握专题地图的编辑;制图文件路径的编辑;系列地图编辑工具的使用。实验步骤:1 专题地图的编辑 1.1 准备专题制图数据 (1) 在视窗菜单条中点击 File,选择Open (2) 点击 Raster Layer,打开S…