当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy stats.median_absolute_deviation用法及代码示例


本文简要介绍 python 语言中 scipy.stats.median_absolute_deviation 的用法。

用法:

scipy.stats.median_absolute_deviation(*args, **kwds)

median_absolute_deviation 已弃用,请使用 median_abs_deviation 代替!

要保留现有的默认行为,请使用 scipy.stats.median_abs_deviation(..., scale=1/1.4826)。对于正态分布的缩放,值 1.4826 在数值上并不精确。对于数字精确值,请使用 scipy.stats.median_abs_deviation(..., scale='normal')。

计算沿给定轴的数据的中值绝对偏差。

中位数绝对偏差 (MAD, [1]) 计算中位数与中位数的绝对偏差。它是一种类似于标准偏差的离散度度量,但对异常值更稳健[2]。

空数组的 MAD 是 np.nan

参数

x array_like

可以转换为数组的输入数组或对象。

axis int 或无,可选

计算范围的轴。默认值为 0。如果没有,则计算整个数组的 MAD。

center 可调用的,可选的

将返回中心值的函数。默认是使用 np.median。使用的任何用户定义函数都需要具有函数签名 func(arr, axis)

scale 整数,可选

应用于 MAD 的比例因子。默认比例 (1.4826) 确保与正态分布数据的标准偏差一致。

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 - 它不会计算意思是绝对偏差。

参考

1

“Median absolute deviation”,https://en.wikipedia.org/wiki/Median_absolute_deviation

2

“强有力的规模测量”,https://en.wikipedia.org/wiki/Robust_measures_of_scale

例子

median_absolute_deviation 的行为与 np.std 进行比较时,当我们将数组的单个值更改为具有离群值时,后者会受到影响,而 MAD 几乎没有变化:

>>> from scipy import stats
>>> x = stats.norm.rvs(size=100, scale=1, random_state=123456)
>>> x.std()
0.9973906394005013
>>> stats.median_absolute_deviation(x)
1.2280762773108278
>>> x[0] = 345.6
>>> x.std()
34.42304872314415
>>> stats.median_absolute_deviation(x)
1.2340335571164334

轴处理示例:

>>> x = np.array([[10, 7, 4], [3, 2, 1]])
>>> x
array([[10,  7,  4],
       [ 3,  2,  1]])
>>> stats.median_absolute_deviation(x)
array([5.1891, 3.7065, 2.2239])
>>> stats.median_absolute_deviation(x, axis=None)
2.9652

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.median_absolute_deviation。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。