python異常值處理實例_利用Python進行異常值分析實例代碼

前言

異常值是指樣本中的個別值,也稱為離群點,其數值明顯偏離其余的觀測值。常用檢測方法3σ原則和箱型圖。其中,3σ原則只適用服從正態分布的數據。在3σ原則下,異常值被定義為觀察值和平均值的偏差超過3倍標準差的值。P(|x?μ|>3σ)≤0.003,在正太分布假設下,大于3σ的值出現的概率小于0.003,屬于小概率事件,故可認定其為異常值。

異常值分析是檢驗數據是否有錄入錯誤以及含有不合常理的數據。忽視異常值的存在是十分危險的,不加剔除地把異常值包括進數據的計算分析過程中,對結果會產生不良影響;重視異常值的出現,分析其產生的原因,常常成為發現問題進而改進決策的契機。

異常值是指樣本中的個別值,其數值明顯偏離其余的觀測值。異常值也稱為離群點,異常值的分析也稱為離群點分析。

(1)簡單統計量分析

可以先對變量做一個描述性統計,進而查看哪些數據是不合理的。最常用的統計量是最大值和最小值,用來判斷這個變量的取值是否超出了合理的范圍。如客戶年齡的最大值為199歲,則該變量的取值存在異常。

(2)3原則

如果數據服從正態分布,在3原則下,異常值被定義為一組測定值中與平均值的偏差超過3倍標準差的值。在正態分布的假設下,距離平均值3之外的值出現的概率為P(|x-|>3)≤0.003,屬于極個別的小概率事件。

如果數據不服從正態分布,也可以用遠離平均值的多少倍標準差來描述。

(3)箱型圖分析

箱型圖提供了識別異常值的一個標準:異常值通常被定義為小于QL-1.5IQR或大于QU+1.5IQR的值。QL稱為下四分位數,表示全部觀察值中有四分之一的數據取值比它小;QU稱為上四分位數,表示全部觀察值中有四分之一的數據取值比它大;IQR稱為四分位數間距,是上四分位數QU與下四分位數QL之差,其間包含了全部觀察值的一半。

箱型圖依據實際數據繪制,沒有對數據作任何限制性要求(如服從某種特定的分布形式),它只是真實直觀地表現數據分布的本來面貌;另一方面,箱型圖判斷異常值的標準以四分位數和四分位距為基礎,四分位數具有一定的魯棒性:多達25%的數據可以變得任意遠而不會很大地擾動四分位數,所以異常值不能對這個標準施加影響。由此可見,箱型圖識別異常值的結果比較客觀,在識別異常值方面有一定的優越性,如圖3-1所示。

blank.gif

如下數據:

日期 2015/2/10 2015/2/11 2015/2/12 2015/2/13 2015/2/14

銷量額 2742.8 3014.3 865 3036.8

我們對其進行異常值分析

import pandas as pd

catering_sale = 'data2.xls' #餐飲數據

data = pd.read_excel(catering_sale, index_col = u'日期') #讀取數據,指定“日期”列為索引列

import matplotlib.pyplot as plt #導入圖像庫

plt.rcParams['font.sans-serif'] = ['SimHei'] #用來正常顯示中文標簽

plt.rcParams['axes.unicode_minus'] = False #用來正常顯示負號

plt.figure() #建立圖像

p = data.boxplot() #畫箱線圖,直接使用DataFrame的方法

x = p['fliers'][0].get_xdata() # 'flies'即為異常值的標簽

y = p['fliers'][0].get_ydata()

y.sort() #從小到大排序,該方法直接改變原對象

#用annotate添加注釋

#其中有些相近的點,注解會出現重疊,難以看清,需要一些技巧來控制。

#以下參數都是經過調試的,需要具體問題具體調試。

for i in range(len(x)):

if i>0:

plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.05 -0.8/(y[i]-y[i-1]),y[i]))

else:

plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.08,y[i]))

plt.show()

結果如下:

blank.gif

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對我們的支持。

時間: 2017-12-05

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396962.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396962.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396962.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MSSQL 發布訂閱,實現讀寫分離

主庫做增刪改,從庫只讀。 大部分的數據庫壓力,都是由查詢引起的,讀寫分離可以減輕數據庫的壓力。 1、在(主)數據庫上對需要同步的數據進行發布。 2、在(從)數據庫上對(主)數據庫的發布進行訂閱。 注:發布訂閱都需要實際的服務器名…

php get為空,php – $_GET在url有變量時為空

我有一個看起來像這個reglph的文件?lang no_NO& passkey test并試圖獲取密碼變量,但它一直顯示為空白.當我嘗試print_r($_ GET);它打印Array()?!怎么會發生這種情況?該網站看起來像這樣print_r($_GET);include(..\libs\Smarty.class.php);?>A…

Block

1、認識Block Block封裝了一段代碼,可以在任何時候執行Block可以作為函數參數或者函數的返回值,而其本身又可以帶輸入參數或返回值,它和傳統的函數指針很類似,但是有區別:block是inline(內聯函數)的&#x…

堅持學習WF(8):本地服務之調用外部方法

WF提供了一組核心服務,例如在SQL 數據庫中存儲工作流實例的執行詳細信息的持久性服務,計劃服務,事務服務和跟蹤服務。除了這些WF也提供了另外一種服務,叫做Local Service也可以叫做Data exchange service。主要是實現工作流和宿主…

c++歸并排序_合并排序法

一、合并排序(Merge Sort) 就是將多個有序數據表合并成一個有序數據表。如果參與合并的只有兩個有序表,那么稱為二路合并。對于一個原始的待排序序列,往往可以通過分割的方法來歸結為多路合并排序。二、一個待排序的原始數據序列進行合并排序的基本思路是…

golang json數組拼接

2016年06月16日 15:38:25 閱讀數:2575 標簽: golang json 數組 更多 個人分類: golang func main() {a : []byte({"Parents": [ "aaaaa", "bbbbbbb" ]})b : []byte({"Parents": [ "Gomez"…

php課程設計實驗心得,PHP程序設計教程實驗及課程設計

部分 教程1 基礎教程1.1 簡介1.2 WampServer安裝1.3 PHP語法1.4 變量1.5 echo和print語句1.6 數據類型1.7 字符串函數1.8 常量1.9 運算符1.10 條件語句1.11 Switch語句1.12 循環語句1.13 函數部分 教程1 基礎教程1.1 簡介1.2 WampServer安裝1.3 PHP語法1.4 變量1.5 echo和print…

DRUID連接池的簡單使用

DRUID——為監控而生的DB池 1. DRUID介紹 DRUID是阿里巴巴開源平臺上一個數據庫連接池實現,它結合了C3P0、DBCP、PROXOOL等DB池的優點,同時加入了日志監控,可以很好的監控DB池連接和SQL的執行情況,可以說是針對監控而生的DB連接池…

微習慣雖好,但是最重要的還是堅持

2019獨角獸企業重金招聘Python工程師標準>>> “微習慣”一詞是由美國的斯蒂芬蓋斯提出的。他以前是個宅男,懶蟲,為了改變自己而找到了這個方法。并且在自己身上實驗成功。養成了好的讀書、寫作和健身的習慣,實現了人生的華麗轉身。…

php手機端多圖預覽上傳,JS實現多圖預覽上傳的實例代碼

這篇文章主要介紹了JS實現多張圖片預覽同步上傳功能的相關資料,需要的朋友可以參考下廢話不多說了,直接給大家貼代碼了,具體代碼如下所示:/*** Created by liujing on 2017/5/10.*/$(document).ready(function($) {function changef(which,bu…

帶你了解zabbix整合ELK收集系統異常日志觸發告警~

今天來了解一下關于ELK的“L”-Logstash,沒錯,就是這個神奇小組件,我們都知道,它是ELK不可缺少的組件,完成了輸入(input),過濾(fileter),output(輸…

用python設計學生管理系統_Python實現GUI學生信息管理系統

本文實例為大家分享了Python實現GUI學生信息管理系統的具體代碼,供大家參考,具體內容如下 項目環境: 軟件環境: OS:RedHat6.3 Lib:Pygtk Language:Python Support tool:Glade3 項目簡述: ①Glade3設計用戶的登錄窗口,功…

http響應頭設置

protected void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 設置響應頭數據response.setHeader(null, "HTTP/1.1 200 OK");response.setHeader("Server", "Apache-Coyote/1.1"…

java用數組實現單詞計數,MapReduce實現單詞計數原理及Java編程:WordCount

MapReduce實現單詞計數:WordCount單詞計數的文本信息(hello.txt):hello can i help youi have a dreammaybe you can help me? 實現過程:? Map過程:并行讀取文本,對讀取的單詞進行Map操作,每個詞將會形成…

python理論知識選擇題_Python基礎自測題答案和基礎知識梳理

Python基礎自測題答案和基礎知識梳理 1.關于Python中的lambda表達式的函數體自能是單獨一條語句,所以答案選擇C。 例如:>>>g lambda x: 2*x1 g(3) 7 2.Python中的變量不需要事先聲明,但是需要創建和賦值,否則你怎么用&a…

STM32f4 ARM Bootloader

參考資料: 基于ARM 的嵌入式系統Bootloader 啟動流程分析 Bootloader 詳解 ( 代碼環境 | ARM 啟動流程 | uboot 工作流程 | 架構設計) Android系統啟動流程 -- bootloader 在main()之前,IAR都做了啥? STM32 IAP程序 源碼 和測試代碼 有詳細的…

查找算法之順序查找

參考: 1. 順序查找 | 博客園 基本思想: 順序查找,就是從第一個元素開始,按索引順序遍歷待查找序列,直到找出給定目標或者查找失敗。 特點: 1. 對待查序列(表)無要求 -- 待查找序列可…

matlab kfda,SVD與KFDA相結合人臉識別-matlab-畢業論文

XXXXxx畢業設計(論文)最高達到88%。當在抽取的特征維數為39,PCA空間的投影維數為110的情況下,隨著訓練樣本個數的增加,LDA的識別情況如表4所示表4 ORL人臉庫LDA測試結果(2)訓練樣本數 識別率/% 識別時間/S3 68.2 52.3594 87.92 31.5315 88.00…

python數據預測_python時間序列預測股票走勢

提示:這只是個訓練模型,技術不具備實際意義,入市需謹慎。 首先調用tushare包 import tushare as ts import pandas as pd import matplotlib.pyplot as plt 查自己比較感興趣的股票,這里我查找的是新能源/燃料電池/氫燃料&#xf…