見出し画像

【MMM活用術 vol.2】 MMM実装に向けたデータレビュー


はじめに

先日、博報堂電通が揃ってガイドブックをリリースするなど、ルネサンス的に話題となっているMarketing Mix Modeling(MMM)。本シリーズでは、分析者がMMMをマーケティングに広く活用するためのナレッジを整理してお伝えできればと思います。
第2回目の今回は、データレビューに関するTipsをまとめていきます。

データレビューの必要性

MMMにおいては、横断的なメディアのデータを始めとした多岐にわたるデータをインプットとして考えることができるため、データの質を統一的に担保することが難しいでしょう。実態と乖離していたり、バイアスを引き起こしうるフォーマットを含んだデータに対してMMMを適用しても、その結果は使い物にならないでしょう。

そもそも、MMMに限らず一般にデータを扱う場合においてその事前分析は必須の工程です。多くのデータ分析者にとっては釈迦に説法かもしれませんが、"Garbage in, garbage out" - 質の悪いデータをインプットすることで、出てくる結果も役に立たない - 状況は避けねばなりません。

本記事では、その中でも特にMMMで使用するデータのフォーマットに対して起こりうるデータの不整合ケースについて整理します。これらをもとにデータを可能な限りクレンジングでき、MMMで有用な結果を生み出すことに繋げていただけたら幸いです。

データレビューでのチェックポイント

データボリュームを考慮した設計

まず初めに、使用できるデータのボリューム(行数、項目数)を把握するようにするとよいでしょう。なぜなら、MMMでは時系列形式のデータを対象とするため膨大なデータを確保することが難しいケースも多く、1つの説明変数に対してそのパラメータを推定するのに十分なサンプル数を必ずしも確保
できるわけではないからです。

例えばRobynのAnalyst Guideでも言及されている通り、経験的に「説明変数×10」が必要なデータボリュームとして一般に推奨されていて、これを満たすボリュームのデータを確保できていない場合、1つの対策としては説明変数を極力減らして条件を満たすように調整することを考えねばなりません。その場合、状況によってはビジネスサイドと十分にコミュニケーションをとり、データ粒度を調整することで細かい説明変数をまとめ上げる余地がある場合もあるでしょう。

一方で、どうしても粒度を変えられない(その粒度で広告効果を見れないとビジネスサイドにとって有用なインサイトにならない)場合、以下記事のように実験を通して検討する余地もありそうです。

欠損値の検出と対策

MMMが取り扱う広告のデータでは、しばしばデータの欠損を引き起こしている場合があります。代表的なケースとして、以下の3つが挙げられます。

  • (ビジネスの事情により)データが存在しないケース
    オンライン広告では出稿調整が容易なため、短期間で配信を止めてしまうケースも考えられます。例えば図1のように、Facebook広告でAとBという2つの広告を打っていたが、広告Bに何らかのビジネス的事情があり2023年4月3日以降配信を止めてしまったというケースでは、2023年4月3日以降のFacebook広告Bについての出稿データは当然ながら存在しません。オフライン広告やキャンペーンであっても、例えば期間限定キャンペーンで数ヶ月で終了してしまったなどの場合に同様の状況が起こりうるでしょう。

図1 MMMのインプットデータにおける欠損の例
  • データの粒度がバラバラなケース
    MMMではしばしばメディアを横断したデータが必要になるため、例えば導入初期などには計測プラットフォームが統一されていないなどの理由であるチャネルについては日次で計測しているが、もう一方のチャネルでは週次でしか計測していない、などの現象も考えられるでしょう。このようにデータの粒度が揃わない場合、明らかに粒度の粗いチャネルに対しては細かい粒度のデータが不足することになります。

  • ヒューマンエラーor系統的エラー
    データ保持期間が満了している、システムのクラッシュにより一定期間データが取れていないなど、ビジネス事情以外の理由でデータが集められないケースもあります。この場合、データの欠損が実態とデータとして得られる状況の乖離を生んでいることになります。

このようなデータの欠損が起こっている説明変数を含む状態で、MMMを適用することは基本的には難しく、何らかの対処が必要になります。考えられる対処法は以下の2つです。

  • 欠損値を補完する
    観測されているデータをもとに、何らかの値を欠損する行に代入することで、データを補完する方法があります。検討したい粒度のデータに対して欠損が見られる場合、以下のような補完を施すことを考える必要があるでしょう。

    • 単一代入法
      欠損する行を一意に算出される値で埋める方法です。平均値を代表とした統計値(中央値なども可)を観測データから算出し、欠測行を補完する「平均値代入」と呼ばれる方法や、欠損がある変数を目的変数とし、その他の欠損がないデータを説明変数として回帰モデルを作成し、その予測値を補完する「回帰代入」と呼ばれる方法があります。しかしながら、これらは単一代入法の中でも「確定的代入法」と呼ばれるように、欠損する行が完全に一定の値で補完されるため、その変数の分散を過小評価することになり、推定値のバイアスが大きくなる可能性が高いでしょう。
      単一代入法を使うのであれば、一意に求められた値にランダム誤差を加えた値を補完する「確率的代入法」を実施することで分散問題は解消されるでしょう。

    • 多重代入法
      観測されたデータから生成された複数のサンプルに対して実行された代入結果を統合する方法です。確率的代入法と同様に分散問題の解消に繋がりますが、計算時間などの推定リソースに関して考慮が必要でしょう。

  • 説明変数の作り方を変える
    説明変数の粒度を変更できる余地がある場合、変更された粒度に従ってデータをまとめることで、特定のデータに見られる欠損値を補うことができるケースがあります。先ほどの図1の例だと、Facebook広告AとFacebook広告Bをまとめて「Facebook広告」として広告効果を見ても良い場合にこのような処理をすることができるでしょう。
    また、列に対する欠損だけでなく、データの粒度がバラバラなケース(≒行に対する欠損がある場合)についても検討の余地があります。例えばチャネルAは日次のデータで、チャネルBは週次のデータといった粒度になっている場合、まず考えるのはチャネルAのデータを週次変換することでしょう。この時、同時に前項で言及したデータボリュームが十分に確保された状態であるかを同時にチェックする必要があります。

外れ値の検証

モデリングを行う前に、外れ値の検証を行なっておくとよいでしょう。例えば、極端なKPIの増減があったタイミングで起こっていたことの当たりがつけられれば、関連するデータを導入する必要があるかどうかを検討することができるでしょう(※データ化の余地があるかといったフィジビリや、実際に含めるかどうかについては別途検討が必要)。説明変数に外れ値が見られる場合は、それが誤入力などに伴う異常値の可能性も含めて検討できることで、データの修正や補正といった何らかの対処を施すことが可能です。

多重共線性

説明変数同士に相関関係がみられると、回帰係数の推定値が不安定になるという性質です。一般的な回帰分析においても多重共線性は確認点の一つにはなっていますのでMMMに限った話でもありませんが、特にMMMが主として扱う広告出稿のデータは、複数のチャネルによる広告がユーザーに配信されている可能性が高く、それぞれ全て独立して作用していると考えるのは難しいことは直観的にも考えられるでしょう。
一般的な多重共線性への対処としては、変数選択法を適用することでモデルに必要な変数に絞るなどが考えられます。MMMにおいても、あるチャネルと別のマーケティング活動に相関が見られれば、そのマーケティング活動のデータを取り除いてモデリングするなどできる一方、チャネル同士での相関が高く、その両方とも効果を見たい場合には、どちらかを取り除くなどの対処は難しいでしょう。
そうした状況においては変数選択以外の対処法が必要となります。Robynでは、モデリングにL2正則化を採用し、多重共線性が考えられる状況下でのKPI予測におけるオーバーフィッティングを緩和しています。一方で、チャネルごとの個別の広告効果をみるためには、チャネル間の作用を構造化し、それを考慮したモデリングを実行する必要があるということも言われています。

まとめ

本記事では、MMM実装前に必要な作業であるデータレビューの観点と実際の処理方法に対する考察を整理していきました。MMMでビジネスサイドにインサイトを提供するにあたっては、目的変数であるKPIの予測精度だけでなく、チャネルごとの個別の広告効果などモデルの解釈性を含めて意思決定を導くことが必要とされるでしょう。従って、データの内容を丁寧に読み取り、ビジネス的側面と統計的側面の両方の視点をバランスよく検討し、適切な処理を施すことを意識するとよいでしょう。

この記事が気に入ったらサポートをしてみませんか?