¿Por qué está mal detener una prueba A / B antes de alcanzar el tamaño de muestra óptimo?

13

Estoy a cargo de presentar los resultados de las pruebas A / B (ejecutadas en variaciones del sitio web) en mi empresa. Ejecutamos la prueba durante un mes y luego verificamos los valores p a intervalos regulares hasta que alcancemos la significación (o la abandonamos si no se alcanza la significación después de ejecutar la prueba durante mucho tiempo), algo que ahora estoy descubriendo es una práctica errónea .

Quiero detener esta práctica ahora, pero para hacer eso, quiero entender POR QUÉ esto está mal. I entiendo que el tamaño del efecto, el tamaño de la muestra (N), el criterio alfa significación (α) y el poder estadístico, o la beta elegido o implícita (β) están relacionadas matemáticamente. Pero, ¿qué cambia exactamente cuando detenemos nuestra prueba antes de alcanzar el tamaño de muestra requerido?

He leído algunas publicaciones aquí ( esto es , esto y esto ), y me dicen que mis estimaciones estarían sesgadas y que la tasa de mi error Tipo 1 aumenta dramáticamente. ¿Pero cómo sucede eso? Estoy buscando una explicación matemática , algo que muestre claramente los efectos del tamaño de la muestra en los resultados. Supongo que tiene algo que ver con las relaciones entre los factores que mencioné anteriormente, pero no he podido encontrar las fórmulas exactas y resolverlas por mi cuenta.

Por ejemplo, detener la prueba prematuramente aumenta la tasa de error Tipo 1. Bien. ¿Pero por qué? ¿Qué sucede para aumentar la tasa de error tipo 1? Me falta la intuición aquí.

Ayuda por favor.

sgk
fuente
1
podría ser útil evanmiller.org/how-not-to-run-an-ab-test.html
seanv507
1
Sí, revisé este enlace, pero no entendí el ejemplo dado.
sgk
lo siento Gopalakrishnan: no había visto que tu primer enlace ya lo señalara.
seanv507
1
¿Puedes explicar lo que no entiendes? La matemática / intuición parece bastante clara: no se detiene tanto antes del tamaño de muestra requerido, sino que se verifica repetidamente. , por lo que no puede usar una prueba diseñada para verificaciones individuales varias veces. P(i1Nxi>θ)P(xN>θ)
seanv507
@GopalakrishnanShanker explicación matemática dada en mi respuesta
tomka

Respuestas:

4

Las pruebas A / B que simplemente prueban repetidamente en los mismos datos con un nivel fijo de error tipo 1 ( ) son fundamentalmente defectuosas. Hay al menos dos razones por las cuales esto es así. Primero, las pruebas repetidas están correlacionadas pero las pruebas se realizan de forma independiente. En segundo lugar, el fijo no tiene en cuenta las pruebas realizadas de forma múltiple que conducen a una inflación de error de tipo 1.αα

Para ver el primero, suponga que en cada nueva observación realiza una nueva prueba. Claramente, los dos valores p posteriores se correlacionarán porque casos no han cambiado entre las dos pruebas. En consecuencia, vemos una tendencia en la gráfica de @Bernhard que demuestra esta correlación de los valores p.n1

Para ver el segundo, notamos que incluso cuando las pruebas son independientes, la probabilidad de tener un valor p por debajo de aumenta con el número de pruebas donde es El evento de una hipótesis nula falsamente rechazada. Entonces, la probabilidad de tener al menos un resultado positivo de la prueba va en contra de cuando repetidamente prueba a / b. Si simplemente se detiene después del primer resultado positivo, solo habrá mostrado la exactitud de esta fórmula. Dicho de otra manera, incluso si la hipótesis nula es cierta, finalmente la rechazará. La prueba a / b es, por lo tanto, la mejor manera de encontrar efectos donde no los hay.αt

P(A)=1(1α)t,
A1

Como en esta situación, tanto la correlación como las pruebas múltiples se mantienen al mismo tiempo, el valor p de la prueba depende del valor p de . Entonces, si finalmente alcanza un , es probable que permanezca en esta región por un tiempo. También puede ver esto en la trama de @ Bernhard en la región de 2500 a 3500 y de 4000 a 5000.t+1tp<α

Las pruebas múltiples per-se son legítimas, pero las pruebas contra un fijo no lo son. Existen muchos procedimientos que tratan tanto con el procedimiento de prueba múltiple como con las pruebas correlacionadas. Una familia de correcciones de prueba se llama control de tasa de error familiar . Lo que hacen es asegurarα

P(A)α.

El ajuste posiblemente más famoso (debido a su simplicidad) es Bonferroni. Aquí configuramos para lo cual se puede demostrar fácilmente que si el número de pruebas independientes es grande. Si las pruebas están correlacionadas, es probable que sean conservadoras, . Entonces, el ajuste más fácil que podría hacer es dividir su nivel alfa de por el número de pruebas que ya ha realizado.

αadj=α/t,
P(A)αP(A)<α0.05

Si aplicamos Bonferroni a la simulación de , y intervalo en el eje y, encontramos el gráfico a continuación. Para mayor claridad, supuse que no probamos después de cada lanzamiento de moneda (prueba) sino solo cada centésima. La línea punteada negra es el estándar cortado y la línea punteada roja es el ajuste de Bonferroni.(0,0.1)α=0.05

ingrese la descripción de la imagen aquí

Como podemos ver, el ajuste es muy efectivo y demuestra cuán radical tenemos que cambiar el valor p para controlar la tasa de error familiar. Específicamente, ahora ya no encontramos ninguna prueba significativa, ya que debería ser porque la hipótesis nula de @ Berhard es cierta.

Una vez hecho esto, notamos que Bonferroni es muy conservador en esta situación debido a las pruebas correlacionadas. Hay pruebas superiores que serán más útiles en esta situación en el sentido de tener , como la prueba de permutación . También hay mucho más que decir sobre las pruebas que simplemente referirse a Bonferroni (por ejemplo, buscar tasas de descubrimiento falsas y técnicas bayesianas relacionadas). Sin embargo, esto responde a sus preguntas con una cantidad mínima de matemáticas.P(A)α


Aquí está el código:

set.seed(1)
n=10000
toss <- sample(1:2, n, TRUE)

p.values <- numeric(n)
for (i in 5:n){
  p.values[i] <- binom.test(table(toss[1:i]))$p.value
}
p.values = p.values[-(1:6)]
plot(p.values[seq(1, length(p.values), 100)], type="l", ylim=c(0,0.1),ylab='p-values')
abline(h=0.05, lty="dashed")
abline(v=0)
abline(h=0)
curve(0.05/x,add=TRUE, col="red", lty="dashed")
tomka
fuente
2
Esto funciona para mi. Tendré que traducir esto al habla de negocios para transmitir mi punto a mis superiores ahora, pero ese es mi propio problema. Muchas gracias
sgk
8

Si la hipótesis nula es cierta, la gente suele esperar que el valor p sea muy alto. Esto no es verdad. Si la hipótesis nula es verdadera, entonces p es una variable aleatoria distribuida uniformemente. Lo que significa que de vez en cuando será inferior a 0.05 solo al azar. Si observa muchas submuestras diferentes, a veces el valor p estará por debajo de 0.05.

Para que sea más fácil de entender, aquí hay una pequeña simulación en R:

Esto arrojará una moneda 10,000 veces y sabemos que es una moneda justa:

set.seed(1)
n=10000
toss <- sample(1:2, n, TRUE)

A partir del quinto lanzamiento, se realizará una prueba binomial de equidad después de cada lanzamiento y se guardarán los valores p:

p.values <- numeric(n)
for (i in 5:n){
     p.values[i] <- binom.test(table(toss[1:i]))$p.value
}

Y esto trazará los valores p uno tras otro:

plot(p.values, type="l")
abline(h=0.05)

ingrese la descripción de la imagen aquí

Como puede ver, el valor p cae por debajo de 0.05 un par de veces solo para recuperarse y finalmente termina muy por encima de p = 0.05. Si detuviéramos el juicio en cualquier momento en que p fuera "significativo", llegaríamos a la conclusión equivocada. Uno podría argumentar que "tenemos una muestra de aproximadamente más de 4000 ensayos iid y p estaba por debajo de 0,05. Sin duda, podemos dejar de tomar muestras". Cuanto más frecuentemente verifiques el valor p, más probable es que lo hagas en una caída aleatoria. En este caso generamos los datos bajo y sabemos que es verdadero.H 0H0H0

(Solo para estar perfectamente abierto, he probado más de una semilla para el generador de números antes de que fuera tan claro como este ejemplo, pero eso es justo para fines educativos. Si ha Rinstalado y funcionando, puede jugar fácilmente con los números .)

Bernhard
fuente
Gracias por el simple experimento. Pero supongamos que detuve la prueba en una de esas etapas (cuando el valor p <0.05), ¿qué significarán mis resultados? (Aparte del hecho de que está mal). ¿Es posible para mí compensar reduciendo el umbral del valor p?
sgk
+1 Tenga en cuenta las pruebas correlacionadas y el problema de pruebas múltiples relacionado. Vea mi respuesta extendida con las opciones de ajuste a continuación, según su (muy bueno) ejemplo.
tomka
No puede compensarlo al reducir el umbral del valor p . Elegir un siempre es un compromiso en el área de conflicto entre el error tipo I y el error tipo II, también conocido como error alfa y error beta. Por supuesto, puede compensar uno de ellos total o parcialmente, pero finalmente este conflicto se vuelve cada vez más difícil cuanto más lo prueba. He leído que los baysianos afirman que tienen menos problemas con eso, pero con poco conocimiento, creo que esto solo sirve para modelar la creencia en el valor de una estadística y no en las decisiones de sí / no. ααα
Bernhard el
Mi punto principal es el de controlar la tasa de error sabio familiar (FWER) o la tasa de descubrimiento falso (FDR), ambas dirigidas al error tipo 1. Controlar el error tipo 2 es un problema menor en las pruebas a / b debido a que generalmente las muestras son muy grandes.
tomka
@GopalakrishnanShanker si se detuvo en la primera significa que tiene un falso positivo. Vea la respuesta a continuación, también para un ajustep=0.05
tomka