本文简要介绍 python 语言中 scipy.stats.median_abs_deviation
的用法。
用法:
scipy.stats.median_abs_deviation(x, axis=0, center=<function median>, scale=1.0, nan_policy='propagate')#
计算沿给定轴的数据的中值绝对偏差。
中位数绝对偏差 (MAD, [1]) 计算中位数与中位数的绝对偏差。它是一种类似于标准偏差的离散度度量,但对异常值更稳健[2]。
空数组的 MAD 是
np.nan
。- x: array_like
可以转换为数组的输入数组或对象。
- axis: int 或无,可选
计算范围的轴。默认值为 0。如果没有,则计算整个数组的 MAD。
- center: 可调用的,可选的
将返回中心值的函数。默认是使用 np.median。使用的任何用户定义函数都需要具有函数签名
func(arr, axis)
。- scale: 标量或 str,可选
比例的数值将被从最终结果中除掉。默认值为 1.0。字符串 “normal” 也被接受,并导致规模是标准正态分位数函数 0.75 的倒数,约为 0.67449。类似数组的缩放也是允许的,只要它正确地广播到输出,这样
out / scale
是一个有效的操作。输出维度取决于输入数组,x, 和轴争论。- nan_policy: {‘propagate’, ‘raise’, ‘omit’},可选
定义当输入包含 nan 时如何处理。以下选项可用(默认为‘propagate’):
‘propagate’:返回 nan
‘raise’:引发错误
‘omit’:执行忽略 nan 值的计算
- mad: 标量或 ndarray
如果
axis=None
,则返回一个标量。如果输入包含精度小于np.float64
的整数或浮点数,则输出数据类型为np.float64
。否则,输出数据类型与输入数据类型相同。
参数 ::
返回 ::
注意:
中央参数仅影响计算 MAD 所围绕的中心值的计算。也就是传入
center=np.mean
将围绕平均值计算 MAD - 它不会计算意思是绝对偏差。输入数组可能包含 inf,但如果 center 返回 inf,则该数据对应的 MAD 将为 nan。
参考:
[1]“Median absolute deviation”,https://en.wikipedia.org/wiki/Median_absolute_deviation
[2]“强有力的规模测量”,https://en.wikipedia.org/wiki/Robust_measures_of_scale
例子:
将
median_abs_deviation
的行为与np.std
进行比较时,当我们将数组的单个值更改为具有离群值时,后者会受到影响,而 MAD 几乎没有变化:>>> import numpy as np >>> from scipy import stats >>> x = stats.norm.rvs(size=100, scale=1, random_state=123456) >>> x.std() 0.9973906394005013 >>> stats.median_abs_deviation(x) 0.82832610097857 >>> x[0] = 345.6 >>> x.std() 34.42304872314415 >>> stats.median_abs_deviation(x) 0.8323442311590675
轴处理示例:
>>> x = np.array([[10, 7, 4], [3, 2, 1]]) >>> x array([[10, 7, 4], [ 3, 2, 1]]) >>> stats.median_abs_deviation(x) array([3.5, 2.5, 1.5]) >>> stats.median_abs_deviation(x, axis=None) 2.0
缩放正常示例:
>>> x = stats.norm.rvs(size=1000000, scale=2, random_state=123456) >>> stats.median_abs_deviation(x) 1.3487398527041636 >>> stats.median_abs_deviation(x, scale='normal') 1.9996446978061115
相关用法
- Python SciPy stats.median_absolute_deviation用法及代码示例
- Python SciPy stats.median_test用法及代码示例
- Python SciPy stats.multiscale_graphcorr用法及代码示例
- Python SciPy stats.multivariate_normal用法及代码示例
- Python SciPy stats.multivariate_hypergeom用法及代码示例
- Python SciPy stats.mode用法及代码示例
- Python SciPy stats.monte_carlo_test用法及代码示例
- Python SciPy stats.multivariate_t用法及代码示例
- Python SciPy stats.matrix_normal用法及代码示例
- Python SciPy stats.mood用法及代码示例
- Python SciPy stats.moyal用法及代码示例
- Python SciPy stats.maxwell用法及代码示例
- Python SciPy stats.mvsdist用法及代码示例
- Python SciPy stats.moment用法及代码示例
- Python SciPy stats.multinomial用法及代码示例
- Python SciPy stats.mielke用法及代码示例
- Python SciPy stats.mannwhitneyu用法及代码示例
- Python SciPy stats.anderson用法及代码示例
- Python SciPy stats.iqr用法及代码示例
- Python SciPy stats.genpareto用法及代码示例
- Python SciPy stats.skewnorm用法及代码示例
- Python SciPy stats.cosine用法及代码示例
- Python SciPy stats.norminvgauss用法及代码示例
- Python SciPy stats.directional_stats用法及代码示例
- Python SciPy stats.invwishart用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.median_abs_deviation。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。