异常值检验

还是碰到了异常值处理的问题,然后这里还是写篇blogs汇总一些相关的算法,我尽量全面一些吧, ### 1. 基于统计的方法

(1)修正Z-Score法

  • 适用场景:单变量数据,数据分布轻微偏离正态或存在少量异常值干扰时。
  • 使用方法
    1. 计算数据的中位数(Median)和MAD(Median Absolute Deviation)。
    2. 使用修正Z-Score公式:$ = $ 。
    3. 设定阈值(如 |修正Z| > 3),超出视为异常值。
  • 本质:用中位数和MAD替代均值和标准差,减少异常值对统计量的影响。
  • 局限性:仅适用于单变量,对极端偏态分布可能不敏感。
  • 优势:比传统Z-Score更稳健,适合处理有污染的数据。

(2)Grubbs检验

  • 适用场景:严格正态分布的单变量数据,需检测单个异常值。
  • 使用方法
    1. 假设数据服从正态分布,计算最大值或最小值的Grubbs统计量。
    2. 对比临界值表(依赖样本量和显著性水平α),判断是否拒绝原假设(无异常值)。
  • 本质:通过假设检验识别单个异常值。
  • 局限性:需严格正态性假设,且只能逐个检测。
  • 优势:统计学意义明确,适合科研场景。

2. 基于分位数的方法

(1)IQR法(箱线图法)

  • 适用场景:任意分布的单变量数据,尤其是偏态分布。
  • 使用方法
    1. 计算Q1(25%分位数)、Q3(75%分位数)及IQR = Q3 - Q1。
    2. 设定异常值范围:$ = Q1 - 1.5 , = Q3 + 1.5 $。
  • 本质:通过分位数定义数据的“正常范围”,对尾部数据敏感度低。
  • 局限性:可能遗漏多变量组合异常,阈值固定(1.5倍IQR)。
  • 优势:简单高效,无需分布假设。

(2)百分位数截断法

  • 适用场景:经验分布未知,需快速截断极端值(如金融风控)。
  • 使用方法:直接去除前α%和后β%的数据(如α=1%, β=1%)。
  • 本质:基于经验分位数硬截断,依赖领域知识设定阈值。
  • 局限性:可能误删正常数据,阈值选择主观。
  • 优势:快速直接,适用于高噪声场景。基本上就等于瞎用。

3. 基于距离的方法

(1)马氏距离(Mahalanobis Distance)

  • 适用场景:多变量数据,变量间存在相关性(如身高体重组合异常)。
  • 使用方法
    1. 计算数据协方差矩阵Σ及其逆矩阵。
    2. 计算每个样本的马氏距离:$ D = $ 。
    3. 基于χ²分布设定阈值(如置信度95%)。
  • 本质:考虑变量相关性的广义距离,识别多维空间中的离群点。
  • 局限性:依赖协方差矩阵估计,对高维数据不稳定(需样本量>维度)。
  • 优势:全面捕捉多变量异常。

(2)K近邻(K-NN)距离法

  • 适用场景:非结构化数据或局部异常检测(如图像、文本)。
  • 使用方法
    1. 计算每个点到其K个最近邻的平均距离。
    2. 距离超过阈值的点视为异常。
  • 本质:通过局部密度差异识别异常,稀疏区域的点更可能异常。
  • 局限性:计算复杂度高,需选择K值。
  • 优势:无需分布假设,适合复杂数据结构。

4. 基于密度的方法

(1)局部离群因子(LOF)

  • 适用场景:多变量数据,检测局部密度异常的样本(如密集区域中的稀疏点)。
  • 使用方法
    1. 计算每个点的局部密度(K邻域内点的密度)。
    2. LOF值 = 该点密度与邻居密度的平均比值,LOF ≫1 则为异常。
  • 本质:通过相对密度判断异常,解决全局方法在局部区域的盲区。
  • 局限性:计算复杂度高,对K值敏感。
  • 优势:能识别“局部”异常,适合非均匀分布数据。

5. 机器学习方法

(1)孤立森林(Isolation Forest)

  • 适用场景:高维数据、非结构化数据(如日志、时间序列)。
  • 使用方法
    1. 构建多棵随机树,通过随机分割特征空间隔离样本。
    2. 异常值因路径较短被快速隔离,计算异常分数。
  • 本质:异常值在特征空间中更易被“孤立”。
  • 局限性:对局部异常可能不敏感,需调参(树的数量、深度)。
  • 优势:线性时间复杂度,适合大规模数据。

(2)DBSCAN聚类

  • 适用场景:基于密度的聚类,自动识别噪声点作为异常值。
  • 使用方法
    1. 设定邻域半径ε和最小样本数min_samples。
    2. 无法形成核心簇的点标记为噪声(异常值)。
  • 本质:将低密度区域点视为异常。
  • 局限性:对ε和min_samples敏感,高维数据效果差。
  • 优势:无需预设异常值比例,适合未知分布数据。

总结:注意事项与方法选择

注意事项

  1. 避免盲目删除:异常值可能是关键信号(如欺诈、设备故障),需结合业务判断。
  2. 多变量协同分析:单变量方法可能遗漏组合异常(如身高正常但体重极低)。
  3. 动态调整阈值:流数据或分布漂移时,需滚动更新统计量(如移动窗口IQR)。
  4. 可视化验证:箱线图、散点图矩阵、t-SNE降维图辅助决策。

方法选择指南

场景特征 推荐方法
单变量、近似正态分布 修正Z-Score、3σ原则
单变量、偏态分布 IQR法、百分位数截断
多变量、变量相关 马氏距离、LOF
高维数据、计算效率要求高 孤立森林
局部异常检测 LOF、K-NN距离
无分布假设、自动化需求 DBSCAN、百分位数截断

核心原则

  • 简单优先:单变量数据优先用IQR或Z-Score。
  • 领域适配:金融风控用百分位数截断,工业检测用LOF或孤立森林。
  • 交叉验证:结合统计检验(如正态性检验)和业务反馈优化阈值。
  • 简单场景:IQR(稳健)、Z-Score(正态分布)。
  • 复杂场景:LOF(局部异常)、孤立森林(高维数据)。
  • 领域结合:根据业务背景选择方法(如百分位数截断用于金融风控)。
  • 交叉验证:结合统计检验(如正态性检验)和领域知识优化策略。

当然,具体应用的话还是要看你的这个题目是第几题,时间多少,能拿多少时间来做这个东西。


异常值检验
http://example.com/2025/05/01/数学建模/数据处理/2025-05-01-异常值处理/
作者
ZHW
发布于
2025年5月1日
许可协议