如何篩選異常值並處理它們?


簡介

在資料集中,與大部分其他資料點脫穎而出的資料點被稱為異常值。它們會扭曲統計測量結果,並掩蓋資料中潛在的趨勢,從而對資料分析、建模和視覺化產生不利影響。因此,在開始任何研究之前,識別和處理異常值至關重要。

在這篇文章中,我們將探討處理異常值的各種方法,以及如何檢查它們。

異常值篩選

為了處理異常值,我們必須首先識別它們。以下是識別異常值的一些常用技術:

1. 視覺檢查

使用圖表和繪圖(例如箱線圖、散點圖和直方圖)視覺化資料是查詢異常值的一種方法。與大多數其他資料點有很大不同的資料點稱為異常值。透過分析圖表,我們可以確定異常值是真實的還是由錯誤或損壞的資料導致的。

2. Z 分數

Z 分數是一個統計量,它計算資料點偏離均值的標準差數量。透過計算每個資料點的 Z 分數,我們可以找到與大多數其他資料點有很大不同的資料點。Z 分數為 3 或更大的資料點通常被視為異常值。

3. 四分位距 (IQR)

四分位距是指資料第 25 個百分位數 (Q1) 和第 75 個百分位數 (Q3) 之間的區間。透過計算 IQR 並將其乘以 1.5 的係數,我們可以找到與大多數其他資料點有很大不同的資料點。任何低於 Q1 1.5 倍或高於 Q3 1.5 倍 IQR 的資料點通常被視為異常值。

處理異常值

在找到異常值後,我們需要確定如何處理它們。以下是處理異常值的一些常用方法:

1. 移除

從資料集中刪除異常值是處理異常值最簡單的方法。但是,此方法應謹慎使用,因為刪除太多異常值可能會對資料集的統計測量產生重大負面影響,並掩蓋關鍵趨勢。在這樣做時,記錄過程和刪除異常值的理由至關重要。

2. 轉換

使用數學函式(如對數、指數或冪函式)轉換資料是處理異常值的另一種方法。透過這種方法,資料集統計量的極值的影響將減小,並且更容易發現模式。

3. 插補

插補是指用估計值替換缺失或異常資料。可以使用多種方法進行資料插補,包括均值插補、中位數插補和迴歸插補。此方法應謹慎使用,因為它可能會在資料集中引入偏差並影響研究的準確性。

4. 分割

資料集分割是指根據不同的特徵或屬性將其分解成較小的組。透過分割資料,我們可以獨立地研究每個組並找到每個組特有的模式。當處理有效但反映資料不同部分的異常值時,此方法可能很有用。

示例

import pandas as pd
import numpy as np
from scipy import stats

# Create a sample dataset
data = pd.DataFrame({'value': [10, 9, 8, 7, 6, 555, 999, 5, 6]})

# Calculate z-scores for each value in the dataset
z_scores = np.abs(stats.zscore(data))

# Identify outliers as any value with a z-score greater than 3
outliers = data[z_scores > 3]

# Replace outliers with the median value of the dataset
data[z_scores > 3] = data['value'].median()

# Print the updated dataset without outliers
print(data)

輸出

  value
0     10
1      9
2      8
3      7
4      6
5    555
6    999
7      5
8      6

解釋

  • 使用名為 value 的一列和 10 個值(包括一個值為 100 的異常值)生成一個示例資料集。

  • 使用 stats.zscore 函式(來自 SciPy 包)確定資料集中每個值的 Z 分數。資料點的 Z 分數表示它與均值的標準差數量。

  • 使用 print 函式列印新的資料集,其中不包含異常值。

  • 由於我們只關心與均值的偏差大小,而不是其方向,因此使用 np.abs 函式獲取每個 Z 分數的絕對值。

  • 使用條件 z 分數 > 3 來識別任何 Z 分數大於 3 的值為異常值。

  • 使用 value 的中位數函式將異常值替換為資料集的中位數。

程式碼使用 Z 分數方法找到並從資料集中刪除了異常值。已識別的異常值被替換為資料集的中位數。當樣本量很大或資料呈正態分佈時,此方法可能很有用。

需要注意的是,處理異常值還有其他方法,本例中使用的方法僅是一種方法。其他常見方法包括修剪、Winsorizing 和使用對異常值具有魯棒性的機器學習演算法。最佳方法將取決於資料集的特定特徵和研究的目標。

結論

總之,異常值會對資料分析、建模和視覺化產生負面影響,因此在開始任何研究之前識別和處理它們至關重要。透過使用視覺檢查、Z 分數和 IQR 檢查異常值,然後使用移除、轉換、插補或分割處理它們,我們可以確保我們的分析是準確和有見地的。但是,務必謹慎使用這些方法並記錄該過程。

更新於: 2023 年 3 月 10 日

134 次瀏覽

啟動你的 職業生涯

透過完成課程獲得認證

開始
廣告