离群点(outlier)是指和其他观测点偏离非常大的数据点,离群点是异常的数据点,但是不一定是错误的数据点。确定离群点对于数据分析会带来不利的影响,比如,增大错误方差、影响预测和影响正态性。
从散点图上可以直观地看到离群点,离群点是孤立的一个数据点;从分布上来看,离群点远离数据集中其他数据点。
在数据处理过程中,检测离断点的方法,通常有Z-score 和 IQR。
一,Z-score方法
在介绍Z-score方法之前,先了解一下3∂原则,这个原则有个前提条件:数据需要服从正态分布。
在3∂原则下,如果观测值与平均值的差值超过3倍标准差,那么可以将其视为异常值。正负3∂的概率是99.7%,那么距离平均值3∂之外的值出现的概率为P(|x-u| > 3∂) <= 0.003,属于极个别的小概率事件。
如果数据不服从正态分布,那么可以用远离平均值的多少倍标准差来描述,倍数就是Z-score。Z-score以标准差为单位去度量某一原始分数偏离平均数的距离,它回答了一个问题:"一个给定分数距离平均数多少个标准差?",Z-score的公式是:
Z-score = (Observation — Mean)/Standard Deviation
z = (X — μ) / σ
Z-score需要根据经验和实际情况来决定,通常把远离标准差3倍距离以上的数据点视为离群点,也就是说,把Z-score大于3的数据点视作离群点,Python代码的实现如下