データサイエンティストのたまご育成日記 Vol.9 - 効果検証のセレクションバイアスのお話 -

f:id:yuzuhiko_persol:20200601103256p:plain

みなさん、こんにちは!デジタルテクノロジー統括部に新卒入社した長谷川智彦です。
データサイエンティスト未経験の新卒社員がデジタルテクノロジー統括部でどんなことをやっているのか、どのように成長していくのかの学びの過程を記録していくこの企画。今回は効果検証について書いていきます!

 

さて、夏が来ましたね。構造化データの分析とSQLによる分析の研修を終えた後に何をしていたかといいますと、デジタルテクノロジー統括部内のビジネスサイドを担当されている先輩社員のご協力の元、実際の現場で使える分析結果を得る練習をしていました。ただ、内容を具体的には書けないので分析の練習を行う過程で勉強した効果検証のセレクションバイアスのお話を今回はまとめようと思います。

 

効果検証とセレクションバイアスのお話

 ではまず効果検証から説明していきたいと思います。効果検証とは、簡単に言えばある同質ないくつかの集団に施策を行い、施策を行っていない集団の結果と比較することで施策の効果がどれだけあるのかを測定し検証することです。

この効果はデータによって裏打ちされ、再現性があることが望ましいとされています。とはいえ、わかりづらいので例えを使って説明します。

例えば、メールにクーポンを付けたときの売り上げに与える効果を測りたいとします。このときメールを配信する顧客をAとBに分け、Aグループにはクーポンがないメールを配信し、Bグループにはクーポンを付けたメールを配信します。この2グループで配信後1週間の各グループの顧客の合計購入金額を比較することでメールにクーポンを付けたことによる売り上げへの効果を定量的に測定することができます。こういった、ある施策を行ったときにそれがどれくらいの効果を持つのかを比較して定量的に検証するのが効果検証です。有名な手法としてA/Bテストなどがあります。

f:id:yuzuhiko_persol:20200804113425p:plain

これだけを書くと意外と簡単そうに聞こえますが、やはり現実はそう甘くない。この効果検証を行う上で考慮しておかないといけないことがいくつかありますが、今回はその中でもセレクションバイアスについて書こうと思います。

 

セレクションバイアスとは?

ではセレクションバイアスとは何なのか、どうしてこれを意識する必要があるのかについてまとめていきます。

まず本来、効果検証は同じ人物たちで構成されている集団を2つ以上用意して行えるのが理想的です。でもそれは超優れたクローン技術なり、タイムマシンを持ってこない限り無理です(つまり現実的ではありません)。

なので、一般的には傾向が似ている人を集めて、その人たちによって集団を構成したり、ランダムにサンプリングを行うように心がけます。ただ、実際の施策は(効果を比較して測ることを念頭に置いていなければ)これらことを意識して行われることはあまりないそうです。そうなるとどんなことが起こってくるかというと、例えば、普段から比較的に商品を頻繁に買ってくれる人にクーポン付きのメールを送り、その集団と普段から購買量があまり多くない人たちとを比べて施策の効果を比較してしまうといったことが稀に起きてしまうようです。

これの何が問題かと言うと、潜在的に購買量が多い人たちはそうでない人たちと比較して、施策を打たない時点ですでに購買量は多いはずです。すると今回の施策の効果は潜在的な購買量の差に施策の効果が上乗せされた量が乗ってきます。

f:id:yuzuhiko_persol:20200804115621p:plain


すると施策を打った集団が同質でないことを意識せずに結果だけを見てしまうと、本来の施策の効果は上図の青色の部分だけなのにもかかわらず、あたかもより効果があったかのように誤認識してしまうわけです。この比較しているグループの潜在的な傾向が違うことで発生するバイアスのことをセレクションバイアスと言います。なので、実際に施策の効果を比較するときはこのセレクションバイアスができるだけ小さくなるように計画を練ってから分析を行います。

 

実際に分析するときに難しかったこと

ここまで効果検証の概要とセレクションバイアスについて書きましたが、実際には効果検証によって得たデータではなく、すでにあるデータからある施策があるときとない時での結果を比較して欲しいといったことがあります。その時に意識しないといけなかったことに関して記録を残しておこうと思います(成長日記なので)。

すでにあるデータから結果の比較を行うときに意識しないといけなかったこととして以下のことが挙げられました。

 

\\ 意識したこと //

1:対象としている集団が同質ではないことを念頭置く必要がある

2:分析して得たい結果や期間などの条件をしっかり決めておくこと

 

まず、1つ目の『対象としている集団が同質ではないことを念頭置く必要がある』に関してです。やはり、既存のデータは効果検証を念頭に置いて測定されているわけではありません。なので、出来るだけセレクションバイアスが小さくなるように工夫をするとともに、得れた分析結果には必ず効果とともにセレクションバイアスが混ざっていることを理解しておく必要があります。そうしないと、上記の図で述べたように結果を過大評価や過小評価してしまうことになるからです。

次に『分析して得たい結果や期間などの条件をしっかり決めておくこと』です。今回はビジネスの面で役に立つかもしれないある結果(具体的に書けなくてすいません)を出すことを目的に据えて分析を行いました。

これを聞くと、当たり前なのでは?と思われる方もいらっしゃると思うのですが、やはりこれを明確するのとしないのとでは分析の効率が変わってくるので改めて強調します。おそらくここを明確にしておかないと分析する際に結局何を選れたらいいんだっけ?となり、提供できる結果もフワッとしたものになってしまいます。

なので個人的には、『どんなデータからどんな結果を得て、どんな判断を行いたいのか』をベースに設定するのがいいのかなと感じます。また、合わせて期間や条件も定義しておくことも大事だと感じました。まず、期間に関しては1か月と1年だとやはり傾向が違ってきますし、今回の件ではコロナが広がる前と後で結果が変わってくると考えたのでこのことを意識して期間を設定しました。

条件に関してでいうとデータによっては施策の結果を直接反映しているデータがそろっていなかったりします。その際は「条件Aの条件が○○でかつ条件Bが△△の時に結果Cであると仮定する」といったようにこちらで定義する必要があります。今回の僕が行った分析では初めにこの設定が甘かったので再度分析をし直すことになり、もったいない時間を過ごしてしまいました(いい経験になったと感じているのでプラスの価値はありました)。なので、これらの目的や条件定義をしっかりと分析前に決めておくことが大事です。

 

総括

今回の分析で学んだ点と反省点においては以下のことがありました。

〈学んだ点〉

  • 効果検証で注意しないといけない考え方を知ることができ、効果検証の際にはセレクションバイアスを減らすために事前によく計画することが大事になってくることを実感した(分析のしやすさが変わる)。
  • 目的の結果をいろんな切り口でさらに分析を行ってクロス表を作成したが、機械学習の手法を使って網羅的に調べるほうが効率的であることを痛感した。
  • 『どんなデータを使って、どんな結果を得れば、どのように判断(意思決定)ができるのか』の基本的な考え方が頭に染み付いた。
  • データを理解するために現場の状況を教えてもらう大事さと、実際にビジネスにおいて役に立つデータ分析を行う価値を知れた。
  • どのようにすればクエリの実行時間が短くできるかのテクニックを得れた。

〈反省点〉

  • ちゃんとわかっていないことを見逃さず、遠慮せず先輩に教えてもらうこと。恥ずかしさを捨てること。(今回は特にデータの理解が甘く、教えてもらうことで自分の分析が間違っていることに気づくことが多くありました。)
  • 分析は思うようにいかなかったり、分析に時間がかかったりするので、分析の実行時間の間に他の作業を行うなど、自分の分析のペースを確立すること。(初めはもっとサクサクと分析できると思ってましたが意外とクエリの実行に時間がかかることがあることを知りました。)

 

オススメの書籍

 今回、効果検証について学ぶために安井翔太さんが執筆した『効果検証入門 正しい比較のための因果推論/計量経済学の基礎』を参考にしました。今回の記事のセレクションバイアスの話をはじめ、バイアスを取り除くための手法である傾向スコアマッチングやIPWなど様々な手法をわかりやすくまとめてくださっているのでオススメです。

 

以上、今回は学んだ効果検証に関して書きました。次回の記事もお楽しみに!

alt

長谷川 智彦 Tomohiko Hasegawa

デジタルテクノロジー統括部 データ&テクノロジー ソリューション部 アナリティクスグループ

大学時代の専攻は植物学・分子生物学。最近趣味でデザインをかじり出した社会人1年目。植物の実験データを正しく解釈するために統計を勉強し始め、データ分析に興味をもつ。データサイエンスはただいま必死に勉強中。

※2020年8月現在の情報です。