始める無料で始める

セグメント別A/Bテスト関数の作成

前のレッスンでは、パーソナライゼーションの実験が統計的に非常に有意であることを確認しました。ただし、実験を行う際には、新機能が特定の属性層にどのような影響を与えているかを確認することが重要です。あるグループにはとても魅力的でも、別のグループにはそうでもないことがあります。

データを何度もセグメント化して確認したいので、A/Bテストの影響をセグメントごとに分析し、同様の分析を行うたびに再利用できる関数 ab_segmentation() を作成します。

この関数は列名を受け取り、その列に含まれる各一意の値について、リフトと統計的有意性を計算します。

この演習はコースの一部です

pandasで学ぶマーケティングキャンペーン分析

コースを見る

演習の手順

  • 入力された列名 segment に含まれる各一意の値を走査する、ab_segmentation() 関数内の for ループを作成してください。
  • マーケティングチャネルが 'Email' で、かつ入力列 segmentsubsegment に等しい行のみを marketing から抽出してください。
  • lift()stats.ttest_ind() の結果を出力してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

def ab_segmentation(segment):
  # Build a for loop for each subsegment in marketing
  for subsegment in ____:
      print(subsegment)
      
      # Limit marketing to email and subsegment
      email = marketing[(marketing['marketing_channel'] == ____) & (marketing[segment] == ____)]

      subscribers = email.groupby(['user_id', 'variant'])['converted'].max()
      subscribers = pd.DataFrame(subscribers.unstack(level=1)) 
      control = subscribers['control'].dropna().astype(float)
      personalization = subscribers['personalization'].dropna().astype(float)

      print('lift:', ____) 
      print('t-statistic:', ____, '\n\n')
コードを編集して実行