Comment développer une règle d'arrêt dans une analyse de puissance à deux proportions indépendantes?

18

Je suis un développeur de logiciels travaillant sur des systèmes de test A / B. Je n'ai pas une solide expérience en statistiques, mais j'ai acquis des connaissances au cours des derniers mois.

Un scénario de test typique consiste à comparer deux URL sur un site Web. Un visiteur visite LANDING_URLet est ensuite envoyé au hasard vers URL_CONTROLou URL_EXPERIMENTAL. Un visiteur constitue un échantillon et une condition de victoire est atteinte lorsque le visiteur effectue une action souhaitable sur ce site. Cela constitue une conversion et le taux de conversion est le taux de conversion (généralement exprimé en pourcentage). Un taux de conversion typique pour une URL donnée se situe entre 0,01% et 0,08%. Nous effectuons des tests pour déterminer comment les nouvelles URL se comparent aux anciennes URL. S'il URL_EXPERIMENTALs'avère supérieur URL_CONTROL, nous le remplaçons URL_CONTROLpar URL_EXPERIMENTAL.

Nous avons développé un système utilisant des techniques de test d'hypothèse simples. J'ai utilisé les réponses à une autre question CrossValidated ici pour développer ce système.

Un test est mis en place comme suit:

  • L'estimation CRE_CONTROLdu taux de conversion de URL_CONTROLest calculée à l'aide de données historiques.
  • Le taux CRE_EXPERIMENTALde conversion cible souhaité de URL_EXPERIMENTALest défini.
  • Un niveau de signification de 0,95 est généralement utilisé.
  • Une puissance de 0,8 est généralement utilisée.

Ensemble, toutes ces valeurs sont utilisées pour calculer la taille d'échantillon souhaitée. J'utilise la fonction R power.prop.testpour obtenir cette taille d'échantillon.

Un test sera exécuté jusqu'à ce que tous les échantillons soient collectés. À ce stade, les intervalles de confiance pour CR_CONTROLet CR_EXPERIMENTALsont calculés. S'ils ne se chevauchent pas, un gagnant peut être déclaré avec un niveau de signification de 0,95 et une puissance de 0,8.

Les utilisateurs de nos tests ont cependant deux préoccupations majeures:

1. Si, à un moment donné du test, suffisamment d'échantillons sont collectés pour montrer un gagnant clair, le test ne peut-il pas être arrêté?

2. Si aucun gagnant n'est déclaré à la fin du test, pouvons-nous exécuter le test plus longtemps pour voir si nous pouvons collecter suffisamment d'échantillons pour trouver un gagnant?

Il convient de noter qu'il existe de nombreux outils commerciaux qui permettent à leurs utilisateurs de faire exactement ce que souhaitent nos propres utilisateurs. J'ai lu qu'il y a beaucoup d'erreurs avec ce qui précède, mais j'ai également rencontré l'idée d'une règle d'arrêt et j'aimerais explorer la possibilité d'utiliser une telle règle dans nos propres systèmes.

Voici deux approches que nous aimerions considérer:

1. À l'aide de power.prop.test, comparez les taux de conversion mesurés actuels au nombre actuel d'échantillons et voyez si suffisamment d'échantillons ont été collectés pour déclarer un gagnant.

Exemple: Un test a été mis en place pour voir si le comportement suivant existe dans notre système:

  • CRE_CONTROL: 0,1
  • CRE_EXPERIMENTAL: 0,1 * 1,3
  • Avec ces paramètres, la taille de l'échantillon Nest de 1774.

Cependant, à mesure que le test avance et atteint 325 échantillons, CRM_CONTROL(le taux de conversion mesuré pour le contrôle) est de 0,08 et de CRM_EXPERIMENTAL0,15. power.prop.testest exécuté sur ces taux de conversion et Nse trouve être 325. Exactement le nombre d'échantillons nécessaires pour déclarer CRM_EXPERIMENTALêtre le gagnant! À ce stade, nous espérons que le test pourra être terminé. De même, si le test atteint 1774 échantillons mais qu'aucun gagnant n'est trouvé, mais qu'il atteint 2122 échantillons, ce qui est suffisant pour montrer que CRM_CONTROL0,1 et CRM_EXPERIMENTAL0,128 est un résultat où un gagnant peut être déclaré.

Dans une question connexe, les utilisateurs ont indiqué qu'un tel test est moins crédible car il encourage les arrêts précoces à avoir moins d'échantillons et est également vulnérable aux biais d'estimation et à un nombre accru d'erreurs de type I et de type II. Existe-t-il un moyen de faire fonctionner cette règle d'arrêt? C'est notre approche préférée car cela signifie moins de temps de programmation pour nous. Peut-être que cette règle d'arrêt pourrait fonctionner en offrant une sorte de score numérique ou des scores qui mesurent la crédibilité du test s'il devait être arrêté tôt?

2. Utilisation de l'analyse séquentielle ou SPRT .

Ces méthodes de test sont conçues exactement pour la situation dans laquelle nous nous trouvons: comment nos utilisateurs peuvent-ils commencer un test et le terminer de telle manière qu'ils ne perdent pas trop de temps dans les tests? Soit exécuter un test trop longtemps, soit recommencer un test avec des paramètres différents.

Des deux méthodes ci-dessus, je préfère SPRT parce que les mathématiques sont un peu plus faciles à comprendre et parce qu'il semble que ce soit plus facile à programmer. Cependant, je ne comprends pas comment utiliser la fonction de vraisemblance dans ce contexte. Si quelqu'un pouvait construire un exemple de la façon de calculer le rapport de vraisemblance, la somme cumulée du rapport de vraisemblance, et continuer à travers un exemple illustrant une situation où l'on continuerait à surveiller, quand on accepterait l'hypothèse nulle et l'hypothèse alternative, cela nous aiderait à déterminer si SPRT est la bonne voie à suivre.

jkndrkn
la source
2
Je vous félicite de ne pas recourir au vaudou. Lorsque vous utilisez un outil et que vous ne comprenez pas exactement ce qu'il fait ou comment il fonctionne, vous n'êtes pas qualifié pour interpréter les résultats de l'outil. Lorsqu'une analyse conduit à une décision commerciale et que vous investissez du temps et de l'argent dans le résultat, elle montre que vous êtes propriétaire si vous prenez le temps de comprendre la source des données. C'est le genre de travail acharné qui vous donne plus d'opportunités au lieu d'être "dans le troupeau".
EngrStudent

Réponses:

7

C'est un problème intéressant et les techniques associées ont de nombreuses applications. On les appelle souvent des stratégies de «surveillance intérimaire» ou «conception expérimentale séquentielle» (l'article de wikipedia auquel vous avez lié est malheureusement un peu rare), mais il existe plusieurs façons de procéder. Je pense que @ user27564 se trompe en disant que ces analyses doivent nécessairement être bayésiennes - il existe certainement aussi des approches fréquentistes pour la surveillance intermédiaire.

UNEsBsUNEBP(UNE)=P(B)=0,558X tel que 1-F(X;100;0,5)<αF

Une logique similaire vous permet de trouver les "points inévitables" pour d'autres tests où:

  1. La taille totale de l'échantillon * est fixe et
  2. Chaque observation apporte une quantité limitée à l'échantillon.

Cela serait probablement facile à mettre en œuvre - calculez les critères d'arrêt hors ligne, puis branchez-le simplement dans le code de votre site - mais vous pouvez souvent faire encore mieux si vous êtes prêt à mettre fin à l'expérience, non seulement lorsque le résultat est inévitable , mais quand il est également très peu probable qu'il change.

UNEBUNE

Il existe également un certain nombre d'autres approches. Les méthodes séquentielles de groupe sont conçues pour les situations où vous ne pourrez peut-être pas obtenir un nombre défini de sujets et où les sujets entreront à des taux variables. En fonction du trafic de votre site, vous souhaiterez peut-être ou non examiner la question.

Il existe un bon nombre de packages R flottant autour de CRAN, si c'est ce que vous utilisez pour votre analyse. Un bon point de départ pourrait en fait être la vue des tâches des essais cliniques , car une grande partie de ce travail est venue de ce domaine.


[*] Juste quelques conseils amicaux: soyez prudent lorsque vous regardez des valeurs de signification calculées à partir d'un très grand nombre de points de données. Au fur et à mesure que vous collectez de plus en plus de données, vous finirez par trouver un résultat significatif, mais l'effet peut être insignifiant. Par exemple, si vous avez demandé à la planète entière si elle préfère A ou B, il est très peu probable que vous voyiez une répartition exacte à 50:50, mais cela ne vaut probablement pas la peine de réoutiller votre produit si la répartition est de 50,001: 49,999. Continuez à vérifier la taille de l'effet (c'est-à-dire la différence de taux de conversion) aussi!

Matt Krause
la source
1
Pour répondre explicitement aux préoccupations de vos utilisateurs: Oui, vous pouvez définitivement terminer l'analyse tôt. Cela se produit tout le temps pour les essais cliniques - le médicament est un tel succès fracassant qu'ils ont suffisamment de données pour son efficacité et veulent le donner aux gens coincés dans le groupe témoin (ou, plus probablement, le médicament est un énorme buste / aggraver les choses). Cependant, l'extension de l'expérience est plus litigieuse - il existe des méthodes pour corriger plusieurs "regards" mais il vaut mieux fixer un N maximum à l'avance - vous pouvez toujours vous arrêter tôt!
Matt Krause
2
Merci pour cela, je suis totalement d'accord avec l'arrêt si l'expérience est inévitable, cela a vraiment du sens! Avec cela «arrêter si c'est vraiment peu probable», je doute qu'un vrai fréquentateur soit d'accord. Ce n'est rien de moins que de dire: Hé, 95%? Je dirais que 93% c'est aussi bien! Je veux dire qu'il serait également bon de se contenter de 90% de confiance, mais en tant que fréquentiste avant de regarder les données!
SebastianNeubauer
1
Je ne suis pas un archi-fréquentiste, je n'en joue pas non plus à la télévision, mais je pense que vous pouvez toujours avoir une interprétation fréquentiste raisonnable d'une règle d'arrêt précoce - si j'ai exécuté cette expérience 100 fois, à quelle fréquence devrais-je obtenir l'a réponse différente si je m'arrêtais maintenant vs si je courais jusqu'à la fin? L'examen que j'ai lié souligne que c'est l'un de ces beaux cas où il est possible de satisfaire les Bayésiens et les Frequentistes en même temps ...
Matt Krause
α
1
@ RussellS.Pierce: Je pense que cela dépend. De toute évidence, la réduction ne le sera pas, mais d'autres méthodes le font. Le test d'O'Brein et Flemming, par exemple, peut utiliser plus de données, mais peut également être rejeté plus tôt, et le test de Pocock encore plus. Cela dépend évidemment des spécificités: le livre lié ci-dessus a un exemple avec quelques valeurs raisonnables (taille de l'effet: 0,25, alpha = 0,05, puissance = 0,9, 5 looks). La version N fixe nécessite 170 sujets à rejeter; La version OBF a besoin d'un maximum de 180, et le Pocock a besoin d'au plus 205, mais le nombre attendu de sujets est de 130 et 117, respectivement.
Matt Krause
1

Vous pouvez vous arrêter tôt, mais si vous le faites, vos valeurs de p ne sont pas facilement interprétées. Si vous ne vous souciez pas de l'interprétation de votre valeur de p, la façon dont la réponse à vos deux premières questions est «non» n'a pas d'importance (trop). Votre client semble pragmatique, donc la véritable interprétation d'une valeur p n'est probablement pas un point fin qui vous tient à cœur.

Je ne peux pas parler de la deuxième approche que vous proposez.

Cependant, la première approche n'est pas solide. Les approximations normales des distributions binomiales ne sont pas valables pour des proportions aussi faibles (qui est la méthode utilisée par power.prop.test, également la méthode utilisée par Cohen dans son livre classique sur le pouvoir). De plus, à ma connaissance, il n'existe pas de solution d'analyse de puissance sous forme fermée pour les tests de proportion à deux échantillons (cf. Comment peut-on effectuer une analyse de puissance binomiale à deux groupes sans utiliser d'approximations normales? ). Il existe cependant de meilleures méthodes pour estimer les intervalles de confiance des proportions (cf. le paquet binom). Vous pouvez utiliser des intervalles de confiance ne se chevauchant pas comme solution partielle ... mais ce n'est pas la même chose que d'estimer une valeur p et ne fournit donc pas de route pour alimenter directement. J'espère que quelqu'un a une belle solution de formulaire fermé qu'ils partageront avec le reste d'entre nous. Si je tombe sur un, je mettrai à jour la question référencée ci-dessus. Bonne chance.

Edit: Pendant que j'y pense, laissez-moi totalement pragmatique ici un instant. Votre client souhaite que cette expérience se termine lorsqu'il est certain que le site expérimental fonctionne mieux que le site de contrôle. Après avoir obtenu un échantillon décent, si vous n'êtes pas prêt à prendre une décision, commencez simplement à ajuster le rapport de votre affectation aléatoire sur le côté qui «gagne». S'il ne s'agissait que d'un blip, la régression vers la moyenne s'infiltrera, vous en deviendrez moins certain et relâcherez le ratio. Lorsque vous êtes raisonnablement certain, appelez-le quitte et déclarez un gagnant. L'approche optimale impliquerait probablement une mise à jour bayésienne, mais je n'en sais pas assez sur ce sujet du haut de ma tête pour vous orienter. Cependant, je peux vous assurer que même si cela peut parfois sembler contre-intuitif, les mathématiques elles-mêmes ne sont pas si difficiles.

russellpierce
la source
0

Les questions que vous vous posez sont des questions typiques qui émergent dans les tests statistiques. Il existe deux «saveurs» de statistiques, le fréquentiste et le bayésien. La réponse fréquentiste à vos deux questions est simple:

  • NON
  • Non, tu ne peux pas t'arrêter tôt
  • Non, vous ne pouvez pas mesurer plus longtemps

Une fois que vous avez défini votre configuration, vous n'êtes même pas autorisé à regarder les données (analyse en aveugle). Du point de vue fréquentiste, il n'y a pas moyen de contourner, pas de tricherie pas de trucs! (EDIT: Bien sûr, il y a des tentatives pour le faire, et ils fonctionneront également s'ils sont utilisés correctement, mais la plupart d'entre eux sont connus pour introduire des biais.)

Mais il y a le point de vue bayésien, qui est assez différent. L'approche bayésienne a besoin, contrairement aux fréquentistes, d'une entrée supplémentaire, la distribution de probabilité a priori. Nous pouvons l'appeler également connaissances ou préjugés antérieurs. Ayant cela, nous pouvons utiliser les données / mesures pour mettre à jour nos connaissances à la probabilité a posteriori. Le fait est que nous pouvons utiliser les données et encore plus, nous pouvons utiliser les données à chaque point intermédiaire de la mesure. Dans chaque mise à jour, le dernier postérieur est notre nouveau prieur et nous pouvons le mettre à jour avec une nouvelle mesure à notre connaissance actuelle. Aucun problème d'arrêt précoce!

J'ai trouvé une discussion discutant de problèmes similaires à ceux que vous avez et j'ai décrit ci-dessus: http://biostat.mc.vanderbilt.edu/wiki/pub/Main/JoAnnAlvarez/BayesianAdaptivePres.pdf

Mais à côté de cela, êtes-vous vraiment sûr d'avoir besoin de tout cela? Il semble que vous ayez un système en cours d'exécution qui décide où lier une demande. Pour cela, vous n'avez pas besoin de prouver que vos décisions sont correctes au sens statistique avec un test d'hypothèse. Avez-vous déjà acheté un coke, car vous pourriez exclure que le pepsi soit «en ce moment» avec une probabilité de 95%? Il suffit de prendre celle qui est juste meilleure, sans exclure une hypothèse. Ce serait un algorithme trivial: calculer l'incertitude du taux A, calculer l'incertitude de B. Prendre la différence des deux taux et la diviser b l'incertitude de la différence. Le résultat est quelque chose comme la signification de la différence de sigma. Prenez ensuite tous les liens où il y a plus de deux ou trois différences de sigma. Inconvénient,

SebastianNeubauer
la source
1
Je pense que vos quatre premiers paragraphes sont un peu redoutables - il existe des approches fréquentistes de la surveillance intérimaire. Il est vrai que la mise à jour postérieure (bayésienne) s'y prête bien, mais vous pouvez encadrer ce problème de différentes manières. Merci pour le pointeur vers les diapositives!
Matt Krause
+1 de toute façon - l'approche bayésienne est probablement claire ici que toute correction fréquentiste.
russellpierce
2
Eh, il y a ce ... mème ... que les méthodes bayésiennes permettent de jeter un œil sans fin aux données sans aucune complication. Cependant, le taux d'erreur global de type I n'est pas réellement contrôlé (pourquoi le serait-il?) Et il peut devenir arbitrairement élevé après de nombreux "regards". Vous pouvez améliorer cela avec un préalable approprié, ou vous pouvez faire valoir que le contrôle des erreurs de type I est boiteux, mais ce n'est pas comme si toutes les techniques bayésiennes étaient une panacée.
Matt Krause
0

peut-être que certaines méthodes pourraient être utilisées comme

  • Pocock
  • O'Brien et Flemming
  • Peto

cela ajustera le seuil de P en fonction des résultats et vous aidera à arrêter la collecte de données et à économiser des ressources et du temps.

peut-être d'autres travaux pourraient être ajoutés ici.

Homme heureux
la source
pourriez-vous fournir des liens ou plus d'informations pour vos puces?
Antoine
Je n'ai pas d'articles précis parce que j'ai utilisé un article de revue qui les cite, je veux dire que les approches sont différentes mais je peux vous recommander un article qui gère la question dans le domaine médical: Modification de la taille de l'échantillon adaptatif dans les essais cliniques: commencez petit puis demander plus? Christopher Jennisona * † et BruceW. Turnbullb
HappyMan