外れ値判定 計算ツール|IQR法(Tukey) と 3σ法・Hampel法・Grubbs検定の完全ガイド
Tukeyが提唱したIQR法(四分位範囲法)による外れ値判定を、Q1・Q3・判定値から瞬時算出。1.5×IQR(標準・箱ひげ図のヒゲ)と3×IQR(極端外れ値)両方に対応。3σ法(正規分布仮定)・Hampel識別子(中央値ベースのロバスト法)・Grubbs検定・修正Z-score法との比較、データクレンジング・機械学習の前処理・製造業の品質管理・医療検査値の異常判定・IoTセンサー監視での実務での使い方、JIS Z 8103・ISO 16269-4等の公的規格に基づく判定基準を体系的に解説します。
外れ値判定(IQR法)計算機
計算式とIQR法の考え方
基本式
IQR = Q3 − Q1
下側フェンス = Q1 − k × IQR
上側フェンス = Q3 + k × IQR
外れ値:値 < 下側フェンス または 値 > 上側フェンス
ここでQ1は下から25%の値(第1四分位数)、Q3は下から75%の値(第3四分位数)、IQRはその差(中央50%のデータが分布する幅)です。係数 k は通常1.5(Tukey標準)を使い、3を使う場合は「極端な外れ値(far outlier)」として区別します。
特徴
IQR法はノンパラメトリック(分布形状を仮定しない)手法で、外れ値そのものの影響を受けにくいロバストな判定法です。正規分布を仮定する3σ法と異なり、歪んだ分布・多峰分布にも適用可能。ただし後述のとおり、極端に歪んだ分布では正常値まで外れ値判定されるケースがあります。
Tukey法の由来と1.5倍の根拠
IQR法は米国の統計学者John W. Tukey(1915-2000)が著書『Exploratory Data Analysis』(1977)で提唱しました。探索的データ解析(EDA)の中核手法で、箱ひげ図(box-and-whisker plot)と一体で使われます。
1.5倍の統計的意味
正規分布において、Q1 − 1.5×IQR と Q3 + 1.5×IQR は平均±2.698σ の位置に相当し、正規分布全体の約99.3%をカバーします。すなわち正常なデータの約0.7%が外れ値として判定される期待値で、n=1,000のデータなら約7個が外れ値候補となります。
3倍(極端外れ値)の意味
Q3 + 3×IQR は正規分布で平均+4.72σに相当し、確率0.0001%(約100万分の1)。この閾値を超える値は明らかにデータ入力ミス・測定エラー・システム異常と判断されます。JMP・Rの箱ひげ図では、1.5倍を超え3倍以内の外れ値を「◦」で、3倍超の極端外れ値を「*」で区別表示するのが慣例です。
他の外れ値判定法との比較
| 手法 | 基準 | 分布仮定 | ロバスト性 | 主な用途 |
|---|---|---|---|---|
| IQR法(Tukey) | Q1−1.5IQR ~ Q3+1.5IQR | 不要 | ◎ 高 | EDA・箱ひげ図・データクレンジング |
| 3σ法(3標準偏差法) | 平均±3×SD | 正規分布 | × 低(外れ値の影響大) | 製造業のSPC・管理図 |
| Hampel識別子 | 中央値±3×MAD | 不要 | ◎ 極めて高 | IoT・ロバスト統計 |
| Grubbs検定 | t分布に基づく仮説検定 | 正規分布 | △ 中 | 1個の疑わしい値の検定 |
| 修正Z-score | 0.6745×(x−中央値)/MAD | 不要 | ◎ 高 | 小標本・非正規データ |
| Dixon Q検定 | 順序統計量の比 | 正規分布 | △ 中 | 化学分析(n=3〜30) |
| Isolation Forest | 機械学習ベース | 不要 | ◎ 高 | 高次元データ・機械学習 |
| DBSCAN | 密度ベースクラスタリング | 不要 | ◎ 高 | クラスタリング・多変量 |
MAD(中央絶対偏差)
MAD = median( |xi − median(x)| )
MADは中央値からの絶対偏差の中央値で、標準偏差のロバスト版。1.4826 × MAD ≒ 正規分布のσ相当で、Hampel識別子・修正Z-scoreで使用されます。外れ値そのものの影響を受けないため、IoTセンサー等の異常検知で標準的に採用されています。
四分位数の計算方法(複数流儀)
Q1・Q3の計算方法は9種類ほど存在し、統計ソフトによって値が微妙に異なります。実務では意識しておく必要があります。
| 方式 | Type | 特徴 | 採用ソフト |
|---|---|---|---|
| Excel QUARTILE.INC | Type 7 | 線形補間(両端含む) | Excel(デフォルト)、R |
| Excel QUARTILE.EXC | Type 6 | Weibull法(両端除外) | Excel(EXC版) |
| Tukey法 | Type 2 | ヒンジ(中央値の中央値) | Tukey原著 |
| NIST法 | Type 8 | Median-unbiased | SAS、SPSS |
| MINITAB法 | Type 6 | Weibull法 | MINITAB、SPSS(一部) |
データ n=10 で同じデータでもExcelとSPSSでQ1が異なる例あり。学術論文や品質管理報告書では「四分位数の計算方式」を明記することが推奨されます。
箱ひげ図(Box Plot)との関係
IQR法は箱ひげ図と一体で使われる可視化手法です。箱ひげ図の各要素は以下のとおり。
- 箱の下辺:Q1(第1四分位数・25%点)
- 箱の中央線:中央値(第2四分位数・50%点)
- 箱の上辺:Q3(第3四分位数・75%点)
- 下ヒゲ(whisker):Q1 − 1.5×IQR 以内の最小値
- 上ヒゲ:Q3 + 1.5×IQR 以内の最大値
- ヒゲの外側の点:外れ値(Q1−1.5IQR未満 or Q3+1.5IQR超)
データの中央50%が箱の中に収まり、外れ値が点でプロットされるため、分布形状・中心傾向・ばらつき・外れ値を一目で把握できます。Excel(2016以降)・R(boxplot関数)・Python(matplotlib.pyplot.boxplot、seaborn.boxplot)で標準実装されています。
業界・現場での使い方
データサイエンス・機械学習の前処理
回帰分析・分類問題では外れ値がモデルの精度を大きく損なうため、IQR法で自動的にマークして除外・変換します。scikit-learnの RobustScaler は中央値と IQR でスケーリングし、外れ値の影響を受けにくい特徴量エンジニアリングを実現します。
製造業・品質管理
寸法・重量・強度等の検査データで外れ値を検出し、工程異常の早期発見に利用。JIS Z 9020系(管理図)は3σ法が中心ですが、非正規分布データにはIQR法が推奨されます。ISO 16269-4「Detection and treatment of outliers」で国際的に標準化。
医療・臨床検査
血液検査・生化学検査の基準範囲(reference interval)は健常者データの中央95%(2.5%点〜97.5%点)を用いますが、健常者データ自体のクレンジングにIQR法を使用。CLSI EP28-A3c「Defining, Establishing, and Verifying Reference Intervals」でTukey法が推奨されています。
IoT・センサー監視
工場設備・スマートビル・農業IoTの温度・振動・電流センサーで異常検知に使用。ただしIoT時系列データではHampel識別子(中央値ベース)の方がロバストで、突発的なスパイクノイズや長期トレンドがあるデータに強い。
金融・リスク管理
株価収益率・為替変動率の外れ値検出。ただし金融データは「太い裾(fat tail)」を持ち、正常な変動でもIQR法で頻繁に外れ値判定されるため、VaR(Value at Risk)計算では極値理論(EVT)や GARCH モデルが優先されます。
マーケティング・顧客分析
顧客の購入金額・訪問頻度分布は通常右に長く裾を引く(右歪みログ正規分布)ため、IQR法の生データ適用では上位優良顧客が外れ値扱いになる。対数変換後にIQR法を適用するか、Hampel識別子を使用するのが実務セオリー。
外れ値の処理方針
外れ値を検出した後の処理は、データの性質・分析目的により以下から選択します。
| 処理 | 手法 | 適用場面 |
|---|---|---|
| 除外 | 削除・NaN化 | 明らかな入力ミス・測定エラー |
| Winsorize | フェンス値で置換(1.5×IQR位置に丸める) | ロバスト平均・回帰分析 |
| 変換 | 対数・平方根・Box-Cox変換 | 右歪み分布の正規化 |
| ロバスト手法 | 中央値・MAD・Huber回帰 | 外れ値影響を受けたくない分析 |
| 別モデル化 | 外れ値フラグを特徴量化 | 機械学習・詐欺検知 |
| 保持 | そのまま使用 | 本質的に重要な稀事例(不正取引・地震等) |
「外れ値=除外する」は誤解で、稀な事象こそ分析の主目的である場合(詐欺検知・地震予測・薬物副作用など)は保持が必須です。
よくある間違い・注意点
- 「外れ値=必ず除外」と機械的に処理 — 稀な事象の分析(詐欺検知・稀少疾患・地震予測)ではむしろ外れ値こそが分析対象。除外前に必ずドメイン知識で意味を確認してください。
- 歪んだ分布にそのまま適用 — 給与・購入金額・待ち行列時間など右歪み分布ではIQR法が上限を厳しく判定し、正常値が外れ値扱いに。対数変換後に適用するか、Hampel識別子を使用してください。
- 四分位数の計算方式を確認しない — Excel(Type 7)とSPSS(Type 6)でQ1・Q3が異なり、外れ値判定結果が変わることがあります。学術報告では計算方式を明記します。
- 小標本(n < 10)に適用 — n=5, 10程度では四分位数自体が不安定で、IQR法の信頼性は低い。Dixon Q検定や Grubbs検定(正規性前提)、または視覚的判定(散布図)を優先します。
- 多変量データに単変量IQRを繰り返し適用 — 各変数個別のIQR判定では、変数間の相関を考慮できず本来の多変量外れ値を見逃します。Mahalanobis距離・Isolation Forest・DBSCAN等の多変量手法を検討します。
- 時系列データにそのまま適用 — トレンド・季節性を持つ時系列(売上・気温・株価)は、時系列全体でIQR判定すると常にトレンドの端を外れ値扱い。移動窓(rolling window)IQRまたは STL 分解後の残差に対して適用します。
- 3σ法との誤った混用 — 3σ法は「平均±3×SD」で正規分布仮定。IQR法とは考え方が異なります。正規性が保証される品質管理では3σ法、非正規データではIQR法と使い分けが必要。
関連する規格・統計手法
- JIS Z 8103 ― 計測用語。統計解析用語(外れ値・四分位数・箱ひげ図など)の日本国内定義。
- JIS Z 8101-2 ― 統計 - 用語及び記号 - 第2部:応用統計。外れ値判定法の一般ルール。
- ISO 16269-4 ― Statistical interpretation of data - Part 4: Detection and treatment of outliers. 外れ値検出と処理の国際標準。Tukey法、Grubbs検定、Dixon Q検定を規定。
- JIS Z 9020-1/2 ― 管理図。3σ法(±3×SD)の管理限界に基づく品質管理。
- ASTM E178 ― Standard Practice for Dealing With Outlying Observations. 米国材料試験協会の外れ値処理標準。
- CLSI EP28-A3c ― Defining, Establishing, and Verifying Reference Intervals in the Clinical Laboratory. 臨床検査基準範囲設定でTukey法を推奨。
- FDA Guidance on Statistical Approaches ― 医薬品臨床試験における外れ値の取り扱いに関する米国FDAガイダンス。
参考文献・公的資料
より詳細な外れ値検出手法や統計理論を確認したい場合は、以下の公的機関・学会の資料を参照してください。
- 総務省統計局 ― 国家統計における欠測値・外れ値処理の技術資料と統計手法の解説。
- 日本産業標準調査会(JISC) ― JIS Z 8103・JIS Z 9020系の統計・品質管理規格の詳細検索。
- ISO 16269-4:2010 - Statistical interpretation of data - Detection and treatment of outliers ― 外れ値検出処理の国際規格公式ページ。
- 日本統計学会 ― 統計手法の学術情報・教育資料・学会誌。
- 統計数理研究所 ― 大学共同利用機関。ロバスト統計・外れ値検出の研究文献。
- NIST Statistical Engineering Division ― 米国国立標準技術研究所の統計技術部門。外れ値検出の実務ガイド。
- NIST/SEMATECH e-Handbook of Statistical Methods ― Grubbs検定・Tukey法の詳細解説。
- CLSI(Clinical and Laboratory Standards Institute) ― 臨床検査における外れ値処理のガイドライン。EP28-A3c等。
- 日本品質管理学会(JSQC) ― 品質管理・SPC・管理図における外れ値処理の学術文献。
- ASTM E178 - Dealing With Outlying Observations ― 米国材料試験協会の外れ値処理標準規格。
よくある質問(FAQ)
1.5倍の根拠は?なぜ2倍や1倍じゃない?
John Tukeyが経験的に設定した値で、正規分布において全体の約99.3%をカバーするため。3σ(99.7%)よりわずかに緩い基準として設計されています。統計的厳密性より、EDA(探索的データ解析)で「注目に値する値」を効率的にマークする実用性を重視した閾値です。より厳密な検定が必要な場合はGrubbs検定・Dixon Q検定を使います。
外れ値は必ず除外すべき?
場合によるのが正解です。データ入力ミス・測定機器の故障が原因なら除外、稀な事例(詐欺取引・地震・稀少疾患)が本質なら保持。分析目的とドメイン知識で判断します。除外する場合も理由と件数を報告書に必ず記載してください。
正規分布でない場合はどうする?
IQR法自体はノンパラメトリックで分布を仮定しませんが、右歪み分布(給与・購入金額・待ち時間等)ではIQR上限を超える正常値が多発します。対数変換・平方根変換で正規化してから適用するか、Hampel識別子(中央値ベース)を使用します。
3σ法との違いは?
3σ法(平均±3×SD)は正規分布を仮定し外れ値そのものの影響で平均・SDが歪む問題があります。IQR法は中央値の周辺で計算するためロバスト(外れ値の影響を受けにくい)。製造業品質管理の管理図では3σ、探索的解析・非正規データではIQRと使い分けます。
機械学習でどう扱う?
主なアプローチは4通り。①除外・NaN化(外れ値が明らかにノイズの場合)、②Winsorize(フェンス値で丸める)、③特徴量スケーリング(RobustScaler使用)、④外れ値フラグを新特徴量として追加(詐欺検知等)。ドメインと目的で選びます。scikit-learnにはIsolationForest・LocalOutlierFactor等の外れ値検出専用アルゴリズムも用意されています。
時系列データでは?
時系列全体にIQR法を適用するとトレンドの端が常に外れ値扱いになります。移動窓(rolling window)IQRで局所的に判定するか、STL分解・季節調整後の残差に対してIQR法を適用します。金融時系列ではEGARCH・EVT(極値理論)も併用されます。
小標本(n<10)で使える?
四分位数自体が不安定なので推奨できません。n=5〜30の少数データにはDixon Q検定(化学分析標準)、n=30以上でGrubbs検定が定石。あるいはドットプロット・散布図での視覚判定が実用的です。
多変量データではどうする?
変数ごとに個別IQRを適用すると変数間の相関を考慮できず、多変量外れ値を見逃します。Mahalanobis距離(多変量の統計的距離)、Isolation Forest(機械学習ベース)、DBSCAN(密度クラスタリング)などの多変量手法が必要です。
Excelで四分位数を計算するには?
QUARTILE.INC(範囲, 1) でQ1(Type 7・両端含む)、QUARTILE.EXC(範囲, 1)でWeibull法(両端除外)。IQR = QUARTILE.INC(A:A,3) - QUARTILE.INC(A:A,1) で計算できます。箱ひげ図はExcel 2016以降、挿入タブから作成可能です。
Pythonで実装するには?
NumPyのnp.percentile(data, [25, 75])でQ1, Q3を取得し、IQR = Q3 - Q1、下限=Q1-1.5*IQR、上限=Q3+1.5*IQRで外れ値マスクを作成します。pandasならdf.quantile([0.25,0.75])、scipyのscipy.stats.iqr()も便利。matplotlib/seabornのboxplotで可視化できます。
Hampel識別子とは?いつ使う?
Hampel識別子は中央値と MAD(中央絶対偏差)を用いた外れ値判定法。判定式は|x − median| > 3 × 1.4826 × MAD。IoTセンサー・時系列スパイクノイズ検出でIQR法よりロバストな結果を与えます。突発的異常が繰り返し発生するデータに最適。
箱ひげ図のヒゲはどこまで伸びる?
ヒゲ(whisker)はQ1 − 1.5×IQR以上の最小データ点まで(下ヒゲ)、Q3 + 1.5×IQR以下の最大データ点まで(上ヒゲ)伸びます。フェンス位置まで機械的に伸ばすのではなく、実データ点までが正解。ヒゲの外側の点は外れ値として個別プロットされます。
外れ値検出結果を報告書にどう記載する?
①使用手法(IQR法/3σ法など)、②係数(k=1.5 or 3)、③四分位数計算方式(Type 7等)、④検出件数と割合、⑤処理方針(除外/保持/変換)、⑥処理理由。学術論文ではMethodセクションに詳細を、Resultsで検出数を記載します。データの再現性のため必須の情報です。
ビッグデータでIQR法は使える?
使えますが、数百万件のデータでは分布の裾が長くなり、IQR法の上限を超える正常値が大量に出現します。ビッグデータでは Isolation Forest、DBSCAN、Autoencoder ベースの異常検知が主流。Sparkの MLlib や scikit-learn の各種検出アルゴリズムを検討してください。