MAD 定义为,一元序列 XiXiX_i 同其中位数偏差的绝对值的中位数(deviation,偏差本身有正有负);

MAD=median(|Xi−median(X)|)MAD=median(|Xi−median(X)|)

\text{MAD=median}\left(|X_i-\text{median(X)}|\right)

1. MAD 用于异常点的检测

假定数据服从正态分布,我们让异常点(outliers)落在两侧的 50% 的面积里,让正常值落在中间的 50% 的区域里:

P(|X−μ|≤MAD)=P(|X−μ|σ≤MADσ)=P(Z≤MADσ)=1/2P(|X−μ|≤MAD)=P(|X−μ|σ≤MADσ)=P(Z≤MADσ)=1/2

P(|X-\mu|\leq MAD)=P(\frac{|X-\mu|}{\sigma}\leq \frac{MAD}{\sigma})=P(Z\leq \frac{MAD}{\sigma})=1/2

其中 P(Z≤MADσ)=Φ(MADσ)−Φ(−MADσ)=1/2P(Z≤MADσ)=Φ(MADσ)−Φ(−MADσ)=1/2P(Z\leq \frac{MAD}{\sigma})=\Phi(\frac{MAD}{\sigma})-\Phi(-\frac{MAD}{\sigma})=1/2,又由 Φ(−a)=1−Φ(a)Φ(−a)=1−Φ(a)\Phi(-a)=1-\Phi(a),可 Φ(MAD/σ)=3/4Φ(MAD/σ)=3/4\Phi(MAD/\sigma)=3/4 ⇒ MAD/σ=Φ−1(3/4)MAD/σ=Φ−1(3/4)MAD/\sigma=\Phi^{-1}(3/4),查表可知,MAD/σMAD/σMAD/\sigma=0.6749。

from scipy.stats import normdef mad_based_outlier(points, thresh=3.5):if type(points) is list:points = np.asarray(points)if len(points.shape) == 1:points = points[:, None]med = np.median(points, axis=0)abs_dev = np.absolute(points - med)med_abs_dev = np.median(abs_dev)mod_z_score = norm.ppf(0.75) * abs_dev / med_abs_devreturn mod_z_score > thresh

2. MAD 与基于分位数方法的对比

MAD 的方法相对于分位数方法的一大优势即在于 MAD 方法对样本大小是不敏感也即是稳定的鲁棒的一种评价指标。

def percentile_based_outlier(data, threshold=95):diff = (100 - threshold) / 2.0minval, maxval = np.percentile(data, [diff, 100 - diff])return (data < minval) | (data > maxval)

Pythonic way of detecting outliers in one dimensional observation data

异常值检测 —— MAD(median absolute deviation)相关推荐

  1. 机器学习数据预处理之离群值/异常值:MAD法(绝对值差中位数法)+绝对中位差(Median Absolute Deviation,MAD)

    机器学习数据预处理之离群值/异常值:MAD法(绝对值差中位数法)+绝对中位差(Median Absolute Deviation,MAD) garbage in,garbage out. 异常值是分析 ...

  2. Python 详解计算 Median Absolute Deviation(绝对中位偏差)| 还可用于异常值检测

    CSDN 叶庭云:https://yetingyun.blog.csdn.net/ In statistics, the median absolute deviation (MAD) is a me ...

  3. Median Absolute Deviation(MAD,绝对中位差)和3sigma准则剔除粗差方法对比(代码)

    根据文献: Klos A, Bogusz J, Figurski M, Kosek W (2016) On the handling of outliers in the GNSS time seri ...

  4. 绝对中位差( Median Absolute Deviation,MAD)算法

    绝对中位差( MedianAbsolute Deviation,MAD) 是一种采用计算各观测值与平均值的距离总和的检测离群值的方法. 本文中主要用来剔除获取到的图像坐标中的离群点. 算法步骤: #离 ...

  5. r语言中检测异常值_R中的异常值检测

    r语言中检测异常值 介绍 (Introduction) An outlier is a value or an observation that is distant from other obser ...

  6. 离群点、异常点检测及Python实现(正态分布3∂,Z-score 异常值检测,基于MAD的Z-score 异常值检测,杠杆值点、DFFITS值、SR学生化残差、cook距离和covratio值)

    有一些准则可以检测离群点,如:正态分布3∂,Z-score 异常值检测,基于MAD的Z-score 异常值检测 以上部分详情与代码请参考:https://blog.csdn.net/weixin_35 ...

  7. 机器学习 异常值检测_异常值是否会破坏您的机器学习预测? 寻找最佳解决方案

    机器学习 异常值检测 内部AI (Inside AI) In the world of data, we all love Gaussian distribution (also known as a ...

  8. python异常值检测

    Anomaly Detection异常检测 What are Outliers ? Statistical Methods for Univariate Data Using Gaussian Mix ...

  9. 异常值检测常用算法及案例

    异常值检测常用方法 对历史数据进行异常值检测,对突发情况或者异常情况进行识别,避免因为异常值导致预测性能降低,并对其进行调整便于后续预测. 一.3-sigma原则异常值检测 3-Sigma原则又称为拉 ...

最新文章

  1. 微信小程序showModel使用注意
  2. Android之设置ListView数据显示的动画效果
  3. 使用Convirt 2.0.1管理虚拟机环境
  4. PAT 乙级 1027. 打印沙漏(20) Java版
  5. 用户列表 html,用户列表.html
  6. 创业公司必备,20个提升团队工作效率的工具神器
  7. excel颠倒顺序从下到上排列的两种方法
  8. Win10搭建(FTP、LLS)
  9. 如何在Windows 10中扫描文档
  10. Kattis Problem-Unique Snowflakes
  11. 《Laravel-汉字转拼音》
  12. Java线程池(超详细)
  13. Python趋势自动化描述最终(最新)
  14. 【JVM高级特性与最佳实践(第3版)-周志明】-学习记录之【自动内存管理】
  15. 如何选择IT人才外包服务商?
  16. 英首相:比起无协议脱欧 国会阻挠脱欧可能性更高
  17. Vllos笔记-Java基础
  18. HC-05 蓝牙 2.0 串口模块
  19. hscode 查询,hscode 查询api 支持
  20. 在windows7下安装vs2017插件 GLSL language integration v0.10.120.vsix报错:microsoft.visualc.redist.12

热门文章

  1. 认识HTML5的WebSocket 1
  2. 利用Adobe AIR本地扩展支持Android开发
  3. 青岛职业技术学院计算机专业宿舍,青岛职业技术学院宿舍条件,宿舍图片和环境空调及分配方法...
  4. android 小米截图,小米工程师晒基于Android Q定制的MIUI截图
  5. ssh - 安全外壳协议的详解,为什么使用它
  6. 新网邮箱手机服务器,使用qq邮箱进行服务器邮件代发
  7. explain如何查看mysql_MySql中如何使用 explain 查询 SQL 的执行计划
  8. svn提示没有设置冲突_svn代码冲突,不能提交的解决方法
  9. 文件被损坏 java_使用PDF.JS实现pdf文件在线预览时,报文件被损坏的错误
  10. python读取表格画散点图_python学习笔记-绘制散点图