SSブログ

アップリフトモデルを作るコツと注意点1 アップリフトモデルとは? [データサイエンス、統計モデル]

アップリフトモデルを作るコツと注意点をまとめたいと思います。

最近、着目されているアップリフトモデルとは?

企業側がクーポンなりポイントなりをカスタマ(消費者)に付与して、カスタマの購買意欲を上げようという施策を考えたとします。

【パターン1】
購買意欲高い人にクーポンをあげてしまったらどうなるか?
もともと、買おうと思っていたところ、割引クーポンもらったのでカスタマの心理としては、ラッキー♪と思うでしょう。
企業側としては、クーポンが無駄になるので、単なるコスト増になります。

【パターン2】
購買意欲が低い人(かつ、クーポンの感度が低い人)にクーポンをあげてしまったらどうなるか?
この人はクーポンをもらってももらわなくても、もともと購買意欲が低いので、スパムメールとなります。

【パターン3】
購買意欲が低い人(かつ、クーポンの感度が高い人)にクーポンをあげてしまったらどうなるか?
もともと、買うつもりは低かったけど、せっかくクーポンもらったので、購買しようかな!と思い買ってくれたとしたら、企業側としては良い広告の投資となります。

企業側が狙いたいのは、パターン3の人なのですが、こういう人をどうやって見つけるか?というのは、やってみるとかなり難しいことが分かります。
難しいという理由ですが、なんとなく出来そうでそれっぽい答えが出てくるのですが、実際に何が起こっているかを見てみると、失敗しているということがよくあります。

アップリフトモデルを作るコツと注意点



今、添付のような広告効果があったとします。
オレンジ色が広告をもらった時の効果。
青色が広告をもらわなかった時の効果。

横軸(x軸)は、なんらかの変数(セグメント)で、xが増えれば購買意欲が増えていきます。

もう一度、アップリフトモデルでやりたいことを整理すると、広告をもらったときともらわなかったときの差分をきちんと測定したい。

上記のグラフからわかることは、
x=1の人に広告を打つと、効果高い
x=2, x=3とxが増えるにしたがって効果は低くなる
x=4, 5, 6の人は広告の効果はなし
となっています。

## 母集団の作成
set.seed(1234)
 
# ターゲットグループの設定
df_1t <- data.frame(y=rbinom(1000, 1, 0.20), x=1, p=1)
df_2t <- data.frame(y=rbinom(1000, 1, 0.30), x=2, p=1)
df_3t <- data.frame(y=rbinom(1000, 1, 0.40), x=3, p=1)
df_4t <- data.frame(y=rbinom(1000, 1, 0.45), x=4, p=1)
df_5t <- data.frame(y=rbinom(1000, 1, 0.50), x=5, p=1)
df_6t <- data.frame(y=rbinom(1000, 1, 0.50), x=6, p=1)
 
# コントロールグループの設定
df_1c <- data.frame(y=rbinom(1000, 1, 0.05), x=1, p=0)
df_2c <- data.frame(y=rbinom(1000, 1, 0.18), x=2, p=0)
df_3c <- data.frame(y=rbinom(1000, 1, 0.36), x=3, p=0)
df_4c <- data.frame(y=rbinom(1000, 1, 0.45), x=4, p=0)
df_5c <- data.frame(y=rbinom(1000, 1, 0.50), x=5, p=0)
df_6c <- data.frame(y=rbinom(1000, 1, 0.50), x=6, p=0)
 
# データの作成
df <- rbind(df_1t, df_2t, df_3t, df_4t, df_5t, df_6t
, df_1c, df_2c, df_3c, df_4c, df_5c, df_6c)
 
with(subset(df, p==1), by(y, INDICES=x, FUN=mean))
with(subset(df, p==0), by(y, INDICES=x, FUN=mean))


~その他の記事~
アップリフトモデルを作るコツと注意点
1. アップリフトモデルとは
https://skellington.blog.ss-blog.jp/2019-11-12

2. アップリフトモデルを作るコツと注意点2 単純なロジスティック回帰を使う失敗例
https://skellington.blog.ss-blog.jp/2019-11-13

3. アップリフトモデルを作るコツと注意点3 2つの予測モデルを使う失敗例
https://skellington.blog.ss-blog.jp/2019-11-14

4. アップリフトモデルを作るコツと注意点4 交互作用ありのモデルを使う失敗例
https://skellington.blog.ss-blog.jp/2019-11-15

5. アップリフトモデルを作るコツと注意点5 機械学習のモデル(SVM)を使う失敗例
https://skellington.blog.ss-blog.jp/2019-11-16

6. アップリフトモデルを作るコツと注意点6 機械学習のモデル(決定木)を使う失敗例
https://skellington.blog.ss-blog.jp/2019-11-17

7. アップリフトモデルを作るコツと注意点7 機械学習のモデル(ニューラルネットワーク)を使う失敗例
https://skellington.blog.ss-blog.jp/2019-11-18

8. アップリフトモデルを作るコツと注意点8 階層ベイズロジットモデル
https://skellington.blog.ss-blog.jp/2019-11-19

nice!(2)  コメント(0) 
共通テーマ:学問