40
ロジスティック回帰の 考え方・使い方 TokyoR #33 2013/8/31 @horihorio

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

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: ロジスティック回帰の考え方・使い方 - TokyoR #33

ロジスティック回帰の 考え方・使い方

TokyoR #33

2013/8/31

@horihorio

Page 2: ロジスティック回帰の考え方・使い方 - TokyoR #33

自己紹介

1 / 39 2013/8/31

• Twitter ID: @horihorio

• お仕事: 分析コンサルタント

• 興味: 統計色々/DB/R/Finance/金融業/会計

• 過去の発表: ここ

• 最近の出来事

• 金融業以外の分析にも進出

• だが何故か証券アナリストを取った

• 優秀な人のマネジメントっぽい事を

• 息子が1歳になった

ロジスティック回帰の考え方・使い方

Page 3: ロジスティック回帰の考え方・使い方 - TokyoR #33

今回の想定ケース

2 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

• 旅行代理店勤務 マーケティング部所属3年目

• 「Rによるやさしい統計学」で Rの操作、線形回帰に慣れた

• 上司(超文系)に 「いつもツアーの案内DM送っているけど、 もっと上手い送り方って考えてくれない?」 と言われた。どうしよう…

Page 4: ロジスティック回帰の考え方・使い方 - TokyoR #33

紹介すること

3 / 39 2013/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 …

Page 5: ロジスティック回帰の考え方・使い方 - TokyoR #33

紹介しないこと

4 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

1. Rの色々な操作

2. 数学、統計学の理論

! 別の本や資料を見て下さい !

Page 6: ロジスティック回帰の考え方・使い方 - TokyoR #33

モノの作り方

5 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

自動車の作り方

を何回も、行きつ戻りつ、繰り返す。

出典:門外漢の妄想

1. 設計する

2. 車を作る

3. 機器で検査

4. テストコースで検査

Page 7: ロジスティック回帰の考え方・使い方 - TokyoR #33

6 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

自動車の作り方 モデルの作り方

を何回も、行きつ戻りつ、繰り返す。

1. 設計する

2. 車を作る

3. 機器で検査

4. テストコースで検査

1. 設計する

2. モデルを作る

3. 検証データで検査

4. 実ビジネスで検査

モノの作り方

Page 8: ロジスティック回帰の考え方・使い方 - TokyoR #33

アジェンダ

7 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

1 ロジスティック回帰で良いの?

• その他の方法もない? • 相手はどんな方ですか?

2 ロジスティック回帰の仕上がり図

• 仕上がりから逆算して考えてみると

3 結果の検証方法

• モデルをつくったら、きちんと検査を

4 データ加工方法の例

• 回帰モデルは加工が大変デス… その一旦を紹介します

作り方1.

モデル設計

作り方1.

モデル設計

作り方2.

モデル作成

作り方3. 4.

モデル検証

Page 9: ロジスティック回帰の考え方・使い方 - TokyoR #33

8 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

1.ロジスティック回帰で良いの?

Page 10: ロジスティック回帰の考え方・使い方 - TokyoR #33

欲しい結果:DMに反応する確率(0~1)

DMの発送って?

ご存知:線形回帰モデル

• 入力:性別、年齢、購買履歴、…

• 出力:購入額、とか

0~1でない

なんか違う…

9 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

Page 11: ロジスティック回帰の考え方・使い方 - TokyoR #33

欲しい結果:DMに反応する確率(0~1)

DMの発送って?

線形回帰モデル

• 入力:性別、年齢、購買履歴、…

• 出力:購入額

ロジスティック回帰モデル

• 入力:性別、年齢、購買履歴、…

• 出力: DMに反応する確率 ⇒0.5以上(例えば)はDMに反応、と考える

0~1の値

10 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

こっち

Page 12: ロジスティック回帰の考え方・使い方 - TokyoR #33

○×とに分類したい ⇒ 識別モデル

ただ、識別モデルって他にもある

他にも方法はある

代表的なところ

• ロジスティック回帰

• 決定木

• ランダムフォレスト

• ニューラルネット

• SVM (Support Vector Machine)

などなど

11 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

Page 13: ロジスティック回帰の考え方・使い方 - TokyoR #33

判断基準は色々山ほど。万能な基準はない。

どのモデルを選べばいいの?

• 当たるか? ⇒高度な技術?は精度UP、分かりやすさはDOWN…

• いつも同じ結果が出るか? ⇒毎回違う結果が出るモデルも…

• データ加工の手間は?

⇒前処理が 相当必要~ほぼ不要 までイロイロ

• モデルが解釈出来る/し易いか? ⇒ブラックボックスなモデルもあり

• チューニングの余地があるか? ⇒「チューニング出来ないモデルが散々な結果」への恐怖…

12 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

Page 14: ロジスティック回帰の考え方・使い方 - TokyoR #33

ビジネスならば:「説明する相手を考える」

提案する基準

※出典:私の独断と偏見

13 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

モデル 技術が ある

相手は…

技術が ない

相手は…

結果の 要因 追求

分析 工数

ロジスティック回帰 正面勝負か 分かる気も 可能 大

決定木 恥ずかしくネw よく分かる♪ えw 小

ランダムフォレスト 忙しかった?

結果だけなら よーく 分かった

難しい 小

ニューラル ネットワーク

結果が欲しかったのね

無理 小~中

SVM 好きですね… 難しい 中

Page 15: ロジスティック回帰の考え方・使い方 - TokyoR #33

結果に至った理由が知りたい場合

私がロジスティック回帰を選ぶ場合

14 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

モデル 技術が ある

相手は…

技術が ない

相手は…

結果の 要因 追求

分析 工数

ロジスティック回帰 正面勝負か 分かる気も 可能 大

決定木 恥ずかしくネw よく分かる♪ えw 小

ランダムフォレスト 忙しかった?

結果だけなら よーく 分かった

難しい 小

ニューラル ネットワーク

結果が欲しかったのね

無理 小~中

SVM 好きですね… 難しい 中

ココに注目

Page 16: ロジスティック回帰の考え方・使い方 - TokyoR #33

15 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

2.ロジスティック回帰の仕上がり図

Page 17: ロジスティック回帰の考え方・使い方 - TokyoR #33

※普段は、もう少し分かりやすく&マトモに書きます…

最低限伝えるメッセージ

説明の例

16 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

重要度 採用変数 有意確率 オッズ比

1 年収_百万 0.1% 1.32

2 年齢_50代 0.5% 0.82

3 性別_女性 1.2% 1.12 …

- 切片 0.3% -

Page 18: ロジスティック回帰の考え方・使い方 - TokyoR #33

説明の例

※普段は、もう少し分かりやすく&マトモに書きます…

17 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

重要度 採用変数 有意確率 オッズ比

1 年収_百万 0.1% 1.32

2 年齢_50代 0.5% 0.82

3 性別_女性 1.2% 1.12 …

- 切片 0.3% -

有意確率の小さい順

採用変数が

間違ってる確率

(その他比で)

確率が…倍になる

最低限伝えるメッセージ

Page 19: ロジスティック回帰の考え方・使い方 - TokyoR #33

R出力との対応

18 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

重要度 採用変数 有意確率 オッズ比

1 年収_百万 0.1% 1.32

2 年齢_50代 0.5% 0.82

3 性別_女性 1.2% 1.12 …

- 切片 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

自然対数e

の係数乗

Page 20: ロジスティック回帰の考え方・使い方 - TokyoR #33

色々変数が採用されているけど、

上位にある程、重要なファクターです

ってのは、割合話がしやすい気が。

解説は他の資料を!

有意確率って?

19 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

重要度 採用変数 有意確率 オッズ比

1 年収_百万 0.1% 1.32

2 年齢_50代 0.5% 0.82

3 性別_女性 1.2% 1.12 …

- 切片 0.3% -

Page 21: ロジスティック回帰の考え方・使い方 - TokyoR #33

だけど一応、軽く解説:

オッズ比 ⇒ 「他と比べて確率がx倍」 を表す指標

【右上図での解釈例】

• カテゴリー変数の場合

女性ならば(対男性比で)DM反応率が1.12倍増加

• 連続変数の場合

年収が100万円増えると、DM反応率が1.32倍増加

解説は他の資料を!

オッズ比って?

20 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

重要度 採用変数 有意確率 オッズ比

1 年収_百万 0.1% 1.32

2 年齢_50代 0.5% 0.82

3 性別_女性 1.2% 1.12 …

- 切片 0.3% -

Page 22: ロジスティック回帰の考え方・使い方 - TokyoR #33

普通にコマンド打つだけだと:

例えば100変数入れると、 効かない変数でも、何かの値が出る

その結果:

90代のDM反応率が53.2倍だぜ!

( ゚Д゚)ウヒョー!!!

##### 有意確率が87.3%ですが… #####

などなど…な雑談で、会議が迷走&紛糾の予感。

【少々脱線】

21 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

Page 23: ロジスティック回帰の考え方・使い方 - TokyoR #33

なにしてるの?

1. 信用できる(有意確率が低い)変数を1つずつ追加

2. 追加するものが無くなったら、そこで打ち止め

※色々バリエーションはあるけど、省略

とすると、100変数のうち

信用出来る変数のみのモデルが完成 ### で、会議の紛糾が回避出来る。

Rでの方法: step, stepAIC を調べて下さい。

なので ステップワイズ変数選択を推奨

【少々脱線】

22 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

Page 24: ロジスティック回帰の考え方・使い方 - TokyoR #33

23 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

3.結果の検証方法

Page 25: ロジスティック回帰の考え方・使い方 - TokyoR #33

24 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

自動車の作り方 モデルの作り方

を何回も、行きつ戻りつ、繰り返す。

1. 設計する

2. 車を作る

3. 機器で検査

4. テストコースで検査

1. 設計する

2. モデルを作る

3. 検証データで検査

4. 実ビジネスで検査

モノの作り方 再掲

ココの話

Page 26: ロジスティック回帰の考え方・使い方 - TokyoR #33

方法1.データを構築用・検証用に分割(数字は一例です)

モデル投入データで精度を出すのは(ある意味)簡単

大事なのは、投入以外のデータで検査すること

作り方の3. 検証データで検査

25 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

構築データ:80%

検証データ:20%

精度比較

時間

Page 27: ロジスティック回帰の考え方・使い方 - TokyoR #33

方法2.あえて最新データを使わない

作り方の3. 検証データで検査

26 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

時間

構築データ 検証 データ

精度比較

Page 28: ロジスティック回帰の考え方・使い方 - TokyoR #33

方法3.クロス・バリデーション

※これも一例です

作り方の3. 検証データで検査

27 / 39 2013/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

構築データ 検証データ

構築データの

精度と比較

Page 29: ロジスティック回帰の考え方・使い方 - TokyoR #33

作り方の3. 検証データで検査

28 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

で問題: 精度検証ってなに?

杓子定規な基準はない。

教科書にありがち: CAP図、AR値

• 不適当

• 悪くないけどベストでない

な場合も多々。

統計知識、データ抽出・加工技術、業界・業務知識

等々の総合力勝負だったり。

Page 30: ロジスティック回帰の考え方・使い方 - TokyoR #33

必要なもの例

1. 統計的知識

2. データ抽出・加工技術

3. 業界・業務知識

4. 各利害関係者との折衝能力

ビジネスの状況によりけり。おもいっきり難しい。

作り方の4. 実ビジネスで検査

29 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

Page 31: ロジスティック回帰の考え方・使い方 - TokyoR #33

30 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

4.データ加工方法の例

Page 32: ロジスティック回帰の考え方・使い方 - TokyoR #33

言いたいこと

31 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

• 精度を出すコツは、データの前処理

• 回帰モデルは特にデータ加工が命

その一端を紹介します。

※詳細はノウハウの塊

ほぼ開示されない

私もゴニョゴニョ

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

列「会員加入申込」は、 Web、郵送、電話、その他 のどれかがある

そのまま投入すると、面倒くさい話が発生。

1. カテゴリ変数の扱い

32 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

採用変数 有意確率 オッズ比

会員加入申込. Web 0.3% 1.47

会員加入申込. 郵送 2.4% 0.69

会員加入申込. 電話 13.3% 0.92

会員加入申込. その他 65.2% 1.00

基準が選べない 怪しいのが混入

Page 34: ロジスティック回帰の考え方・使い方 - TokyoR #33

• 会員加入申込_Web: Webならば1、非該当は0

• 会員加入申込_郵送: 郵送ならば1、非該当は0

• 会員加入申込_電話: 電話ならば1、非該当は0

• 会員加入申込_その他:その他ならば1、非該当は0

例えば、caretパッケージの dummyVars が便利

対応法:(1)各々の変数を作る

1. カテゴリ変数の扱い

33 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

Page 35: ロジスティック回帰の考え方・使い方 - TokyoR #33

• 会員加入申込_Web: Webならば1、非該当は0

• 会員加入申込_郵送: 郵送ならば1、非該当は0

• 会員加入申込_電話: 電話ならば1、非該当は0

• 会員加入申込_その他:その他ならば1、非該当は0

何を基準にすれば良い?

⇒ 業務の理解、ヒヤリング力のお話な

対応法:(2)基準としたい変数以外でステップワイズ

1. カテゴリ変数の扱い

34 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

郵送比でxx倍が

見たいので非投入

Page 36: ロジスティック回帰の考え方・使い方 - TokyoR #33

非常に大変。無加工だとこうなる

2. 曲線傾向の扱い方

35 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

年齢

DM反応率

モデル

推定結果

実際の

年齢別反応率

※実際は直線でないが…

Page 37: ロジスティック回帰の考え方・使い方 - TokyoR #33

どう切るのか? どこを基準にするのか?

⇒ 業務の理解、ヒヤリング力のお話な

※注:これは初心者向け

対応な気が

• 20歳未満

• 20代

• 60代

• 70歳以上

推奨法:ビンニングをして、カテゴリ変数の扱いで

⇒ 各カテゴリはx倍、で曲線傾向を表現

2. 曲線傾向の扱い方

36 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

これを基準に

Page 38: ロジスティック回帰の考え方・使い方 - TokyoR #33

• 外れ値の対応、処理

• 数値のスケール(例:金額は百万単位)

• 変換(例:対数、ルート、log)

• (30代等の)特定のカテゴリのみに効く変数の扱い

• オッズ比が1以上/以下 に納得感があるか

…まだまだ挙げればキリナイです

キッチリ回帰モデルをするのは大変

by ワタシの実感

その他の考慮事項

37 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

Page 39: ロジスティック回帰の考え方・使い方 - TokyoR #33

38 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

まとめ

Page 40: ロジスティック回帰の考え方・使い方 - TokyoR #33

というか、言いたかったこと

39 / 39 2013/8/31 ロジスティック回帰の考え方・使い方

ビジネスの場合

• 分析して儲かる

• 相手が納得する

が大前提。

• 2度の翻訳の妥当性

• 「1から2」&「AからB」の両方が妥当か

の両方を詰めるのは大変、だけど面白いです。

1. ビジネスの問題を

A) 数学の問題に翻訳し

B) 問題を数学的に解いて

2. 再度ビジネス世界に翻訳