¿Regresión lineal o prueba T? ¿Cómo elegir?
\ A menudo nos dejamos atrapar por el revuelo en torno a los sofisticados modelos de aprendizaje automático y los avances en aprendizaje profundo, pero no pasemos por alto la humilde regresión lineal.
\ ==En un mundo de LLM y arquitecturas de vanguardia, la regresión lineal desempeña discretamente un papel crucial, y es momento de que destaquemos cómo puede ser beneficiosa incluso hoy en día.==
\ Consideremos un escenario donde una empresa de comercio electrónico introduce un nuevo banner, y nuestro objetivo es evaluar el impacto de este en la duración promedio de la sesión. Para lograrlo, se realizó un experimento y se recopilaron datos para el análisis. Analicemos los resultados.
Empleemos una herramienta familiar para esta tarea: la prueba t.
Los resultados son bastante prometedores:
El incremento en la métrica es simplemente la diferencia entre los promedios de muestra de los grupos de control y tratamiento. En nuestro caso, el incremento estimado es de 0.56 minutos, lo que indica que los usuarios, en promedio, pasan 33 segundos más utilizando nuestro producto.
Ahora, empleemos la regresión lineal con el vector de tratamiento (si se muestra o no el nuevo banner) como variable independiente y la duración promedio de la sesión como variable de salida.
Luego imprimimos el resumen de nuestro modelo:
\
\ Notablemente, el coeficiente para la variable de tratamiento se alinea con nuestra estimación anterior de incremento de 0.56. Vale la pena señalar que R-cuadrado es solo 0.008, y no explicamos demasiado de la varianza con este modelo.
¿Es una coincidencia que el incremento que obtuvimos de la prueba t y el coeficiente de tratamiento sean iguales? Profundicemos en la conexión.
\ Pensemos en qué refleja la variable de tratamiento. Cuando es igual a 1, indica la duración promedio de sesión para usuarios que vieron el banner; cuando es igual a 0, indica la duración promedio de sesión para usuarios que no vieron el banner. Significa que la variable de tratamiento (o pendiente en términos de regresión lineal) significa el cambio en la media entre los grupos de control y tratamiento.
¿Cuál es la hipótesis nula para la variable de tratamiento en la regresión lineal?
¿Cuál es la hipótesis nula cuando aplicamos la prueba T para el experimento? Es totalmente la misma.
Por lo tanto, al calcular las estadísticas t y el valor p para hipótesis idénticas, nuestros hallazgos permanecen consistentes e idénticos.
Sin embargo, ¿cuál es la razón detrás del uso de la regresión lineal? No queremos simplemente complicar las cosas en exceso.
\ Primero, pensemos si solo el tratamiento es responsable del cambio en nuestra métrica principal.
\ En realidad, esto puede no ser completamente preciso debido a la presencia de sesgo de selección.
\ El sesgo de selección en las pruebas A/B es un tipo de error cuando existe una diferencia sistemática entre los grupos que se comparan que no se debe al azar, por ejemplo:
\
Observamos que los usuarios antiguos están expuestos a un nuevo banner con más frecuencia que los nuevos clientes.
\
La asignación aleatoria que usamos en las pruebas AB nos ayuda a mitigarlo, pero es difícil eliminarlo completamente.
\ Formulemos cómo estimar el efecto verdadero.
ATE: efecto promedio del tratamiento que pretendemos estimar.
\ ATT: efecto promedio del tratamiento de los tratados. También podemos llamarlo ACE: efecto causal promedio. De hecho, podemos calcularlo. Es la diferencia entre los promedios de muestra de los grupos de control y tratamiento.
\ SB: sesgo de selección que pretendemos minimizar.
\ ¿Cómo podemos minimizarlo?
\ La regresión lineal nos permite agregar covariables/variables de confusión. Probémoslo y agreguemos como una de las variables de confusión la duración promedio de sesión para usuarios antes del experimento.
E imprimimos el resumen del modelo:
¡Nuestro R-cuadrado se ha disparado! Ahora, explicamos el 86% de la varianza.
\ Nuestro efecto de tratamiento ahora es 0.47.
Entonces, tenemos dos efectos de tratamiento: 0.47 y 0.56; ¿cuál es correcto?
\ En este caso, conocemos con certeza el efecto verdadero porque he simulado datos y el incremento real: 0.5
import numpy as np import pandas as pd from scipy import stats import statsmodels.api as sm np.random.seed(45) n = 500 x = np.random.normal(loc = 10 ,scale = 3, size= 2 * n) y = x + np.random.normal(loc = 2 , scale = 1 ,size = len(x)) # For 50% of users we simulate treatment effect treat = 1 * (np.random.rand(2 * n) <= 0.5) experiment = pd.DataFrame(x, columns=["covariate"]) experiment['metric'] = y experiment['treatment'] = treat experiment['noise'] = np.random.normal(size = len(experiment)) # Add noise and uplift to 'metric' for rows where 'treat' is equal to 1 # The real uplift is 0.5 experiment['metric'] = experiment.apply(lambda row: row['metric'] + 0.5 * row['treatment'] + row['noise'] if row['treatment'] == 1 else row['metric'], axis=1)
Eso significa que 0.47 es mejor en términos de diferencia absoluta y está más cerca de reflejar el incremento real.
Usar regresión lineal tiene las siguientes ventajas:
\ ¿Podemos usar regresión lineal para otras pruebas, como la prueba t de Welch o la prueba de Chi-cuadrado?
\ La respuesta simple es sí. Sin embargo, tenemos que hacer algunos ajustes que discutiremos en los próximos artículos!


