2017-11-26

R-ロジスティック回帰分析 通販サイトにおける商品購入率をキャンペーン商品の価格で説明してみよう

本日もせっせと勉強します


TJO氏の本でね。今日はロジスティック回帰分析を手を動かしながら勉強します。


手を動かしながら学ぶ ビジネスに活かすデータマイニング
尾崎 隆
技術評論社
売り上げランキング: 131,451

一般化線形モデルとロジスティック回帰分析


  • 一般化線形モデルは、上限・下限・二値データを取り扱えるように線形モデルを拡張したもののこと
  • 普通の正規線形モデルでは、目的変数が正規分布にしたがってばらつくと仮定されているので、二項分布やポアソン分布などには対応できない
  • 一般線形モデルは、二項分布やポアソン分布などの確率分布に従ってばらつくことも対応できる
  • なので、ロジスティック回帰分析も扱える


世の中には、売上高や出荷 数のような特に数字の制約のないデータの他に、「 ○○率」や「Yes/No( 数値で表す1or0の二値型データ)」 のように、その性質上どうしても 上限 と下限が決まっ てしまっているデータもたくさんあり ます。

そのようなデータに対して、第4章で取り上げ 重回帰分析( 正規線形モデル) を用いよ うとする と、「 上限」「 下限」「 まばら さ」「 二値型データ」 が存在 する こと による 影響 が 大き 過ぎ て、 得られる結果が歪んでしまい ます。
そのようなに対しても重回帰分析を行えるようにしたのが、「 一般化 線形 モデル( Generalized Linear Model: GLM)(* 2)」

パーセンテージのように、上限・下限が決まっている場合のロジスティック分析

  • 大学生の小遣い額と自前スマートフォン所持率を想定
  • ある閾値で所持率が変わりそう
  • 線形で予測しようと、おかしくなる
  • 曲線の部分に対応できない







  • そうすると、曲線部にもフィットする。

テストの合否のような「Yes / No」で別れる2値データ


  • テストの勉強時間と合否率を想定
  • 1日あたりの勉強時間が4時間前後で合否が分かれることを想定
  • こういう値も、正規線形モデルであてはめられない
  • ロジスティック回帰を使うと予測できる。
  • 途中から確率がぐわっと変わるものに対応できる

通販サイトにおける商品購入率をキャンペーン商品の価格で説明してみよう


  • 食品・雑貨・衛生用品の詰め合わせ1万円パックの購入率データを分析
  • どの分野が購入率に影響を与えているかを特定


  • ch_6_4_1.txtをダウンロードし、Rから開く

>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





注目の投稿

 PythonのTweepyを利用して、Twitter APIを利用している。 その中で、ハマったポイントをメモしておく。 まず、Searchに関して。 Twitter検索は、クライアントアプリ側では、全期間の検索が可能になっている。 一方で、APIを利用する際は、過去1週間しか...