読者です 読者をやめる 読者になる 読者になる

Rを通じて統計学を学ぶ備忘録ブログ

SPSSからRに移行したい私のような人向けのR解説ブログ兼学習用備忘録。

第51回 多項(Multi)ロジスティック回帰分析

多変量解析

第51回は「多項ロジスティック回帰分析」。これはどのようなときに使う手法なのでしょうか。簡単に言うと、名義尺度の目的変数が3つ以上のとき、多項ロジスティック回帰分析、目的変数に順序関係がある場合には順序ロジスティック回帰分析(もしくは、順序尺度を連続量と考え重回帰分析)を使います。以下の図を参照下さい。 

f:id:teruaki-sugiura:20150829014748p:plain

・多項ロジスティック回帰分析のモデル式 

基本的には、2値のロジスティック回帰分析の原理と同じです。しかし、目的変数が3値以上のため、モデル式を追加する必要があります。まずロジスティック回帰分析のモデル式をおさらいします。

f:id:teruaki-sugiura:20150816183617p:plain

 以下、多項ロジスティック回帰分析のモデル式です。ここでは、3値(A群,B群,C群)のときのモデル式を書きます。

f:id:teruaki-sugiura:20150829014940p:plain

 一般化線形モデル的に捉えると、誤差構造は「多項分布」を利用します。こんな感じです。

f:id:teruaki-sugiura:20150829032913p:plain

壺の中に「赤玉:r」「白玉:w」「緑玉:g」が入っているときに、復元抽出で玉を取り出すときの玉の分布を表すのによく使われます。簡単に言ってしまうと、二項分布を拡張したものです。 

ではここからは、2値のロジスティック回帰分析のモデル式との大きな違いについて見ていきましょう。違いは大きくわけて2つあります。

・左辺のlogitの部分

1本目のモデル式は、C群に対してのA群の起こりやすさ、2本目のモデル式は、C群に対してのB群の起こりやすさ、を表しています。このとき、C群を「基準カテゴリ(参照カテゴリ)」と呼びます。

・偏回帰係数の部分

係数は個別に算出されるため、モデル式によって係数が異なります。

f:id:teruaki-sugiura:20150829015047p:plain

係数が正ならC群に対してA群が起こりやすく、負ならA群が起こりにくい、と解釈できます。ロジスティック回帰分析と同様に、偏回帰係数に指数(exp^b_nA)をとることで、C群に対するA群のオッズ比が得られます。 

・Rでの実践

ここでも3値(A群,B群,C群)のときの多項ロジスティック回帰分析を行います。目的変数は「商品A、商品B、商品C」のどれかを購入(3パターン)、x1は「TVCMの閲覧回数」、x2は「動画広告の視聴回数」としましょう。あくまで例なので、設定に対する辛辣なツッコミはお控えくだされ。

install.packages(nnet)
library(nnet)
 
multilog <- read.csv("multilog.csv",header=TRUE)
head(multilog)
  y  x1  x2
1   a  18   5
2   a  14   5
3   a  11   4
…
#30番まであります
 
m.log <- multinom(y~x1+x2,data=multilog)
# weights:  12 (6 variable)
initial    value  32.958369
iter  10 value  11.765107
iter  20 value  11.229297
final      value  10.947539
converged
 
summary(m.log)
 
Call:
multinom(formula = multilog$y ~ x1 + x2, data = multilog)
 
Coefficients:
  (Intercept)        x1                x2
b   -11.73143  0.1095611  1.1586006
c   -17.82661  0.7549030  0.6424618
 
Std. Errors:
  (Intercept)         x1                x2
b    5.697320  0.2225961  0.452909
c    8.217832  0.3789197  0.459474
 
Residual Deviance: 21.89507
AIC: 33.89507

 A商品を基準カテゴリとした場合の結果が示されています。つまり、偏回帰係数にexpをとるので、x1が1増加することで、A商品に対してB商品の購入の起こりやすさは1.1倍、C商品の購入の起こりやすさは2.1倍ということがわかります。x2については、1増加することで、A商品に対してB商品の購入の起こりやすさは3.1倍、C商品の購入の起こりやすさは1.89倍となります。

m.log0 <- multinom(y~1,data=multilog) #切片のみモデル
# weights:  6 (2 variable)
initial   value   32.958369
final    value   32.958369
converged
 
nova(m.log,m.log0)  #尤度比検定
 
   Model Resid.    df     Resid. Dev   Test       Df     LR stat.     Pr(Chi)
1       1        58     65.91674               NA          NA       NA
2 x1 + x2          54      21.89507 1 vs 2        4     44.02166     6.349646e-09

 多項ロジスティック回帰分析をSPSSで行った場合、係数の検定やモデルの評価などもろもろ、一覧で表示されるのでRより使い勝手がよさそう。詳しく知りませんが、他の多項ロジスティック回帰分析の関数を使えば表示されるらしい。時間あるときに探そう。

 

以上で第51回はおしまい。

広告を非表示にする