アップリフトモデルを作るコツと注意点4 交互作用ありのモデルを使う失敗例 [データサイエンス、統計モデル]
アップリフトモデルを作るコツと注意点をまとめたいと思います。
これから複数回にわたり、失敗例を紹介していきます。
前回は、「2つの予測モデルを使う失敗例」を書きました。
別々にモデルを作るのがダメだったら、交互作用項を含むモデルを作れば良いんじゃないか?という発想になります。
交互作用項を含むロジスティック回帰とは、説明変数の中に交互作用項を加えたロジスティック回帰のことです。
交互作用項を含むロジスティック回帰
2つのロジスティック回帰モデルを作成するやり方
この結果を見ると、2つの予測モデルを使う場合と全く同じグラフになっていることが分かります。
尤度関数を書ける方は、実際に書いてみると証明できるのですが、交互作用項を含むロジスティック回帰を展開すると、2つの予測モデルを別々に作る場合と一致することが確認できるかと思います。
【2つの予測モデル(ロジスティック回帰)】
[ターゲティング群]
Coefficients:
Estimate
(Intercept) -1.43897 A
x 0.27338 B
[コントロール群]
Coefficients:
Estimate
(Intercept) -2.41547 C
x 0.47310 D
【交互作用項を含むロジスティック回帰】
Coefficients:
Estimate
(Intercept) -2.41547 E
x 0.47310 F
p 0.97650 G
x:p -0.19971 H
⇒ ターゲティング群のパラメータの計算方法
A = E + G
B = F + H
⇒ ターゲティング群のパラメータの計算方法
C = E
D = F
となり、二つのグラフが一致することが確認できました。
これまでいろいろな工夫を考えたアプローチの例を紹介しました。
一見、頭の中では上手くいきそう!と思っても、やってみると意外と難しいことが分かったかと思います。
ロジスティック回帰(統計モデル)のアプローチが上手く行かないのであれば、SVMや決定木といった機械学習系のアプローチはどうか?といった発想になるかと思います。
次回から、いくつかの機械学習系のアプローチを考えていきます。
~その他の記事~
アップリフトモデルを作るコツと注意点
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
これから複数回にわたり、失敗例を紹介していきます。
前回は、「2つの予測モデルを使う失敗例」を書きました。
別々にモデルを作るのがダメだったら、交互作用項を含むモデルを作れば良いんじゃないか?という発想になります。
交互作用項を含むロジスティック回帰とは、説明変数の中に交互作用項を加えたロジスティック回帰のことです。
# モデルの作成(交互作用ありのロジスティック回帰)
fit.3 <- glm(y~x+p+x:p, family = binomial, data = df)
df.fit.3 <- data.frame(df, response=predict(fit.3, type="response"))
with(subset(df.fit.3, p==1), by(response, INDICES=x, FUN=mean))
with(subset(df.fit.3, p==0), by(response, INDICES=x, FUN=mean))
交互作用項を含むロジスティック回帰
2つのロジスティック回帰モデルを作成するやり方
この結果を見ると、2つの予測モデルを使う場合と全く同じグラフになっていることが分かります。
尤度関数を書ける方は、実際に書いてみると証明できるのですが、交互作用項を含むロジスティック回帰を展開すると、2つの予測モデルを別々に作る場合と一致することが確認できるかと思います。
【2つの予測モデル(ロジスティック回帰)】
[ターゲティング群]
Coefficients:
Estimate
(Intercept) -1.43897 A
x 0.27338 B
[コントロール群]
Coefficients:
Estimate
(Intercept) -2.41547 C
x 0.47310 D
【交互作用項を含むロジスティック回帰】
Coefficients:
Estimate
(Intercept) -2.41547 E
x 0.47310 F
p 0.97650 G
x:p -0.19971 H
⇒ ターゲティング群のパラメータの計算方法
A = E + G
B = F + H
⇒ ターゲティング群のパラメータの計算方法
C = E
D = F
となり、二つのグラフが一致することが確認できました。
これまでいろいろな工夫を考えたアプローチの例を紹介しました。
一見、頭の中では上手くいきそう!と思っても、やってみると意外と難しいことが分かったかと思います。
ロジスティック回帰(統計モデル)のアプローチが上手く行かないのであれば、SVMや決定木といった機械学習系のアプローチはどうか?といった発想になるかと思います。
次回から、いくつかの機械学習系のアプローチを考えていきます。
~その他の記事~
アップリフトモデルを作るコツと注意点
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