狠狠撸

狠狠撸Share a Scribd company logo
ロジスティック回帰の
考え方?使い方
TokyoR #33
2013/8/31
@horihorio
自己紹介
1 / 392013/8/31
? Twitter ID: @horihorio
? お仕事: 分析コンサルタント
? 興味: 統計色々/DB/R/Finance/金融業/会計
? 過去の発表: ここ
? 最近の出来事
? 金融業以外の分析にも進出
? だが何故か証券アナリストを取った
? 優秀な人のマネジメントっぽい事を
? 息子が1歳になった
ロジスティック回帰の考え方?使い方
今回の想定ケース
2 / 392013/8/31 ロジスティック回帰の考え方?使い方
? 旅行代理店勤務
マーケティング部所属3年目
? 「Rによるやさしい統計学」で
Rの操作、線形回帰に慣れた
? 上司(超文系)に
「いつもツアーの案内DM送っているけど、
もっと上手い送り方って考えてくれない?」
と言われた。どうしよう…
紹介すること
3 / 392013/8/31 ロジスティック回帰の考え方?使い方
データ: customers
でロジスティック回帰
glm(hit ~ sex + age + income + (略)
, data = customers
, family = binomial (link = "logit") )
をする前に考えること の一部です。
hit sex age income …
0 Female 32 520 …
1 Male 24 340 …
0 Male 39 580 …
…
…
…
…
紹介しないこと
4 / 392013/8/31 ロジスティック回帰の考え方?使い方
1. Rの色々な操作
2. 数学、統計学の理論
! 別の本や資料を見て下さい !
モノの作り方
5 / 392013/8/31 ロジスティック回帰の考え方?使い方
自動車の作り方
を何回も、行きつ戻りつ、繰り返す。
出典:門外漢の妄想
1. 設計する
2. 車を作る
3. 機器で検査
4. テストコースで検査
6 / 392013/8/31 ロジスティック回帰の考え方?使い方
自動車の作り方 モデルの作り方
を何回も、行きつ戻りつ、繰り返す。
1. 設計する
2. 車を作る
3. 機器で検査
4. テストコースで検査
1. 設計する
2. モデルを作る
3. 検証データで検査
4. 実ビジネスで検査
モノの作り方
アジェンダ
7 / 392013/8/31 ロジスティック回帰の考え方?使い方
1 ロジスティック回帰で良いの?
? その他の方法もない?
? 相手はどんな方ですか?
2 ロジスティック回帰の仕上がり図
? 仕上がりから逆算して考えてみると
3 結果の検証方法
? モデルをつくったら、きちんと検査を
4 データ加工方法の例
? 回帰モデルは加工が大変デス…
その一旦を紹介します
作り方1.
モデル設計
作り方1.
モデル設計
作り方2.
モデル作成
作り方3. 4.
モデル検証
8 / 392013/8/31 ロジスティック回帰の考え方?使い方
1.ロジスティック回帰で良いの?
欲しい結果:DMに反応する確率(0~1)
DMの発送って?
ご存知:線形回帰モデル
? 入力:性別、年齢、購買履歴、…
? 出力:購入額、とか
0~1でない
なんか違う…
9 / 392013/8/31 ロジスティック回帰の考え方?使い方
欲しい結果:DMに反応する確率(0~1)
DMの発送って?
線形回帰モデル
? 入力:性別、年齢、購買履歴、…
? 出力:購入額
ロジスティック回帰モデル
? 入力:性別、年齢、購買履歴、…
? 出力: DMに反応する確率
?0.5以上(例えば)はDMに反応、と考える
0~1の値
10 / 392013/8/31 ロジスティック回帰の考え方?使い方
こっち
○×とに分類したい ? 識別モデル
ただ、識別モデルって他にもある
他にも方法はある
代表的なところ
? ロジスティック回帰
? 決定木
? ランダムフォレスト
? ニューラルネット
? SVM (Support Vector Machine)
などなど
11 / 392013/8/31 ロジスティック回帰の考え方?使い方
判断基準は色々山ほど。万能な基準はない。
どのモデルを選べばいいの?
? 当たるか?
?高度な技術?は精度UP、分かりやすさはDOWN…
? いつも同じ結果が出るか?
?毎回違う結果が出るモデルも…
? データ加工の手間は?
?前処理が 相当必要~ほぼ不要 までイロイロ
? モデルが解釈出来る/し易いか?
?ブラックボックスなモデルもあり
? チューニングの余地があるか?
?「チューニング出来ないモデルが散々な結果」への恐怖…
12 / 392013/8/31 ロジスティック回帰の考え方?使い方
ビジネスならば:「説明する相手を考える」
提案する基準
※出典:私の独断と偏見
13 / 392013/8/31 ロジスティック回帰の考え方?使い方
モデル
技術が
ある
相手は…
技術が
ない
相手は…
結果の
要因
追求
分析
工数
ロジスティック回帰 正面勝負か 分かる気も 可能 大
決定木 恥ずかしくネw よく分かる? えw 小
ランダムフォレスト 忙しかった?
結果だけなら
よーく
分かった
難しい 小
ニューラル
ネットワーク
結果が欲し
かったのね
無理 小~中
SVM 好きですね… 難しい 中
結果に至った理由が知りたい場合
私がロジスティック回帰を選ぶ場合
14 / 392013/8/31 ロジスティック回帰の考え方?使い方
モデル
技術が
ある
相手は…
技術が
ない
相手は…
結果の
要因
追求
分析
工数
ロジスティック回帰 正面勝負か 分かる気も 可能 大
決定木 恥ずかしくネw よく分かる? えw 小
ランダムフォレスト 忙しかった?
結果だけなら
よーく
分かった
難しい 小
ニューラル
ネットワーク
結果が欲し
かったのね
無理 小~中
SVM 好きですね… 難しい 中
ココに注目
15 / 392013/8/31 ロジスティック回帰の考え方?使い方
2.ロジスティック回帰の仕上がり図
※普段は、もう少し分かりやすく&マトモに書きます…
最低限伝えるメッセージ
説明の例
16 / 392013/8/31 ロジスティック回帰の考え方?使い方
重要度 採用変数 有意確率 オッズ比
1 年収_百万 0.1% 1.12
2 年齢_50代 0.5% 0.82
3 性別_女性 1.2% 1.32
…
…
…
…
- 切片 0.3% -
説明の例
※普段は、もう少し分かりやすく&マトモに書きます…
17 / 392013/8/31 ロジスティック回帰の考え方?使い方
重要度 採用変数 有意確率 オッズ比
1 年収_百万 0.1% 1.12
2 年齢_50代 0.5% 0.82
3 性別_女性 1.2% 1.32
…
…
…
…
- 切片 0.3% -
有意確率の
小さい順
係数が本来はゼロ
(つまり意味なし)
である確率
(その他比で)
確率が…倍になる
最低限伝えるメッセージ
R出力との対応
18 / 392013/8/31 ロジスティック回帰の考え方?使い方
重要度 採用変数 有意確率 オッズ比
1 年収_百万 0.1% 1.12
2 年齢_50代 0.5% 0.82
3 性別_女性 1.2% 1.32
…
…
…
…
- 切片 0.3% -
結果のsummaryの抜粋
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.978 … … 0.003
sex_femail 0.278 … … 0.012
age_50th -0.198 … … 0.005
income 0.113 … … 0.001
…
exp(Estimate)
の値
色々変数が採用されているけど、
上位にある程、重要なファクターです
ってのは、割合話がしやすい気が。
解説は他の資料を!
有意確率って?
19 / 392013/8/31 ロジスティック回帰の考え方?使い方
重要度 採用変数 有意確率 オッズ比
1 年収_百万 0.1% 1.12
2 年齢_50代 0.5% 0.82
3 性別_女性 1.2% 1.32
…
…
…
…
- 切片 0.3% -
だけど一応、軽く解説:
オッズ比 ? 「他と比べて確率がx倍」 を表す指標
【右上図での解釈例】
? カテゴリー変数の場合
女性ならば(対男性比で)DM反応率が1.32倍増加
? 連続変数の場合
年収が100万円増えると、DM反応率が1.12倍増加
解説は他の資料を!
オッズ比って?
20 / 392013/8/31 ロジスティック回帰の考え方?使い方
重要度 採用変数 有意確率 オッズ比
1 年収_百万 0.1% 1.12
2 年齢_50代 0.5% 0.82
3 性別_女性 1.2% 1.32
…
…
…
…
- 切片 0.3% -
普通にコマンド打つだけだと:
例えば100変数入れると、
効かない変数でも、何かの値が出る
その結果:
90代のDM反応率が53.2倍だぜ!
( ?Д?)????!!!
##### 有意確率が87.3%ですが… #####
などなど…な雑談で、会議が迷走&紛糾の予感。
【少々脱線】
21 / 392013/8/31 ロジスティック回帰の考え方?使い方
なにしてるの?
1. 信用できる(有意確率が低い)変数を1つずつ追加
2. 追加するものが無くなったら、そこで打ち止め
※色々バリエーションはあるけど、省略
とすると、100変数のうち
信用出来る変数のみのモデルが完成
### で、会議の紛糾が回避出来る。
Rでの方法: step, stepAIC を調べて下さい。
なので ステップワイズ変数選択を推奨
【少々脱線】
22 / 392013/8/31 ロジスティック回帰の考え方?使い方
23 / 392013/8/31 ロジスティック回帰の考え方?使い方
3.結果の検証方法
24 / 392013/8/31 ロジスティック回帰の考え方?使い方
自動車の作り方 モデルの作り方
を何回も、行きつ戻りつ、繰り返す。
1. 設計する
2. 車を作る
3. 機器で検査
4. テストコースで検査
1. 設計する
2. モデルを作る
3. 検証データで検査
4. 実ビジネスで検査
モノの作り方 再掲
ココの話
方法1.データを構築用?検証用に分割(数字は一例です)
モデル投入データで精度を出すのは(ある意味)簡単
大事なのは、投入以外のデータで検査すること
作り方の3. 検証データで検査
25 / 392013/8/31 ロジスティック回帰の考え方?使い方
構築データ:80%
検証データ:20%
精度
比較
時間
方法2.あえて最新データを使わない
作り方の3. 検証データで検査
26 / 392013/8/31 ロジスティック回帰の考え方?使い方
時間
構築データ 検証
データ
精度比較
方法3.クロス?バリデーション
※これも一例です
作り方の3. 検証データで検査
27 / 392013/8/31 ロジスティック回帰の考え方?使い方
No.1 #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 ? 精度1
No.2 #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 ? 精度2
No.3 #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 ? 精度3
…
…
…
No.10 #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 ? 精度10
構築データ 検証データ
構築データの
精度と比較
作り方の3. 検証データで検査
28 / 392013/8/31 ロジスティック回帰の考え方?使い方
で問題: 精度検証ってなに?
杓子定規な基準はない。
教科書にありがち: CAP図、AR値
? 不適当
? 悪くないけどベストでない
な場合も多々。
統計知識、データ抽出?加工技術、業界?業務知識
等々の総合力勝負だったり。
必要なもの例
1. 統計的知識
2. データ抽出?加工技術
3. 業界?業務知識
4. 各利害関係者との折衝能力
ビジネスの状況によりけり。おもいっきり難しい。
作り方の4. 実ビジネスで検査
29 / 392013/8/31 ロジスティック回帰の考え方?使い方
30 / 392013/8/31 ロジスティック回帰の考え方?使い方
4.データ加工方法の例
言いたいこと
31 / 392013/8/31 ロジスティック回帰の考え方?使い方
? 精度を出すコツは、データの前処理
? 回帰モデルは特にデータ加工が命
その一端を紹介します。
※詳細はノウハウの塊
ほぼ開示されない
私もゴニョゴニョ
列「会員加入申込」は、
Web、郵送、電話、その他 のどれかがある
そのまま投入すると、面倒くさい話が発生。
1. カテゴリ変数の扱い
32 / 392013/8/31 ロジスティック回帰の考え方?使い方
採用変数 有意確率 オッズ比
会員加入申込. Web 0.3% 1.47
会員加入申込. 郵送 2.4% 0.69
会員加入申込. 電話 13.3% 0.92
会員加入申込. その他 65.2% 1.00
基準が選べない怪しいのが混入
? 会員加入申込_Web: Webならば1、非該当は0
? 会員加入申込_郵送: 郵送ならば1、非該当は0
? 会員加入申込_電話: 電話ならば1、非該当は0
? 会員加入申込_その他:その他ならば1、非該当は0
例えば、caretパッケージの dummyVars が便利
対応法:(1)各々の変数を作る
1. カテゴリ変数の扱い
33 / 392013/8/31 ロジスティック回帰の考え方?使い方
? 会員加入申込_Web: Webならば1、非該当は0
? 会員加入申込_郵送: 郵送ならば1、非該当は0
? 会員加入申込_電話: 電話ならば1、非該当は0
? 会員加入申込_その他:その他ならば1、非該当は0
何を基準にすれば良い?
? 業務の理解、ヒヤリング力のお話な
対応法:(2)基準としたい変数以外でステップワイズ
1. カテゴリ変数の扱い
34 / 392013/8/31 ロジスティック回帰の考え方?使い方
郵送比でxx倍が
見たいので非投入
非常に大変。無加工だとこうなる
2. 曲線傾向の扱い方
35 / 392013/8/31 ロジスティック回帰の考え方?使い方
年齢
DM反応率
モデル
推定結果
実際の
年齢別反応率
※実際は直線でないが…
どう切るのか? どこを基準にするのか?
? 業務の理解、ヒヤリング力のお話な
※注:これは初心者向け
対応な気が
? 20歳未満
? 20代
…
? 60代
? 70歳以上
推奨法:ビンニングをして、カテゴリ変数の扱いで
? 各カテゴリはx倍、で曲線傾向を表現
2. 曲線傾向の扱い方
36 / 392013/8/31 ロジスティック回帰の考え方?使い方
これを基準に
? 外れ値の対応、処理
? 数値のスケール(例:金額は百万単位)
? 変換(例:対数、ルート、log)
? (30代等の)特定のカテゴリのみに効く変数の扱い
? オッズ比が1以上/以下 に納得感があるか
…まだまだ挙げればキリナイです
キッチリ回帰モデルをするのは大変
by ワタシの実感
その他の考慮事項
37 / 392013/8/31 ロジスティック回帰の考え方?使い方
38 / 392013/8/31 ロジスティック回帰の考え方?使い方
まとめ
というか、言いたかったこと
39 / 392013/8/31 ロジスティック回帰の考え方?使い方
ビジネスの場合
? 分析して儲かる
? 相手が納得する
が大前提。
で
? 2度の翻訳の妥当性
? 「1から2」&「AからB」の両方が妥当か
の両方を詰めるのは大変、だけど面白いです。
1. ビジネスの問題を
A) 数学の問題に翻訳し
B) 問題を数学的に解いて
2. 再度ビジネス世界に翻訳

More Related Content

ロジスティック回帰の考え方?使い方 - TokyoR #33