Quel test statistique utiliser pour le test A / B?

12

Nous avons deux cohortes de 1000 échantillons chacune. Nous mesurons 2 quantités sur chaque cohorte. Le premier est une variable binaire. Le second est un nombre réel qui suit une distribution de queue lourde. Nous voulons évaluer la cohorte la plus performante pour chaque métrique. Il existe de nombreux tests statistiques parmi lesquels choisir: les gens suggèrent le test z, d'autres utilisent le test t et d'autres Mann – Whitney U.

  • Quel test ou quels tests devrions-nous choisir pour chaque mesure pour notre cas?
  • Que se passe-t-il si un test suggère une différence significative entre les cohortes et un autre test suggère une différence non significative?
iliasfl
la source

Réponses:

12

Étant donné que vos deux mesures sont 1) binaires et 2) à queue lourde, vous devez éviter le test t qui suppose des distributions normales.

Je pense que Mann-Whitney U est votre meilleur choix et devrait être suffisamment efficace même si vos distributions étaient presque normales.

Concernant votre deuxième question:

Que se passe-t-il si un test suggère une différence significative entre les cohortes et un autre test suggère une différence non significative?

Ce n'est pas rare si la différence statistique est limite et que les données ont des distributions d'échantillons "désordonnées". Cette situation exige que l'analyste examine attentivement toutes les hypothèses et limites de chaque test statistique et accorde le plus de poids au test statistique qui a le moins de violations d'hypothèses.

Prenez l'hypothèse d'une distribution normale. Il existe différents tests de normalité, mais ce n'est pas la fin de l'histoire. Certains tests fonctionnent assez bien sur les distributions symétriques même s'il y a un certain écart par rapport à la normalité, mais ne fonctionnent pas bien sur les distributions asymétriques.

En règle générale, je vous suggère de ne pas exécuter de test lorsque l'une de ses hypothèses est clairement violée.

EDIT: Pour la deuxième variable, il pourrait être possible de transformer la variable en une variable qui est normalement distribuée (ou au moins proche) tant que la transformation préserve l'ordre. Vous devez être sûr que la transformation donne une distribution normale pour les deux cohortes. Si vous ajustez la deuxième variable à une distribution log-normale, une fonction log la transforme en distribution normale. Mais si la distribution est Pareto (loi de puissance), il n'y a pas de transformation vers une distribution normale.

EDIT: Comme suggéré dans ce commentaire , vous devriez certainement considérer l'estimation bayésienne comme une alternative aux tests t et autres tests de signification d'hypothèse nulle (NHST).

MrMeritology
la source
Merci pour l'info. Je n'étais pas assez clair, j'ai deux quantités dont l'une est binaire et l'autre qui est un nombre réel suite à une distribution de queue lourde. J'ai édité la question pour clarifier cela.
iliasfl
Oui, je pense que je comprends. Vous voulez exécuter le test deux fois, une fois sur la variable binaire et une fois sur la variable réelle (distribution à queue lourde). Je recommande d'exécuter le Mann-Whitney U pour les deux.
Pourquoi un Mann-Whitney conviendrait-il aux données binaires?
Glen_b -Reinstate Monica
Mann-Whitney U est efficace pour les distributions non normales, y compris les distributions discrètes à deux valeurs (c.-à-d. Binaires). Si toutes les données étaient binaires, alors peut-être qu'un autre test fonctionnerait mieux.
MrMeritology
Quelqu'un peut-il confirmer si cela est vrai? ...
7

Pour les données à valeur réelle, vous pouvez également envisager de générer votre propre statistique de test sur la base d'un bootstrap de vos données. Cette approche a tendance à produire des résultats précis lorsque vous traitez avec des distributions de population non normales ou lorsque vous essayez de développer un intervalle de confiance autour d'un paramètre qui n'a pas de solution analytique pratique. (Le premier est vrai dans votre cas. Je ne mentionne que le second pour le contexte.)

Pour vos données à valeur réelle, vous feriez ce qui suit:

  1. Mettez vos deux cohortes en commun.
  2. De la piscine, échantillonnez deux groupes de 1000 éléments, avec remplacement.
  3. Calculez la différence de moyenne d'échantillon entre les deux groupes.
  4. Répétez les étapes 2 et 3 plusieurs milliers de fois pour développer une distribution de ces différences.

Une fois que vous avez cette distribution, calculez la différence de moyenne pour vos échantillons réels et calculez une valeur de p.

Nathan Gould
la source
Merci, donc vous vous retrouvez avec une distribution, qui devrait être normale avec une moyenne et un écart-type. Comment calculeriez-vous la valeur de p à partir de cela, et peut-être les intervalles de confiance, afin de décider du gagnant (s'il y en a un)?
iliasfl
La distribution ne serait pas nécessairement normale. Il aurait à peu près la distribution de tout ce dont il a été échantillonné. C'est la beauté d'utiliser un bootstrap. Dans tous les cas, vous obtenez une valeur p en calculant votre statistique de test à partir de vos résultats réels. C'est-à-dire la différence des moyennes de chaque cohorte. Comparez ensuite ce nombre à la distribution. Le centile que vous obtenez est votre valeur p pour un test unilatéral de différence de moyenne.
Nathan Gould
4
Ce que Nathan décrit est également la base des méthodes bayésiennes de test de signification. J'ai utilisé (et j'utilise actuellement) l' approche bayésienne qui remplace l' approche T-Test (BEST). Vous devriez examiner ce cadre si vous avez l'intention de mettre en œuvre une approche de mise en commun.
cwharland
0

J'appuie la réponse de @Meritology. En fait, je me demandais si le test MWU serait moins puissant que le test de proportions indépendantes, car les manuels que j'ai appris et utilisé pour enseigner disaient que le MWU ne peut être appliqué qu'aux données ordinales (ou intervalle / rapport).

Mais mes résultats de simulation, tracés ci-dessous, indiquent que le test MWU est en fait légèrement plus puissant que le test de proportion, tout en contrôlant bien l'erreur de type I (à la proportion de population du groupe 1 = 0,50).

entrez la description de l'image ici

La proportion de la population du groupe 2 est maintenue à 0,50. Le nombre d'itérations est de 10 000 à chaque point. J'ai répété la simulation sans la correction de Yate mais les résultats étaient les mêmes.

library(reshape)

MakeBinaryData <- function(n1, n2, p1){
  y <- c(rbinom(n1, 1, p1), 
        rbinom(n2, 1, 0.5))
  g_f <- factor(c(rep("g1", n1), rep("g2", n2)))
  d <- data.frame(y, g_f)
  return(d)
}

GetPower <- function(n_iter, n1, n2, p1, alpha=0.05, type="proportion", ...){
  if(type=="proportion") {
    p_v <- replicate(n_iter, prop.test(table(MakeBinaryData(n1, n1, p1)), ...)$p.value)
  }

  if(type=="MWU") {
    p_v <- replicate(n_iter, wilcox.test(y~g_f, data=MakeBinaryData(n1, n1, p1))$p.value)
  }

  empirical_power <- sum(p_v<alpha)/n_iter
  return(empirical_power)
}

p1_v <- seq(0.5, 0.6, 0.01)
set.seed(1)
power_proptest <- sapply(p1_v, function(x) GetPower(10000, 1000, 1000, x))
power_mwu <- sapply(p1_v, function(x) GetPower(10000, 1000, 1000, x, type="MWU"))
Masato Nakazawa
la source
votre image de résultat est entièrement noire
Ooker