異常值分析是檢驗資料是否有錄入錯誤資料和不合常理的資料。不加剔除的把異常值代入資料分析過程中,會對結果產生不良影響,而對異常值的分析其原因,常常成為為發現問題的而改進決策的契機。
異常值是指樣本中的個別值,其數值明顯偏離其餘的資料。異常值通常也稱為離群點,所以異常值分析也叫做離群點分析。
異常值分析通常有以下幾種:
(1)簡單統計量分析
最常用的統計量是最大值和最小值,用來判斷這個變數的取值是否超出了合理的範圍。
(2)3σ原則
如果資料服從正態分佈,在3σ原則下,異常值被定義為一組測定值中與平均值的偏差超過3倍標準差的值。在正態分佈的假設下,距離平均值3σ之外的值出現的概率為,屬於極個別的小概率事件
(3)箱型圖分析
箱型圖提供了識別異常值的乙個標準:異常值通常被定義為小於或大於的值。q1 -1.5iqr稱為下四分位數,表示全部觀察值中有四分之一的資料取值比它下;q2 -1.5iqr稱為上四分位數,表示全部觀察值中有四分之一的資料取值比它大;iqr稱為四分位數間距,是上四分位數和下四分位數之差,期間包含了全部觀察值的一般。
如果資料記錄和屬性比較多,使用人工分辨的方法就不切實際,所以這裡需要編寫程式來檢測出含有缺失值的記錄和屬性以及缺失率個數和缺失率等
以下就是箱型圖利用 python進行生成分析一下:
#-- coding: utf-8 --
import pandas as pd
catering_sale = 『path』 #餐飲資料
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(return_type=『dict』) #畫箱線圖,直接使用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() #展示箱線圖
資料處理-利用 python進行異常值分析
另外提供的引數還有平均值、標準差、最小值、最大值等。
利用ArcGIS進行拓撲資料處理
道路中心線如果有多部分組成,例如是multilinestring的時候,由於資料採集處理的原因經常會造成,multilinestring的各個部分之間並不是完全能夠連線起來,這樣的話會對資料的後期分析處理造成一些影響,所以必須對資料進行處理,將一定範圍內分離的各部分連線起來,arcgis的拓撲分析的...
Python進行資料處理
coding utf 8 created on thu aug 17 17 15 14 2017 author cq 二元化 from sklearn.preprocessing import binarizer x 1,2,3,4,5 5,4,3,2,1 3,3,3,3,3 1,1,1,1,1 x...
Python 資料處理
將檔案切分,存入列表 strip split with open james.txt as jaf data jaf.readline james data.strip split 資料檔案為 2 34,3 21,2.34,2.45,3.01,2 01,2 01,3 10,2 22 print ja...