Wie kann man in einer Potenzanalyse mit zwei unabhängigen Anteilen eine Stoppregel entwickeln?


18

Ich bin ein Softwareentwickler, der an A / B-Testsystemen arbeitet. Ich habe keinen soliden Hintergrund für Statistiken, habe aber in den letzten Monaten Wissen gesammelt.

In einem typischen Testszenario werden zwei URLs auf einer Website verglichen. Ein Besucher besucht LANDING_URLund wird dann nach dem Zufallsprinzip an URL_CONTROLoder weitergeleitet URL_EXPERIMENTAL. Ein Besucher stellt eine Stichprobe dar, und eine Siegbedingung wird erreicht, wenn der Besucher auf dieser Site eine wünschenswerte Aktion ausführt. Dies stellt eine Umwandlung dar und der Umrechnungskurs ist der Umrechnungskurs (in der Regel als Prozentsatz ausgedrückt). Eine typische Conversion-Rate für eine bestimmte URL liegt im Bereich von 0,01% bis 0,08%. Wir führen Tests durch, um festzustellen, wie neue URLs mit alten URLs verglichen werden. Wenn URL_EXPERIMENTALauf outperform gezeigt wird URL_CONTROL, ersetzen wir URL_CONTROLmit URL_EXPERIMENTAL.

Wir haben ein System unter Verwendung einfacher Hypothesentesttechniken entwickelt. Ich habe die Antworten auf eine andere CrossValidated-Frage hier verwendet , um dieses System zu entwickeln.

Ein Test ist wie folgt aufgebaut:

  • Der geschätzte Umrechnungskurs CRE_CONTROLvon URL_CONTROLwird anhand historischer Daten berechnet.
  • Die gewünschte Ziel-Conversion-Rate CRE_EXPERIMENTALvon URL_EXPERIMENTALwird eingestellt.
  • Typischerweise wird ein Signifikanzniveau von 0,95 verwendet.
  • Typischerweise wird eine Potenz von 0,8 verwendet.

Zusammen werden alle diese Werte verwendet, um den gewünschten Stichprobenumfang zu berechnen. Ich benutze die R-Funktion power.prop.test, um diese Stichprobengröße zu erhalten.

Ein Test wird ausgeführt, bis alle Proben gesammelt wurden. Zu diesem Zeitpunkt werden die Konfidenzintervalle für CR_CONTROLund CR_EXPERIMENTALberechnet. Überlappen sie sich nicht, kann ein Sieger mit einem Signifikanzniveau von 0,95 und einer Potenz von 0,8 ermittelt werden.

Die Benutzer unserer Tests haben jedoch zwei Hauptbedenken:

1. Kann der Test nicht abgebrochen werden, wenn zu einem bestimmten Zeitpunkt während des Tests genügend Proben gesammelt wurden, um einen eindeutigen Gewinner zu ermitteln?

2. Wenn am Ende des Tests kein Gewinner ermittelt wird, können wir den Test länger durchführen, um zu sehen, ob wir genügend Proben sammeln können, um einen Gewinner zu finden?

Es sollte beachtet werden, dass es viele kommerzielle Tools gibt, die es ihren Benutzern ermöglichen, genau das zu tun, was unsere eigenen Benutzer wünschen. Ich habe gelesen, dass es viele Irrtümer gibt, aber ich bin auch auf die Idee einer Stoppregel gestoßen und möchte die Möglichkeit untersuchen, eine solche Regel in unseren eigenen Systemen zu verwenden.

Hier sind zwei Ansätze, die wir berücksichtigen möchten:

1. power.prop.testVergleichen Sie mit die aktuell gemessenen Umrechnungskurse mit der aktuellen Anzahl der Proben und prüfen Sie, ob genügend Proben gesammelt wurden, um einen Gewinner zu ermitteln.

Beispiel: Es wurde ein Test eingerichtet, um festzustellen, ob das folgende Verhalten in unserem System vorliegt:

  • CRE_CONTROL: 0,1
  • CRE_EXPERIMENTAL: 0,1 * 1,3
  • Mit diesen Parametern Nbeträgt der Stichprobenumfang 1774.

Wenn der Test jedoch fortschreitet und 325 Proben erreicht, CRM_CONTROLbeträgt die gemessene Umwandlungsrate für die Kontrolle 0,08 und CRM_EXPERIMENTAL0,15. power.prop.testwird mit diesen Umrechnungskursen ausgeführt und Nergibt 325. Genau die Anzahl der Proben, die erforderlich sind, CRM_EXPERIMENTALum den Gewinn zu erklären ! An dieser Stelle hoffen wir, dass der Test beendet werden kann. Wenn der Test 1774 Proben erreicht, aber kein Gewinner gefunden wird, erreicht er 2122 Proben, was ausreicht, um zu zeigen, dass CRM_CONTROL0,1 und CRM_EXPERIMENTAL0,128 ein Ergebnis sind, bei dem ein Gewinner ermittelt werden kann.

In einer ähnlichen Frage wiesen die Benutzer darauf hin, dass ein solcher Test weniger glaubwürdig ist, da er zu einem frühen Stopp mit weniger Stichproben ermutigt und außerdem anfällig für Schätzungsfehler und eine erhöhte Anzahl von Fehlern des Typs I und II ist. Gibt es eine Möglichkeit, diese Stoppregel zum Funktionieren zu bringen? Dies ist unser bevorzugter Ansatz, da er für uns weniger Programmierzeit bedeutet. Vielleicht könnte diese Abbruchregel funktionieren, indem eine Art numerische Bewertung oder Bewertungen angeboten werden, die die Glaubwürdigkeit des Tests messen, sollte er vorzeitig abgebrochen werden?

2. Verwenden von sequentieller Analyse oder SPRT .

Diese Testmethoden sind genau auf die Situation zugeschnitten, in der wir uns befinden: Wie können unsere Benutzer einen Test starten und so beenden, dass sie beim Testen keine übermäßige Zeit verlieren? Entweder läuft ein Test zu lange oder es muss ein Test mit anderen Parametern neu gestartet werden.

Von den beiden oben genannten Methoden bevorzuge ich SPRT, weil die Mathematik für mich ein bisschen leichter zu verstehen ist und weil es so aussieht, als wäre es möglicherweise einfacher zu programmieren. Ich verstehe jedoch nicht, wie die Wahrscheinlichkeitsfunktion in diesem Zusammenhang verwendet wird. Wenn jemand ein Beispiel für die Berechnung des Wahrscheinlichkeitsverhältnisses konstruieren könnte, die kumulative Summe des Wahrscheinlichkeitsverhältnisses, und ein Beispiel durcharbeiten könnte, das eine Situation veranschaulicht, in der man die Überwachung fortsetzen würde, wenn man die Nullhypothese und die Alternativhypothese akzeptieren würde, Dies würde uns helfen, festzustellen, ob SPRT der richtige Weg ist.


2
Ich empfehle Ihnen, nicht auf Voodoo zurückzugreifen. Wenn Sie ein Tool verwenden und nicht genau verstehen, was es tut oder wie es funktioniert, sind Sie nicht qualifiziert, die Ergebnisse des Tools zu interpretieren. Wenn eine Analyse zu einer Geschäftsentscheidung führt und Sie Zeit und Geld in das Ergebnis stecken, zeigt dies, dass Sie sich die Zeit nehmen, die Datenquelle zu verstehen. Es ist die Art harter Arbeit, die Ihnen mehr Möglichkeiten gibt, als "in der Herde" zu sein.
EngrStudent

Antworten:


7

Dies ist ein interessantes Problem und die damit verbundenen Techniken haben eine Vielzahl von Anwendungen. Sie werden oft als "Interim Monitoring" -Strategien oder "Sequential Experimental Design" bezeichnet (der Wikipedia-Artikel, auf den Sie verwiesen haben, ist leider etwas spärlich), aber es gibt mehrere Möglichkeiten, dies zu tun. Ich denke, @ user27564 ist ein Irrtum, wenn man sagt, dass diese Analysen unbedingt bayesianisch sein müssen - es gibt sicherlich auch häufigere Ansätze für die Zwischenüberwachung.

EINsBsEINBP(EIN)=P(B)=0,558x so dass 1-F(x;100;0,5)<αF

Mit einer ähnlichen Logik können Sie die "Unvermeidlichkeitspunkte" für andere Tests finden, bei denen:

  1. Die Gesamtstichprobengröße * ist fest und
  2. Jede Beobachtung trägt einen begrenzten Betrag zur Probe bei.

Dies ist wahrscheinlich einfach zu implementieren. Berechnen Sie die Stoppkriterien offline und fügen Sie sie dann einfach in den Code Ihrer Site ein. Sie können dies jedoch häufig noch verbessern, wenn Sie bereit sind, das Experiment nicht nur dann abzubrechen, wenn das Ergebnis unvermeidlich ist , aber wenn es auch sehr unwahrscheinlich ist, zu ändern.

EINBEIN

Es gibt auch eine Reihe anderer Ansätze. Sequentielle Gruppenmethoden wurden für Situationen entwickelt, in denen Sie möglicherweise nicht in der Lage sind, eine festgelegte Anzahl von Themen zu erhalten und die Themen mit variablen Raten einströmen. Abhängig vom Traffic Ihrer Site möchten Sie dies möglicherweise nicht untersuchen.

Es gibt eine ganze Reihe von R-Paketen, die in CRAN fließen, wenn Sie dies für Ihre Analyse verwenden. Ein guter Ausgangspunkt könnte die Aufgabenansicht für klinische Studien sein , da ein Großteil dieser Arbeit aus diesem Bereich stammt.


[*] Nur ein freundlicher Rat: Seien Sie vorsichtig, wenn Sie Signifikanzwerte betrachten, die aus einer sehr großen Anzahl von Datenpunkten berechnet wurden. Wie Sie mehr und mehr Daten zu sammeln, Sie werden schließlich ein signifikantes Ergebnis finden, aber der Effekt könnte trivialen klein sein. Wenn Sie zum Beispiel den ganzen Planeten gefragt haben, ob er A oder B bevorzugt, ist es sehr unwahrscheinlich, dass Sie einen exakten 50: 50-Split sehen, aber es lohnt sich wahrscheinlich nicht, Ihr Produkt umzurüsten, wenn der Split 50.001: 49.999 beträgt. Überprüfen Sie auch weiterhin die Effektgröße (dh die Unterschiede in den Conversion-Raten)!


1
Um explizit auf die Bedenken Ihrer Benutzer einzugehen: Ja, Sie können die Analyse definitiv vorzeitig beenden. Dies passiert die ganze Zeit für klinische Studien - das Medikament ist entweder so ein überwältigender Erfolg, dass sie über ausreichende Daten für seine Wirksamkeit verfügen und diese an die in der Kontrollgruppe steckenden Personen weitergeben möchten (oder wahrscheinlicher, das Medikament ist riesig) Fehlschlag / Verschlechterung). Die Erweiterung des Experiments ist jedoch umstrittener. Es gibt Methoden zur Korrektur mehrerer "Looks". Sie sollten jedoch ein maximales N im Voraus festlegen. Sie können jederzeit vorzeitig aufhören.
Matt Krause

2
Vielen Dank dafür, ich stimme voll und ganz der Einstellung zu, wenn das Experiment unvermeidlich ist, macht das wirklich Sinn! Mit diesem "Anhalten, wenn es wirklich unwahrscheinlich ist" würde ich bezweifeln, dass ein echter Frequentist zustimmen würde. Es ist nichts weniger als zu sagen: Hey, 95%? Ich würde sagen, 93% ist auch gut! Ich meine, es wäre auch gut, nur mit 90% Selbstvertrauen zufrieden zu sein, aber als Frequentist, bevor man sich die Daten ansieht!
SebastianNeubauer

1
Ich bin kein Arch-Frequentist und spiele auch keinen im Fernsehen, aber ich denke, Sie können eine Early-Stop-Regel immer noch vernünftig häufig interpretieren - wenn ich dieses Experiment 100 Mal durchgeführt hätte, wie oft würde ich den a bekommen andere antwort wenn ich jetzt stehen bleibe vs. wenn ich bis zum ende gelaufen bin? Die Rezension, die ich verlinkt habe, zeigt, dass dies einer dieser schönen Fälle ist, in denen es möglich ist, Bayesianer und Frequentisten gleichzeitig zu befriedigen ...
Matt Krause

α

1
@ RussellS.Pierce: Ich denke es kommt darauf an. Offensichtlich wird die Einschränkung nicht, aber einige andere Methoden tun. Der O'Brein- und der Flemming-Test können beispielsweise mehr Daten verwenden, aber auch früher ablehnen, und der Pocock-Test umso mehr. Das hängt natürlich von den Besonderheiten ab: Das oben verlinkte Buch enthält ein Beispiel mit einigen vernünftigen Werten (Effektgröße: 0,25, Alpha = 0,05, Potenz = 0,9, 5 Looks). Die feste N-Version benötigt 170 Themen, um abzulehnen; Die OBF-Version benötigt maximal 180 und der Pocock maximal 205, die erwartete Anzahl der Probanden beträgt jedoch 130 bzw. 117.
Matt Krause

1

Sie können früh aufhören, aber wenn Sie dies tun, sind Ihre p-Werte nicht einfach zu interpretieren. Wenn Sie sich nicht für die Interpretation Ihres p-Werts interessieren, spielt es keine Rolle, wie die Antwort auf Ihre ersten beiden Fragen "Nein" lautet (zu viel). Ihr Klient scheint pragmatisch zu sein, daher ist die wahre Interpretation eines p-Wertes wahrscheinlich kein wichtiger Punkt für Sie.

Ich kann nicht mit dem zweiten Ansatz sprechen, den Sie vorschlagen.

Der erste Ansatz ist jedoch nicht auf festem Grund. Normale Approximationen von Binomialverteilungen gelten nicht für so niedrige Proportionen (die Methode, die power.prop.test verwendet, auch die Methode, die Cohen in seinem klassischen Buch über Potenz verwendet). Darüber hinaus gibt es meines Wissens keine Lösung für die geschlossene Leistungsanalyse für Proportionalitätstests mit zwei Stichproben (vgl. Wie kann man eine binomiale Leistungsanalyse mit zwei Gruppen ohne Verwendung normaler Näherungen durchführen? ). Es gibt jedoch bessere Methoden zur Approximation der Konfidenzintervalle von Proportionen (vgl. Das Paket binom). Sie können nicht überlappende Konfidenzintervalle als Teillösung verwenden. Dies ist jedoch nicht dasselbe wie die Schätzung eines p-Werts und bietet daher keinen direkten Weg zur Stromversorgung. Ich hoffe, jemand hat eine nette geschlossene Lösung, die er mit uns allen teilen wird. Wenn ich auf eine stoße, aktualisiere ich die oben genannte Frage. Viel Glück.

Bearbeiten: Während ich darüber nachdenke, lassen Sie mich hier für einen Moment völlig pragmatisch. Ihr Kunde möchte, dass dieser Test beendet wird, wenn er sicher ist, dass der Teststandort besser funktioniert als der Kontrollstandort. Nachdem Sie eine anständige Stichprobe erhalten haben, können Sie, wenn Sie nicht bereit sind, eine Entscheidung zu treffen, einfach das Verhältnis Ihrer zufälligen Zuordnung zu der Seite anpassen, die "gewinnt". Wenn es nur ein Ausrutscher wäre, würde die Regression zum Mittelwert zunehmen, Sie würden weniger sicher sein und das Verhältnis verringern. Wenn Sie einigermaßen sicher sind, beenden Sie den Vorgang und erklären Sie einen Gewinner. Der optimale Ansatz würde wahrscheinlich eine Bayes'sche Aktualisierung beinhalten, aber ich weiß nicht genug über dieses Thema, um Sie zu leiten. Ich kann Ihnen jedoch versichern, dass die Mathematik selbst nicht allzu schwierig ist, auch wenn sie manchmal nicht intuitiv erscheint.


0

Die Fragen, die Sie haben, sind typische Fragen, die in statistischen Tests auftauchen. Es gibt zwei Arten von Statistiken, die Frequentist- und die Bayesian-Statistik. Die häufigste Antwort auf Ihre beiden Fragen ist ganz einfach:

  • NEIN
  • Nein, du kannst nicht früh aufhören
  • Nein, man kann nicht länger messen

Sobald Sie Ihr Setup definiert haben, dürfen Sie nicht einmal die Daten betrachten (Blindanalyse). Aus der Sicht der Frequentisten führt kein Weg daran vorbei, kein Betrügen, keine Tricks! (BEARBEITEN: Natürlich gibt es Versuche, dies zu tun, und sie funktionieren auch, wenn sie richtig verwendet werden, aber die meisten von ihnen sind dafür bekannt, dass sie Verzerrungen einführen.)

Aber da ist die bayesianische Sichtweise, die ganz anders ist. Der Bayes'sche Ansatz benötigt im Gegensatz zu den Frequentisten einen zusätzlichen Input, die a priori Wahrscheinlichkeitsverteilung. Wir können es auch Vorwissen oder Vorurteile nennen. Nachdem dies geschehen ist, können wir die Daten / Messungen verwenden, um unser Wissen auf die a-posteriori-Wahrscheinlichkeit zu aktualisieren. Der Punkt ist, wir können die Daten verwenden und noch mehr können wir die Daten an jedem Zwischenpunkt der Messung verwenden. In jedem Update ist der letzte Posterior unser neuer Prior und wir können ihn mit einer neuen Messung nach unserem aktuellen Wissen aktualisieren. Kein Problem beim vorzeitigen Anhalten!

Ich fand einen Vortrag, in dem Sie ähnliche Probleme diskutierten, wie Sie sie hatten, und den ich oben beschrieben habe: http://biostat.mc.vanderbilt.edu/wiki/pub/Main/JoAnnAlvarez/BayesianAdaptivePres.pdf

Aber bist du dir wirklich sicher, dass du das überhaupt brauchst? Es sieht so aus, als ob auf einem System entschieden wird, wo eine Anfrage verknüpft werden soll. Dafür müssen Sie mit einem Hypothesentest nicht nachweisen, dass Ihre Entscheidungen statistisch korrekt sind. Haben Sie jemals eine Cola gekauft, weil Sie ausschließen könnten, dass Pepsi mit einer Wahrscheinlichkeit von 95% "im Augenblick" ist? Es reicht aus, diejenige zu nehmen, die einfach besser ist, ohne eine Hypothese auszuschließen. Das wäre ein trivialer Algorithmus: Berechne die Unsicherheit von Rate A, berechne die Unsicherheit von B. Nimm die Differenz beider Raten und teile sie b die Unsicherheit der Differenz. Das Ergebnis ist in etwa die Bedeutung des Unterschieds im Sigma. Dann nehmen Sie einfach alle Links, bei denen es mehr als zwei oder drei Sigma-Unterschiede gibt. Nachteil,


1
Ich denke, Ihre ersten vier Absätze sind ein bisschen wie ein roter Hering - es gibt häufig vorkommende Ansätze für die Zwischenüberwachung. Es ist wahr, dass sich eine (bayesianische) nachträgliche Aktualisierung gut dazu eignet, aber Sie können dieses Problem auf viele verschiedene Arten einrahmen. Danke für den Hinweis auf die Folien!
Matt Krause

+1 sowieso - der Bayes'sche Ansatz ist hier wahrscheinlich klarer als bei jedem anderen Fix.
Russellpierce

2
Eh, da ist dieses ... Meme ..., dass Bayesianische Methoden einen endlosen Blick auf die Daten ohne Komplikationen werfen lassen. Die Gesamtfehlerrate von Typ I wird jedoch nicht wirklich kontrolliert (warum sollte es so sein?) Und kann beliebig groß werden, wenn nach vielen "Looks". Sie können dies mit einem geeigneten Prior verbessern, oder Sie können argumentieren, dass die Kontrolle des Fehlers Typ I lahm ist, aber es ist nicht so, als wären alle Bayesianischen Techniken ein Allheilmittel.
Matt Krause

0

vielleicht könnten da ja einige methoden zum einsatz kommen wie

  • Pocock
  • O'Brien und Flemming
  • Peto

Dadurch wird der P-Cutoff basierend auf den Ergebnissen angepasst, und Sie können die Datenerfassung unterbrechen und Ressourcen und Zeit sparen.

Vielleicht könnten hier andere Werke hinzugefügt werden.


Können Sie Links oder weitere Informationen für Ihre Aufzählungszeichen bereitstellen?
Antoine

Ich habe nicht die genauen Artikel, weil ich einen Übersichtsartikel verwendet habe, der diese zitiert. Ich meine, die Ansätze sind unterschiedlich, aber ich kann Ihnen den Artikel empfehlen, der die Frage im medizinischen Bereich behandelt: Adaptive Änderung der Probengröße in klinischen Studien: Fangen Sie dann klein an Frage nach mehr? Christopher Jennisona * † und BruceW. Turnbullb
HappyMan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.