Shikata Ga Nai

Private? There is no such things.

第29回:外れ値の見つけ方と対処方法

Hello there, ('ω')ノ

「平均を出したら、ものすごく大きな値が混じっていて意味がなかった…」 「一部のデータだけ極端におかしい」

こんな経験はありませんか? こういった“場違いな値”は、外れ値(がいれち/アウトライアー)と呼ばれ、分析をゆがめる原因になります。


✅ 外れ値とは?

大多数のデータから極端に外れた値のこと。 たとえば、年齢データに「999歳」が混じっていたり、 売上データに「-10,000円」などが含まれていたり…。

外れ値は、次のような影響を与えることがあります:

影響 内容
平均値をゆがめる 1件の極端な値で平均が大きくずれる
グラフの見た目が悪くなる スケールが合わず他の値が小さく見える
機械学習の精度低下 モデルが「変なパターン」を学習してしまう

🔍 外れ値の見つけ方(代表的な4つ)

しきい値ルール(経験的判断)

あらかじめ「この範囲を超えたらおかしい」という基準を設定する方法。

例:

SELECT * FROM employees WHERE age < 15 OR age > 100;

→ 実務で一番使われるシンプルかつ現実的な方法です。


統計的手法:平均±3σ(標準偏差)

データが正規分布(山型)だと仮定し、以下の範囲を外れるデータを外れ値とします:

外れ値の目安 = 平均 ±(3 × 標準偏差)

Excelでも簡単に使えます:

=AVERAGE(A2:A100)    ← 平均
=STDEV.P(A2:A100)    ← 標準偏差

▶ それぞれのセルを使って「±3σ」の範囲を超えているかをチェック


四分位範囲(IQR)での検出

中央値を使うので、平均±3σよりも極端な値に左右されにくいのがメリットです。

手順:

  1. 第1四分位(Q1)=下位25%の値
  2. 第3四分位(Q3)=上位25%の値
  3. 四分位範囲(IQR)=Q3 - Q1
  4. 外れ値の判定範囲:
   下限 = Q1 - 1.5 × IQR  
   上限 = Q3 + 1.5 × IQR

ExcelやPython(pandas)でも計算可能。ビジュアル化(箱ひげ図)とも相性◎。


グラフでの目視(箱ひげ図など)

視覚的に外れ値を確認する方法。 特にExcelやTableauなどで箱ひげ図を使えば、ひと目で分かります。

  • 箱(四角):中央値〜Q1/Q3の範囲
  • “ひげ”(線):標準的な範囲
  • ポツンと離れた点:外れ値の候補!

🧠 外れ値の対処方法:どうすればいい?

方法 説明 注意点
削除 おかしなデータを取り除く 明らかにミスのときだけに限定
置換 平均値や中央値で置き換える 分析用の簡易対応として有効
分離 分析対象から除外して別途扱う 外れ値自体が貴重なデータであることもある
フラグ化 「これは外れ値です」と印をつける モデル分析時に使いやすい

✅ 実務での使いどころ例

データ例 外れ値の例 対応方法
売上データ 1件だけ1億円 キャンペーンなどの例外なら分離
年齢 0歳・999歳など 入力ミスの可能性 → 削除か修正
アンケート満足度 "100点中500点" 入力上限を設定する or 再確認

⚠️ 注意:外れ値を“無条件に消さない”!

「外れ値=悪」とは限りません。 場合によっては、外れ値こそが新しい発見につながることも。

たとえば:

  • 売上が異常に高い商品 → ヒット商品の可能性
  • 作業時間が極端に短い → 業務改善のヒント

外れ値は“ノイズ”でもあり、“気づきの種”でもある。


✨ まとめ:外れ値は無視せず、向き合うべし!

ポイント 内容
外れ値とは? ほかのデータから大きく外れた“異常な値”
発見方法は4パターン 経験値/統計(平均±3σ)/四分位数(IQR)/グラフ
対応は目的に応じて 削除・置換・フラグ付けなど状況に合わせて使い分ける
無理に消さない ときに貴重な情報源にもなる

Best regards, (^^ゞ