<aside> 📌 PythonからR言語を実行するライブラリ PypeR を使ってRのCausalImpactを実行する話

</aside>

はじめに


時系列データに対する因果推論のフレームワークの1つとして、CausalImpact [Brodersen+, 2015] が挙げられます。CausalImpact はベイズ構造時系列モデル(bsts)を用いた時系列予測に基づいて効果を推定するアプローチです。このCausalImpactは Python と R 共にライブラリがあります。

本記事では、PythonからR言語を実行するライブラリ PypeR を使って、PythonからRのCausalImpactを実行してみます。「面倒なことせずにRを使え」と言われればそれまでです。

CausalImpact とは?


マーケティングにおいて、割引クーポンなどの施策(介入)が売上や粗利(アウトカム)にもたらす影響の大きさを知ることは重要な問題だと思います。また、その影響がどう拡大するか・収束するかといった、時間経過との関係が知りたい場合もあるかもしれません。

例えば、マーケターは与えられた販促予算を各販促チャンネル(例. アプリ、LINE、チラシ)に最適に配分するために、複数行われるキャンペーンがどれほど来店、売上、粗利の増加に貢献したかを評価する責務があります。

CausalImpact はいくつかの仮定の元で、状態空間モデルを用いて上記で述べたような因果効果を推論します。大まかには、介入が行われなかった(例. クーポンが配信されなかった)場合の反実仮想的な反応(例. 売上)を予測して効果を推定します。

CausalImpact のメリットとして、実装コストが低く解釈がしやすい図が得られる ※1 ことがあると思っています。

実行結果がグラフィカルに表示される。https://google.github.io/CausalImpact/CausalImpact.html

実行結果がグラフィカルに表示される。https://google.github.io/CausalImpact/CausalImpact.html

効果検証を少し勉強した方はこの画像をご覧になったことがあるのではないでしょうか?

詳細は以下の論文や公式ドキュメントを参照ください。

Inferring causal impact using Bayesian structural time-series models - Google Research

CausalImpact

※1:そのぶんA/Aテスト(プラセボテスト)によるロバストネスチェック、結果を考察する能力が肝心であるアプローチだと考えています。

なぜ R の CausalImpact を使うのか?

Powered by Fruition