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.pswp.cn/news/287663.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/287663.shtml
英文地址,請注明出處:http://en.pswp.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…