効果検証における期間前後比較と中断時系列分析

プロダクトをリニューアルする、など対象をランダムに分割せずに全体に対して行う施策において効果検証を行う際には「施策を行った日の前後 n ヶ月」を比較するようなアプローチをとることがあります。

この方法について、施策の因果的な効果という文脈での妥当性について考えを整理しておこうと思います。


期間前後比較をする際の仮定

まず、期間前後比較で効果検証する際には何を仮定しているのでしょうか。ルビンの潜在反応モデルにおいては「施策を経験した場合のアウトカム」と「施策を経験しなかった場合のアウトカム」の差が施策の因果的効果とみなされます。

すべてのユーザーに対するプロダクトリニューアルのようなケースでは、全ユーザーが施策を経験することになります。したがって、「施策を経験した場合のアウトカム」はデータとして得られるが「施策を経験しなかった場合のアウトカム」は未観測となりデータは手に入りません。

そこで未観測の「施策を経験しなかった場合のアウトカム」を何かしらの方法で推測してあげることでなんとか因果効果を推定しよう、統計的有意差があるかを確認しよう、と考えることになります。

この文脈において期間前後比較においては、「施策を経験しなかった場合のアウトカム」を「施策実施前 n ヶ月平均」で代替する考え方となります。
このこと(もし施策を経験しなかった場合に、アウトカムは施策実施前 n ヶ月平均になる)が期間前後比較での差やその統計的有意差を確認することが妥当となるときの条件となります。

ただし、それは例えば次のようなケースを考えると容易に妥当性を失いやすい仮定です。

  • 施策を実施する前期間と後期間で獲得したユーザーの性質に変化がある

  • アウトカムに影響する施策以外のイベントが期間前 or 期間後だけに存在する。

  • アウトカムに上昇ないしは下降トレンドがあり、期間後には自然と期間前平均よりも上ずれ・下ずれが生じうる

  • ・・・

中断時系列分析

そこで仮に期間前後比較の仮定が妥当ではないとされるときの代替アプローチの一つとして、中断時系列分析があります。

これはアウトカムについて時系列に見ていった際に、期間前のデータについて線形モデルを当てはめ、期間後についてはその線形モデルによる予測値を「施策を経験しなかった場合のアウトカム」に代替する考え方です。

具体的には次のような線形モデルのパラメータを推定します。

$$
\text{outcome} = \beta_0 + \beta_1 \text{time} + \beta_2 \text{level}
$$

ここで $${\text{time}}$$ は時間単位を表し、例えば 1 週間ごとにアウトカムを計測していれば、$${\beta_1}$$ は 1 週間経つごとにアウトカムがどれだけ増減するかを表します。

$${\text{level}}$$ は施策実施前であれば 0, 施策実施後であれば 1 が入る施策前後判定フラグのようなもので、もし施策により変化があるのであれば $${\beta_2}$$ の値だけ施策により底上げ(下げ)されることになります。この係数についての仮説検定の結果を見て、施策によりアウトカムへの効果が統計的に有意な差があるかどうかを確認できます。

なおこれは最も単純な形で、ここに施策後のトレンドの変化であったり、季節性の要素を組み込んだり複雑にしていくことができます。

このアプローチでは、アウトカムの上昇 or 下降トレンドであったり季節性などを考慮した上で未観測の「もし施策を経験していなかったら~~」の値を推定することができる点が嬉しいポイントです。

ただし、このアプローチでも施策実施期間に、アウトカムに影響する別のイベントがなかったり、ユーザーの性質の変化がないこと、線形モデルを使う場合には線形にモデル化できることなどの仮定をおいている形となります。

期間前後比較をしてはいけないのか

では、ビジネスシーンにおいて仮に仮定が妥当ではないと判断された場合には期間前後比較は絶対に使ってはいけないのか、というとそうでもないでしょう。

本来未観測なものを推定しようとしているので、どんなアプローチでもそこに何かしらの仮定をおくことになると思っています。そこで置かれる仮定が状況に応じて許容度が高かったり低かったりすることになります。

中断時系列分析は、少なくとも期間前後で 8 ~ 9 以上のデータポイントがないと利用ができないような制限があります。一方期間前後比較は中断時系列分析のためのデータが貯まるよりも前に実施できるかもしれません。少し仮定と状況のズレの許容度を上げても素早く状況を確認することが求められるようなケースでは他の方法よりもフィットするアプローチだと思います。



最後まで目を通していただきありがとうございました。もし内容に誤りを見つけていただいた場合はご指摘いただけますと幸いです🙇‍♂️

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