妥当性チェック:外的妥当性

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テスト

Passons à la pratique !

Pythonで学ぶA/Bテスト

Preparing Video For Download...