外れ値検出のアルゴリズム minimum covariance determinant
TRANSCRIPT
多変量正規分布に基づく外れ値検出
● 「通常」のデータは多変量正規分布にしたがうと仮定して、それにそぐわないデータを検出する
● 他の手法に比べて仮定が厳しいが、それさえクリアすれば強力
● 多変量正規分布の平均と共分散行列を推定するのが難しいポイント
多変量正規分布のイメージ
平均ベクトルから離れるほど生起確率が低くなる。
距離だけではなく、向きも考慮しなくてはいけない。
分散の小さい方向に動けば大きく減少。
分散の大きい方向に動けば小さく減少。
出典:http://www.biwako.shiga-u.ac.jp/sensei/mnaka/ut/sozai/prob.html
同じ距離だけ動いても、向きによって確率の減少率が変わる!
マハラノビス距離
MD( x)=√(x−μ)T Σ−1(x−μ)
μ平均ベクトル からの距離を、共分散行列 Σ を考慮して定義
d次元のマハラノビス距離の二乗は自由度dのカイ二乗分布にしたがう
図の出典:https://en.wikipedia.org/wiki/Chi-squared_distribution#Table_of_.CF.872_values_vs_p-values
カイ二乗値とp-quantileの対応表を使えばマハラノビス距離がどれくらい大きければ生起確率が十分小さくなるか検証できる
二次元の場合、マハラノビス距離が5.99より大きくなる可能性は5%
平均ベクトルと共分散行列の推定
平均ベクトルと共分散行列が求まれば、マハラノビス距離とカイ二乗分布を使って異常値を検出できる。
平均ベクトルと共分散行列はどうやって求めよう?
最尤推定(標本の平均と共分散行列をそのまま使う)でいいのかな?
最尤推定は異常値に対して弱い
異常値を含めて最尤推定すると平均も共分散行列もデタラメになってしまう。
特に、分散が大きくなりすぎ、マハラノビス距離がどの標本に対しても小さくなってしまう。
コンパクトにまとまった部分集合に対して、平均と共分散行列を計算したい。
図の出典:Mia Hubert, Minimum covariance determinant, WIREs Computational Statistics
Minimum Covariance Determinant
共分散行列の行列式が最小の(=コンパクトな)部分集合Hを見つけ、Hに対して平均と共分散行列を計算し、マハラノビス距離の計算に使う方法
可能な部分集合全てに対して共分散行列を全部計算するのは非現実的(指数オーダー)
FAST-MCDという局所解を求める高速な手法を使う
FAST-MCD
1.ランダムな部分集合H1に対して、平均ベクトルμ1と共分散行列Σ1を計算する
2.μ1とΣ1を用いて全標本のマハラノビス距離を計算し、最もマハラノビス距離が小さいh個の標本を新たな部分集合H2とする
3.Σiの行列式が0になるか、更新されなくなるまで1-2を繰り返す
FAST-MCDの性質
● 共分散行列の行列式は各ステップで単調非増加になることが保証されている– 証明はむずすぎてよくわかんない…
● サンプルサイズ h = (d + n + 1) / 2 のとき最もロバストになる– これも意味わかんない…
● でも実装は簡単だし動作も高速● 当たり前だけど正規分布にしたがわないデータに
対してはデタラメな結果しか出ない