操作方法(日本語)

XLSTAT による外れ値の検定:極端な値が異常値かどうかを統計的に確かめる

目次

外れ値の検定とは?

外れ値の検定とは、データの中にある極端な値について「ほかの値と同じばらつきの範囲で説明できるのか、それとも明らかに異質な値なのか」を統計的に判断する手法です。例えば「10 回繰り返した測定のうち1回だけ極端に大きい値が出たので、外れ値として扱う統計的な根拠があるか確かめたい」、「実験群のデータに1つだけ飛び離れた値があり、t検定にかける前に扱いを決めておきたい」といった場面で用いられます。

このページでは代表的な2つの手法である グラブス(Grubbs)検定 と ディクソン(Dixon)検定 を取り上げ、どちらを選べばよいかの判断基準と、XLSTAT での実行手順、結果の読み方をご紹介します。

【補足】

2つの検定は、XLSTAT では別々のメニューから実行しますが、ダイアログの構成も操作の流れもほとんど共通しています。そのため本ページでは、より汎用的に使えるグラブス検定を軸に手順を説明し、ディクソン検定については異なる部分だけを補足する形をとっています。ディクソン検定だけをお使いになる場合も、グラブス検定の手順をそのまま読み進めていただければ問題ありません。結果の解釈については、両方の検定の出力をそれぞれ取り上げています。

「なんとなく変だから」で除外してはいけない理由

極端な値を見つけたときにまず問題になるのは、除外するかどうかの判断が分析者の主観で決まってしまうことです。都合の悪い値だけを外すことは、意図の有無にかかわらず結論を操作することにつながりますし、第三者が同じデータを分析したときに同じ結果を再現できなくなります。

しかしながら、平均値や標準偏差、そしてそれらを土台にしたt検定や分散分析は、1つの極端な値に強く引きずられる性質を持っているため、放置するのも危険です。ほかの値が10 前後に集まっているところに1つだけ100 が混じれば、平均値は集団のどこにも実在しない位置を指し、標準偏差は大きく膨らみ、その結果「本当は差があるのに検出できない」という事態が起こります。

そこで役に立つのが外れ値の検定です。この検定は「データが正規分布に従うと仮定したとき、これほど離れた値が偶然に現れる確率はどれくらいか」を計算し、除外の根拠を数値で示せるようにします。除外するにせよ残すにせよ、判断の理由を客観的に説明できるようになります。

グラブス検定とディクソン検定の使い分け

2つの検定は発想がまったく異なります。XLSTAT 開発元(Lumivero)のヘルプドキュメントの記載を整理すると以下のとおりです。

  グラブス検定 ディクソン検定
 判定のものさし  平均からの距離を標準偏差で割った値(G 統計量) 隣り合う値との間隔をデータ全体の幅で割った値(R 統計量)
 推奨サンプルサイズ より広い n で利用でき、明確な上限はなし。 小標本向け。古典的には 3〜30、拡張研究では 100 まで
 外れ値1つ用  グラブス検定 R10 / R11 / R12(3種類。いずれも n は 100 まで)
 外れ値2つ用  ダブルグラブス検定 R20 / R21 / R22(3種類。いずれも n は 100 まで)
 統計量の選択  1つか2つかを利用者が指定 [自動] を選べば XLSTAT が推奨の設定で実行
 p値の求め方  t分布による近似(ダブルはモンテカルロ法)  モンテカルロ法(既定は100万回)
 正規分布の前提  必要  必要

選ぶ順序は次の3点です。

1つ目はサンプルサイズです。ディクソン検定は統計量ごとに上限が n = 100 と定められており、もともと小標本のために設計された手法ですが、グラブス検定には上限の記載がありません。10 件程度の少数データならディクソン検定、数十件以上ならグラブス検定を主に使う、と考えてください。

2つ目は疑わしい値の個数です。どちらも1つ用と2つ用に分かれています。飛び離れた点が1つなら1つ用、2つ並んで離れているなら2つ用を選びます。2つ用は「2つまとめて外れ値かどうか」を判定するものであり、1つずつ順番に判定するものではありません。

3つ目は片側か両側かです。「最大値だけが疑わしい」と事前に分かっている場合は片側右、最小値なら片側左、決められない場合は両側を選びます。迷ったときは両側です。片側は、検定の前から「大きいほうにしか外れ値は出ない」と言い切れる根拠があるときにだけ使う選択肢です。

外れ値の検定の計算過程(理論説明)

XLSTAT を使えば簡単に実行できますが、裏側でどのような計算が行われているかを知っておくと、結果の理解が深まります。


事例:8回繰り返した測定値

ある試料を8回測定し、10.1、10.3、10.2、10.4、10.2、10.3、10.1、12.4 という値が得られたとします(単位は省略)。最後の12.4 だけが飛び離れています。


ステップ1:平均と標準偏差を求める

グラブス検定は「平均からどれだけ離れているか」を測る手法なので、まず基準となる平均と、ばらつきの大きさを表す標準偏差を求めます。平均は、8個の値の合計84.0 を個数の8 で割った10.5 です。標準偏差は、各値が平均からどれくらい離れているかをひとつの数値にまとめたもので、次の順序で計算します。

はじめに、各値と平均10.5 との差を求め、それぞれを二乗します。8個分を合計すると4.20 になります。次に、この4.20 を「データの個数から1 を引いた数」、つまり 8 − 1 = 7 で割ります。個数の8 ではなく1 を引いた7 で割るのは、手元の8個が母集団そのものではなく、そこから抜き出した標本だからです。標本から計算したばらつきは実際より小さめに出る性質があるため、1 を引くことでその偏りを補正します。こうして得られた 4.20 ÷ 7 = 0.6 が分散です。最後に、分散0.6 の平方根をとった0.775 が標準偏差です。差を二乗して計算を進めてきた分を、元のデータと同じ単位に戻す操作にあたります。


ステップ2:グラブス検定の G 統計量を求める

平均から最も離れた値の距離を標準偏差で割ります。12.4 と平均との差は1.9 ですので、G = 1.9 ÷ 0.775 = 2.453 です。「12.4 は平均から標準偏差2.453 個分だけ離れている」という意味の数値です。


ステップ3:ディクソン検定の R 統計量を求める

ディクソン検定は平均も標準偏差も使いません。小さい順に並べると 10.1、10.1、10.2、10.2、10.3、10.3、10.4、12.4 となり、最大値とその隣との隙間(12.4 − 10.4 = 2.0)がデータ全体の幅(12.4 − 10.1 = 2.3)に占める割合を計算します。R = 2.0 ÷ 2.3 = 0.870 で、「全体の広がりの87% が最後の1点だけのために使われている」という意味になります。


ステップ4:臨界値と比べて判定する

有意水準5%・両側・n = 8 の場合、グラブス検定の臨界値は2.127 です。G = 2.453 はこれを上回るため「12.4 は外れ値である」と判定されます。ディクソン検定の臨界値は、XLSTAT がモンテカルロ法(乱数を大量に発生させて分布を求める方法)で計算します。

【注意】

ステップ1で求めた標準偏差0.775 には、疑わしい12.4 自身が含まれています。つまりグラブス検定は、外れ値によって膨らんだものさしでその外れ値を測っていることになります。この性質があるため、外れ値が2つ以上あると、その2点自身がものさしを押し広げてしまい、広がったものさしで測ると2点ともふつうの範囲に見えて、どちらも検出されないことがあります。2つ用の検定が用意されているのも同じ理由によります。

外れ値の検定を実行するためのデータセット

計算のイメージがつかめたところで、次は実際のデータとXLSTAT を使って、もっと大量のデータを分析してみましょう。


事例:101 回の測定で得られた誤差データ

ある測定を101 回繰り返して得られた誤差の記録を使用します。Data シートのA 列に変数名 Data として101 行が入力されており、値は0 を中心にプラスマイナス数程度でばらついていますが、その中に1つだけ 15 という桁違いの値が混じっています。この15 が測定装置の不調や記録ミスによる異常値なのか、それとも本来含まれうるばらつきの一部なのかを、2つの検定で確かめます。

サンプルデータのダウンロードはこちらから

dataset-for-outlier-test.zip

外れ値の検定を実行する手順

  1. XLSTAT を起動し、[仮説を検定] > [外れ値の検定] > [外れ値に関するGrubbs検定] を選択します。

  2. [外れ値に関するGrubbs検定] ダイアログボックスが表示されたら、[一般] タブで以下の設定をします。

    • データ:Data シート上のデータ範囲を選択
    • 列ラベル:列名を含めてデータを選択した場合は、チェックを入れる
  3. 同じ [一般] タブで、実行する検定を選びます。外れ値が1つ疑われる場合は [Grubbs 検定]、2つ疑われる場合は [ダブルGrubbs検定] です。今回は [Grubbs 検定] を選びます。

  4. [オプション] タブに切り替え、以下を設定します。

    • 対立仮説:両側
    • 有意水準(%):5(初期値のままで構いません)
    • 繰り返し:[最大] を選び、値は1 のまま(初期値のままで構いません)
  5. [出力] タブで [記述統計] と [Zスコア] にチェックを入れます。Zスコアは各値が平均から標準偏差何個分離れているかを示す指標で、疑わしい値がほかにもないかの確認に使えます。[Zスコア] の下にある [限界を表示] にチェックを入れ、alpha1 に0.05 を指定しておくと、後述するグラフに有意水準0.05 に対応する限界線が点線で描かれます。なお [修正済み] にチェックを入れると、中央値を使った修正Zスコアに切り替わります。


    【補足】ディクソン検定を実行する場合

    ディクソン検定を実行する場合は、[仮説を検定] > [外れ値の検定] > [外れ値に関するDixon検定] を選択します。異なるのは2か所です。1つ目は [一般] タブで、検定の種類ではなく テスト統計 を指定する点です。[自動] を選べば、XLSTAT がサンプルサイズに応じて R10 〜 R22 の6種類から適切な統計量を選びます。特定の統計量を使いたい場合は [ユーザー定義] を選び、右側のドロップダウンから選択します。

    2つ目は [オプション] タブに 臨界値 / p値 の欄があり、モンテカルロ法のシミュレーションの数(既定1000000)と最大時間(既定180 秒)を指定できる点です。いずれも既定のままで十分な精度が得られます。 

  6. [OK] ボタンをクリックすると計算が始まり、結果が別シート(Grubbs 検定 / Dixon 検定)に出力されます。

外れ値の検定の結果の解釈

記述統計

結果の最初には「記述統計」の表が出力されます。検定の結果を確認する前に、「分析対象のデータに間違いがないか」「どのような特徴があるか」をざっと把握するために使います。

今回はオブザベーション101、欠損値を持つObs. 0、最小 −6.739、最大 15.000、平均 0.072、標準偏差 3.102 となっています。注目すべきは最小値と最大値の非対称さです。最小値は平均から約6.8 しか離れていないのに対し、最大値は約14.9 も離れており、左右対称であるはずの正規分布のデータとしては不自然です。


グラブス検定の結果

グラブス検定の結果は G(観測値)= 4.813、G(臨界値)= 3.387、p値(両側)< 0.0001 となりました。有意水準(α)は0.05 です。G の4.813 は、平均から最も離れた値が標準偏差4.813 個分だけ離れていることを示しており、臨界値3.387 を上回っています。

p値の「< 0.0001」は、「外れ値は含まれていないと仮定したとき、これほど離れた値が偶然現れる確率が0.01% 未満である」ことを示しています。判断基準は有意水準0.05 です。p値が0.05 を下回っているため、帰無仮説H0 が棄却され、対立仮説Ha が採択されます。XLSTAT の「検定の解釈」欄にも次のように表示されます。

H0: データ中には外れ値がありません。 Ha: 最小値または最大値が外れ値です。 計算されたp値が有意水準α=0.05より低く、帰無仮説H0は棄却され、対立仮説Haが採択されます。

元の問いの言葉に戻せば、「101 回の測定に混じっていた 15 という値は、この測定のばらつきでは説明がつかない異質な値である」という結論です。続く「はずれ値」の表にも、数値 15、G 4.813、p値 < 0.0001 として、この1件だけが挙げられています。


p値が有意水準を上回った場合の読み方

p値が0.05 を上回った場合、XLSTAT の「検定の解釈」欄には「帰無仮説H0は採択されます」といった表現が出ることがありますが、これは「H0 を棄却できなかった」という意味であり、「外れ値が存在しないことが証明された」という意味ではありません。統計的仮説検定は帰無仮説が正しいことを積極的に証明する力を持っていません。報告の際は「外れ値は検出されなかった」という、検定が示した内容そのままの表現を用いてください。


ディクソン検定の結果

同じデータに [自動] でディクソン検定を実行すると、統計量として R22 が選ばれ、R22 = 0.463、R22(臨界値)= 0.283、p値 < 0.0001 となりました。p値が0.05 を下回っているため、こちらも「外れ値が含まれている」という判定です。

ただし「はずれ値」の表には、6.494 と 15.000 の2件が並んでいます。R22 は2つの外れ値を検出するための統計量であるため、最大値だけでなく2番目に大きい値もまとめて判定されています。なお、ディクソン検定の出力には「検定の解釈」の文章は表示されず、記述統計・はずれ値・Zスコアの3つの表のみが出力されます。


2つの検定の結果が食い違ったときの考え方

同じデータでありながら、グラブス検定は「15 の1件」、ディクソン検定は「6.494 と 15 の2件」と、外れ値の個数について異なる結論を出しました。このようなとき、どちらが正しいかを決めようとするのは適切ではありません。両者は「何を外れ値の候補として想定したか」が違うだけだからです。

見るべきは3点です。1つ目は、両方で共通して挙げられた値です。今回は 15 が両方で挙がっており、この値が異質であることに疑いの余地はありません。2つ目は、片方でしか挙がらなかった値の性質です。6.494 のZスコアは2.070 であり、100 件規模のデータで±1.96 を超える値が数件あるのはむしろ自然です。3つ目は、設定が状況と合っていたかです。今回は [自動] により2つの外れ値を想定する R22 が選ばれましたが、疑わしい点が1つだと分かっているなら、1つ用の統計量を [ユーザー定義] で指定するほうが実態に合っています。食い違いはデータについての情報が増えたと捉え、両方で挙がった値は根拠が強い、片方だけの値は保留にして目視確認に回す、と進めるのが現実的です。


Zスコアとグラフ

[出力] タブで [Zスコア] にチェックを入れると、全観測値のZスコアの表と棒グラフが出力され、表では外れ値が太字で示されます。

グラフでは有意水準0.05 に対応する限界(±1.96)の位置に点線が引かれ、それを超える棒だけが色を変えて表示されるため、どの観測値がどれだけ突出しているかが一目でわかります。右端にある 15 のZスコア4.813 が点線をはるかに超えて突き抜けている一方、6.494 の2.070 と −6.739 の−2.196 は点線をわずかに超えた程度であることが視覚的に確認でき、検定の数値が示した結論とグラフの見た目が一致していることを確かめられます。なお、Zスコアが±1.96 を超えたからといって、それだけで外れ値と決めることはできません。100 個の値があれば、この範囲の外に5 個程度あるのが統計的にはむしろ正常だからです。Zスコアは候補を目で探すための補助的な指標として使ってください。

外れ値と判定されたあとにすべきこと

検定の結果は「削除してよい」という意味ではない

検定が「外れ値です」と示したことは、「ほかの値と同じばらつきでは説明できない」という統計的な事実を述べているだけであり、削除の許可ではありません。分かれ目はその値が生じた理由を説明できるかどうかです。読み取りミス、単位の取り違え、入力ミス、実験中の明らかな事故といった原因が特定できるなら除外の根拠になりますが、原因が特定できない場合、その値は実際に起こりうる現象を捉えた貴重な記録である可能性があります。


除外した場合は必ず報告する

外れ値を除外して分析を進める場合は、除外した事実、その根拠、除外前と除外後の両方の結果を必ず報告するようにします。「グラブス検定により1件(値15、G = 4.813、p < 0.0001)を外れ値と判定し、測定記録の確認で記入ミスと判明したため除外した」というように、第三者が追跡できる形で残すことが求められます。


検定を繰り返して次々に除外しない

同じデータに検定を何度も適用すると多重性の問題(第一種過誤:本当は正常な値を外れ値と誤判定してしまう確率の増大)が生じ、本来は正常な値まで外れ値と判定されやすくなります。1件除外するたびに平均と標準偏差が変わってばらつきが小さくなり、次に大きい値が相対的に目立つ、という連鎖が起きるためです。


正規分布の前提を先に確認する

グラブス検定とディクソン検定は、いずれもデータが正規分布に従うことを前提にしています。右に大きく歪んだ分布に適用すると、裾にある正常な値が次々に外れ値と判定されてしまいます。


目視での確認と必ず併用する

箱ひげ図やヒストグラムで分布の形と極端な値の位置を目で確かめる作業を必ず併用してください。外れ値が1つなのか複数なのか、どちら側に出ているのかが分かり、どの検定をどの設定で使うべきかの判断にも役立ちます。


外れ値の影響を受けにくい分析に切り替える

外れ値を残したまま分析を進めたい場合は、順位に基づいて計算するノンパラメトリック検定に切り替えるという選択肢があります。

まとめ

外れ値の検定は、極端な値を主観で処理するのではなく、「偶然では説明がつかない値かどうか」を客観的な数値で示すための手法です。グラブス検定は平均からの距離を標準偏差で測る手法でサンプルサイズの上限がなく、ディクソン検定は隣り合う値との間隔の比を見る手法で n ≤ 100 という上限があり小標本に向いています。どちらも正規分布を前提とし、1つ用と2つ用に分かれている点は共通です。そして、外れ値と判定されたことは削除の許可ではありません。除外する場合は根拠と除外前後の結果を報告するようにしましょう。

XLSTAT を使えば、使い慣れたExcel 上で2つの検定を同じデータに適用し、統計量・臨界値・p値・Zスコアのグラフまで一度に出力できます。結果を並べて比較できるため、極端な値の扱いについて根拠を持って判断できるようになります。

参考文献

XLSTAT の無料トライアルについて

トライアルでは、最上位パッケージ XLSTAT Advanced に加え、3D Plot と LatentClass のオプションもご利用いただけます。本記事で紹介した外れ値の検定はすべてのライセンスでご利用いただけます。

無料トライアルを申し込む

*トライアルは登録完了日に開始され、有効期間は14日間です。トライアルを更新または延長することはできません。

学術ポスター制作ツール ポサコ

テンプレートを選んで内容を入力するだけ。共同編集やグラフ作成機能も搭載し、学会品質のポスターを短時間で作成できます。

無料で試してみる →
ユサ株式会社
ソフトウェア
図書館システム
関連サイト