차 시음: A/B 테스트의 통계 분석을 위한 Python 패키지

WBOY
풀어 주다: 2024-08-12 22:35:32
원래의
793명이 탐색했습니다.

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

소개

저는 다음 기능을 갖춘 A/B 테스트 통계 분석용 Python 패키지인tea-tasting을 개발했습니다.

  • 학생 t-검정, 부트스트랩, CUPED를 사용한 분산 감소, 검정력 분석, 기타 통계 방법 및 기본 접근 방식
  • BigQuery, ClickHouse, PostgreSQL/GreenPlum, Snowflake, Spark, Pandas 및 Ibis에서 지원하는 20개 이상의 기타 백엔드 등 광범위한 데이터 백엔드를 지원합니다.
  • 확장 가능한 API: 맞춤형 지표를 정의하고 원하는 통계 테스트를 사용하세요.
  • 수작업을 줄여주는 편리한 API, 오류를 최소화하는 프레임워크
  • 자세한 문서입니다.

이 블로그 게시물에서는 실험 분석에서차 시식을 사용하여 얻을 수 있는 이점을 각각 살펴봅니다.

사용해보고 싶다면 설명서를 확인하세요.

통계적 방법

차 시식에는 실험 분석에 필요한 대부분의 통계적 방법과 기법이 포함되어 있습니다.

스튜던트 t-테스트와 Z-테스트를 사용하여 미터법 평균과 비율을 분석합니다. 또는 부트스트랩을 사용하여 원하는 다른 통계를 분석하세요. 그리고 Bootstrap을 사용하여 분위수를 분석하기 위해 미리 정의된 방법이 있습니다.차 시식은 또한 A/B 테스트의 다양한 변형 샘플 비율에서 불일치를 감지합니다.

tea-tasting은 평균 비율 분석을 위해 델타 방법을 적용합니다. 예를 들어, 세션이 무작위 단위가 아니라고 가정할 때 평균 세션 수당 평균 주문 수입니다.

사전 실험 데이터, 지표 예측 또는 기타 공변량을 사용하여 분산을 줄이고 실험의 민감도를 높입니다. 이 접근 방식은 CUPED 또는 CUPAC라고도 합니다.

스튜던트 t-검정과 Z-검정의백분율변화에 대한 신뢰 구간 계산은 까다로울 수 있습니다.절대변화에 대한 신뢰 구간을 취하고 이를 관리 평균으로 나누면 편향된 결과가 생성됩니다.차 시음은 델타 방법을 적용하여 정확한 간격을 계산합니다.

스튜던트 t-테스트 및 Z-테스트에 대한 통계적 검정력을 분석합니다. 세 가지 가능한 옵션이 있습니다:

  • 통계력과 총 관측 횟수를 고려하여 효과 크기를 계산합니다.
  • 통계력과 효과 크기를 고려하여 총 관찰 수를 계산합니다.
  • 효과 크기와 총 관측 횟수를 고려하여 통계적 검정력을 계산합니다.

자세한 사용자 가이드에서 자세히 알아보세요.

로드맵에는 다음이 포함됩니다.

  • 여러 가설 테스트:
    • 가족별 오류율: Holm–Bonferroni 방법.
    • 거짓 발견률: Benjamini–Hochberg 절차.
  • A/A 테스트 및 시뮬레이션을 통해 통계 테스트의 성능을 분석할 수 있습니다.
  • 추가 통계 테스트:
    • 빈도 데이터에 대한 점근적이고 정확한 테스트입니다.
    • Mann-Whitney U 테스트
  • 순차 테스트: mSPRT를 사용하면 항상 유효한 p-값입니다.

원하는 통계 테스트를 통해 맞춤 측정항목을 정의할 수 있습니다.

데이터 백엔드

실험 데이터를 저장하고 처리하기 위한 다양한 데이터베이스와 엔진이 있습니다. 그리고 대부분의 경우 자세한 실험 데이터를 Python 환경으로 가져오는 것은 효율적이지 않습니다. 스튜던트 t-테스트 또는 Z-테스트와 같은 많은 통계 테스트에서는 분석을 위해 집계된 데이터만 필요합니다.

예를 들어 원시 실험 데이터가 ClickHouse에 저장되어 있는 경우 Python 환경에서 세분화된 데이터를 가져와 집계를 수행하는 것보다 ClickHouse에서 직접 개수, 평균, 분산 및 공분산을 계산하는 것이 더 빠르고 효율적입니다.

필요한 모든 통계를 수동으로 쿼리하는 것은 어렵고 오류가 발생하기 쉬운 작업일 수 있습니다. 예를 들어 CUPED를 사용한 비율 측정항목 및 분산 감소 분석에는 행 수와 분산뿐만 아니라 공분산도 필요합니다. 하지만 걱정하지 마세요.차 시식이 모든 효과가 있습니다.

tea-tasting은 Pandas DataFrame 또는 Ibis Table로 데이터를 허용합니다. Ibis는 다양한 데이터 백엔드에 대한 DataFrame API 역할을 하는 Python 패키지입니다. BigQuery, ClickHouse, PostgreSQL/GreenPlum, Snowflake 및 Spark를 포함하여 20개 이상의 백엔드를 지원합니다. SQL 쿼리를 작성하고 Ibis 테이블로 래핑한 다음tea-tasting에 전달할 수 있습니다.

차 시식은 다음을 가정한다는 점을 명심하세요.

  • Les données sont regroupées par unités de randomisation, telles que les utilisateurs individuels.
  • Il y a une colonne indiquant la variante du test A/B (généralement étiquetée comme A, B, etc.).
  • Toutes les colonnes nécessaires aux calculs de métriques (comme le nombre de commandes, les revenus, etc.) sont incluses dans le tableau.

Certaines méthodes statistiques, comme Bootstrap, nécessitent des données granulaires pour l'analyse. Dans ce cas,tea-tastingrécupère également les données détaillées.

Apprenez-en plus dans le guide sur les backends de données.

API pratique

Vous pouvez effectuer toutes les tâches répertoriées ci-dessus en utilisant uniquement NumPy, SciPy et Ibis. En fait,tea-tastingutilise ces emballages sous le capot. Ce quetea-tastingoffre en plus, c'est une API pratique de niveau supérieur.

C'est plus facile à montrer qu'à décrire. Voici l'exemple de base :

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
로그인 후 복사

L'approche en deux étapes, avec paramétrisation et inférence séparées, est courante dans la modélisation statistique. Cette séparation contribue à rendre le code plus modulaire et plus facile à comprendre.

tea-tastingeffectue des calculs qui peuvent être délicats et sujets aux erreurs :

  • Analyse des métriques de ratio avec la méthode delta.
  • Réduction de la variance avec CUPED/CUPAC (également en combinaison avec la méthode delta pour les mesures de ratio).
  • Calcul des intervalles de confiance pour la variation absolue et en pourcentage.
  • Analyse de la puissance statistique.

Il fournit également un cadre pour représenter les données expérimentales afin d'éviter les erreurs. Le regroupement des données par unités de randomisation et l'inclusion de toutes les unités dans l'ensemble de données sont importants pour une analyse correcte.

De plus,tea-tastingfournit des méthodes et fonctions pratiques, telles qu'un joli formatage du résultat et un gestionnaire de contexte pour les paramètres métriques.

Documentation

Dernier point mais non le moindre : la documentation. Je pense qu'une bonne documentation est cruciale pour l'adoption d'un outil. C'est pourquoi j'ai écrit plusieurs guides d'utilisation et une référence API.

Je recommande de commencer par l'exemple d'utilisation de base dans le guide de l'utilisateur. Vous pourrez ensuite explorer des sujets spécifiques, tels que la réduction de la variance ou l'analyse de puissance, dans le même guide.

Consultez le guide sur les backends de données pour apprendre à utiliser un backend de données de votre choix avectea-tasting.

Consultez le guide sur les métriques personnalisées si vous souhaitez effectuer des tests statistiques qui ne sont pas inclus dansdégustation de thé.

Utilisez la référence API pour explorer tous les paramètres et informations détaillées sur les fonctions, classes et méthodes disponibles danstea-tasting.

Conclusions

Il existe une variété de méthodes statistiques qui peuvent être appliquées dans l’analyse d’une expérience. Mais seule une poignée d’entre eux sont réellement utilisés dans la plupart des cas.

D'autre part, il existe des méthodes spécifiques à l'analyse des tests A/B qui ne sont pas incluses dans les packages statistiques à usage général comme SciPy.

La fonctionnalité

tea-tastinginclut les tests statistiques les plus importants, ainsi que des méthodes spécifiques à l'analyse des tests A/B.

tea-tastingfournit une API pratique qui permet de réduire le temps consacré à l'analyse et de minimiser la probabilité d'erreur.

De plus,tea-tastingoptimise l'efficacité des calculs en calculant les statistiques dans le backend de données de votre choix, où les données sont stockées.

Grâce à la documentation détaillée, vous pourrez rapidement apprendre à utilisertea-tastingpour l'analyse de vos expériences.

P.S. Nom du package

Le nom du package « tea-tasting » est un jeu de mots qui fait référence à deux sujets :

  • La dégustation du thé par une femme est une expérience célèbre conçue par Ronald Fisher. Dans cette expérience, Fisher a développé le cadre de test de signification de l'hypothèse nulle pour analyser l'affirmation d'une femme selon laquelle elle pouvait discerner si le thé ou le lait avait été ajouté en premier dans la tasse.
  • « tea-tasting » ressemble phonétiquement au « t-testing » ou au Student's t-test, un test statistique développé par William Gosset.

위 내용은 차 시음: A/B 테스트의 통계 분석을 위한 Python 패키지의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!