Ir al contenido
wannacode

Correlación y causa

En resumen: La correlación muestra que dos cosas se mueven juntas, no que una cause la otra; una tercera causa o la paradoja de Simpson pueden darle la vuelta a la conclusión.

Problema

«El banner sube los pedidos»

Marketing colgó un banner de «Envío gratis». No fue una prueba: el banner se mostró a discreción de alguien. El registro tiene 10 000 visitas: el dispositivo, si se vio el banner (saw_banner), si hubo pedido:

Pythondatos: las tablas de la tienda

Con el banner piden el 5,66 % de las visitas, sin él el 3,63 %. Marketing quiere mostrarlo a todos: la diferencia es de 2 puntos, y con el banner hay un 56 % más de pedidos.

Pero ¿causa eso el banner?

La idea

¿Quién vio el banner?

Antes de fiarte de la diferencia, mira quién está en cada grupo:

Pythondatos: las tablas de la tienda

De 3000 visitas desde escritorio, 2400 vieron el banner. De 7000 desde un teléfono, solo 1400. Y los de escritorio piden más a menudo de todos modos: 7,70 % frente a 2,99 %.

El grupo «con banner» está lleno de computadoras de escritorio, y el grupo «sin banner» de teléfonos. Así que no comparas banner con no banner, sino sobre todo escritorio con teléfono. El dispositivo es una variable de confusión: influye tanto en quién ve el banner como en quién pide.

La idea

Separar por dispositivo

Compara el banner dentro de cada dispositivo. Entonces el dispositivo es el mismo en ambos lados:

Pythondatos: las tablas de la tienda

En escritorio piden el 7,50 % con el banner, el 8,50 % sin él. En móvil el 2,50 % frente al 3,11 %. El banner lo hace peor en los dos dispositivos, mientras que en conjunto parecía mejor. Esto se llama paradoja de Simpson: el sentido para todos juntos es el contrario al sentido en cada grupo.

Más precisamente, para curiosos

En cada dispositivo por separado la diferencia está dentro del ruido: 600 visitas de escritorio sin el banner son pocas.

Pythondatos: las tablas de la tienda

Así que la conclusión honesta no es «el banner perjudica», sino «no hay evidencia de que el banner ayude». El sentido contrario en conjunto viene enteramente de la mezcla de dispositivos.

Pruébalo

Calcula la paradoja

Guarda en gap la diferencia de conversión con banner − sin banner para cada dispositivo, en puntos, y en overall_gap la misma diferencia para todas las visitas juntas.

Pythondatos: las tablas de la tienda

La idea

Por qué el total se invierte

La conversión global de un grupo es un promedio de los dispositivos, ponderado por cuántas visitas de cada dispositivo hay en el grupo:

Pythondatos: las tablas de la tienda

Con el banner el 63 % de las visitas son de escritorio, sin él solo el 10 %. Así que el grupo del banner recibe mucho de la alta conversión de escritorio: (180 + 35) pedidos de 3800 visitas son el 5,66 %. El grupo sin el banner es casi todo teléfonos: (51 + 174) de 6200 son el 3,63 %.

La diferencia global no viene del banner. Viene de dónde se mostró el banner: donde la gente pide más de todos modos.

La idea

Correlación: corr

El mismo error acecha en los números del año. Aquí están las unidades vendidas por semana: bebidas (agua mineral y jugo de naranja) y verduras (tomates y pepinos). ¿Cuánto van juntas?

Pythondatos: las tablas de la tienda

La correlación es un número de −1 a 1. Cerca de 1: cuando una es grande, la otra también, y los puntos están alrededor de una línea ascendente. Alrededor de 0: no hay tal vínculo. Cerca de −1: una crece, la otra baja. a.corr(b) la calcula, y df.corr() da todos los pares de columnas a la vez.

Aquí es 0,46: en las semanas con más verduras también se venden más bebidas. ¿Significa eso que las verduras venden bebidas?

La idea

La tercera cosa: la estación

Divide las semanas en verano (de junio a agosto) y el resto:

Pythondatos: las tablas de la tienda

En verano se venden de media 121,6 bebidas y 68,2 verduras por semana, el resto del tiempo 81,5 y 38,5. El verano sube las dos. Dentro del verano, sin embargo, la correlación es −0,13, y en las otras semanas −0,15: casi cero. El vínculo viene de la estación, no de las verduras.

1. En las semanas en que se venden más tomates, se vende también más agua mineral. Un compañero propone: «Recortemos los tomates para vender más agua.» ¿Qué se le escapa?

La idea

Por qué la prueba A/B es distinta

En la lección anterior el carrito nuevo era mejor, y eso era una causa, no solo un vínculo. La diferencia con el banner es una cosa: quién decide quién ve qué.

  • En la prueba A/B decide el azar. En los dos grupos los de escritorio eran el 35 %. Todo lo que no mides también se reparte por igual.
  • Con el banner decide alguien. Lo muestra sobre todo en escritorio, y los grupos se diferencian en el dispositivo, y quizá en otras cosas que no están en la tabla.

Separar por dispositivo arregla solo el factor que conoces y has registrado. La asignación aleatoria arregla también los que no conoces. Por eso, cuando puedes, haces una prueba.

La idea

Cómo decirlo con honestidad

Los datos que solo se recogieron, sin venir de una prueba, se llaman observacionales. Con ellos puedes decir «van juntos», no «uno lleva al otro». Compara:

  • «El banner sube los pedidos en 2 puntos.» Esto es una afirmación sobre una causa, que los datos no dan.
  • «Las visitas con el banner piden más a menudo, pero sobre todo porque son de escritorio. En cada dispositivo por separado el banner no ayuda. Para responder esto necesitamos una prueba A/B.»

Antes de fiarte de una diferencia en datos observacionales, pregúntate:

  1. ¿Quién acaba en cada grupo, y por qué?
  2. ¿Hay una tercera cosa (dispositivo, estación, tipo de cliente) que mueva las dos?
  3. ¿Se invierte la diferencia si separas por ella?

Ejercicio

Una comparación justa

Compara el banner de forma justa: ¿cuál es la conversión con y sin banner si los dos grupos tuvieran la mezcla de dispositivos de todas las visitas? Guarda en desktop_share la proporción de escritorio entre todas las visitas, y en with_banner y without_banner las conversiones ponderadas en porcentaje.

Pythondatos: las tablas de la tienda

La tarjeta de regalo y la sartén se venden juntas: las semanas con muchas tarjetas tienen también muchas sartenes. Guarda en overall su correlación en todas las semanas, y en outside la correlación sin las semanas de fiestas (la máscara holidays: del 1 de diciembre al 4 de enero).

Pythondatos: las tablas de la tienda

Test

Ponte a prueba

1. ¿Qué es la paradoja de Simpson?
2. ¿Por qué el dispositivo es una variable de confusión para el banner?
3. La correlación entre dos columnas es 0,46. ¿Qué sabes con seguridad?
4. ¿Por qué la prueba A/B del carrito no sufre el problema del banner?
5. ¿Qué frase sobre el registro del banner es honesta?

Creado por Ivo Gergov como parte de la campaña de Evo Tech por una educación accesible en programación ·