外れ値・異常値・欠損値とは?

本記事はスキルチェックリストの[データサイエンス力 No.89]「外れ値・異常値・欠損値とは何かそれぞれ知っていて、指示のもと適切に検出と除去・変換などの対応ができる」に対応しています。

異常なデータに注意

あなたがデータを手に入れて本格的に分析を始める前にやっておかなければならないことがあります。

それは、おかしなデータが混じっていないか確認して、適切な処理を行うことです。

アイ

おかしなデータって?
それは外れ値欠損値です。

ロボ千代

外れ値:他より異常に大きいor小さいデータ。
欠損値:値が入っていないデータ。
詳しく見ていきましょう。

外れ値


あるグループ10人の年収データを見てみましょう。

490 480
510 5000
475 460
515 520
505 535

アイ

全体を俯瞰するためにヒストグラムを描いてみるね
外れ値のあるヒストグラム

おや?何か変ですね。
他のデータから大きく外れたデータがあるようです。
5000万の階級に1つデータがあります。

このように他の値から大きく外れた値のことを「外れ値」といいます。

外れ値はデータ分析に影響を与えてしまうことが多いため注意が必要です。

例えば、先ほどの年収データで外れ値を含めたまま平均値を計算してみると、平均年収949万となります。
ほとんどの人が500万円前後なのに、年収5000万という人の影響で平均年収が1000万近いの高収入集団になってしまいました。
これは実態を正確に表しているとはいえません。

このように、外れ値が混じっていると、データ分析に悪影響が出る場合もあります。
なので、手に入れたデータに外れ値が混じっていないかどうかをまず検討してみることが大切です。

外れ値の一種〜異常値

外れ値の中でも測定ミスや記録ミスなど原因が明らかなものを「異常値」といいます。

健康診断のデータで1700cmというデータがあったとしたら、記録時に0をひとつ多く打ってしまったと考えるのが自然でしょう。
うちの会社には17m級の大型巨人がいる、と本気で考える人はいませんよね。
このような値は明らかに異常値です。異常値データは単純に除外してしまって問題ありません。

外れ値の見つけ方

アイ

外れ値に気をつけなきゃいけないのはわかったけど…あるデータが外れ値かどうかはどうやって判断したらいいの?

確かに先ほどの年収データはとても極端だったので、5000万は外れ値だとすぐ判断できたと思います。

ですが、1000万だったらどうでしょう?800万なら?1500万なら?

外れ値を見つけるための方法は別記事でご紹介します。

欠損値

では、次は別のデータを見てみましょう。とある会社の健康診断の体重データです。

63 66
58 53
72
64
75 61

アイ

空欄があるわよ

この空欄は、値のないデータであり「欠損値」といいます。

欠損値が生じる原因は、記録ミスや回答拒否、観測機器の問題で値が測定できなかったなど様々です。
ビジネスで扱うデータはきれいなものばかりでないので、データ分析には欠損値が常について回ると思ってください。

欠損値があった場合、主な対処法は2つです。

  1. 欠損値を除外する
  2. 全体の平均値や中央値で欠損値を埋める

データ予測などを行う場合には「欠損値を除外する」「平均値や中央値で欠損値を埋める」のそれぞれの方法で実際に予測を行って精度の高い方を採用する、というやり方もあります。

また、欠損が生じた原因を考えてどちらの方法にするかを選択するのも良いでしょう。

欠損値は3種類

欠損値は、その欠損が生じる原因によって大きく3つの種類に分けられます。

MCAR (Missing completely at random)

欠損がまったくの偶然によって発生するものです。要はたまたまデータが取れなかったということです。
「測定機器の故障」や「記録漏れ」などがこれにあたります。
一定確率で発生するものなので、単純に除外してしまって問題はありません。

例えば、体重データの欠損値なら「体重計の調子が悪くて測定できなかった」「測定値を記録する人が書き漏らした」などがMCARに該当します。

ロボ千代

MNAR (Missing not at random)

欠損が偶然に起きるわけではなく、そのデータの値に依存して欠損するものです。
例えば、自己申告制の体重調査だとすると、太っている人が体重を答えてくれないためデータが取れないというケースです。

これでは、集まるデータは体重が軽い人のデータばかりになってしまいます。

この欠損値を単純に除外して計算してしまうと、真実とは異なる偏ったデータで分析してしまうことになります。
従って、安易に除外しない方が良いでしょう。

MAR (Missing at random)

最後の3つめは、欠損値が生じたデータそのものではなく、他のデータに依存して欠損が生じるというケースです。

アイ

ちょっと何言ってるかわからない
具体例で考えた方がイメージしやすいですね

ロボ千代

体重データの例で考えてみましょう。
該当アンケートで老若男女に「あなたの体重を教えてください」と聞き回ったとします。
その結果を整理してみると、若い女性の体重データは回答率が悪くほとんど欠損値になっていることがわかりました。

アイ

当たり前でしょ!レディに体重を聞くなんて失礼よ!

若い女性は、自分の体重の軽い重いに関係なく、他の人に体重を教えることに抵抗があるのかもしれません。

つまり、このケースでは、「年齢」「性別」という「体重」とは別のデータに依存して体重データに欠損が生じているということです。
これがMARです。

外れ値と欠損値のまとめ

最後にもう一度、外れ値・異常値・欠損値についてまとめておきます。

外れ値:他より異常に大きいor小さいデータ。
 異常値:外れ値の中で、測定ミスや記録ミスなど原因が明らかなもの。

欠損値:値が入っていないデータ。

データ分析の際には、このようなおかしなデータがないか注意しましょう。

ロボ千代

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です