Main Content

mad

平均または中央絶対偏差

説明

y = mad(X) は、X 内の値の平均絶対偏差を返します。

  • X がベクトルである場合、madX 内の値の平均または中央絶対偏差を返します。

  • X が行列である場合、madX の各列の平均または中央絶対偏差が格納されている行ベクトルを返します。

  • X が多次元配列である場合、madX の大きさが 1 でない最初の次元に作用します。

y = mad(X,flag) は、平均絶対偏差 (flag = 0、既定) と中央絶対偏差 (flag = 1) のどちらを計算するかを指定します。

y = mad(X,flag,'all') は、X のすべての要素の平均または中央絶対偏差を返します。

y = mad(X,flag,dim) は、X の作用次元 dim に沿った平均または中央絶対偏差を返します。

y = mad(X,flag,vecdim) は、ベクトル vecdim で指定された次元における平均または中央絶対偏差を返します。たとえば、X が 2 x 3 x 4 の配列である場合、mad(X,0,[1 2]) は 1 x 1 x 4 の配列を返します。出力配列の各要素は、X の対応するページにおける要素の平均絶対偏差です。

すべて折りたたむ

外れ値が存在する場合の標準偏差、平均絶対偏差および中央絶対偏差のロバスト性を比較します。

データが正規分布に従うデータセット x を作成します。x の要素と追加の外れ値が含まれている、別のデータセット xo を作成します。

rng('default') % For reproducibility
x = normrnd(0,1,1,50);
xo = [x 10];

2 つのデータセットの標準偏差の比率を計算します。

r1 = std(xo)/std(x)
r1 = 1.4633

2 つのデータセットの平均絶対偏差の比率を計算します。

r2 = mad(xo)/mad(x)
r2 = 1.1833

2 つのデータセットの中央絶対偏差の比率を計算します。

r3 = mad(xo,1)/mad(x,1)
r3 = 1.0336

このケースでは、他の 2 つのスケール推定値と比較して中央絶対偏差の方が外れ値の影響が少なくなっています。

配列のすべての値の平均絶対偏差および中央絶対偏差を求めます。

3 x 5 x 2 の配列 X を作成し、外れ値を追加します。

X = reshape(1:30,[3 5 2]);
X(6) = 100
X = 
X(:,:,1) =

     1     4     7    10    13
     2     5     8    11    14
     3   100     9    12    15


X(:,:,2) =

    16    19    22    25    28
    17    20    23    26    29
    18    21    24    27    30

X の要素の平均絶対偏差および中央絶対偏差を求めます。

meandev = mad(X,0,'all')
meandev = 10.1178
mediandev = mad(X,1,'all')
mediandev = 7.5000

meandevX のすべての要素の平均絶対偏差、mediandevX のすべての要素の中央絶対偏差です。

多次元配列のさまざまな次元に沿った中央絶対偏差を求めます。

結果の再現性を得るため、乱数シードを設定します。

rng('default') 

1 x 3 x 2 の乱数行列を作成します。

X = randn([1,3,2])
X = 
X(:,:,1) =

    0.5377    1.8339   -2.2588


X(:,:,2) =

    0.8622    0.3188   -1.3077

既定の次元に沿って X の中央絶対偏差を求めます。

Y2 = mad(X,1) % Flag is set to 1 for the median absolute deviation
Y2 = 
Y2(:,:,1) =

    1.2962


Y2(:,:,2) =

    0.5434

既定では、mad は、サイズが 1 ではない X の最初の次元に沿って作用します。このケースでは、この次元は X の 2 番目の次元です。したがって、Y2 は 1 x 1 x 2 の配列です。

3 番目の次元に沿って X の中央絶対偏差を求めます。

Y3 = mad(X,1,3)
Y3 = 1×3

    0.1623    0.7576    0.4756

Y3 は 1 行 3 列の行列です。

入力引数 vecdim を使用して、複数の次元に対する平均絶対偏差を求めます。

結果の再現性を得るため、乱数シードを設定します。

rng('default')

4 x 3 x 2 の乱数行列を作成します。

X = randn([4 3 2])
X = 
X(:,:,1) =

    0.5377    0.3188    3.5784
    1.8339   -1.3077    2.7694
   -2.2588   -0.4336   -1.3499
    0.8622    0.3426    3.0349


X(:,:,2) =

    0.7254   -0.1241    0.6715
   -0.0631    1.4897   -1.2075
    0.7147    1.4090    0.7172
   -0.2050    1.4172    1.6302

1 番目の次元と 2 番目の次元を指定して、X の各ページの平均絶対偏差を求めます。

ypage = mad(X,0,[1 2])
ypage = 
ypage(:,:,1) =

    1.4626


ypage(:,:,2) =

    0.6652

たとえば、ypage(:,:,2)X(:,:,2) 内のすべての要素の平均絶対偏差であり、mad(X(:,:,2),0,'all') を指定することと同じです。

1 番目の次元と 3 番目の次元を指定して、X(:,i,:) の各スライスの要素の平均絶対偏差を求めます。

ycol = mad(X,0,[1 3])
ycol = 1×3

    0.8330    0.7872    1.5227

たとえば、ycol(3)X(:,3,:) 内のすべての要素の平均絶対偏差であり、 mad(X(:,3,:),0,'all') を指定することと同じです。

入力引数

すべて折りたたむ

母集団から抽出した標本を表す入力データ。ベクトル、行列または多次元配列を指定します。

  • X がベクトルである場合、madX 内の値の平均または中央絶対偏差を返します。

  • X が行列である場合、madX の各列の平均または中央絶対偏差が格納されている行ベクトルを返します。

  • X が多次元配列である場合、madX の大きさが 1 でない最初の次元に作用します。

X が行列または配列である場合に作用次元を指定するには、入力引数 dim を使用します。

mad は、NaNs を欠損値として認識し、削除します。

データ型: single | double

偏差のタイプのインジケーター。0 または 1 を指定します。

  • flag0 (既定) である場合、mad は平均絶対偏差 mean(abs(X – mean(X))) を計算します。

  • flag1 である場合、mad は中央絶対偏差 median(abs(X – median(X))) を計算します。

データ型: single | double | logical

作用する対象となる次元。正の整数を指定します。dim の値を指定しなかった場合、X のサイズが 1 ではない最初の次元が既定値になります。

行列 X の平均絶対偏差を考えます。

  • dim が 1 に等しい場合、mad(X)X の各列の平均絶対偏差が格納されている行ベクトルを返します。

  • dim が 2 に等しい場合、mad(X)X の各行の平均絶対偏差が格納されている列ベクトルを返します。

データ型: single | double

次元のベクトル。正の整数ベクトルを指定します。vecdim の各要素は、入力配列 X の次元を表します。出力 y の指定された作用次元における長さは 1 です。他の次元の長さは、Xy で同じになります。

たとえば、X が 2 x 3 x 3 の配列である場合、mad(X,0,[1 2]) は 1 x 1 x 3 の配列を返します。出力配列の各要素は、X の対応するページにおける要素の平均絶対偏差です。

Mapping of input dimension of 2-by-3-by-3 to output dimension of 1-by-1-by-3

データ型: single | double

出力引数

すべて折りたたむ

平均または中央絶対偏差。スカラー、ベクトル、行列または多次元配列として返されます。flag が 0 (既定) である場合、yX 内の値の平均絶対偏差 mean(abs(X – mean(X))) です。flag が 1 である場合、yX 内の値の中央絶対偏差 median(abs(X – median(X))) です。

ヒント

  • 正規分布データの場合は、mad を以下の要素のいずれかで乗算し、正規スケール パラメーター σ の推定値を取得します。

    • sigma = 1.253 * mad(X,0) — 平均絶対偏差の場合

    • sigma = 1.4826 * mad(X,1) — 中央絶対偏差の場合

参照

[1] Mosteller, F., and J. Tukey. Data Analysis and Regression. Upper Saddle River, NJ: Addison-Wesley, 1977.

[2] Sachs, L. Applied Statistics: A Handbook of Techniques. New York: Springer-Verlag, 1984, p. 253.

拡張機能

バージョン履歴

R2006a より前に導入

参考

| |