最小协方差行列式(Minimum Covariance Determinant)的原理及代码
本文是引用《多元数据离群点探测的倾斜重加权方法》 ,作者为张若璇和田茂再。
前言
多元数据集存在偏离正常范围的“离群点”。一般在预处理数据环节,需检测出离群点,再进行处理。
离群点产生的原因可能是由数据中存在某些点来自于与总体分布不同的其它分布。具体而言,假设多元数据集大多数样本服从分布F,少量样本服从分布G;则将少量样本定义为离群点。
一般采用马氏距离来检验某个样本是否为离群点。在计算距离过程中需要提供均值估计量和协方差估计量,这两个参数容易被离群值影响而发生偏离,导致马氏距离计算不准确,最终影响离散点的判断。
一、利用马氏距离探测离群点的原理
多元数据集为n行p列x = (x1, x2, … , xn), 均值为μ,协方差矩阵为Σ。
在实际情况下,一组样本其均值和协方差矩阵的真实值未知。因此,均值估计量的公式为:
协方差估计量的公式为:
附上协方差的意义和计算公式,见链接:https://www.cnblogs.com/ywl925/p/3210822.html
每个样本与中心之间的马氏距离公式为:
一般地,如果马氏距离大于某个临界值,则该点视为离群点。
二、最小协方差行列式的由来
由于直接计算均值和协方差两个估计量易受离群值影响而发生偏移,马氏距离计算不准确,进而对离群值的判断出现失误。为了获取更加稳健的估计量,最小协方差行列式(Mininum Covariance Determinant,简称为MCD)被提出,提高了离群点探测的准确度。
三、最小协方差行列式探测离群点的原理
利用最小协方差行列式计算可以获取更稳健的均值和协方差估计量,再根据马氏距离计算,可以更精准地探测离群点。
MCD方法的思想:
找到一个样本量为h的子集:
使得在所有大小为h的子集中,该子集的协方差矩阵的行列式是最小的。
根据MCD计算均值估计量的公式:
根据MCD计算协方差估计量的公式:
其中,
是一个比例常数,保证了协方差估计量的一致性和无偏性。在有限样本情况下,一般计算如下:
另外,
是小样本情形下的纠偏系数;在离群点的探测中,为了得到尽可能高的崩溃点,常取
获取均值和协方差估计量后,每个样本与中心之间的马氏距离公式为:
使用MCD,我们一般使用Rowsseeuw和Van Driessen的FAST-MCD算法。
这里是引用《A Fast Algorithm for the Minimum Covariance Determinant Estimator》,作者为Rowsseeuw和Van Driessen
四、最小协方差行列式探测离群点的代码
代码见链接:
https://pyod.readthedocs.io/en/latest/_modules/pyod/models/mcd.html
总结
由于直接计算多元数据集的均值估计量和协方差估计量容易被离群值影响而发生偏离,导致马氏距离计算不准确,进而影响离群值的判断;因此利用最小协方差行列式获取更为稳健的估计量,计算马氏距离更准确,进而达到更有效地探测离群点的目的。