quartz/content/math/statistic/anomaly_detection/IQR.md
2024-10-10 10:39:11 +08:00

54 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Interquartile Range
tags:
- math
- statistics
- anomaly
date: 2024-10-08
---
# What is IQR
**Interquartile Range**, IQR, 即四分位距。
基于IQR进行anomaly detection常用于检测非正太分布数据中的异常值它通过数据的四分位数Q1和Q3来识别和去除异常值较[Z-score](math/statistic/anomaly_detection/z_score.md)方法更适合处理有偏或非正态分布的数据。
- **第一四分位数Q1**下四分位数表示数据中最小25%的点所在位置。
- **第三四分位数Q3**上四分位数表示数据中最大25%的点所在位置。
- **四分位距IQR**是Q3与Q1之间的差值计算公式为
$$
IQR = Q3 - Q1
$$
# Algorithm Detail
1. **排序数据**
- 将数据从小到大排序。
2. **计算四分位数**
- **Q1**找到排序后数据中第25%的位置。
- **Q3**找到排序后数据中第75%的位置。
3. **计算四分位距**
- IQR = Q3 - Q1表示数据中间部分的扩展范围。
4. **设定上下限**
- 定义**下限**和**上限**,用于判断异常值。
- **下限** = Q1 - 1.5 × IQR
- **上限** = Q3 + 1.5 × IQR
- 1.5倍IQR是一个常用的经验值可以调整为其他倍数如2倍或3倍取决于具体应用场景。
5. **检测异常值**
- 任何小于下限或大于上限的数据点被认为是异常值。
# Pros and Cons
### 优点:
- **不依赖数据分布**IQR算法不需要假设数据为正态分布适合处理有偏分布或非对称分布的数据。
- **对极端值不敏感**与Z-score不同IQR不受极端值的影响因为它依赖于中位数和四分位数而非均值和标准差。
### 缺点:
- **对大规模数据集处理效率较低**在大型数据集中计算四分位数和IQR可能会比较耗时。
- **对数据边界的敏感性**虽然IQR能有效识别极端的异常值但对于靠近上下界的边缘数据可能会过度标记为异常。