Tests Ab

Reducción del error en tests A/B (y similares)

Hoy, cuatro maneras distintas de realizar un test A/B. Comienzo con unos datos simulados que tienen este aspecto:

set.seed(1)
n <- 1000
test <- c(rep(0, n/2), rep(1, n/2))
y0 <- rnorm(n)
y1 <- y0 + test + rnorm(n)

Ahí:

  • n es el número de sujetos, 1000.
  • test es un vector que indica el tratamiento: 500 en un grupo, 500 en otro.
  • y0 es el valor de/asociado a los sujetos en un periodo anterior al tratamiento.
  • y1 es el valor de los sujetos después del tratamiento. Como se puede ver, está relacionado con el tratamiento en sí y con el valor anterior. Se le ha añadido, además, cierta cantidad de ruido estadístico.

Hay varias maneras de estimar el efecto del tratamiento (o de, como dicen algunos, realizar un test A/B). Voy a mencionar cuatro.

De A/B a DiD

Un test A/B consiste en (o aspira a) estimar (y tal vez promediar) las diferencias

predict(modelo_t, x) - predict(modelo_c, x)

donde modelo_t y modelo_c son modelos construidos en grupos tratados y no tratados de cierta manera.

Entra el tiempo.

Ahora ya no se trata de medir esas diferencias sino las diferencias entre los incrementos antes y después. Que se hace construyendo cuatro modelos para con ellos obtener

(predict(modelo_td, x) - predict(modelo_ta, x)) -