Menu

A/B-Test Peeking-Simulator

Zweitausend Tests, in denen A und B dieselbe Seite sind, auf deinem Traffic. Sieh, wie viele davon ein täglicher Gucker zum Gewinner erklärt hätte, und wie viele dieselben Tests jemandem vormachen, der auf das Enddatum wartet.

Von Nethanel Bar, Co-founder & CEO

Zuletzt aktualisiert

Bereit, wirklich programmieren zu lernen?

Coddy bringt es dir bei, indem du echten Code im Browser schreibst: interaktive Lektionen, sofortiges Feedback und KI-Hilfe, wenn du feststeckst.

Die teuerste Angewohnheit im A/B-Testing, simuliert auf deinen Zahlen

So sieht die Angewohnheit aus. Du startest einen Test und öffnest jeden Morgen das Dashboard. Der Balken kriecht hoch, sackt ab, kriecht wieder hoch, und an einem Dienstag überschreitet er 95 %. Du rufst es aus, lieferst den Gewinner aus und machst weiter. Das Problem ist, dass ein p-Wert wandert. Bei einem Test, in dem die zwei Varianten identisch sind, unterschreitet der p-Wert an manchen Tagen trotzdem zufällig 0,05; er kommt nur später wieder zurück. Beim ersten Unterschreiten zu stoppen heißt, ihn auf dem Weg hindurch zu erwischen, und das Konfidenzniveau, das du zu haben glaubtest, ist weg.

Die Größe des Effekts überrascht Leute. Bei 95 % Konfidenz täuscht dich ein Test, der einmal am Ende gelesen wird, etwa einmal in zwanzig Fällen, und das ist der Deal, den du unterschrieben hast. Lies denselben Test vier Wochen lang jeden Tag und stoppe am ersten grünen Tag, und der Simulator zeigt typischerweise einen Scheingewinner in einem Viertel oder mehr der Tests, in denen sich nichts geändert hat. Evan Millers ursprünglicher Artikel bezifferte es für einen täglichen Gucker auf über 20 %; Optimizely baute 2015 seine Statistik-Engine neu, weil die Falsch-Positiv-Rate seiner Kunden darüber geklettert war. Wöchentlich statt täglich nachzusehen halbiert den Schaden ungefähr, beseitigt ihn aber nicht.

Die Simulation hier ist ehrlich darüber, was sie ist: Jeder Test zieht Conversions mit der wahren Rate für beide Arme, rechnet bei jedem Blick den gewöhnlichen z-Test für zwei Anteile auf allem, was bis dahin gesammelt wurde, und hält fest, wo ein Gucker stoppen würde. Jeder Pfad im Diagramm ist ein Test; jeder Punkt ist ein Morgen, an dem jemand ein Ergebnis verkündet hätte. Setze den echten Lift auf +10 %, um die andere Hälfte der Geschichte zu sehen: Der Gucker erwischt einen echten Effekt früh, aber mit übertriebenem Lift, und hätte genauso eifrig "gewonnen", wenn der Effekt null gewesen wäre.

Was die Simulation zeigt

  • Der p-Wert ist ein Zufallspfad. Unter der Nullhypothese ist er bei jedem einzelnen Blick gleichverteilt, das heißt, an jedem beliebigen Morgen liegt er mit 5 % Wahrscheinlichkeit unter 0,05. Über achtundzwanzig Morgen summieren sich diese Chancen.
  • Die Falsch-Positiv-Rate hängt davon ab, wie oft du hinschaust, nicht davon, wie lange der Test läuft. Ein vierwöchiger Test, der wöchentlich gelesen wird, täuscht seltener als ein zweiwöchiger, der täglich gelesen wird.
  • Frühe Stopps überschätzen den Lift. Wenn ein Gucker an einem Glückstag stoppt, ist der beobachtete Lift an diesem Tag per Definition ungewöhnlich groß. Ausgelieferte Gewinner, die nach dem Launch "verblasst" sind, waren oft genau das.
  • Die Lösung ist entweder Disziplin oder ein anderer Test. Disziplin: Stichprobengröße und Enddatum vorab festlegen und einmal lesen. Ein anderer Test: Sequentielle Methoden, wie die immer gültigen p-Werte, die Optimizely, Statsig und Eppo verwenden, sind dafür gebaut, kontinuierlich gelesen zu werden, zum Preis einer größeren Stichprobe.
  • Bayessche Dashboards sind nicht immun. Eine Wahrscheinlichkeit, die beste zu sein, die täglich geprüft und an einer Schwelle in eine Entscheidung verwandelt wird, hat dasselbe Problem in anderem Kostüm.

So benutzt du den Simulator

  1. Conversion-Rate und tägliche Besucher eingeben

    Die Simulation zieht Conversions mit deiner echten Rate, damit das Wandern des p-Werts dem Rauschen entspricht, das du tatsächlich sehen würdest.

  2. Geplante Länge setzen und wie oft du hinschaust

    Täglich, alle drei Tage oder wöchentlich. Der Abstand zwischen der Rate des Guckers und der ehrlichen Rate ist der Preis dieser Angewohnheit.

  3. Echten Lift auf keiner lassen

    Das macht jeden Test zu einem A/A-Test: Jeder Gewinner ist per Konstruktion ein Fehlalarm. Wechsle danach auf +10 % oder +30 %, um den Gucker bei einem echten Effekt zu sehen.

  4. Die zwei großen Zahlen lesen

    Die Rate des Guckers ist, wie oft der tägliche Prüfer einen Gewinner ausgerufen hat. Die Enddatum-Rate sollte nahe dem Alpha liegen, das du gewählt hast; wenn ja, tut der ehrliche Test, was er versprochen hat.

  5. Noch einmal laufen lassen

    Jeder Durchlauf zieht neue zufällige Tests. Die Raten bewegen sich ein wenig; der Abstand nicht.

Typische Falsch-Positiv-Raten bei A/A-Tests

Bei 95 % Konfidenz wird ein ehrliches Lesen am Ende in etwa 5 % der Fälle getäuscht. Grobe Werte aus der Simulation und der Literatur für einen Gucker, der beim ersten signifikanten Blick stoppt.

Wie oft du hinschaustBlicke in 4 WochenScheingewinner
Einmal, am Ende1etwa 5 %
Wöchentlich4etwa 10 bis 13 %
Alle 3 Tage9 bis 10etwa 15 bis 20 %
Täglich28etwa 25 bis 30 %
Täglich über 12 Wochen84über 35 %

Drei Angewohnheiten, simuliert

Der tägliche Prüfer

5 % Conversion, 1.000 Besucher am Tag, 28 Tage, jeden Morgen geprüft. In unserem Durchlauf: Der Gucker rief in etwa 28 % von 2.000 A/A-Tests einen Gewinner aus; einmal am Ende gelesen: 4,5 %.

Sechsmal so viele Fehlalarme, bei einem Test, der sich sorgfältig anfühlte, weil ihn jemand jeden Tag beobachtet hat. Die Hälfte dieser "Gewinner" krönte B und die andere Hälfte A, weil es nichts zu finden gab.

Der wöchentliche Prüfer

Gleicher Traffic, gleiche Länge, einmal pro Woche geprüft. In unserem Durchlauf: etwa 12 % für den Gucker gegenüber 5 % am Ende.

Viermal statt achtundzwanzigmal hinzuschauen hilft viel und liegt trotzdem noch über dem Doppelten der versprochenen Rate. Es gibt keine Anzahl von Blicken außer einem, die das Versprechen hält.

Ein echter Lift von +10 %

Setze den echten Lift von B auf +10 % bei gleichem Traffic. Der ehrliche Test hat nach 28 Tagen bei diesem Traffic nur begrenzte Power für einen so kleinen Lift; der Gucker stoppt öfter früh, an den Glückstagen.

Das ist der verführerische Fall: Der Gucker scheint Dinge schneller zu finden. Aber die Tage, an denen er stoppt, sind die Tage, an denen der Lift am größten aussah, also ist die ausgelieferte Schätzung aufgebläht, und dieselbe Angewohnheit hätte mit Lift null auch einen "Gewinner" gefunden.

Peeking-Fehler

  • Am ersten signifikanten Morgen stoppen. Darum geht es auf dieser ganzen Seite. Das Konfidenzniveau bedeutet nur dann, was es sagt, wenn du das Ergebnis einmal liest.
  • Einen Test verlängern, der "fast da" ist. Länger laufen zu lassen, weil das Ergebnis beinahe signifikant ist, ist Peeking rückwärts und bläht die Falsch-Positiv-Rate genauso auf.
  • Täglich nachsehen, "nur um sicherzugehen, dass nichts kaputt ist". Nach Bugs zu schauen ist in Ordnung; auf den p-Wert zu schauen nicht. Schau auf Traffic-Split und Fehlerraten, nicht auf den Lift, bis zum Enddatum.
  • Glauben, ein bayessches Dashboard mache Peeking sicher. Auf eine Wahrscheinlichkeitsschwelle zu reagieren, die du täglich prüfst, hat dieselbe Aufblähung.
  • Den Lift vom Tag des Stopps berichten. Wenn du früh stoppen musst, berichte das Intervall und rechne damit, dass der wahre Lift kleiner ist als die Punktschätzung.

FAQ zum Peeking

Was ist das Peeking-Problem beim A/B-Testing?
Einen Test mit festem Horizont wiederholt zu lesen und beim ersten Mal zu stoppen, wenn er signifikant aussieht. Weil der p-Wert schwankt, während Daten hereinkommen, ist jeder Blick eine weitere Chance, die Schwelle zufällig zu überschreiten. Ein Test, der einen Monat lang täglich bei 95 % Konfidenz gelesen wird, erzeugt in ungefähr einem Viertel der Fälle einen Scheingewinner, obwohl sich nichts geändert hat, statt der 5 %, die das Konfidenzniveau verspricht.
Ist es falsch, meinen Test vor dem Ende anzuschauen?
Anschauen ist in Ordnung; handeln ist das Problem. Prüfe, dass der Traffic gleichmäßig aufgeteilt wird, dass beide Varianten laden und dass Conversions erfasst werden. Lies weder Lift noch Konfidenz, und lass das Gesehene das Enddatum in keine Richtung verändern.
Wie A/B-teste ich, wenn ich kontinuierlich nachsehen will?
Nimm eine sequentielle Methode. Immer gültige p-Werte, gruppensequentielle Designs und Ähnliches sind dafür gebaut, jederzeit gelesen zu werden; sie bezahlen dafür mit einer größeren Stichprobe bei gleicher Power. Die meisten modernen Plattformen bieten eine an. Dieser Simulator modelliert den klassischen Test mit festem Horizont, weil das ist, was die meisten Tabellen- und Dashboard-Rechnungen sind, die anderen Tabs dieser Seite eingeschlossen.
Spielt Peeking eine Rolle, wenn ich wöchentlich nachsehe?
Weniger, aber ja. Vier Blicke über vier Wochen bei 95 % verdoppeln die Falsch-Positiv-Rate typischerweise. Die einzige Anzahl von Blicken, die die versprochene Rate hält, ist einer.
Warum verwendet der Simulator A/A-Tests?
Weil bei identischen Armen jeder Gewinner per Konstruktion ein Fehlalarm ist, sodass die Rate, die der Simulator meldet, genau die Falsch-Positiv-Rate der simulierten Angewohnheit ist. Einen echten Lift einzuschalten zeigt die andere Seite, wo der Gucker an Glückstagen früh stoppt und einen aufgeblähten Effekt berichtet.
Löst ein bayesscher Test das Peeking-Problem?
Nicht von allein. Eine bayessche Wahrscheinlichkeit, die kontinuierlich gelesen und an einer festen Schwelle in eine Entscheidung verwandelt wird, bläht Fehlentscheidungen auf dieselbe Weise auf, wie Georgi Georgiev und andere gezeigt haben. Bayessche Methoden mit einer sauberen Entscheidungsregel und einem Prior können sich unter kontinuierlicher Beobachtung gut verhalten, aber "bayessch" allein ist nicht die Lösung.

Weitere Entwickler-Tools

Illustration der Programmiersprachen bei Coddy

Lerne mit Coddy zu programmieren

LOS GEHT'S