最適なサンプルサイズに達する前にA / Bテストを停止するのはなぜ間違っているのですか?


13

私の会社では、A / Bテスト(ウェブサイトのバリエーションで実行)の結果を提示する責任があります。私たちは、私が今見つける午前何かがある、月のテストを実行し、その後、我々は有意に達し(または重要性を長時間テストを実行した後に到達されていない場合は放棄)まで定期的にp値を確認してください間違って練習

私は今、この習慣をやめたいのですが、そうするために、なぜこれが間違っているのかを理解したいと思います。効果サイズ、サンプルサイズ(N)、アルファ有意性基準(α)および統計的検出力、または選択または暗黙のベータ(β)が数学的に関連していることを理解しています。しかし、必要なサンプルサイズに達する前にテストを停止すると、正確に何が変わるのでしょうか。

私はここでいくつかの投稿(つまりthisthisthis)を読みましたが、私の推定には偏りがあり、Type 1エラーの発生率が劇的に増加します。しかし、それはどのようにして起こりますか?数学的説明、つまり、サンプルサイズが結果に与える影響を明確に示すものを探しています。上で述べた要因間の関係に関係していると思いますが、正確な式を見つけて自分で計算することはできませんでした。

たとえば、テストを途中で停止すると、タイプ1のエラー率が高くなります。よし。しかし、なぜ?タイプ1のエラー率を上げるとどうなりますか?ここでは直感が欠けています。

助けてください。


1
役に立つかもしれませんevanmiller.org/how-not-to-run-an-ab-test.html
seanv507

1
はい、私はこのリンクを通過しましたが、与えられた例を理解できませんでした。
sgk 2016年

Gopalakrishnan-ごめんなさい、あなたの最初のリンクがすでにそれを指しているのを見ていませんでした。
seanv507 2016年

1
わからないことを説明してもらえますか?数学/直感はかなり明確に見えます。必要なサンプルサイズの前にそれほど停止するのではなく、繰り返しチェックします。 なので、単一チェック用に設計されたテストを複数回使用することはできません。P(i1Nxi>θ)P(xN>θ)
seanv507 2016年

@GopalakrishnanShanker数学的説明が私の回答に示されています
tomka

回答:


4

タイプ1のエラー()レベルが固定された同じデータを単純に繰り返しテストするA / Bテストには、根本的な欠陥があります。これには、少なくとも2つの理由があります。まず、繰り返されるテストは相関していますが、テストは独立して行われます。第2に、固定されたは、タイプ1のエラーインフレにつながる多重実行テストを考慮していません。ααα

最初のものを見るには、新しい観察ごとに新しいテストを実施するとします。明らかに2つの後続のp値は相関します。これは、2つのテスト間でケースが変化していないためです。その結果、@ Bernhardのプロットには、p値のこの相関性を示す傾向が見られます。n1

第二のを見るために、我々は、テストは以下のp値を有する確率独立している場合でもことに注意テストの数と共に増加あると誤って拒否された帰無仮説のイベント。したがって、a / bテストを繰り返し実行すると、少なくとも1つの陽性テスト結果が得られる確率はに反します。その後、最初の肯定的な結果の後で単純に停止すると、この式の正確さだけが表示されます。言い換えると、帰無仮説が真実であっても、最終的にはそれを拒否します。したがって、A / Bテストは、効果がない場合の効果を見つけるための究極の方法です。T P A = 1 - 1 - α TA 1αt

P(A)=1(1α)t,
A1

この状況では、相関と複数の検定の両方が同時に成立するため、検定のp値は p値に依存します。したがって、最終的にに達した場合、しばらくこの領域に留まる可能性があります。これは、@ Bernhardのプロットで2500〜3500と4000〜5000の範囲で確認することもできます。t p < αt+1tp<α

α

P(A)α.

αadj=α/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")

2
これでうまくいきます。先輩に私のポイントを伝えるには、これをビジネススピーチに変換する必要がありますが、それは私自身の問題です。どうもありがとうございました
sgk 2016年

8

帰無仮説が真である場合、人々はしばしばp値が非常に高いことを期待します。本当じゃない。帰無仮説が真の場合、pは均一に分布する確率変数です。つまり、たまにランダムに0.05未満になるということです。多くの異なるサブサンプルを見ると、p値が0.05未満になることがあります。

それを理解しやすくするために、ここに小さなシミュレーションがありRます:

これはコインを10,000回投げますが、それは公正なコインです。

set.seed(1)
n=10000
toss <- sample(1:2, n, TRUE)

5回目のトスから始めて、これは各トス後に公平性の二項テストを実行し、p値を保存します。

p.values <- numeric(n)
for (i in 5:n){
     p.values[i] <- binom.test(table(toss[1:i]))$p.value
}

そして、これは次々とp値をプロットします:

plot(p.values, type="l")
abline(h=0.05)

ここに画像の説明を入力してください

H0H0

(完全にオープンにするために、この例のように明確になる前に、ナンバージェネレーターに複数のシードを試しましたが、それは教育目的には適しています。Rインストールして実行している場合は、簡単に数字を試すことができます。)


簡単な実験をありがとう。しかし、そのような段階(p値<0.05)でテストを停止したとすると、結果はどうなりますか?(それが間違っているという事実以外)。p値のしきい値を下げることで補正できますか?
sgk

+1相関テストと関連する複数のテストの問題に注意してください。(非常に良い)例に基づいて、以下の調整オプション付きの拡張回答を参照してください。
tomka 2016年

αα

私の主なポイントは、どちらもタイプ1のエラーをターゲットにして、Family wise Error(FWER)率またはFalse Discovery Rate(FDR)を制御することです。タイプ2エラーの制御は、通常非常に大きなサンプルのため、A / Bテストではそれほど問題になりません。
tomka

p=0.05
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.