ディクソンの q テスト: 定義 + 例


Dixon の Q テスト(単にQ テスト)は、データ セット内の外れ値を検出するために使用される統計テストです。

Q テストの統計は次のとおりです。

Q = |x axb | /R

ここで、 x aは疑わしい外れ値、 x bは x aに最も近いデータ ポイント、 Rはデータセットの範囲です。ほとんどの場合、x aはデータセットの最大値ですが、最小値になることもあります。

Q テストは通常、小さなデータセットに対して実行され、データが正規分布していると仮定していることに注意することが重要です。 Q テストは特定のデータセットに対して 1 回だけ実行する必要があることに注意することも重要です。

ディクソン Q テストを手動で実行する方法

次のデータセットがあるとします。

1、3、5、7、8、9、13、25

標準的な 5 ステップの仮説検定手順に従って、ディクソンの Q 検定を手動で実行して、このデータ セットの最大値が外れ値であるかどうかを判断できます。

ステップ 1. 仮説を述べます。

帰無仮説 (H0): 最大値は外れ値ではありません。

対立仮説: (Ha): 最大値は外れ値です

ステップ 2. 使用する有意水準を決定します。

一般的な選択肢は 0.1、0.05、および 0.01 です。この例では、有意水準 0.05 を使用します。

ステップ 3. 検定統計量を見つけます。

Q = |x axb | /R

この場合、最大値は x a = 25、次に近い値は x b = 13、範囲は R = 25 – 1 = 24 です。

したがって、 Q = |25 – 13| / 24 = 0.5

次に、この検定統計量を重要な Q 検定値と比較できます。これは、さまざまなサンプル サイズ (n) および信頼水準について以下に示されています。

n 90% 95% 99%
3 0.941 0.970 0.994
4 0.765 0.829 0.926
5 0.642 0.710 0.821
6 0.560 0.625 0.740
7 0.507 0.568 0.680
8 0.468 0.526 0.634
9 0.437 0.493 0.598
10 0.412 0.466 0.568
11 0.392 0.444 0.542
12 0.376 0.426 0.522
13 0.361 0.410 0.503
14 0.349 0.396 0.488
15 0.338 0.384 0.475
16 0.329 0.374 0.463
17 0.320 0.365 0.452
18 0.313 0.356 0.442
19 0.306 0.349 0.433
20 0.300 0.342 0.425
21 0.295 0.337 0.418
22 0.290 0.331 0.411
23 0.285 0.326 0.404
24 0.281 0.321 0.399
25 0.277 0.317 0.393
26 0.273 0.312 0.388
27 0.269 0.308 0.384
28 0.266 0.305 0.380
29 0.263 0.301 0.376
30 0.260 0.290 0.372

サンプル数 8、信頼水準 95% の臨界値は0.526です。

ステップ 4. 帰無仮説を拒否するか、拒否しません。

検定統計量 Q (0.5) が臨界値 (0.526) より小さいため、帰無仮説を棄却できません。

ステップ 5. 結果を解釈します。

帰無仮説を棄却できなかったため、このデータセットでは最大値25 は外れ値ではないと結論付けます。

R でディクソンの Q テストを実行する方法

R の同じデータセットに対して Dixon の Q 検定を実行するには、外れ値ライブラリのdixon.test()関数を使用できます。この関数は次の構文を使用します。

dixon.test(データ、 、タイプ = 10、反対 = FALSE)

  • data:データ値の数値ベクトル
  • type: Q 統計検定を実行するために使用する式のタイプ。前述の式を使用するには、10 に設定します。
  • 反対: FALSE の場合、テストでは最大値が外れ値であるかどうかが判断されます。 TRUE の場合、テストでは最小値が外れ値であるかどうかが判断されます。これはデフォルトでは FALSE です。

: dixon.test() の完全なドキュメントはここで見つけてください。

次のコードは、ディクソンの Q 検定を実行して、データ セット内の最大値が外れ値であるかどうかを判断する方法を示しています。

 #load the outliers library
library(outliers)

#create data
data <- c(1, 3, 5, 7, 8, 9, 13, 25)

#conduct Dixon's Q Test
dixon.test(data, type = 10)

# Dixon test for outliers
#
#data:data
#Q = 0.5, p-value = 0.06913
#alternative hypothesis: highest value 25 is an outlier

結果から、検定統計量が Q = 0.5で、対応する p 値が0.06913であることがわかります。したがって、有意水準 0.05 では帰無仮説を棄却できず、 25は外れ値ではないと結論付けられます。これは手動で取得した結果に対応します。

コメントを追加する

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