データを収集したら、探索的データ分析(EDA)を行ってデータ品質の問題を特定し、対処します。これは、マーケティング ミックス モデリング(MMM)の重要なステップです。このステップでデータを評価することで、マーケティング活動、顧客の反応、その他の関連指標をデータが正確に表していることを確かめられるからです。EDA プロセスで発見した問題を修正することで、モデル出力の信頼性を高めることができます。
EDA を行う基本的な流れは次のとおりです。
- データの確認を行って、欠落しているデータや不完全なデータを特定します。
- 未加工の入力ファイル内の欠損値を修正します。
- データの精度を評価します。
- データの異常値、外れ値、不正確な部分を修正します。
- KPI、メディア、制御変数の間の相関関係を確認します。
EDA にはさまざまな方法があるため、Meridian ではこのプロセスの可視化は提供されていません。詳細な分析を徹底的に行えば信頼性は高まりますが、詳細な分析情報は得られなくても大まかなデータをすばやく確認することが効果的なケースもあります。ニーズに合った適切なバランスを見つけることをおすすめします。
EDA に役立つ独自の可視化を行う際は、次のガイドラインを考慮してください。
データの完全性を確認する: データに欠損値がないかを確認します。各変数(チャネル)についてデータの完全性の割合を示すグラフを作成すると、不完全なものとして示された変数を調査できます。
EDA を精緻化するには、年、月、週、平日 1 日ごとの観測回数を示す可視化を行います。任意の期間について、予想外に低い観測値がないかを確認します。
データの精度を確認する: データが正確であり、結果を歪める可能性のある異常値や外れ値が含まれていないことを確認します。精度を確認するために可視化データを作成すると、各チャネルのメディア費用の割合を比較したり、チャネルの傾向を確認して異常を特定したりできます。また、こうした可視化データをメディアプランと比較することも、マーケティング チームと連携してデータが十分に正確かつ詳細かどうかを明らかにすることもできます。
チャネルの規模を確認する: チャネルの支出額シェアを確認します。支出額シェアが非常に小さいチャネルは、予測が難しくなることがあります。他のチャネルと組み合わせることをおすすめします。
チャネルのメディア施策の変動性を確認する:メディア施策(インプレッション数、クリック数など)の変動性が低いチャネルは、予測が難しくなることがあります。関連情報がある場合は、カスタムの事前分布の使用を検討してください。
変数間の相関関係を確認する: KPI、メディア、制御変数の間の相関関係は必須ではありませんが、相関関係を確認するために可視化を行うと、以下のユースケースで役立つことがあります。
メディア変数と制御変数の相関を測定し、予想外の関係がないかを確認する。これは、メディア変数や制御変数を保持するか削除するかを判断する際に役立ちます。
多重共線性の特定。メディア変数と制御変数のうち 2 つ以上の変数に高い相関があると、多重共線性が生じ、回帰モデルで共線性変数の影響を計算することが難しくなる場合があります。データの確認で多重共線性を特定することで、モデルに含める変数と除外する変数を決定できます。
データが正確かつ完全であることを確認したら、サポートされている形式でデータを読み込み、モデルを作成することができます。
自動データチェック
メリディアンには、収束しない、または信頼できないモデル結果につながる極端なデータの問題を検出するための自動データチェック機能があります。これらのチェックは、sample_posterior 呼び出し時または Meridian オブジェクトの初期化時に実行されます。データに重大な問題が見つかった場合、事後分布のサンプリングは実行されません。代わりに、重大な問題とその解決策を詳しく説明するエラーが出力されます。これらのデータチェックにより、完全な事後分布サンプリングの前に重大な問題が通知されるため、時間を節約し、モデルの信頼性を高めることができます。自動データチェックはすべて、モデルの適合に使用される自動スケーリング済みのデータに対して実行されます。メリディアンによるデータのスケーリングの詳細については、入力データをご覧ください。
データセットに対して、次の重要なチェックが自動的に実行されます。
ペアワイズ相関
ピアソンのペアワイズ相関は、すべてのスケーリングされた介入ユニット(RF チャネルと ORF チャネルのスケーリングされたリーチ$\times$フリークエンシーを含む)とスケーリングされたコントロール変数との間で計算されます。
地域モデルの場合、まずすべての地域と時間でペアワイズ相関が計算されます。つまり、任意の 2 つの変数$\mathbf{X}_1$と$\mathbf{X}_2$について、$Corr(\mathbf{X}_1, \mathbf{X}_2)$が計算されます。ここで、
\[ \begin{align*} \mathbf{X}_1 &= ( x_{g_1, t_1, 1}, x_{g_1, t_2, 1}, \cdots, x_{g_2, t_1, 1}, x_{g_2, t_2, 1}, \cdots ) \\ \mathbf{X}_2 &= ( x_{g_1, t_1, 2}, x_{g_1, t_2, 2}, \cdots, x_{g_2, t_1, 2}, x_{g_2, t_2, 2}, \cdots ). \end{align*} \]
変数のペアの相関関係がほぼ完全な場合(すべての地域と時間でペアワイズ相関の絶対値がデフォルトのしきい値 0.999 を超える場合)、
ERRORがトリガーされます。f'Some variables have perfect pairwise correlation across all times and geos. For each pair of perfectly-correlated variables, please remove one of the variables from the model.\nPairs with perfect correlation: {var_pairs}'この場合、エラー メッセージの
{var_pairs}にリストされている変数のペアごとに、冗長な変数のいずれかをInputDataから削除し、sample_posteriorを再実行します。全国モデルの場合、変数ペアのペアワイズ相関の絶対値がすべての期間で 0.999 を超えると、
ERRORがトリガーされます。エラー メッセージに記載されている冗長な変数のいずれかをモデルから削除します。f'Some variables have perfect pairwise correlation across all times. For each pair of perfectly-correlated variables, please remove one of the variables from the model.\nPairs with perfect correlation: {var_pairs}'
多重共線性
多重共線性を評価するために、すべてのスケーリングされた介入ユニット(RF チャネルと ORF チャネルのスケーリングされたリーチ$\times$フリークエンシーを含む)とスケーリングされたコントロール変数について、分散拡大係数(VIF)が計算されます。VIF は、モデル内の他の変数との共線性によって説明変数の分散がどの程度拡大されるかを推定します。VIF が 1 の場合は共線性がなく、値が大きいほど多重共線性のレベルが高くなります。多重共線性が高いと、係数の信頼区間の幅が広くなり、事後分布の推論の信頼性が低下する可能性があります。
地域モデルの場合、まずすべての地域と時間の変数ごとに VIF が計算されます。他の変数の線形結合としてほぼ完全に表現できる変数がある場合(VIF がデフォルトのしきい値 1,000 を超える場合)、
ERRORがトリガーされます。f'Some variables have extreme multicollinearity (VIF > 1000) across all times and geos. To address multicollinearity, please drop any variable that is a linear combination of other variables. Otherwise, consider combining variables.\nVariables with extreme VIF: {high_vif_vars}'この場合は、エラー メッセージの
{high_vif_vars}にリストされている冗長な変数のうち、他の変数の線形結合である可能性のあるものを削除するか、これらの変数を結合します。全国モデルの場合、すべての時間の変数ごとに VIF が計算されます。変数の VIF がデフォルトのしきい値 1,000 を超えると、
ERRORがトリガーされます。エラー メッセージに示されている冗長な変数を削除するか、結合します。f'Some variables have extreme multicollinearity (with VIF > 1000) across all times. To address multicollinearity, please drop any variable that is a linear combination of other variables. Otherwise, consider combining variables.\nVariables with extreme VIF: {high_vif_vars}'
KPI の標準偏差
このチェックでは、地域モデルの場合はすべての地域と時間、全国モデルの場合はすべての時間で、スケーリングされた KPI の標準偏差を計算します。スケーリングされた KPI がほぼ完全に一定の場合(標準偏差が 1e-4 未満の場合)、
ERRORがトリガーされます。つまり、応答変数にシグナルがないということです。データ入力エラーを確認するか、このデータセットを使用した統計モデリングの実現可能性を再検討する必要があります。f'{kpi} is constant across all geos and times, indicating no signal in the data. Please fix this data error.'説明変数の標準偏差
このチェックでは、スケーリングされたコントロールとスケーリングされた介入群(RF チャネルと ORF チャネルのスケーリングされたリーチを含む)の標準偏差を評価します。メリディアン モデルには時間主効果$\mu_t$(地域レベルのデータの場合は地域主効果$\tau_g$)があるため、次の理由から、時間ディメンションと地域ディメンション(該当する場合)に沿って、これらのスケーリングされた変数の変動を個別に評価します。
地域による変動
全国モデルには地域が 1 つしかないため、地域ディメンションに沿ったスケーリングされた変数の標準偏差は、地域レベルのデータセットでのみ評価されます。
ERRORは、knots = n_timesを設定していて、地域間で変化しない変数がある場合に発生します(たとえば、地域レベルのデータセットに存在する全国レベルの変数など)。knots = n_timesの場合、各期間に独自のパラメータが割り当てられます。全国レベルの変数は、時間の経過とともに変化しますが、地域によって変化することはありません。そのため、全国レベルの変数は時間と完全に共線的な関係にあり、期間ごとのパラメータがあるモデルとの冗長性があります。冗長とは、全国レベルの変数を保持するか、knots < n_timesを設定できることを意味します。どの変数を選択するかは、解釈の目標によって異なります。f'The following {data_name} variables do not vary across geos, making a model with n_knots=n_time unidentifiable. This can lead to poor model convergence. Since these variables only vary across time and not across geo, they are collinear with time and redundant in a model with a parameter for each time period. To address this, you can either: (1) decrease the number of knots (n_knots < n_time), or (2) drop the listed variables that do not vary across geos.'時間による変動
時間ディメンションに沿ったスケーリングされた変数の標準偏差は、地域レベルと全国レベルの両方のデータセットで評価されます。
地域モデルの場合、時間によって変化しない変数があり、その変数が地域主効果$\tau_g$と完全に共線関係にある場合に
ERRORが発生します。この冗長な変数はモデルの収束を妨げるため、時間によって変化しない変数は削除する必要があります。f'The following {data_name} variables do not vary across time making a model with geo main effects unidentifiable. This can lead to poor model convergence. Since these variables only vary across geo and not across time, they are collinear with geo and redundant in a model with geo main effects. To address this, drop the listed variables that do not vary across time.'全国モデルの場合、時間の経過とともに変化しない変数は、シグナルをもたらさず、モデルの収束を妨げる定数項です。この定数変数はモデルから削除する必要があります。
f'The following {data_name} variables do not vary across time, which is equivalent to no signal at all in a national model. This can lead to poor model convergence. To address this, drop the listed variables that do not vary across time.'