如何筛选并处理异常值
介绍
在数据集中,与其他数据点明显不同的数据点被称为异常值。它们可能会扭曲统计测量结果,掩盖数据中的潜在趋势,对数据分析、建模和可视化产生不利影响。因此,在开始任何研究之前,识别和处理异常值至关重要。
在本文中,我们将介绍处理异常值的不同方法以及如何检查异常值。
筛选异常值
为了处理异常值,首先我们需要识别它们。以下是几种常用的异常值识别技术:
1.可视化检查
使用图形和图表(如箱线图、散点图和直方图)对数据进行可视化是一种找出异常值的方法。与其他大部分数据点明显不同的数据点被称为异常值。通过分析图表,我们可以确定异常值是真实存在还是错误或损坏数据的结果。
2.Z分数
一种统计指标称为Z分数,它计算数据点与均值的标准差之间的偏差数。通过计算每个数据点的Z分数,我们可以找出与其他大部分数据点明显不同的数据点。Z分数小于等于3通常被视为异常值。
3.四分位距
数据的25%分位数(Q1)与75%分位数(Q3)之间的间距被称为四分位距。通过计算四分位距并乘以1.5的倍数,我们可以找出与其他大部分数据点明显不同的数据点。任何低于Q1的1.5倍四分位距或高于Q3的1.5倍四分位距的数据点通常被视为异常值。
处理异常值
找到异常值后,我们需要确定如何处理它们。以下是几种常用的异常值处理方法:
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的异常值,生成一个样本数据集。
-
统计数据用于确定数据集中每个值的z-score。从SciPy包中使用Z得分函数。一个数据点的Z得分表示它距离平均值有多少个标准差。
-
使用print函数,打印出不包含异常值的新数据集。
-
鉴于我们只关心离平均值的偏离程度而不关心其方向,使用np.abs函数获取每个z-绝对得分的值。
-
标准z得分>3的标准用于将具有z得分大于3的任何值标识为异常值。
-
使用value的中位数函数,用数据集的中位数值替换异常值。
该代码利用z得分方法定位并消除数据集中的异常值。使用数据集的中位数值来替换识别出的异常值。当样本量较大或数据呈正态分布时,这种策略可能会有帮助。
需要记住的是,处理异常值还有其他方法,而这个示例中使用的只是其中之一。修剪、Winsorizing和使用对异常值具有抵抗力的机器学习算法是更常见的技术。最佳方法将取决于数据集的特性和研究目标。
结论
总之,异常值可能会对数据分析、建模和可视化产生负面影响,因此在开始任何研究之前,发现并处理它们是至关重要的。通过使用视觉检查、z得分和IQR来检查异常值,然后使用去除、转换、插补或分割来处理异常值,我们可以确保我们的分析准确且富有洞察力。然而,重要的是要谨慎使用这些方法并记录过程。