健全性检查:外部效度

Python 中的 A/B 测试

Moe Lotfy, PhD

Principal Data Science Manager

辛普森悖论

辛普森悖论: 当总体被划分为子群时,变量间的某些趋势会出现、消失或反转的统计现象。

print(simp_imbalanced.groupby('Variant').mean())
Variant     Conversion
A              0.80
B              0.64
print(simp_imbalanced.groupby(['Variant','Device']).mean())
Variant Device   Conversion
A       Phone        0.875
        Tablet       0.500
B       Phone        0.900
        Tablet       0.575
Python 中的 A/B 测试

辛普森悖论

simp_imbalanced.groupby(['Variant','Device'])\
                            ['Device'].count()
Variant  Device
A        Phone     40
         Tablet    10
B        Phone     10
         Tablet    40

辛普森悖论示例表

Python 中的 A/B 测试

辛普森悖论

simp_balanced.groupby(['Variant','Device'])\
                        ['Device'].count()
Variant  Device
A        Phone     40
         Tablet    10
B        Phone     40
         Tablet    10
print(simp_balanced.groupby('Variant').mean())
Variant     Conversion
A              0.70
B              0.52
print(simp_balanced.groupby(['Variant','Device']).mean())
Variant Device     Conversion
A       Phone        0.750
        Tablet       0.500
B       Phone        0.575
        Tablet       0.300
Python 中的 A/B 测试

新鲜感效应

  • 新鲜感效应(Novelty effect)
    • 由用户对新功能的好奇引起的短期指标提升。
  • 抗变更(Change aversion)
    • 与新鲜感效应相反。
    • 用户因熟悉旧版本而回避尝试新功能。
Python 中的 A/B 测试

新鲜感效应的可视化检查

# Plot Lift in CTR vs test days
novelty.plot('date', 'CTR_lift')
plt.ylim([0, 0.09])
plt.title('Lift in CTR vs Test Duration')
plt.show()

新鲜感效应的可视化:CTR 随实验天数的折线图

Python 中的 A/B 测试

校正新鲜感效应

  • 延长测试时长
    • 仅在效应稳定后纳入数据。
  • 分析新用户与回访用户分群
    • 新用户通常不易受新鲜感影响。
    • 老用户会拿新功能与旧体验比较。
Python 中的 A/B 测试

Passons à la pratique !

Python 中的 A/B 测试

Preparing Video For Download...