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 を計算する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です