200 のデータ行のセットがあります (データの小さなセットを意味します)。統計分析を実行したいのですが、その前に外れ値を除外したいと考えています。
その目的のための潜在的なアルゴリズムは何ですか? 精度は懸念事項です。
私は統計に非常に慣れていないので、非常に基本的なアルゴリズムの助けが必要です.
200 のデータ行のセットがあります (データの小さなセットを意味します)。統計分析を実行したいのですが、その前に外れ値を除外したいと考えています。
その目的のための潜在的なアルゴリズムは何ですか? 精度は懸念事項です。
私は統計に非常に慣れていないので、非常に基本的なアルゴリズムの助けが必要です.
全体として、このような質問を難しくしているのは、外れ値の厳密な定義がないことです。次の理由から、特定の数の標準偏差をカットオフとして使用しないことをお勧めします。
続行するには、いくつかの良い方法があります。
すべてのデータを保持し、堅牢な統計 (平均ではなく中央値、T 検定ではなくウィルコクソン検定など) を使用します。データセットが大きい場合はおそらく良いでしょう。
データをトリムまたはウィンザライズします。トリミングとは、上下の x% を削除することを意味します。Winsorizing とは、上位と下位の x% をそれぞれ x と 1-x パーセンタイル値に設定することを意味します。
データセットが小さい場合は、データをプロットして、妥当でない値を手動で調べることができます。
データが正規分布にかなり近い場合 (重い裾がなく、ほぼ対称的)、検定統計量として標準偏差の代わりに絶対偏差の中央値を使用し、中央値から 3 つまたは 4 つの中央値の絶対偏差にフィルター処理します。
外れ値のレバレッジをプロットすることから始めて、それからいくつかの古き良き眼間外傷に進みます (別名、散布図を見てください)。
多くの統計パッケージには外れ値/残差診断がありますが、私はクックの D を好みます。mtsu.edu のこの式を使用したい場合は、手動で計算できます(元のリンクは無効です。これは archive.org から入手したものです)。
「シックスシグマ」という表現を聞いたことがあるかもしれません。
これは、平均前後のプラスおよびマイナス 3 シグマ (つまり、標準偏差) を指します。
「シックスシグマ」の範囲外のものは、異常値として扱われる可能性があります。
よく考えてみると、「シックス シグマ」は広すぎると思います。
この記事では、それが「100 万回の機会あたり 3.4 個の不良部品」に相当することを説明しています。
認証目的ではかなり厳しい要件のようです。それがあなたに合っているかどうかを判断できるのはあなただけです。
データとその意味によっては、RANSAC (ランダム サンプル コンセンサス) を調べることをお勧めします。これはコンピュータ ビジョンで広く使用されており、多くの外れ値を持つデータをモデルに当てはめようとすると、一般的に優れた結果が得られます。
そして、概念化して説明するのは非常に簡単です。一方、非決定論的であるため、アプリケーションによっては問題が発生する可能性があります。
セットの標準偏差を計算し、1 番目、2 番目、または 3 番目の標準偏差の外側にあるものをすべて除外します。
これがSQLServerでのやり方です
以下のクエリは、各人の1つのウェイトインを保持する架空のスケールテーブルから平均体重を取得しますが、過度に太っている人や痩せている人がより現実的な平均を捨てることを許可しません。
select w.Gender, Avg(w.Weight) as AvgWeight
from ScaleData w
join ( select d.Gender, Avg(d.Weight) as AvgWeight,
2*STDDEVP(d.Weight) StdDeviation
from ScaleData d
group by d.Gender
) d
on w.Gender = d.Gender
and w.Weight between d.AvgWeight-d.StdDeviation
and d.AvgWeight+d.StdDeviation
group by w.Gender
これについてはもっと良い方法があるかもしれませんが、それはうまく機能します。別のより効率的な解決策に出くわした場合は、それについて聞いてみたいと思います。
注:上記は、平均の目的で、画像から外れ値の上位5%と下位5%を削除します。http://en.wikipedia.org/wiki/Standard_deviationに従って、2 *STDDEVPの2*を調整することにより、削除される外れ値の数を調整できます。