Warum ist es falsch, einen A / B-Test abzubrechen, bevor die optimale Stichprobengröße erreicht ist?

13

Ich bin dafür verantwortlich, die Ergebnisse von A / B-Tests (die auf Website-Variationen ausgeführt werden) in meinem Unternehmen zu präsentieren. Wir führen den Test einen Monat lang durch und überprüfen dann die p-Werte in regelmäßigen Abständen, bis wir die Signifikanz erreichen (oder geben auf, wenn die Signifikanz nach längerer Durchführung des Tests nicht erreicht wird). Ich finde jetzt heraus, dass dies eine falsche Praxis ist .

Ich möchte diese Praxis jetzt beenden, aber um dies zu tun, möchte ich verstehen, WARUM dies falsch ist. Ich verstehe, dass die Effektgröße, die Stichprobengröße (N), das Alpha-Signifikanzkriterium (α) und die statistische Leistung oder das gewählte oder implizierte Beta (β) mathematisch zusammenhängen. Aber was genau ändert sich, wenn wir unseren Test beenden, bevor wir die erforderliche Stichprobengröße erreichen?

Ich habe hier einige Beiträge gelesen (nämlich dies , dies und das ), und sie sagen mir, dass meine Schätzungen voreingenommen wären und die Rate meines Typ-1-Fehlers dramatisch ansteigt. Aber wie passiert das? Ich suche nach einer mathematischen Erklärung , die die Auswirkungen der Stichprobengröße auf die Ergebnisse deutlich macht. Ich denke, es hat etwas mit den Beziehungen zwischen den oben genannten Faktoren zu tun, aber ich konnte die genauen Formeln nicht herausfinden und sie selbst herausarbeiten.

Zum Beispiel erhöht ein vorzeitiges Stoppen des Tests die Fehlerrate von Typ 1. In Ordung. Aber wieso? Was passiert, um die Fehlerrate von Typ 1 zu erhöhen? Mir fehlt hier die Intuition.

Hilfe bitte.

sgk
quelle
1
könnte nützlich sein evanmiller.org/how-not-to-run-an-ab-test.html
seanv507
1
Ja, ich bin über diesen Link gegangen, aber ich habe das gegebene Beispiel einfach nicht verstanden.
SGK
Entschuldigung Gopalakrishnan - hatte nicht gesehen, dass Ihr erster Link bereits darauf hinwies.
Seanv507
1
Können Sie erklären, was Sie nicht verstehen? Die Mathematik / Intuition scheint ziemlich klar zu sein: Es wird nicht so sehr vor der erforderlichen Stichprobengröße angehalten, sondern wiederholt überprüft. , sodass Sie einen Test, der für einzelne Prüfungen ausgelegt ist, nicht mehrmals verwenden können. P(i1Nxi>θ)P(xN>θ)
Seanv507
@ GopalakrishnanShanker mathematische Erklärung in meiner Antwort gegeben
Tomka

Antworten:

4

A / B-Tests, die einfach wiederholt dieselben Daten mit einem festen Typ-1-Fehler ( ) testen, sind grundlegend fehlerhaft. Dafür gibt es mindestens zwei Gründe. Zunächst werden die wiederholten Tests korreliert, die Tests werden jedoch unabhängig voneinander durchgeführt. Zweitens berücksichtigt das feste α nicht die mehrfach durchgeführten Tests, die zu einer Typ-1-Fehlerinflation führen.αα

Um die erste zu sehen, nehmen Sie an, dass Sie bei jeder neuen Beobachtung einen neuen Test durchführen. Es ist klar, dass zwei nachfolgende p-Werte korreliert werden, da sich Fälle zwischen den beiden Tests nicht geändert haben. Folglich sehen wir in @ Bernhards Diagramm einen Trend, der diese Korrelation von p-Werten zeigt.n1

Um das zweite zu sehen, stellen wir fest, dass selbst wenn Tests unabhängig sind, die Wahrscheinlichkeit, einen p-Wert unter zu haben, mit der Anzahl der Tests t P ( A ) = 1 - ( 1 - α ) t zunimmt , wobei A das Ereignis von ist eine fälschlicherweise abgelehnte Nullhypothese. Die Wahrscheinlichkeit, mindestens ein positives Testergebnis zu haben, geht also gegen 1αt

P(A)=1(1α)t,
A1wie du wiederholt a / b testest. Wenn Sie dann nach dem ersten positiven Ergebnis einfach aufhören, haben Sie nur die Richtigkeit dieser Formel gezeigt. Anders ausgedrückt, selbst wenn die Nullhypothese wahr ist, werden Sie sie letztendlich ablehnen. Der a / b-Test ist somit der ultimative Weg, um Effekte zu finden, bei denen es keine gibt.

Da in dieser Situation sowohl die Korreliertheit als auch der Mehrfachtest gleichzeitig gelten, hängt der p-Wert des Tests vom p-Wert von t ab . Wenn Sie also endlich ein p < α erreichen , bleiben Sie wahrscheinlich eine Weile in dieser Region. Sie können dies auch in @ Bernhards Grundstück in der Region von 2500 bis 3500 und 4000 bis 5000 sehen.t+1tp<α

α

P(A)α.

Die wohl bekannteste Einstellung (aufgrund ihrer Einfachheit) ist Bonferroni. Hier setzen wir

αadj=α/t,
P(A)αP(A)<α0.05

(0,0.1)α=0.05

Geben Sie hier die Bildbeschreibung ein

Wie wir sehen können, ist die Anpassung sehr effektiv und zeigt, wie radikal wir den p-Wert ändern müssen, um die familienbezogene Fehlerrate zu steuern. Insbesondere finden wir jetzt keinen signifikanten Test mehr, wie es sein sollte, weil die Nullhypothese von @ Berhard wahr ist.

P(A)α


Hier ist der Code:

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")
Tomka
quelle
2
Das funktioniert bei mir. Ich muss dies in geschäftliches Sprechen übersetzen, um meinen Senioren jetzt meinen Standpunkt zu vermitteln, aber das ist mein eigenes Problem. Vielen Dank
sgk
8

Wenn die Nullhypothese wahr ist, erwarten die Leute oft, dass der p-Wert sehr hoch ist. Das ist nicht wahr. Wenn die Nullhypothese wahr ist, ist p eine gleichmäßig verteilte Zufallsvariable. Das bedeutet, dass von Zeit zu Zeit nur zufällig unter 0,05 liegt. Wenn Sie sich viele verschiedene Unterproben ansehen, liegt der p-Wert manchmal unter 0,05.

Um dies leichter verständlich zu machen, finden Sie hier eine kleine Simulation in R:

Dies wird 10.000 Mal eine Münze werfen und wir wissen, es ist eine faire Münze:

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

Ab dem 5. Wurf wird nach jedem Wurf ein Binomialtest auf Fairness durchgeführt und die p-Werte gespeichert:

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

Und dies wird die p-Werte nacheinander darstellen:

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

Geben Sie hier die Bildbeschreibung ein

H0H0

(Um vollkommen offen zu sein, habe ich mehr als einen Startwert für den Zahlengenerator ausprobiert, bevor dies so klar war wie in diesem Beispiel, aber das ist für Bildungszwecke fair. Wenn Sie Rinstalliert haben und ausgeführt werden, können Sie problemlos mit den Zahlen spielen .)

Bernhard
quelle
Danke für das einfache Experiment. Angenommen, ich habe den Test in einem solchen Stadium abgebrochen (wenn der p-Wert <0,05 ist). Was bedeuten meine Ergebnisse? (außer der Tatsache, dass es falsch ist). Kann ich dies durch Verringern der p-Wert-Schwelle kompensieren?
SGK
+1 Beachten Sie die korrelierten Tests und das damit verbundene Problem mit mehreren Tests. Siehe meine erweiterte Antwort mit Anpassungsoptionen unten, basierend auf Ihrem (sehr guten) Beispiel.
Tomka
αα
Mein Hauptpunkt ist die Kontrolle der FWER-Rate (Family Wise Error) oder der FDR-Rate (False Discovery Rate), die beide auf Fehler vom Typ 1 abzielen. Die Kontrolle von Typ-2-Fehlern ist bei A / B-Tests aufgrund normalerweise sehr großer Stichproben weniger problematisch.
Tomka
@GopalakrishnanShanker wenn du beim ersten angehalten hast p=0,05es bedeutet, dass Sie ein falsches Positiv haben. Siehe Antwort unten, auch für eine Anpassung
Tomka