Python で絶対中央値偏差を計算する方法
絶対偏差の中央値は、データセット内の観測値の分布を測定します。
これは、標準偏差や分散などの他の分散の尺度よりも外れ値の影響が少ないため、特に便利な尺度です。
絶対中央値偏差 (MAD と略されることもあります) を計算する式は次のとおりです。
MAD = 中央値 (|x i – x m |)
金:
- x i :データセットのi 番目の値
- x m :データセット内の中央値
次の例は、Python でstatsmodels mad関数を使用して中央絶対偏差を計算する方法を示しています。
例 1: テーブルの MAD を計算する
次のコードは、Python で単一の NumPy 配列の中央絶対偏差を計算する方法を示しています。
import numpy as np from statsmodels import robust #define data data = np. array ([1, 4, 4, 7, 12, 13, 16, 19, 22, 24]) #calculate MAD robust. mad (data) 11.1195
データセットの絶対偏差の中央値は11.1195であることがわかります。
MAD の計算に使用される式は、結果を約 0.67 の係数でスケーリングすることにより、正規分布を仮定して標準偏差のロバストな推定値を計算することに注意することが重要です。
このスケーリング係数の使用を回避するには、次のように単に c = 1 を設定します。
#calculate MAD without scaling factor robust. mad (data, c=1) 7.5
例 2: データフレームの MAD を計算する
次のコードは、pandas DataFrame の単一列の MAD を計算する方法を示しています。
#make this example reproducible n.p. random . seeds (1) #create pandas DataFrame data = pd. DataFrame ( np.random.randint (0,10,size=(5,3)),columns = [' A ',' B ',' C ']) #view DataFrame data A B C 0 5 8 9 1 5 0 0 2 1 7 6 3 9 2 4 4 5 2 4 #calculate MAD for column B data[[' B ']]. apply (robust. mad ) B 2.965204 dtype:float64
列Bの絶対中央偏差は2.965204であることがわかります。
同様の構文を使用して、pandas DataFrame の複数の列の MAD を計算できます。
#calculate MAD for all columns
data[[' A ',' B ',' C ']]. apply (robust. mad )
At 0.000000
B 2.965204
C 2.965204
dtype:float64
絶対中央値偏差は、列 A では0 、列 B では2.965204 、列 C では2.965204です。
追加リソース
Python で MAPE を計算する方法
Python で SMAPE を計算する方法
Python で RMSE を計算する方法