代表的な面接トピック

データサイエンス面接:差分の差分法(DiD)を用いてプロダクト変更をどのように評価しますか?

データ難しい
Offer.cc 編集チーム公開日 更新日

質問

あるプロダクトチームが、一部の地域限定で新しいチェックアウトフローをローンチしました。ローンチ前、コンバージョン率は処置地域で10%、対照地域で8%でした。ローンチ後はそれぞれ14%と9%になりました。差分の差分法を用いてこの変更をどのように評価しますか?

プロンプトと適用範囲

あるプロダクトチームが、一部の地域限定で新しいチェックアウトフローをローンチしました。ローンチ前、コンバージョン率は処置地域で10%、対照地域で8%でした。ローンチ後はそれぞれ14%と9%になりました。差分の差分法を用いてこの変更をどのように評価しますか?

これは、データサイエンス、プロダクトアナリティクス、実験プラットフォームの役割を対象とした因果推論に関する質問です。4つのパーセンテージは面接上の前提条件であり、観察された実際のビジネス結果ではありません。記述的な数値の変動と因果の識別を明確に分け、割り当て、期間設定、平行トレンド、段階的展開(staggered rollout)のリスクについて議論してください。

面接官が評価するポイント

優れた回答では、前提条件を検証する前にまず推定量(estimand)を定義し、「コンバージョンが3ポイント上昇した」と短絡的に結論づけません。面接官は、選択バイアス、同時期に発生した外的ショック、スピルオーバー(波及効果)、反復観察、クラスター頑健標準誤差、そして段階的導入下でナイーブな双方向固定効果(TWFE)モデルが効果を混同してしまうリスクに留意できているかも評価します。

逆質問・前提確認

  • 地域はどのように処置群へ割り当てられましたか?ビジネス側が高い成長の見込める地域を意図的に選択しましたか?
  • トレンドを確認するために、ローンチ前の期間データが複数存在しますか?
  • 価格設定、マーケティング、季節性、またはトラフィックの内訳が同時期に変更されていませんか?
  • ユーザーが地域間を移動または移住することで、対照群へのスピルオーバーが発生する可能性はありますか?
  • ローンチは全地域で同時でしたか、それとも日付ごとに段階的でしたか?
  • 分析単位はユーザー、注文、地域のどれであり、どのレベルで標準誤差をクラスタリングすべきですか?

30秒の簡潔な回答

「まず、変化を差分の差分法(処置群の変化マイナス対照群の変化)として定式化します。ここでの点推定値は3パーセントポイントです。これが因果関係として解釈できるのは、処置前のトレンドが平行であり、差分を生むような同時期のショックや重大なスピルオーバーが存在しない場合に限られます。複数の事前期間をプロットし、妥当な共変量をコントロールした上で、割り当てレベルで標準誤差をクラスタリングします。段階的展開の場合は、ナイーブな双方向固定効果モデルに依存せず、段階的処置専用に設計された推定量を用いて頑健性を比較します。」

ステップごとの詳細解説

ステップ 1: 記述的な推定値を計算する

処置地域は10%から14%へ4ポイント増加しています。対照地域は8%から9%へ1ポイント増加しています。DiDは(14%-10%) - (9%-8%) = 3パーセントポイントです。これはあくまで相対的な変化であり、プロダクトがそれを引き起こしたという証拠にはまだなっていません。

ステップ 2: 識別仮定を検証する

最も重要な仮定は平行トレンド(parallel trends)です。変更がなかった場合、結果のギャップは同様に推移していたという仮定です。ローンチ前の複数の平均値とギャップをプロットし、グループがすでに乖離していなかったか確認します。地域固有のキャンペーン、物流の変更、マクロ的ショック、ユーザーの移動がないか検証します。平行トレンドは単一の事前・事後比較だけでは証明できません。ビジネス上の説明とともに複数の期間を組み合わせる必要があります。

ステップ 3: 推定方法と推論の選択

同時期に処置が行われ、導入日が単一である場合は、地域と時間の固定効果を用い、地域ごとに標準誤差をクラスタリングします。処置地域が少ない場合、漸近的な標準誤差は信頼できない可能性があるため、無作為化推論(randomization inference)や小クラスター向け手法を追加します。段階的導入の場合は、まずコホート固有のダイナミクスを推定します。NBERの段階的導入に関するガイダンスでは、効果がコホートや時間によって異なる場合、単純な双方向固定効果モデルが問題のある重み付けで効果を合成してしまうリスクが警告されています。段階的処置に適した推定量を比較してください。

ステップ 4: 反事実チェックと頑健性チェックを実行する

プラセボのローンチ日、プラセボ地域、代替の期間ウィンドウを試します。正当な理由のある共変量を追加して推定値を比較し、ネガティブアウトカムやリテンションに不自然な変化がないか点検します。スピルオーバーが重大な場合は、非隣接の対照地域を使用するか、より上位のレベルで処置を定義します。単に3パーセントポイントという数値だけでなく、点推定値、信頼区間、サンプルサイズ、クラスターレベル、欠損データの処理方法を報告します。

高品質な回答サンプル

「算術的には、処置地域の4ポイントの上昇から対照地域の1ポイントの上昇を引くため、DiDの点推定値は3パーセントポイントとなります。しかし、これは相対的な変化に過ぎません。ローンチがなかったとしても両グループが同等のトレンドを辿っていたはずであり、ローンチと同時に地域固有のショックが発生しておらず、スピルオーバーが限定的である場合にのみ、これがチェックアウトフローによる因果効果となります。

私はローンチ前の複数の期間を使用してコンバージョン率とそのギャップをプロットし、処置がどのように割り当てられたかを検証し、マーケティング、価格、トラフィック、休日の変更を調査します。同時ローンチの場合は、地域と時間の固定効果を用い、地域でクラスタリングした標準誤差を使用します。地域数が少ない場合は、無作為化推論または小クラスター推論を追加します。

段階的ローンチの場合は、ナイーブな双方向固定効果モデルに頼るのではなく、動的なコホート効果を推定し、段階的処置向けに設計された推定量と比較します。プラセボ日程、プラセボ地域、代替ウィンドウ、ネガティブアウトカムのチェックを実行し、信頼区間と前提条件を報告します。もし事前トレンドが明らかに平行でない場合やスピルオーバーを制御できない場合は、結果を単なる相関へと格下げし、無作為化またはより適切に隔離された展開方法を推奨します。」

よくある間違い

  • 3ポイントを因果効果と呼ぶ → 相対的な変化を計算したに過ぎない → 識別の前提条件と不確実性を明記する。
  • 事前期間の1点のみを確認する → 平行トレンドを評価できない → 複数の期間とイベントスタディプロットを使用する。
  • 割り当てバイアスを無視する → 高成長地域が選ばれていた可能性がある → 割り当てロジックを分析し、共変量を正当化する。
  • 段階的展開にナイーブなTWFEを適用する → コホート効果が互いを汚染する可能性がある → 段階的処置の推定量と感度分析を使用する。
  • ユーザー単位でクラスタリングする → 処置は地域単位で割り当てられている → 割り当てレベルでクラスタリングするか、頑健な推論を用いる。
  • スピルオーバーを無視する → 対照群が間接的に処置を受ける可能性がある → 非隣接の対照群を使用するか、より上位レベルで展開する。
  • 点推定値のみを報告する → 精度やサンプルの境界が隠れてしまう → 信頼区間、サンプル数、欠損データ、対象期間を報告する。

フォローアップ質問

フォローアップ 1: 事前トレンドがすでに乖離していました。それでもDiDを使用できますか?

そのメカニズムを探り、より適切な対照群を見つけます。妥当な共変量の追加や期間ウィンドウの絞り込みが役立つ場合もありますが、説明のつかない乖離を回帰分析で見かけ上平坦にしてはいけません。平行トレンドの信頼性が低い場合は、無作為化手法を用いるか、結果を相関関係として扱います。

フォローアップ 2: 処置地域が3つしかありません。不確実性をどのように推論しますか?

大標本クラスターの漸近理論に頼ってはいけません。無作為化推論、ワイルドブートストラップ、または少数のクラスターに適した合成コントロール法(synthetic-control)の設計を検討し、地域レベルの不確実性を透明性高く報告します。

フォローアップ 3: ユーザーが地域間を移動します。何が変わりますか?

最初の安定した地域やアカウントの本拠地域など、曝露(exposure)の定義を行います。感度分析のために明確な移動者を除外した上で、移動の規模を測定します。強いスピルオーバーは地域レベルの反事実(counterfactual)を崩壊させます。

フォローアップ 4: 結果は有意ですが、売上は横ばいです。これをどのように説明しますか?

コンバージョン率を注文単価、返金、リテンション、顧客獲得コストに分解し、ネガティブアウトカムを点検します。DiDは対象指標の変化を識別するものであり、ビジネス全体の価値を自動的に証明するものではありません。

公開情報ソース

関連する質問