當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。