本日もせっせと勉強します
TJO氏の本でね。今日はロジスティック回帰分析を手を動かしながら勉強します。
尾崎 隆
技術評論社
売り上げランキング: 131,451
技術評論社
売り上げランキング: 131,451
一般化線形モデルとロジスティック回帰分析
- 一般化線形モデルは、上限・下限・二値データを取り扱えるように線形モデルを拡張したもののこと
- 普通の正規線形モデルでは、目的変数が正規分布にしたがってばらつくと仮定されているので、二項分布やポアソン分布などには対応できない
- 一般線形モデルは、二項分布やポアソン分布などの確率分布に従ってばらつくことも対応できる
- なので、ロジスティック回帰分析も扱える
世の中には、売上高や出荷 数のような特に数字の制約のないデータの他に、「 ○○率」や「Yes/No( 数値で表す1or0の二値型データ)」 のように、その性質上どうしても 上限 と下限が決まっ てしまっているデータもたくさんあり ます。
そのようなデータに対して、第4章で取り上げ 重回帰分析( 正規線形モデル) を用いよ うとする と、「 上限」「 下限」「 まばら さ」「 二値型データ」 が存在 する こと による 影響 が 大き 過ぎ て、 得られる結果が歪んでしまい ます。
そのようなに対しても重回帰分析を行えるようにしたのが、「 一般化 線形 モデル( Generalized Linear Model: GLM)(* 2)」
パーセンテージのように、上限・下限が決まっている場合のロジスティック分析
- 大学生の小遣い額と自前スマートフォン所持率を想定
- ある閾値で所持率が変わりそう
- 線形で予測しようと、おかしくなる
- 曲線の部分に対応できない
- 指数関数を使って、ロジットリンク関数に変換
- そうすると、曲線部にもフィットする。
テストの合否のような「Yes / No」で別れる2値データ
- テストの勉強時間と合否率を想定
- 1日あたりの勉強時間が4時間前後で合否が分かれることを想定
- こういう値も、正規線形モデルであてはめられない
- ロジスティック回帰を使うと予測できる。
- 途中から確率がぐわっと変わるものに対応できる
通販サイトにおける商品購入率をキャンペーン商品の価格で説明してみよう
>dl <- read.table("C:/workspace/R/DM_sampledata/ch6_4_1.txt",header = TRUE, check.names = TRUE) >dl.glm <- glm(cvr~.,dl,family=binominal) > summary(dl.glm) Call: glm(formula = cvr ~ ., family = binomial, data = dl) Deviance Residuals: Min 1Q Median 3Q Max -1.03739 -0.28188 -0.09022 0.21891 1.57252 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -4.2249329 4.5516014 -0.928 0.35329 d11 0.0025792 0.0009027 2.857 0.00427 ** d12 -0.0003517 0.0005721 -0.615 0.53867 d13 -0.0007600 0.0007121 -1.067 0.28581 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 26.0459 on 29 degrees of freedom Residual deviance: 7.8531 on 26 degrees of freedom AIC: 23.461 Number of Fisher Scoring iterations: 6
- 食品のみが有意かつ正の偏回帰係数を示す
- 食品カテゴリが高価格帯の商品ほど購入率が高い
- 同じような詰め合わせでも、食品カテゴリが豪華なほどお買い得感を感じる客層が多い
個々の顧客の購買データからどのキャンペーンが効果的だったかを説明する
- 2値データのロジスティック回帰分析
- 商品購入と、キャンペーンページ表示のデータ
- d21-26はWebのキャンペーンページで、1=みた、0=見てない
- CVは購入したかどうか
- 購入する場合、どのページを見ているかを分析する
- ch_6_4_2.txtをd2としてインポートし、二項ロジスティック回帰分析を行う
> d2.glm <- glm(cv~.,d2,family=binomial) > summary(d2.glm) Call: glm(formula = cv ~ ., family = binomial, data = d2) Deviance Residuals: Min 1Q Median 3Q Max -2.3793 -0.3138 -0.2614 0.4173 2.4641 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -1.0120 0.9950 -1.017 0.3091 d21 2.0566 0.8678 2.370 0.0178 * d22 -1.7610 0.7464 -2.359 0.0183 * d23 -0.2136 0.6131 -0.348 0.7276 d24 0.2994 0.8368 0.358 0.7205 d25 -0.3726 0.6064 -0.614 0.5390 d26 1.4258 0.6408 2.225 0.0261 * --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 173.279 on 124 degrees of freedom Residual deviance: 77.167 on 118 degrees of freedom AIC: 91.167 Number of Fisher Scoring iterations: 5
- d2lページとd26ページを見たユーザーほど商品購入に至っている
- d2lページのほうがd26ページよりもさらにユーザーに商品購入に促す効果が強い
- d22ページは見たユーザーほど商品購入せずに終わっているので逆効果
うん、わかりやすかった。次は決定木です。楽しみ!
尾崎 隆
技術評論社
売り上げランキング: 131,451
技術評論社
売り上げランキング: 131,451