"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > degustación de té: un paquete Python para el análisis estadístico de pruebas A/B

degustación de té: un paquete Python para el análisis estadístico de pruebas A/B

Publicado el 2024-11-08
Navegar:832

tea-tasting: a Python package for the statistical analysis of A/B tests

Introducción

Desarrollé tea-tasting, un paquete Python para el análisis estadístico de pruebas A/B que incluye:

  • Prueba t de Student, Bootstrap, reducción de la varianza con CUPED, análisis de potencia y otros métodos y enfoques estadísticos listos para usar.
  • Compatibilidad con una amplia gama de backends de datos, como BigQuery, ClickHouse, PostgreSQL/GreenPlum, Snowflake, Spark, Pandas y otros 20 backends compatibles con Ibis.
  • API extensible: define métricas personalizadas y utiliza pruebas estadísticas de tu elección.
  • API conveniente para reducir el trabajo manual y un marco para minimizar errores.
  • Documentación detallada.

En esta publicación de blog, exploro cada una de estas ventajas de utilizar la degustación de té en el análisis de experimentos.

Si estás ansioso por probarlo, consulta la documentación.

Métodos estadísticos

la degustación de té incluye métodos y técnicas estadísticas que cubren la mayor parte de lo que podrías necesitar en el análisis de experimentos.

Analice promedios y proporciones métricas con la prueba t de Student y la prueba Z. O utilice Bootstrap para analizar cualquier otra estadística de su elección. Y existe un método predefinido para el análisis de cuantiles usando Bootstrap. la degustación de té también detecta discrepancias en las proporciones de muestra de diferentes variantes de una prueba A/B.

cata de té aplica el método delta para el análisis de ratios de promedios. Por ejemplo, número promedio de pedidos por número promedio de sesiones, suponiendo que la sesión no es una unidad de aleatorización.

Utilice datos previos al experimento, pronósticos métricos u otras covariables para reducir la varianza y aumentar la sensibilidad de un experimento. Este enfoque también se conoce como CUPED o CUPAC.

El cálculo de los intervalos de confianza para el cambio porcentual en la prueba t de Student y la prueba Z puede ser complicado. Simplemente tomando el intervalo de confianza para el cambio absoluto y dividiéndolo por el promedio de control se producirá un resultado sesgado. degustación de té aplica el método delta para calcular el intervalo correcto.

Analizar el poder estadístico de las pruebas t de Student y Z. Hay tres opciones posibles:

  • Calcule el tamaño del efecto, dado el poder estadístico y el número total de observaciones.
  • Calcule el número total de observaciones, dado el poder estadístico y el tamaño del efecto.
  • Calcular el poder estadístico, dado el tamaño del efecto y el número total de observaciones.

Obtén más información en la guía del usuario detallada.

La hoja de ruta incluye:

  • Prueba de múltiples hipótesis:
    • Tasa de error familiar: método Holm-Bonferroni.
    • Tasa de descubrimientos falsos: procedimiento de Benjamini-Hochberg.
  • Pruebas A/A y simulaciones para analizar la potencia de cualquier prueba estadística.
  • Más pruebas estadísticas:
    • Pruebas asintóticas y exactas para datos de frecuencia.
    • Prueba U de Mann-Whitney.
  • Pruebas secuenciales: valor p siempre válido con mSPRT.

Puedes definir una métrica personalizada con una prueba estadística de tu elección.

Servicios de datos

Existen muchas bases de datos y motores diferentes para almacenar y procesar datos experimentales. Y en la mayoría de los casos no es eficiente extraer los datos experimentales detallados en un entorno Python. Muchas pruebas estadísticas, como la prueba t de Student o la prueba Z, solo requieren datos agregados para su análisis.

Por ejemplo, si los datos experimentales sin procesar se almacenan en ClickHouse, es más rápido y eficiente calcular recuentos, promedios, variaciones y covarianzas directamente en ClickHouse en lugar de obtener datos granulares y realizar agregaciones en un entorno Python.

Consultar manualmente todas las estadísticas requeridas puede ser una tarea desalentadora y propensa a errores. Por ejemplo, el análisis de métricas de ratios y la reducción de la varianza con CUPED requieren no sólo el número de filas y la varianza, sino también las covarianzas. Pero no te preocupes: la degustación de té hace todo esto por ti.

tea-tasting acepta datos como Pandas DataFrame o Ibis Table. Ibis es un paquete de Python que sirve como API de DataFrame para varios servidores de datos. Admite 20 backends, incluidos BigQuery, ClickHouse, PostgreSQL/GreenPlum, Snowflake y Spark. Puedes escribir una consulta SQL, envolverla como una tabla Ibis y pasarla a degustación de té.

Tenga en cuenta que la degustación de té supone que:

  • Los datos se agrupan por unidades de aleatorización, como usuarios individuales.
  • Hay una columna que indica la variante de la prueba A/B (normalmente etiquetada como A, B, etc.).
  • Todas las columnas necesarias para los cálculos de métricas (como el número de pedidos, ingresos, etc.) se incluyen en la tabla.

Algunos métodos estadísticos, como Bootstrap, requieren datos granulares para el análisis. En este caso, la degustación de té también obtiene los datos detallados.

Obtenga más información en la guía sobre backends de datos.

API conveniente

Puedes realizar todas las tareas enumeradas anteriormente usando solo NumPy, SciPy e Ibis. De hecho, degustación de té utiliza estos paquetes bajo el capó. Lo que ofrece degustación de té es una API conveniente de nivel superior.

Es más fácil mostrar que describir. Aquí está el ejemplo básico:

import tea_tasting as tt


data = tt.make_users_data(seed=42)

experiment = tt.Experiment(
    sessions_per_user=tt.Mean("sessions"),
    orders_per_session=tt.RatioOfMeans("orders", "sessions"),
    orders_per_user=tt.Mean("orders"),
    revenue_per_user=tt.Mean("revenue"),
)

result = experiment.analyze(data)
print(result)
#>             metric control treatment rel_effect_size rel_effect_size_ci pvalue
#>  sessions_per_user    2.00      1.98          -0.66%      [-3.7%, 2.5%]  0.674
#> orders_per_session   0.266     0.289            8.8%      [-0.89%, 19%] 0.0762
#>    orders_per_user   0.530     0.573            8.0%       [-2.0%, 19%]  0.118
#>   revenue_per_user    5.24      5.73            9.3%       [-2.4%, 22%]  0.123

El enfoque de dos etapas, con parametrización e inferencia separadas, es común en el modelado estadístico. Esta separación ayuda a que el código sea más modular y más fácil de entender.

la degustación de té realiza cálculos que pueden ser complicados y propensos a errores:

  • Análisis de métricas de ratios con método delta.
  • Reducción de la varianza con CUPED/CUPAC (también en combinación con el método delta para métricas de ratio).
  • Cálculo de intervalos de confianza para cambios absolutos y porcentuales.
  • Análisis de poder estadístico.

También proporciona un marco para representar datos experimentales para evitar errores. Agrupar los datos por unidades de aleatorización e incluir todas las unidades en el conjunto de datos es importante para un análisis correcto.

Además, degustación de té proporciona algunos métodos y funciones convenientes, como un formato atractivo del resultado y un administrador de contexto para parámetros métricos.

Documentación

Por último, pero no menos importante: documentación. Creo que una buena documentación es crucial para la adopción de herramientas. Por eso escribí varias guías de usuario y una referencia de API.

Recomiendo comenzar con el ejemplo de uso básico en la guía del usuario. Luego podrás explorar temas específicos, como la reducción de la varianza o el análisis de potencia, en la misma guía.

Consulta la guía sobre backends de datos para aprender a utilizar un backend de datos de tu elección con degustación de té.

Consulta la guía sobre métricas personalizadas si deseas realizar una prueba estadística que no esté incluida en degustación de té.

Utilice la referencia de API para explorar todos los parámetros e información detallada sobre las funciones, clases y métodos disponibles en degustación de té.

Conclusiones

Existe una variedad de métodos estadísticos que se pueden aplicar en el análisis de un experimento. Pero en la mayoría de los casos sólo se utilizan unos pocos de ellos.

Por otro lado, existen métodos específicos para el análisis de pruebas A/B que no están incluidos en los paquetes estadísticos de propósito general como SciPy.

La funcionalidad de degustación de té incluye las pruebas estadísticas más importantes, así como métodos específicos para el análisis de pruebas A/B.

tea-tasting proporciona una API conveniente que ayuda a reducir el tiempo dedicado al análisis y minimizar la probabilidad de error.

Además, la degustación de té optimiza la eficiencia computacional al calcular las estadísticas en el backend de datos de su elección, donde se almacenan los datos.

Con la documentación detallada, podrás aprender rápidamente cómo utilizar la degustación de té para el análisis de tus experimentos.

PD Nombre del paquete

El nombre del paquete "degustación de té" es un juego de palabras que hace referencia a dos temas:

  • La dama probando té es un experimento famoso ideado por Ronald Fisher. En este experimento, Fisher desarrolló el marco de prueba de significación de la hipótesis nula para analizar la afirmación de una mujer de que podía discernir si el té o la leche se añadían primero a la taza.
  • La "degustación de té" se parece fonéticamente a la "prueba t" o prueba t de Student, una prueba estadística desarrollada por William Gosset.
Declaración de liberación Este artículo se reproduce en: https://dev.to/e10v/tea-tasting-a-python-package-for-the-statistical-analysis-of-ab-tests-4fnj?1 Si hay alguna infracción, por favor contacto Study_golang@163 .comeliminar
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3