タイプ1のエラー()レベルが固定された同じデータを単純に繰り返しテストするA / Bテストには、根本的な欠陥があります。これには、少なくとも2つの理由があります。まず、繰り返されるテストは相関していますが、テストは独立して行われます。第2に、固定されたは、タイプ1のエラーインフレにつながる多重実行テストを考慮していません。ααα
最初のものを見るには、新しい観察ごとに新しいテストを実施するとします。明らかに2つの後続のp値は相関します。これは、2つのテスト間でケースが変化していないためです。その結果、@ Bernhardのプロットには、p値のこの相関性を示す傾向が見られます。n − 1
第二のを見るために、我々は、テストは以下のp値を有する確率独立している場合でもことに注意テストの数と共に増加あると誤って拒否された帰無仮説のイベント。したがって、a / bテストを繰り返し実行すると、少なくとも1つの陽性テスト結果が得られる確率はに反します。その後、最初の肯定的な結果の後で単純に停止すると、この式の正確さだけが表示されます。言い換えると、帰無仮説が真実であっても、最終的にはそれを拒否します。したがって、A / Bテストは、効果がない場合の効果を見つけるための究極の方法です。T P (A )= 1 - (1 - α )T、A 1αt
P(Aが)= 1 - (1 - α )t、
あ1
この状況では、相関と複数の検定の両方が同時に成立するため、検定のp値は p値に依存します。したがって、最終的にに達した場合、しばらくこの領域に留まる可能性があります。これは、@ Bernhardのプロットで2500〜3500と4000〜5000の範囲で確認することもできます。t p < αt + 1tp < α
α
P(A )≤ α 。
αa dj= α / t 、
P(A )≈ α0.05P(A )< α0.05
Bonferroniをのシミュレーションに適用し、y軸の間隔にズームインすると、以下のプロットが見つかります。わかりやすくするために、コインフリップ(試用)ごとにテストするのではなく、100ごとにテストすることを想定しました。黒い破線は標準のカットオフで、赤い破線はBonferroni調整です。α = 0.05(0 、0.1 )α = 0.05
見てわかるように、調整は非常に効果的であり、家族ごとのエラー率を制御するためにp値をどのように根本的に変更する必要があるかを示しています。具体的には、@ Berhardの帰無仮説が真であることが原因であると考えられるため、重要なテストはもう見つかりません。
これを行った後、相関テストのため、ボンフェローニはこの状況では非常に保守的であることに注意します。置換テストなど、この状況でを持つという意味でより役立つ優れたテストがあります。また、ボンフェローニを単に参照するだけでなく、テストについて言うべきことがたくさんあります(たとえば、誤った発見率と関連するベイジアン手法を調べます)。それでも、これは最小限の数学であなたの質問に答えます。P(A )≈ α
これがコードです:
set.seed(1)
n=10000
toss <- sample(1:2, n, TRUE)
p.values <- numeric(n)
for (i in 5:n){
p.values[i] <- binom.test(table(toss[1:i]))$p.value
}
p.values = p.values[-(1:6)]
plot(p.values[seq(1, length(p.values), 100)], type="l", ylim=c(0,0.1),ylab='p-values')
abline(h=0.05, lty="dashed")
abline(v=0)
abline(h=0)
curve(0.05/x,add=TRUE, col="red", lty="dashed")