首頁 > 後端開發 > Python教學 > tea-tasting:用於 A/B 測試統計分析的 Python 套件

tea-tasting:用於 A/B 測試統計分析的 Python 套件

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2024-08-12 22:35:32
原創
1069 人瀏覽過

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

簡介

我開發了tea-tasting,一個用於 A/B 測試統計分析的 Python 包,具有​​:

  • 學生的 t 檢定、Bootstrap、CUPED 變異數縮減、效能分析以及其他開箱即用的統計方法和方法。
  • 支援廣泛的資料後端,例如 BigQuery、ClickHouse、PostgreSQL/GreenPlum、Snowflake、Spark、Pandas 以及 Ibis 支援的 20 多個其他後端。
  • 可擴充 API:定義自訂指標並使用您選擇的統計檢定。
  • 用於減少手動工作的便利 API,以及最小化錯誤的框架。
  • 詳細文檔。

在這篇文章中,我探討了在實驗分析中使用品茶的每一個優點。

如果您渴望嘗試,請查看文件。

統計方法

品茶包括統計方法和技術,涵蓋了您在實驗分析中可能需要的大部分內容。

使用學生 t 檢定和 Z 檢定分析指標平均值和比例。或使用 Bootstrap 來分析您選擇的任何其他統計數據。並且有一種使用 Bootstrap 分析分位數的預定義方法。 品茶 也可以偵測 A/B 測試不同變異的樣本比例不符。

品茶以Delta法分析平均值的比值。例如,假設會話不是隨機化單位,則每平均會話數的平均訂單數。

使用實驗前數據、指標預測或其他協變量來減少變異數並提高實驗的靈敏度。這種方法也稱為 CUPED 或 CUPAC。

學生 t 檢定和 Z 檢定中百分比變化的置信區間的計算可能很棘手。只需取絕對變化的置信區間並將其除以控制平均值就會產生偏差的結果。 品茶採用delta方法計算正確的間隔。

分析學生 t 檢定和 Z 檢定的統計功效。有以下三種可能的選擇:

  • 給定統計功效和觀察總數,計算效應大小。
  • 給定統計功效和效應大小,計算觀察總數。
  • 給定效應大小和觀察總數,計算統計功效。

請參閱詳細的使用者指南以了解更多資訊。

路線圖包括:

  • 多重假設檢定:
    • 系列錯誤率:Holm–Bonferroni 法。
    • 錯誤發現率:Benjamini–Hochberg 程序。
  • A/A 檢定和模擬,用於分析任何統計檢定的功效。
  • 更多統計檢定:
    • 頻率資料的漸近和精確檢定。
    • 曼-惠特尼 U 檢定。
  • 順序檢定:mSPRT 的 p 值總是有效。

您可以使用您選擇的統計檢定來定義自訂指標。

數據後端

有許多不同的資料庫和引擎用於儲存和處理實驗數據。而且在大多數情況下,將詳細的實驗數據拉入 Python 環境的效率並不高。許多統計檢驗,例如學生 t 檢定或 Z 檢驗,僅需要匯總資料進行分析。

例如,如果原始實驗資料儲存在 ClickHouse 中,則直接在 ClickHouse 中計算計數、平均值、變異數和協方差比在 Python 環境中取得粒度資料並執行聚合更快、更有效率。

手動查詢所有必要的統計資料可能是一項艱鉅且容易出錯的任務。例如,使用 CUPED 分析比率指標和變異數減少不僅需要行數和方差,還需要協方差。不過別擔心-品茶這一切對你有用。

tea-tasting 接受 Pandas DataFrame 或 Ibis Table 形式的資料。 Ibis 是一個 Python 包,用作各種資料後端的 DataFrame API。它支援 20 多個後端,包括 BigQuery、ClickHouse、PostgreSQL/GreenPlum、Snowflake 和 Spark。您可以編寫 SQL 查詢,將其包裝為 Ibis 表,然後將其傳遞給品茶

請記住,品茶假設:

  • 資料以隨機化單位分組,例如個人使用者。
  • 有一列指示 A/B 測試的變體(通常標記為 A、B 等)。
  • 表中包含指標計算所需的所有欄位(例如訂單數、收入等)。

一些統計方法,例如 Bootstrap,需要精細的數據來分析。在本例中,品茶也會取得詳細資料。

在資料後端指南中了解更多。

便利的API

您可以只使用 NumPy、SciPy 和 Ibis 執行上面列出的所有任務。事實上,品茶在底層使用了這些包。 品茶提供的最重要的是一個方便的進階API。

展示比描述更容易。這是基本範例:

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
登入後複製

兩階段方法,具有單獨的參數化和推理,在統計建模中很常見。這種分離有助於使程式碼更加模組化且更易於理解。

品茶執行的計算可能很棘手且容易出錯:

  • 使用 Delta 方法分析比率指標。
  • 使用 CUPED/CUPAC 減少變異數(也可與比率指標的 Delta 方法結合使用)。
  • 計算絕對變化和百分比變化的信心區間。
  • 統計功效分析。

它也提供了一個表示實驗數據的框架以避免錯誤。按隨機化單位對資料進行分組並包含資料集中的所有單位對於正確分析非常重要。

此外,品茶提供了一些方便的方法和功能,例如漂亮的結果格式和度量參數的上下文管理器。

文件

最後但並非最不重要的一點:文件。我相信良好的文件對於工具的採用至關重要。這就是我編寫多個使用者指南和 API 參考的原因。

我建議從使用者指南中的基本用法範例開始。然後您可以在同一指南中探索特定主題,例如方差減少或功效分析。

請參閱資料後端指南,了解如何在品茶中使用您選擇的資料後端。

如果您想要執行品茶中未包含的統計測試,請參閱自訂指標指南。

使用 API 參考來探索 tea-tasting 中可用的函數、類別和方法的所有參數和詳細資訊。

結論

有多種統計方法可以應用於實驗分析。但在大多數情況下實際使用的只有少數。

另一方面,還有一些特定於 A/B 測試分析的方法,這些方法未包含在 SciPy 等通用統計套件中。

品茶功能包括最重要的統計測試,以及特定於A/B測試分析的方法。

品茶提供了方便的API,有助於減少分析時間並最大限度地減少錯誤機率。

此外,品茶透過在您選擇的儲存資料的資料後端中計算統計資料來最佳化運算效率。

透過詳細的文檔,您可以快速學習如何使用品茶來分析您的實驗。

附:套餐名稱

套餐名稱「品茶」是一個雙關語,涉及兩個主題:

  • 女士品茶是羅納德費雪設計的著名實驗。在這個實驗中,費雪發展了零假設顯著性檢定框架來分析一位女士的說法,即她可以辨別是先將茶還是牛奶先添加到杯子中。
  • 「品茶」在語音上類似於「t 測試」或學生 t 測試,這是由 William Gosset 開發的統計測試。

以上是tea-tasting:用於 A/B 測試統計分析的 Python 套件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板