数値群より異常値を排除したい

タグの編集
投稿者 PPB  (社会人) 投稿日時 2022/7/27 15:06:46
例えば以下のようなサンプル数値群があったとします。

16, 13, 15, 18, 40, 15, 15, 20, 13, 16, 14, 16, 17

この中に40という数値があり、他の数値より大きめですが、
このような数値を異常値として、プログラム的にサンプルより取り除きたいと思っています。
ただし、サンプルとして許容する最小値・最大値は決まってなく、
他の数値群の傾向を見て判断したいと思っています。
もちろん、異常値判断されるかどうかの微妙なケースもあるかと思いますが、
ざっくりと判定できればいいと思います。

おそらく統計学的な方法を用いることになると思いますが、
どのような方法が考えられますか?

なお、今回のサンプルでは15前後の数値の中に40という数値が1つありましたが、
今回の目的は、明らかに異常値じゃないの?というものが排除できればいいので、
今回のサンプルの中に40前後の数値が多くあれば、それは排除しなくていいと思っています。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2022/7/27 16:29:48
いわゆる「外れ値」のことですね。
異常値とは、外れ値のなかでその原因がわかっているものを指す言葉です。

> おそらく統計学的な方法を用いることになると思いますが、
> どのような方法が考えられますか?
統計学は専門外なので、あまり詳しくは無いですが、方法だけで言えば
数十種類のアルゴリズムがあったと思うので、別途調べてみてください。
相手が一次元データなら、ホテリング理論、箱ひげ図、スミルノフ・グラブス検定などでしょうか。
投稿者 PPB  (社会人) 投稿日時 2022/7/27 16:41:38
ありがとうございます!

>相手が一次元データなら、ホテリング理論、箱ひげ図、スミルノフ・グラブス検定などでしょうか。 

ここら辺を調べてみました。とても興味深いです。
もっと勉強して理解しようと思います。