データ分析の基本的なやり方(終)

前回までのお話


「データ分析の基本的なやり方」「データ分析の基本的なやり方(続)」の続きです。(一応最後)


分析を行うとき、適切な比較対象を選択するのは結構苦労します。前回および前々回に紹介したファストフードチェーンのA店の例では、競合の影響を調べるためにその比較対象として競合は近くに進出してないが客層と規模がほぼ同じB店を持ってきましたが、前回も述べたようにB店が比較対象としてベストかどうかは限りません。


本来は同じA店で競合が進出した場合と進出しなかった場合が比較できていれば良いのですが、そのような相反する事象のいずれのデータも取得するということは通常かないません。そこでなるべく比較対象として最もらしい店舗を選ぶために、「因果推論」といったものが使われることがあるというお話を前回の記事の最後で触れました。


因果推論は因果関係を調べるためのやり方ですが、データ分析で具体的にどのように使うのかを簡単に紹介したいと思います。


ランダム化比較実験


まず最初は「ランダム化比較実験」が可能ならこれを行います。ファストフード店の例だとちょっと現実的には難しいのですが、最初に全店舗からランダムに店舗を抽出してA群とB群に分けます。ランダムに抽出しているので、基本的にA群とB群に偏りはありません。(大型店がA群に多いとか、B群には学生街の店舗が多いとかそういった偏りがないということです)


その後、A群の店舗全ての近隣に競合店が進出する状況を作り、以降のA群の店舗の客数とB群の店舗の客数を比較すれば、A群とB群の違いは競合店の進出のみという状況になるので、客数の違いも競合店の有無のみの影響と考えられるというものです。


ただ、最初に触れたとおりA群の店舗全ての近隣に競合店が進出する状況を作るということは現実的に難しいので、ランダム化比較実験ができないケースも少なくありません。


競合店の進出ではなく、何らかのキャンペーンや販促施策といったようにファストフード店側でコントローラブルな施策の場合であっても、たまたまB群になってしまった店舗にはそれを適用しない形になるので、B群の店長やフランチャイズ店の企業からすると「なぜうちの店はキャンペーンやれないのか。売上下がったらどうしてくれる」と揉めることになるので、やはり簡単ではありません。


疑似実験


最初からA群とB群にランダムに分けるということが難しい場合は、次に「疑似実験」ができないかを検討します。疑似実験は、ファストフード店でいえばランダムに抽出したお店(A群)の近隣に競合店が進出した状況を作ることは無理だったので、逆に競合店が進出したお店(A群)と大体似たような店舗で構成されるB群をこちらで見繕って、そこと比較するといったやり方です。


このB群のお店をどうやって見繕うかは、色々とやり方があります。その前に、B群はA群以外全てにするのは駄目なのか?と考える方もおられるでしょう。この考え方で決めたB群でも問題ない場合もありますが、そうでない場合のほうが多いので、そこは要注意です。


例えば競合が進出するというのは、当然そこに大きなマーケットがあると見なされて進出してくるので、A群のお店をよく見てると、元々客数の多い繁盛店がほとんどである可能性があります。B群を競合が進出していない店舗全てとしてしまうと、B群はあまり流行っていないお店ばかりになってしまうかもしれません。この状態でA群とB群の客数を比べると、競合進出以外の影響が含まれている可能性が高くなり適切な調査にはなりません。(以下の表のようなイメージ)

  競合店進出前 競合店進出後
A群の平均 100人/日 80人/日
A群以外の平均 60人/日 60人/日


※もし、競合進出前のA群とA群以外のトレンドが以下のように大体同じであれば、A群以外の店舗を比較対象として使うことも可能な場合もあります。

  競合進出のさらに前 競合店進出前 競合店進出後
A群の平均 100人/日 100人/日 80人/日
A群以外の平均 60人/日 60人/日 60人/日


※また他にA群の競合進出前までの過去のトレンドから回帰分析を行い、競合進出後の客数を予測して、それと実際の数値を比較するということが可能な場合もあります。(過去のトレンドに別の販促施策などの影響がないことが前提なので、あまり使うことはありませんが)



B群をA群と同じような構成の店舗でそろえるには、客層・席数・回転数・店員数・品揃え・立地・時間帯別の違いなど色々な要素(共変量)があるので簡単なことではありませんが、これらの色々な要素をひとつの指標で表せることができれば、なんとかなりそうに思えないでしょうか。


このひとつの指標のことを「傾向スコア」と言います。(傾向スコアはググると色んなところで紹介されているのでここでは詳細な説明は割愛します)


この傾向スコアを店舗ごとに計算すれば、A群の各店舗のスコアと同じスコアの店舗を集めてB群として比較したり、A群とA群以外の店舗に傾向スコアを元にした重み付けをして客数を補正した値で比較することなども可能になります。ただ、この傾向スコアは高い精度のものが作成できるかどうかや、A群の店舗のスコアと全く同じスコアの店舗を抽出できるとも限らないなど、状況によっては問題点もあるので使用しない方が良いケースもあり注意が必要です。


実際のケースではどうしているのか?


販促施策の効果検証などの場合は、どの段階でデータアナリストに相談が来るかによります。施策実施後にデータアナリストが呼ばれてその施策の効果検証をしてくれと言われた場合は、大体のケースで施策が全顧客に対して行われており、そもそもコントロール群がとれないため効果検証できずに終わることが多いです。


施策実施前の企画段階で相談をもらえる場合は、基本的にランダム化比較実験を行うことを提案します。ランダム化比較実験ができる案件であれば問題ありませんが、できないと言われることも少なくありません。その場合は、全ての顧客を施策の対象にせずにコントロール群を残しておくことが可能かどうかの相談を行い、もしコントロール群が確保できれば、因果推論の疑似実験などを行いそれらしい効果を計算できる場合があります。


他には、例で紹介したような全国に多くのチェーン店を持つ企業であれば、店舗をタイプ別に分類していくつかのベンチマーク店を設定していることがあるので、施策実施店と同種のベンチマーク店で比較するなど、仕組化されているところもあったりします。こうしたところでは、統計的に十分かはさておきやり方があらかじめ決められているのでコントロール群をどう設定するかあまり悩まずにすみます。


いずれにせよ、販促施策などの効果検証を行いたいのであれば、全国的なCMを打つとかすべての顧客を対象にした施策をいきなり実施しないことがポイントです。特にマーケティング領域では、企画段階からデータアナリストがちゃんと入って施策後の効果検証なども踏まえて設計を行うようにすることが良いかと思います。


最後に


「データ分析の基本的なやり方」として最後に因果推論を使うケースまで紹介しました。じゃあ、その次の中級編とか発展編はどんな内容なの?と言われると、おそらくはこの基本的な内容を踏まえた上で、応用として様々な環境や制約の下でどうデータ分析を行っていけるか、その手法を使いこなせていけるかといった方向ではないかと思います。


またデータ分析だけでなく、それを支えるシステムやそれを活かす業務の領域まで対応できることはデータアナリストとしての幅を広げることにもなるのでそうした周辺領域のスキルアップに取り組むのもお薦めです。