健全性檢查:外部效度

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 測試

新奇效應

  • 新奇效應
    • 使用者因對新功能好奇而造成的指標短暫提升。
  • 抗拒變更
    • 與新奇效應相反。
    • 使用者因習慣舊功能而避免嘗試新功能。
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 測試

一起來練習吧!

Python 的 A/B 測試

Preparing Video For Download...