系列文章目录
Python异常检测- Isolation Forest(孤立森林)
python异常检测 - 随机离群选择Stochastic Outlier Selection (SOS)
python异常检测-局部异常因子(LOF)算法
Python异常检测- DBSCAN
Python异常检测- 单类支持向量机(One-Class SVM)
前言
3Sigma原理,又称为拉依达准则或三西格玛准则,是统计学中的一个重要概念,尤其在质量控制和数据分析中应用广泛。
一、 3Sigma基本原理
3Sigma是指基于正态分布的特性,在一组正态分布或近似正态分布的数据中,约有99.73%的数据值会落在平均值加减三个标准差的范围内。如果一个数据的值大于平均值加上3倍标准差或者小于平均值减去3倍标准差,那么这个数据就可以被认为是异常值,3sigma准则实际就是将超过3sigma的数据视为异常点。
正态分布具有两个关键参数,均值(μ)和标准差(σ):
-
均值(μ):均值,又称平均数,它反映了一组数据的集中趋势
-
-
标准差(σ):标准差是衡量数据变化程度的指标,他反映了数据的离散程度,计算公式如下:
二、3Sigma实现步骤
3Sigma原则是一种常用的识别异常值的方法,具体操作步骤如下:
(1)计算数据的均值和标准差;
(2)计算数据与均值的差值大小,
(3)如果差值大于3倍的标准差,则可认为该数据点是异常值;基于计算的结果将数据标记为异常点。
该方法的优点是简单易行,但是它假设数据服从正态分布,如果数据不服从正态分布,则该方法可能会误判正常数据为异常值。
三、3Sigma优缺点
- 3Sigma原则的优点
- 简单易懂:3Sigma原则基于标准差的观念,提供了一个直观且易于理解的判断标准。通过计算数据的平均值和标准差,并与3σ进行比较,可以快速判断数据是否处于正常范围内。
- 科学性和客观性:由于3Sigma原则基于统计学原理,其判断具有一定的科学性和客观性。它依赖于数据的统计特性,而不是主观的、经验性的判断。
- 有效检测异常值:根据正态分布的特性,大约有99.73%的数据落在u±3σ范围内。因此,当一个数据点落在这一范围之外时,可以初步判断为异常值。
- 3Sigma原则的缺点
- 对样本量的依赖:3Sigma原则的有效性依赖于样本量的大小。当样本量较小时,使用3σ原则进行异常值检测可能不够可靠。因为小样本数据可能无法准确反映总体的分布特性。
- 对非正态分布数据的限制:3σ原则主要适用于具有正态分布或近似正态分布特性的数据。对于非正态分布的数据,3Sigma原则可能无法有效检测异常值,甚至可能出现误判。
四、python实现
import pandas as pd
import numpy as np
# 定义3Sigma法则识别异常值函数
def three_sigma(Ser1):
'''
Ser1:表示传入DataFrame的某一列。
'''
rule = (Ser1.mean()-3*Ser1.std()>Ser1) | (Ser1.mean()+3*Ser1.std()< Ser1)
index = np.arange(Ser1.shape[0])[rule]
outrange = Ser1.iloc[index]
return outrange
# 导入csv文件数据并读取一列数据后调用three_sigma
df = pd.read_csv('./data.csv',encoding= 'gbk')
three_sigma(df['counts']).head()
参考资料
统计学必知!「标准差&方差」之间不得不说的关系
[数学基础–均值、方差、标准差、协方差]
图像处理知识点5:基于3sigma的阈值分割(异常值判断)
【数据挖掘】3σ原则识别数据中的异常值(附代码)
异常值检测算法–3sigma模型和置信空间