推荐书: Python开发最佳实践

多变量离群值的处理

微博@mlln-cn, 并附上文章url链接, 我就能回答你的问题奥!

本篇文章介绍了如何使用马氏距离Mahalanobis Distance来判断离群值, 并介绍了SPSS的操作方法以及对离群值的处理方法。

定义

多变量离群值与单变量离群值有很大的差别, 因为多变量要考虑多个变量的联合分布, 比如说, 体重和身高是两个变量, 身高120cm的人不多但是也不算离群值, 体重120KG的人不多, 但也不算离群值, 但是有个人是身高120cm体重120KG, 这种人就很可能是离群值了, 所以在这种联合分布的情况下, 我们怎么判断一个值是否是离群值呢?

步骤

排除多变量离群值的步骤分两步:

  • 先排除每个单变量的离群值
  • 再根据马氏距离(Mahalanobis Distance)排除离群值

单个变量的离群值在之前的视频里讲过了, 现在就是要讲一下如何根据马氏距离拍排除离群值

计算马氏距离Mahalanobis Distance

马氏距离就是两点间的空间距离, 如果是两个变量, 那就是二维平面内的两点距离, 它与欧氏距离不同的是, 欧式距离假设维度之间是无关的, 也就是直角坐标系, 但是马氏距离不需要假定维度之间无关。

在SPSS计算的马氏距离就是每个数据点离均值所在的数据点之间的距离, 如果马氏距离的显著性达到0.001, 那么我们将其判定为离群值

SPSS操作

打开”回归”对话框, 如图

这里注意, 我们的因变量可以是任意变量, 这不重要, 因为计算马氏距离实际上是用自变量, 而跟因变量无关

在”保存”对话框下, 勾选”马氏距离”

这样, 点击”确定”以后,我们就可以看到数据中多了一个变量”MAH_1”, 这就是我们得到的每个数据点到均值点的马氏距离, 但是我们如何判断哪个数据是离群值呢? 我们需要根据马氏距离计算P值, p值低于0.001, 我们就认为这是个离群值

打开”计算变量”对话框

p值的计算公式就是1-CDF.CHISQ(MAH_1,2), 注意2代表自由度是2, 也就是我们使用了2个自变量, 这里如果你用到了3个自变量就得写3

上面的公式计算以后, 就可以得到p值

为了更精确的看到p值, 我们设置pvalue的小数位数是4

在数据界面对pvalue进行升序排序, 这样我们就可以将最小p值的找出来, 显然没有找到pvalue小于0.001的数据, 因此没有找到利群数据

参考文献

视频教程

注意
本文由jupyter notebook转换而来, 您可以在这里下载notebook
有问题可以直接在下方留言
或者给我发邮件675495787[at]qq.com
请记住我的网址: mlln.cn 或者 jupyter.cn

赞助

持续创造有价值的内容, 我需要你的帮助