このデータセットから外れ値を検出するために使用できるアルゴリズムまたは方法はどれですか?


8

データセットがあるとしましょう:Amount of money (100, 50, 150, 200, 35, 60 ,50, 20, 500)。私がしているGoogleでこのデータセット内の可能な外れ値を見つけるために使用することができる技術を探してウェブを、私は混乱してしまいました。

私の質問は次のとおりです。このデータセットで起こり得る異常値を検出するために使用できるアルゴリズム、手法、または方法はどれですか。

PS:データが正規分布に従っていないことを考慮してください。ありがとう。


この小さなセットの外れ値をどのように認識しますか?少し大きいデータを「手動」でどのように実行しますか?
Laurent Duval

回答:


5

外れ値分析にはBoxPlotを使用できます。Pythonでそれを行う方法を示します。

データを配列と見なします。

a = [100, 50, 150, 200, 35, 60 ,50, 20, 500]

ここで、seabornを使用して箱ひげ図をプロットします。

import seaborn as sn
sn.boxplot(a)

したがって、次のようなプロットが得られます。

ここに画像の説明を入力してください

500が私にとって唯一の異常値のようです。しかし、それはすべて、アナリストまたは統計家の分析と許容レベル、および問題の説明に依存します。

あなたはで見ることができ、私の答えの1以上のテストのためのCrossValidated SEに。

そして、外れ値と、それらを検出するためのアルゴリズムと手法について、いくつかの素晴らしい質問があります。

私の個人的なお気に入りはマハラノビス距離法です。


まあ、ありがとう、確かに素晴らしい説明です。この場合マハラノビス距離手法を適用できますか、それとも多変量データに対して有効ですか?
Nation Chirara、2015年

あなたはできる。ただし、一変量データには適格ではありません。しきい値が設定されたボックスプロット分析だけで、このデータを処理できます。
Dawny33

5

外れ値検出の考え方の1つは、予測モデルを作成してから、ポイントが予測の範囲内にあるかどうかを確認することです。情報理論の観点から、各観測値がモデルのエントロピーをどれだけ増加させるかを確認できます。

このデータを単に数値のコレクションとして扱い、それらの生成方法について提案されたモデルがない場合は、平均を確認することもできます。数値が正常に分布していないことが確実な場合は、特定の数値が平均からどれだけ「離れている」かについて説明することはできませんが、絶対的に見ることができます。

これを適用すると、すべての数値の平均を取り、各数値を除外して、他の数値の平均を求めることができます。グローバル平均と最も異なる平均が最大の外れ値です。ここにいくつかのpythonがあります:

def avg(a):
    return sum(a)/len(a)

l = [100, 50, 150, 200, 35, 60 ,50, 20, 500]
m = avg(l)
for idx in range(len(l)):
    print("outlier score of {0}: {1}".format(l[idx], abs(m - avg([elem for i, elem in enumerate(l) if i!=idx]))))
>>
outlier score of 100: 4
outlier score of 50: 10
outlier score of 150: 3
outlier score of 200: 9
outlier score of 35: 12
outlier score of 60: 9
outlier score of 50: 10
outlier score of 20: 14
outlier score of 500: 46 

まあ、応答をありがとう。数が通常は分布していないと確信していますが、あなたの方法はまだそのコンテキストに適用されますか?
Nation Chirara 2015年

はい、常にデータに関する予測を暗示する根本的なモデルがあります。新しいデータポイントを取得すると、その値が何であるかを推測できます。モデルに関する他の情報がない場合(それは単なる数値の集まりです)、最も適切な推測は、モデルがすでに持っている数値に似ていることです。最終的にデータの特定のモデルになる場合は、それを予測に組み込むことが重要です。平均の使用は、正規分布を想定していることを意味するものではありませんが、他のモデルでは平均以外のものを使用することもできます。
Tristan Reid

こんにちは。通常、非正規分散データに平均を使用するのは良い考えではありません。実際、たとえば、多くのノンパラメトリック統計検定では、平均ではなく中央値を使用しています。しかし、それはただの意見です...
Michael Hooreman、2015年

十分に公平ですが、データが対称的に分布していると考えれば、平均はかなり良い考えですが、そうでない場合、中央値は「典型的な」値のより良い測定値です。
Tristan Reid

3

単純なアプローチは、箱ひげ図と同じものを使用することです。1.5(中央値-q1)または1.5(q3-中央値)=外れ値よりも離れています。

私はそれが完全ではなく、多分単純すぎるとしても、多くの場合に役立つと思います。

正常性を仮定しないという利点があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.