Welcher statistische Test wird für den A / B-Test verwendet?

12

Wir haben zwei Kohorten mit jeweils 1000 Proben. Wir messen 2 Mengen pro Kohorte. Die erste ist eine binäre Variable. Die zweite Zahl ist eine reelle Zahl, die einer starken Schwanzverteilung folgt. Wir möchten beurteilen, welche Kohorte für jede Metrik die beste Leistung erbringt. Es stehen zahlreiche statistische Tests zur Auswahl: Die Leute schlagen einen Z-Test vor, andere einen T-Test und andere einen Mann-Whitney-Test.

  • Welchen Test oder welche Tests sollten wir für jede Metrik für unseren Fall auswählen?
  • Was passiert, wenn ein Test einen signifikanten Unterschied zwischen Kohorten und ein anderer Test einen nicht signifikanten Unterschied anzeigt?
iliasfl
quelle

Antworten:

12

Angesichts der Tatsache, dass Ihre beiden Metriken 1) binär und 2) stark schwankend sind, sollten Sie einen t-Test vermeiden, der normale Verteilungen voraussetzt.

Ich denke, Mann-Whitney U ist Ihre beste Wahl und sollte ausreichend effizient sein, auch wenn Ihre Verteilungen nahezu normal waren.

Zu Ihrer zweiten Frage:

Was passiert, wenn ein Test einen signifikanten Unterschied zwischen Kohorten und ein anderer Test einen nicht signifikanten Unterschied anzeigt?

Dies ist nicht ungewöhnlich, wenn der statistische Unterschied grenzwertig ist und die Daten "unordentliche" Stichprobenverteilungen aufweisen. In dieser Situation muss der Analyst alle Annahmen und Einschränkungen jedes statistischen Tests sorgfältig abwägen und dem statistischen Test mit der geringsten Anzahl von Verstößen gegen Annahmen das größte Gewicht verleihen.

Nehmen Sie die Normalverteilung an. Es gibt verschiedene Tests für die Normalität, aber das ist noch nicht das Ende der Geschichte. Einige Tests funktionieren bei symmetrischen Verteilungen ziemlich gut , auch wenn es Abweichungen von der Normalität gibt, aber bei Schrägverteilungen funktionieren sie nicht gut.

Als allgemeine Faustregel würde ich vorschlagen, dass Sie keinen Test durchführen, bei dem eine seiner Annahmen eindeutig verletzt wird.

BEARBEITEN: Für die zweite Variable ist es möglicherweise möglich, die Variable in eine normal verteilte (oder zumindest nahe) zu transformieren, solange die Transformation die Reihenfolge beibehält. Sie müssen sicher sein, dass die Transformation für beide Kohorten eine Normalverteilung ergibt. Wenn Sie die zweite Variable an die Protokollnormalverteilung anpassen, wird sie von einer Protokollfunktion in eine Normalverteilung umgewandelt. Wenn die Verteilung jedoch Pareto (Potenzgesetz) ist, erfolgt keine Umwandlung in eine Normalverteilung.

BEARBEITEN: Wie in diesem Kommentar vorgeschlagen , sollten Sie auf jeden Fall die Bayes'sche Schätzung als Alternative zu T-Tests und anderen Nullhypothesen-Signifikanztests (NHST) in Betracht ziehen.

MrMeritology
quelle
Danke für die Information. Ich war nicht klar genug, ich habe zwei Größen, von denen eine binär ist und eine andere, die eine reelle Zahl nach der Verteilung des schweren Schwanzes ist. Ich habe die Frage bearbeitet, um dies zu klären.
Iliasfl
Ja, ich glaube ich verstehe. Sie möchten den Test zweimal ausführen, einmal für die Binärvariable und einmal für die Realvariable (Heavy-Tailed-Verteilung). Ich empfehle, das Mann-Whitney U für beide zu betreiben.
Warum ist ein Mann-Whitney für binäre Daten geeignet?
Glen_b
Mann-Whitney U ist für nicht normale Verteilungen wirksam, einschließlich diskreter Verteilungen mit zwei Werten (dh binär). Wenn alle Daten binär wären, würde vielleicht ein anderer Test besser funktionieren.
MrMeritology
Kann jemand bestätigen, ob dies wahr ist? ...
7

Für die real bewerteten Daten möchten Sie möglicherweise auch eine eigene Teststatistik generieren, die auf einem Bootstrap Ihrer Daten basiert. Dieser Ansatz führt in der Regel zu genauen Ergebnissen, wenn Sie mit nicht normalen Populationsverteilungen arbeiten oder versuchen, ein Konfidenzintervall für einen Parameter zu entwickeln, für den keine geeignete Analyselösung verfügbar ist. (Ersteres ist in Ihrem Fall richtig. Ich erwähne Letzteres nur für den Kontext.)

Für Ihre echten Daten würden Sie Folgendes tun:

  1. Fassen Sie Ihre beiden Kohorten zusammen.
  2. Probieren Sie aus dem Pool zwei Gruppen von 1000 Elementen mit Ersatz.
  3. Berechnen Sie die Differenz im Stichprobenmittel zwischen den beiden Gruppen.
  4. Wiederholen Sie die Schritte 2 und 3 einige tausend Mal, um eine Verteilung dieser Unterschiede zu entwickeln.

Sobald Sie diese Verteilung erhalten haben, berechnen Sie die Differenz der Mittelwerte für Ihre tatsächlichen Stichproben und berechnen Sie einen p-Wert.

Nathan Gould
quelle
Vielen Dank, Sie erhalten also eine Verteilung, die normal sein sollte und eine mittlere und Standardabweichung aufweist. Wie würden Sie den p-Wert daraus und möglicherweise die Konfidenzintervalle berechnen, um den Gewinner zu bestimmen (falls es einen gibt)?
Iliasfl
Die Verteilung wäre nicht unbedingt normal. Es hätte ungefähr die Verteilung dessen, woraus es entnommen wurde. Das ist das Schöne an der Verwendung eines Bootstraps. In jedem Fall erhalten Sie einen p-Wert, indem Sie Ihre Teststatistik aus Ihren tatsächlichen Ergebnissen berechnen. Dh Unterschied der Mittel jeder Kohorte. Vergleichen Sie dann diese Nummer mit der Verteilung. Das Perzentil, das Sie erhalten, ist Ihr p-Wert für einen einseitigen Test der Differenz im Mittelwert.
Nathan Gould
4
Was Nathan beschreibt, ist auch die Grundlage für Bayes'sche Signifikanztests. Ich habe den Bayesian Estimation Superseded the T-Test (BEST) -Ansatz verwendet (und verwende ihn derzeit ). Sie sollten sich dieses Framework ansehen, wenn Sie einen Pooling-Ansatz implementieren möchten.
Cwharland
0

Ich zweite @ MrMeritology Antwort. Eigentlich habe ich mich gefragt, ob der MWU-Test weniger leistungsfähig ist als der Test mit unabhängigen Proportionen, da die Lehrbücher, aus denen ich gelernt und die ich verwendet habe, besagten, dass der MWU nur auf ordinale (oder Intervall- / Verhältnis-) Daten angewendet werden kann.

Die unten dargestellten Simulationsergebnisse zeigen jedoch, dass der MWU-Test tatsächlich etwas leistungsfähiger ist als der Proportional-Test, während der Typ-I-Fehler gut kontrolliert wird (bei einem Bevölkerungsanteil von Gruppe 1 = 0,50).

Bildbeschreibung hier eingeben

Der Bevölkerungsanteil der Gruppe 2 wird bei 0,50 gehalten. Die Anzahl der Iterationen beträgt an jedem Punkt 10.000. Ich habe die Simulation ohne Yates Korrektur wiederholt, aber die Ergebnisse waren die gleichen.

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
quelle
Ihr Ergebnisbild ist ganz schwarz
Ooker