我们在A/B测试衡量中应该选择什么?T检验还是线性回归?它们有什么区别,为什么像线性回归这样简单的方法真的我们在A/B测试衡量中应该选择什么?T检验还是线性回归?它们有什么区别,为什么像线性回归这样简单的方法真的

如何建立A/B测试和线性回归的连接:基本指南

线性回归还是T检验。如何选择?

\ 我们常常陷入对花俏机器学习模型和深度学习突破的热议中,但让我们不要忽视简单的线性回归。

\ ==在一个充满LLM和尖端架构的世界里,线性回归默默地扮演着关键角色,现在是时候让我们关注它如何在今天仍然有益。==

\ 考虑这样一个场景:一家电子商务公司推出了新的横幅广告,我们的目标是评估它对平均会话时长的影响。为此,进行了一项实验,并收集了数据进行分析。让我们分析结果。

T检验

让我们使用一个熟悉的工具来完成这项任务:t检验。

结果相当令人鼓舞:

指标的提升只是对照组和处理组样本平均值之间的差异。在我们的案例中,估计的提升是0.56分钟,表明用户平均多花33秒使用我们的产品。

线性回归

现在,让我们使用线性回归,将处理向量(是否显示新横幅广告)作为自变量,平均会话时长作为输出变量。

然后我们打印模型的摘要:

\

\ 值得注意的是,处理变量的系数与我们之前估计的0.56提升相符。值得注意的是R平方只有0.008,我们用这个模型没有解释太多的方差。

巧合?

我们从t检验得到的提升和处理系数相同,这是巧合吗?让我们深入探讨其中的联系。

\ 让我们思考处理变量反映了什么。当它等于1时,它表示查看了横幅广告的用户的平均会话时长;当它等于0时,它表示没有看到横幅广告的用户的平均会话时长。这意味着处理变量(或线性回归术语中的斜率)表示对照组和处理组之间均值的变化。

线性回归中处理变量的零假设是什么?

当我们对实验应用T检验时,零假设是什么?完全相同。

因此,当计算相同假设的t统计量和p值时,我们的发现保持一致且相同。

为什么我们想要使用线性回归?

然而,使用线性回归背后的原因是什么?我们不想只是让事情变得过于复杂。

\ 首先,让我们思考是否只有处理对我们主要指标的变化负责。

\ 实际上,由于存在选择偏差,这可能并不完全准确。

\ A/B测试中的选择偏差是一种错误类型,当被比较的组之间存在系统性差异而不是由于随机机会造成的,例如:

\

  • 我们发现老用户比新客户更频繁地接触到新横幅广告。

    \

我们在AB测试中使用的随机分配有助于我们减轻它,但很难完全消除。

\ 让我们制定如何估计真实效应。

ATE: 我们旨在估计的平均处理效应。

\ ATT: 被处理者的平均处理效应。我们也可以称之为ACE:平均因果效应。我们实际上可以计算它。它是对照组和处理组样本平均值之间的差异。

\ SB: 我们旨在最小化的选择偏差。

\ 我们如何最小化它?

\ 线性回归允许我们添加 协变量/混淆变量。让我们尝试一下,并将用户在 实验之前的平均会话时长作为混淆变量之一添加。

并打印模型的摘要:

我们的R平方飙升了!现在,我们解释了86%的方差。

\ 我们的处理效应现在是0.47。

选择哪一个?

所以,我们有两个处理效应:0.47和0.56;哪一个是正确的?

\ 在这种情况下,我们确切地知道真实效应,因为我模拟了数据和真实提升: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)

这意味着0.47在绝对差异方面更好,更接近反映实际提升。

结论

使用线性回归具有以下优势:

  1. 它提供了对我们数据的更深入理解以及模型与数据的契合程度。
  2. 通过使用协变量,我们可以减轻选择偏差,从而更准确地估计处理效应。

\ 我们可以将线性回归用于其他测试,如Welch t检验或卡方检验吗?

\ 简单的答案是可以。然而,我们必须做一些调整,我们将在下一篇文章中讨论!

市场机遇
B 图标
B实时价格 (B)
$0,22324
$0,22324$0,22324
+%13,81
USD
B (B) 实时价格图表
免责声明: 本网站转载的文章均来源于公开平台,仅供参考。这些文章不代表 MEXC 的观点或意见。所有版权归原作者所有。如果您认为任何转载文章侵犯了第三方权利,请联系 [email protected] 以便将其删除。MEXC 不对转载文章的及时性、准确性或完整性作出任何陈述或保证,并且不对基于此类内容所采取的任何行动或决定承担责任。转载材料仅供参考,不构成任何商业、金融、法律和/或税务决策的建议、认可或依据。