杉原データサイエンス事務所のロゴ トップページ | ひとつ上のページ | 目次ページ | このサイトについて | ENGLISH

1次元データの外れ値検知

外れ値
このグラフは、 外れ値 が1個あるのが簡単にわかります。 このページでは、この例を使って、外れ値検知を説明します。

外れ値検知には、大きく分けて、2つの種類があります。 このページは、これらの2種類について、問題の意味の違いと、進め方の違いを、1次元データで説明します。

外れ値を見つけたい・外れ値と正常値を分けたい

外れ値
このデータは、上のグラフのデータです。 「外れ値を見つけたい・外れ値と正常値を分けたい」と言う問題は、このようなデータから、外れ値を見つける問題です。

よく見ると、9番が「9.9」となっていて、外れ値のように見えますが、データの数が増えたら、外れ値を見つけること難しいです。

箱ひげ図

冒頭のグラフのようにヒストグラムを作るのはひとつの方法です。

ところで、正常値のデータがさらに増えると、ヒストグラムは、下のようになります。 10のところに外れ値が1個あるのですが、グラフでは見えません。
外れ値

箱ひげ図 にすると、外れ値の見落としが減ります。
外れ値

スミルノフ=グラブス検定

スミルノフ=グラブス検定は、外れ値の探索のために開発された 統計的仮説検定 です。

1次元の正規分布を仮定して、分布の一番外側のサンプルが外れ値かどうかを判定します。

多峰性がある場合

大多数が入る分布が2つ以上ある時を、「多峰性(たほうせい)がある」と言います。

それらの分布の中間地点で孤立しているサンプルを見つけたい場合は、 箱ひげ図やスミルノフ=グラブス検定では、見つかりません。 ヒストグラムで見つかることもありますが、見つけにくいです。

このような場合は、 外れたサンプルの探索 のページにある、多次元データの方法を使うと良いです。
外れ値 外れ値

外れたサンプルの探索の方法

外れたサンプルの探索 について、冒頭のデータを使って、方法を説明します。

すべてのサンプルの組合せについて、サンプル間の距離を求めると、下の表になります。 冒頭のデータは、1次元なので、「サンプル間の距離」は、座標の差です。
外れ値

表は、値の大きさに応じて色付けしています。 9番のサンプルは、他のどのサンプルとも距離が長いことがわかります。 このことから、9番が外れ値なことがわかります。

多峰性がある場合や、外れ値が複数ある場合は、このようにシンプルな表にはなりませんが、そのような場合の表の処理の仕方の違いが、各手法の違いになっています。

外れ値の探索の方法は、距離を使って、外れ値を分ける方法が多いです。 それ以外としては、 アイソレーションフォレスト のアプローチや、 One-Class SVM のアプローチがあります。

外れ値と正常値を分けるモデルが知りたい

外れ値
上のグラフのデータがあったとします。 上のデータの9番と、10番が抜けています。

そのデータに対して、9番、10番が外れ値かどうかを判定する問題を考えます。
外れ値

簡単な方法として、まず、9番、10番以外の参照データについて、平均値を計算します。

次に、この平均値を各データから引きます。
外れ値

すると、9番は大きく、10番は他とあまり変わりません。 つまり、9番が外れ値、10番は外れ値ではないことがわかりました。

「外れ値を見つけたい・外れ値と正常値を分けたい」との違い

「外れ値を見つけたい・外れ値と正常値を分けたい」では、サンプル間のすべての組み合わせについて、距離を計算しました。 そのため、サンプルが100個なら、100×100で10000個の距離を使って、分析することになります。

一方、「外れ値と正常値を分けるモデルが知りたい」では、計算するのは、平均値との差です。 サンプルが100個なら、100個の計算をすることになります。

9番と10番以外のデータに対して、9番と10番が外れ値かどうかを判定する場合でも、全部のデータの組み合わせについて、距離を計算することはできます。 しかし、平均値との差を計算する方が、はるかに簡単に判定することができます。



順路 次は 多次元データの外れ値


杉原データサイエンス事務所のロゴ
杉原データサイエンス事務所によるコンサルティングとセミナー