MAD 定义为,一元序列 Xi" role="presentation">XiXi 同其中位数偏差的绝对值的中位数(deviation,偏差本身有正有负);

MAD=median(|Xi−median(X)|)" role="presentation">MAD=median(|Xi−median(X)|)MAD=median(|Xi−median(X)|)

1. MAD 用于异常点的检测

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

P(|X−μ|≤MAD)=P(|X−μ|σ≤MADσ)=P(Z≤MADσ)=1/2" role="presentation">P(|X−μ|≤MAD)=P(|X−μ|σ≤MADσ)=P(Z≤MADσ)=1/2P(|X−μ|≤MAD)=P(|X−μ|σ≤MADσ)=P(Z≤MADσ)=1/2

其中 P(Z≤MADσ)=Φ(MADσ)−Φ(−MADσ)=1/2" role="presentation">P(Z≤MADσ)=Φ(MADσ)−Φ(−MADσ)=1/2P(Z≤MADσ)=Φ(MADσ)−Φ(−MADσ)=1/2,又由 Φ(−a)=1−Φ(a)" role="presentation">Φ(−a)=1−Φ(a)Φ(−a)=1−Φ(a),可 Φ(MAD/σ)=3/4" role="presentation">Φ(MAD/σ)=3/4Φ(MAD/σ)=3/4 ⇒ MAD/σ=Φ−1(3/4)" role="presentation">MAD/σ=Φ−1(3/4)MAD/σ=Φ−1(3/4),查表可知,MAD/σ" role="presentation">MAD/σMAD/σ=0.6749。

from scipy.stats import norm

def 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_dev
return mod_z_score > thresh

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

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

def percentile_based_outlier(data, threshold=95):
diff = (100 - threshold) / 2.0
minval, 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. Median absolute deviation | Singular Value Decomposition奇异值分解 | cumulative sums |

    Consider the data (1, 1, 2, 2, 4, 6, 9). It has a median value of 2. The absolute deviations about 2 ...

  2. kaggle信用卡欺诈看异常检测算法——无监督的方法包括: 基于统计的技术,如BACON *离群检测 多变量异常值检测 基于聚类的技术;监督方法: 神经网络 SVM 逻辑回归

    使用google翻译自:https://software.seek.intel.com/dealing-with-outliers 数据分析中的一项具有挑战性但非常重要的任务是处理异常值.我们通常将异 ...

  3. 异常值检测方法(Z-score,DBSCAN,孤立森林)

     机器学习_深度学习_入门经典(博主永久免费教学视频系列) https://study.163.com/course/courseMain.htm?courseId=1006390023&sh ...

  4. 【Udacity】异常值检测/删除

    Outlier Detection

  5. 异常值检测(Detecting Outliers)

    Most statistical approaches to outlier detection are based on building a probability distribution mo ...

  6. <数据挖掘导论>读书笔记2

    1.频率和众数 frequency(vi)=具有属性值vi的对象数/m 分类属性的众数mode是具有最高频率的值. 2.百分位数 3.位置度量:均值和中位数 4.散布度量:极差和方差 绝对平均偏差 A ...

  7. Abnormal Detection(异常检测)和 Supervised Learning(有监督训练)在异常检测上的应用初探

    1. 异常检测 VS 监督学习 0x1:异常检测算法和监督学习算法的对比 总结来讲: . 在异常检测中,异常点是少之又少,大部分是正常样本,异常只是相对小概率事件 . 异常点的特征表现非常不集中,即异 ...

  8. 时间序列异常检测算法S-H-ESD

    1. 基于统计的异常检测 Grubbs' Test Grubbs' Test为一种假设检验的方法,常被用来检验服从正太分布的单变量数据集(univariate data set)\(Y\) 中的单个异 ...

  9. python 数据可视化 -- 清理异常值

    中位数绝对偏差(Median Absolute Deviation, MAD)用来描述单变量(包含一个变量)样本在定量数据中可变性的一种标准.常用来度量统计分布,因为它会落在一组稳健的统计数据中,因此 ...

随机推荐

  1. 一、J2EE

    一.HTTP协议中的响应代码 响应代码从1xx--5xx一共有41中.常见的 404:表示访问的页面不存在.这表示一个浏览器的错误,就是服务端没有提供这个服务,你却去访问.这个锅要算在浏览器头上,而不 ...

  2. Hadoop---HDFS读写流程

    Hadoop---HDFS HDFS 性能详解 HDFS 天生是为大规模数据存储与计算服务的,而对大规模数据的处理目前还有没比较稳妥的解决方案. HDFS 将将要存储的大文件进行分割,分割到既定的存储 ...

  3. 九校模拟——餐馆(restaurant)

    1 餐馆(restaurant) 1.1 题目背景 铜企鹅是企鹅餐馆的老板,他正在计划如何使得自己本年度收益增加. 1.2 题目描述 共有n 种食材,一份食材i 需要花ti 小时不间断地进行播种,施肥 ...

  4. vue-router 路由钩子(hook)

    钩子(hook)—劫持机制 路由钩子(守卫钩子): 1.全局钩子2.某个路由独享的钩子3.组件内钩子 三种路由钩子中都涉及到了三个参数,官方(https://router.vuejs.org/zh-c ...

  5. 把旧系统迁移到.Net Core 2.0 日记 (15) --Session 改用Redis

    安装Microsoft.Extensions.Caching.Redis.Core NuGet中搜索Microsoft.Extensions.Caching.Redis.Core并安装,此NuGet包 ...

  6. npm run dev 报错 版本太低

    解决方案是: 先用命令: npm -v 查看下你的版本(我原来是 V3.1 不行) 然后用 cnpm install -g npm  更新版本 npm - v 变成最新的4.0.4 npm run d ...

  7. 关于datetimepicker只显示年、月、日的设置

    如下是只显示月的sample code: <link rel="stylesheet" href="css/datetimepicker/bootstrap-dat ...

  8. Spring boot返回JSON类型响应及Content-Type设置

    一.背景 服务器软件用Spring boot开发,API调用的响应消息格式为JSON. 对端调用接口后无法解析响应. 抓包看Response的Body部分确实是正确的JSON格式字符串. 二.问题分析 ...

  9. learning ddr pagesize calculate

    example: if DDR is 512MB*16*8 COLBITS = 10,  A0-A9 be used for cloumn address. ORG = 16 ,  each bank ...

  10. redis:集群配置

    一.redis集群相关 1.概念:redis集群是通过数据分区提供可用性的,这样即使一部分节点失效也可以继续处理请求. 2.原理:集群使用数据分片实现,一个redis集群包括16384个哈希槽,数据库 ...