標本データにおける外れ値の考え方①
こんにちは、今回はデータ分析の際に厄介者として扱われがちな外れ値について考えてきたいと思います。
外れ値とは、「データのメインボディから外れている値」のことをいいます。例えば、以下のようなデータがあるとき、25.5は怪しいと考えるのは自然だと思います。
$$
\mathcal{X} = \{5.6, 5.7, 5.4, 5.5, 5.2, 5.3, 5.8, 5.4, 5.6, 25.5 \}
$$
このような、値が現れたときにどのように考えていくかを書いていきます。
※こちら外れ値については2部作で書いていきます。この記事は1stで、外れ値の生起過程や決定判断について書いていきます。2ndの記事はこちらです。
外れ値かどうかをまず考える
外れ値は上記の定義から、滅多に生起されない事象です。なので、外れ値かどうかを判断する上で、その事象がほとんど生起されないものかどうかを気にする必要があります。
どのような事象が得られたときに外れ値としてよいか
統計学理論では、標本データはある母集団分布から抽出されるものであることを前提に考えます。そして、データ分析のゴールはこの母集団分布の性質を推定することをゴールとして定めます。
先ほどの$${\mathcal{X}}$$においても、どの母集団から抽出されているかを考えます。例えば、$${\mathcal{X} \sim N(5, 1)}$$または$${\mathcal{X} \sim N(5, 5)}$$を仮定したとき、事象25.5の生起確率は以下のようになります。
> dnorm(25.5, mean = 5, sd = 1) # X ~ N(5, 1)
[1] 2.211984e-92
> dnorm(25.5, mean = 5, sd = 25) # X ~ N(5, 5)
[1] 0.01140145
$${\mathcal{X} \sim N(5, 1)}$$の場合は生起確率がほぼ0%なので25.5は外れ値としてもよ良さそうです。しかし、$${\mathcal{X} \sim N(5, 5)}$$の場合は生起確率が1%以上となっており、外れ値としてしまって良いか少し悩みます。(実際には、扱う問題によって処理を変えることになります。)
即ち、多少値が離れているデータを発見したとしてもそれを外れ値とするのは早とちりかもしれません。そして、外れ値認定してその値を省いてしまった場合、恣意的にデータを操作していることになるので、母集団分布の推定が正しくないものになります。
それでは、外れ値を正しく選ぶためにはどのようにすればよいでしょうか。それには、データの仮定を十分に知ること(=母集団分布を知ること)が重要になります。そのためには、以下のようなことをすればよいでしょう。これらは、母集団分布ないしその母数を推定する際に重要な要素になります。
データの定義域を知る
扱うデータについての先行研究を調べる
標本のサンプルサイズを十分に確保する
標本のサンプル数も十分に確保する
ただし、集めるデータによっては、新規性のために先行研究が十分でなかったり、サンプル数の確保が容易でないことがあります。そのため、実際には最低限のサンプルサイズを確保して分布を見て判断することが多いです。
交絡因子に注意
十分な解析によって母集団分布が推定できたとしても、さらに注意することがあります。それは、交絡因子によって見ている母集団分布が変化しないかどうかです。
例えば、$${\mathcal{X}}$$がPCWP(肺動脈楔入圧)の観測値である場合を考えます。
PCWPは心臓にバルーンをしぼませたカテーテルを挿入し、そのバルーンを肺動脈の抹消部分で膨らませて血液を遮断させた状態で測定した肺動脈圧のことです。この検査によって、左心室の機能評価が分かり、特に18(mmHg)を超えた場合に肺高血圧症を疑います。
即ち、健常群と肺高血圧群の交絡を考えないまま$${\mathcal{X}}$$をみると、この25.5という事象は疾患を診断するうえでとても大事なファクターであるにも関わらず、それを外れ値認定してしまい、適切な判断が出来なくなってしまいます。肺高血圧群の場合、25.5はメインボディなので外れ値ではありません。
これを防ぐためには交絡でのサブアナリシスを行うなど、データのより細かい条件下での母集団分布を推定するような工夫が必要になります。(一人で全て賄うのはほぼ不可能なので、先行研究をしっかりと追うとよいでしょう。)
どのような事象が外れ値になるか
外れ値を探すうえでもう一つ重要になる要素が、外れ値の発生原因を熟知することです。怪しい事象を見つけたときに思い当たる原因があれば、強力な証拠になります。
以下の章では、外れ値が生起する原因の例を挙げます。
データの入力ミス
外れ値のほとんどの原因はこれである可能性が高いです。例えば、身長データに1800(cm)(=18m)と入力されている場合は、タイピングミスによって誤ったデータとなっていると考えて良いでしょう。
この場合は、作業者に確認して適宜データを修正するのがよいでしょう。
※なお最近はAIや機械の発展により、データを手作業で入れていく作業は減ってきまています。
定義の誤り
計算を間違ってしまうと、変な値が出てしまい外れ値と誤認識する可能性が高まります。例えば、身長1.5m、体重50kgの人に対してBMIが31.25($${=50 / 1.6}$$)となっているとします。これは、計算が間違っていることが原因で本来標準体重の方が肥満に近いBMI値をとっており、標準体重群のなかでは外れ値となってしまいます。
※正しいBMIは19.53($${= 50 / (1.6)^2}$$)です。
これを防ぐために、正確にデータを操作するためのエンジニアリング力や、適切な計算が行われているかどうかを証明できる検算力が必要になります。
外部要因による母集団分布の変化
交絡の話しに近いですが、機械の故障や過酷環境による影響等で正しく計測できない場合に外れ値のようなデータが得られます。
この場合は、ログを確認できるように設計して、異常な環境であったことを検知できるようにすることがまず大事です。また、実際にこのようなデータが得られた場合はデータそのものの除外や群を分ける等の工夫が必須です。
ということで、外れ値の生起について色々と書いてみました。大雑把にまとめると、以下のようになります。結構大変ですが、それくらい慎重に扱いたい内容だと思います。
簡単に外れ値と決めつけない
データの前提にある母集団分布を意識する
外れ値と断定するならば明確な原因も明らかになっている方が良い
交絡の影響に要注意!特に重要な指標を見逃してしまう危険性がある
最後までお読みいただきありがとうございました。
記事を読んでいただきありがとうございました。いただきましたサポートは自己研鑽のために活用し、さらに良質な記事を執筆するために使います。のんびり更新ですが、多くの方に役立つコンテンツを書いていきますのでよろしくお願いいたします。