--- 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能有效识别极端的异常值,但对于靠近上下界的边缘数据,可能会过度标记为异常。