R - puissance.prop.test, prop.test et tailles inégales des échantillons dans les tests A / B

8

Disons que je veux savoir de quelle taille d'échantillon j'ai besoin pour une expérience dans laquelle je cherche à déterminer si la différence entre deux proportions de succès est statistiquement significative. Voici mon processus actuel:

  1. Examinez les données historiques pour établir des prévisions de base. Supposons que par le passé, une action donne lieu à un taux de réussite de 10% alors que ne pas prendre une action entraîne un taux de réussite de 9%. Supposons que ces conclusions n'ont pas été validées statistiquement mais qu'elles sont basées sur des quantités de données relativement importantes (10 000+ observations).
  2. Branchez ces hypothèses dans power.prop.test pour obtenir les éléments suivants:

     power.prop.test(p1=.1,p2=.11,power=.9)
    
     Two-sample comparison of proportions power calculation 
    
              n = 19746.62
             p1 = 0.1
             p2 = 0.11
      sig.level = 0.05
          power = 0.9
    alternative = two.sided
  3. Donc, cela me dit que j'aurais besoin d'un échantillon de ~ 20000 dans chaque groupe d'un test A / B afin de détecter une différence significative entre les proportions.

  4. L'étape suivante consiste à réaliser l'expérience avec 20 000 observations dans chaque groupe. Le groupe B (aucune mesure prise) a 2300 succès sur 20 000 observations, tandis que le groupe A (mesure prise) a 2200 succès sur 20 000 observations.

  5. Faites un test prop.

    prop.test(c(2300,2100),c(20000,20000))
    
    2-sample test for equality of proportions with continuity correction
    
    data:  c(2300, 2100) out of c(20000, 20000)
    X-squared = 10.1126, df = 1, p-value = 0.001473
    alternative hypothesis: two.sided
    95 percent confidence interval:
    0.003818257 0.016181743
    sample estimates:
    prop 1 prop 2 
    0.115  0.105
  6. Nous disons donc que nous pouvons rejeter l'hypothèse nulle selon laquelle les proportions sont égales.

Des questions

  • Cette méthode est-elle valable ou du moins sur la bonne voie?
  • Puis-je spécifier alt="greater"sur prop.test et faire confiance à la valeur de p même si power.prop.test était destiné à un test bilatéral?
  • Que se passe-t-il si la valeur de p est supérieure à 0,05 lors du test prop? Dois-je supposer que j'ai un échantillon statistiquement significatif mais qu'il n'y a pas de différence statistiquement significative entre les deux proportions? En outre, la signification statistique est-elle inhérente à la valeur de p dans le test prop. - c'est-à-dire que le test power.prop est même nécessaire?
  • Que se passe-t-il si je ne peux pas effectuer une répartition 50/50 et que je dois faire, disons, une répartition 95/5? Existe-t-il une méthode pour calculer la taille de l'échantillon dans ce cas?
  • Que faire si je n'ai aucune idée de ce que devrait être ma prédiction de base pour les proportions? Si je suppose que les proportions réelles sont très éloignées, cela invalidera-t-il mon analyse?

Toute autre lacune que vous pourriez combler serait très appréciée - mes excuses pour la nature alambiquée de ce poste. Je vous remercie!

userNaN
la source

Réponses:

3

Cette méthode est-elle valable ou du moins sur la bonne voie?

Oui, je pense que c'est une assez bonne approche.

Puis-je spécifier alt = "supérieur" sur prop.test et faire confiance à la valeur de p même si power.prop.test était pour un test bilatéral?

Je ne suis pas certain, mais je pense que vous devrez utiliser alternative="two.sided"pour prop.test.

Que se passe-t-il si la valeur de p est supérieure à 0,05 lors du test prop? Dois-je supposer que j'ai un échantillon statistiquement significatif mais qu'il n'y a pas de différence statistiquement significative entre les deux proportions? En outre, la signification statistique est-elle inhérente à la valeur de p dans le test prop. - c'est-à-dire que le test power.prop est même nécessaire?

Oui, si la valeur de p est supérieure à 0,05, il n'y a aucune certitude qu'il existe une différence détectable entre les échantillons. Oui, la signification statistique est inhérente à la valeur de p, mais le test power.prop.test toujours nécessaire avant de commencer votre expérience pour déterminer la taille de votre échantillon. power.prop.testest utilisé pour configurer votre expérience, prop.testest utilisé pour évaluer les résultats de votre expérience.

BTW - Vous pouvez calculer l'intervalle de confiance pour chaque groupe et voir s'ils se chevauchent à votre niveau de confiance. Vous pouvez le faire en suivant ces étapes pour le calcul de nombreux intervalles de confiance à partir de la distribution .

Pour visualiser ce que je veux dire, regardez cette calculatrice avec vos données d'exemple branchées: http://www.evanmiller.org/ab-testing/chi-squared.html#!2300/20000;2100/20000@95

Voici le résultat:

intervalle de confiance pour chaque groupe

Notez le graphique qu'il fournit qui montre la plage de l'intervalle de confiance pour chaque groupe.

Que se passe-t-il si je ne peux pas effectuer une répartition 50/50 et que je dois faire, disons, une répartition 95/5? Existe-t-il une méthode pour calculer la taille de l'échantillon dans ce cas?

C'est pourquoi vous devez utiliser power.prop.testcar la séparation n'a pas d'importance. Ce qui importe, c'est que vous atteigniez la taille d'échantillon minimale pour chaque groupe. Si vous effectuez un fractionnement 95/5, il vous faudra plus de temps pour atteindre la taille d'échantillon minimale pour la variation qui obtient les 5%.

Que faire si je n'ai aucune idée de ce que devrait être ma prédiction de base pour les proportions? Si je suppose que les proportions réelles sont très éloignées, cela invalidera-t-il mon analyse?

Vous devrez tracer une ligne dans le sable, deviner un effet détectable raisonnable et calculer la taille d'échantillon nécessaire. Si vous ne disposez pas de suffisamment de temps, de ressources, etc. pour respecter la taille d'échantillon calculée power.prop.test, vous devrez réduire votre effet détectable. Je le configure généralement comme ceci et je passe par différentes deltavaleurs pour voir quelle devrait être la taille de l'échantillon pour cet effet.

#Significance Level (alpha)
alpha <- .05

# Statistical Power (1-Beta)
beta <- 0.8

# Baseline conversion rate
p <- 0.2   

# Minimum Detectable Effect
delta <- .05

power.prop.test(p1=p, p2=p+delta, sig.level=alpha, power=beta, alternative="two.sided")
Javid Jamae
la source
1
Javid, lorsque vous citez une partie de la question dans votre réponse, vous pouvez envisager d'utiliser le balisage destiné à indiquer une citation de bloc ( > au début du bloc cité) plutôt que de la mettre en gras.
Glen_b -Reinstate Monica
2
"Si vous effectuez un fractionnement à 95/5, alors il vous faudra plus de temps pour atteindre la taille d'échantillon minimale pour la variation qui obtient les 5%." - bien qu'il s'agisse d'une approche conservatrice pour au moins satisfaire la puissance spécifiée du test, vous dépasserez en réalité la puissance spécifiée entrée dans power.prop.test si vous avez un "petit" et sur un "grand" groupe (par exemple n1 = 19746, n2 = 375174). Une méthode plus exacte pour répondre aux besoins en énergie pour des tailles d'échantillons inégales serait probablement souhaitable.
Underminer