[Rによるデータ分析入門]様々な離散選択モデル(1):多項ロジットモデル
本コラムはRによるデータ分析入門のWEBサポートとして作成されています。
本コラムでは、プロビット・ロジット・トービットといった標準的な離散選択モデルの知識を前提に、Rを用いて様々な応用的な離散選択モデルの推計方法を紹介します。具体的には、
(1)多項ロジット・モデル
(2)順序ロジット・モデル(Ordered Logit Model)
(3)ヘーキット・モデル
(4)カウント・データに用いるポワソン回帰モデル、負の二項分布
(5)生存分析(COX model)
第一回は、多項ロジット・モデル(Multinomial Logit, Mlogit model)です。
被説明変数が0か1のような二値選択に用いる分析手法としては、ロジット・モデル(logit)とプロビット・モデル(probit)がポピュラーな分析手法です。しかし、実際の分析では、たとえば労働者の職種選択のように1.管理職、2.営業職、3.事務職といった複数の職種から1つを選択するような意思決定を分析する、といったニーズもあります。このように被説明変数に3つ以上の選択肢を被説明変数にするモデルを多項ロジット・モデルといいます。
※なお被説明変数が1.当てはまる、2.まあまあ当てはまる、3.どちらかというと当てはまらない、4.当てはまらない、というように選択肢間に序列がある場合には、第二回で紹介する順序ロジット(あるいは順序プロビット)を用います。
使用するデータとMlogitモデルの特徴
使用するデータはWooldridgeのEconomic Analysis of Cross-section and panel dataの第16章で紹介されている事例でmlogit-data.csvです。このファイルは以下からダウンロードできます。このデータは、米国の若年男性1739人の進学、就職選択で、choice=1が進学、choice=2が非進学・非就業、choice=3が就業を示します。choice=2はいわいるニート(NEET, Not in Education, Employment, Training)その他の変数には教育年数(educ)、黒人ダミー(black)、就業経験年数(exp)とその2乗値(exp2)が含まれます。choiceを被説明変数、他の変数を説明変数とするモデルを推定します。
Mlogitモデルの特徴は、「ある選択肢を基準として、その対比で、それ以外の選択肢が選ばれる確率を推計する」、というものです。ここは抽象的なので、先に推計方法と推計結果を紹介しましょう。
Rによる推計方法
RによるMlogitの推計には、まずmlogitパッケージをインストールし、library((mlogit)でパッケージを呼び出しておきます。そして、推計はmlogit.data()関数とmlogit()関数を使います。なおyには被説明変数名を入れます。
mlogit用データフレーム名 <-mlogit.data(データフレーム名, shape="wide", choice="y")
結果オブジェクト名 <- mlogit(y~x1+x2+x3, mlogit用データフレーム名)
以下は、mlogit_data.csvによるスクリプト例です。
library(tidyverse)
library(mlogit)
#データの読み込み
dataf <-readr::read_csv("mlogit-data.csv")
dataf_mlogit <- mlogit.data(dataf, shape = "wide", choice = "choice")
result <-mlogit(choice~0|educ+exp+exp2+black,dataf_mlogit)summary(result)
結果は以下の通りですが、mlogitコマンドの推計結果では、被説明変数の選択肢ごとに係数が出てきます。選択肢1だけ係数がないのは、選択肢1を基準としているからです。係数の読み方ですが、
・選択肢2(ニート)は、educ:2、exp:2、epx2:2、black:2の係数に注目します。educ:2がマイナス、P値が1%を下回っており統計的に有意です。exp:2も負ですがP値は10%を上回っていますので統計的に非有意です。読み方ですが、基準である選択肢1(進学)との対比なので、教育年数が長い人ほど進学を選ぶ、と読みます。
・選択肢3(就業)の場合も同様で、educ:3、exp:3、epx2:3、black:3の係数に注目します。こちらはeduc:3の係数はマイナス、exp:3の係数はプラスで各々有意なので、教育年数や就業経験年数の長い人は進学より就業を選択する、と読みます。
基準はreflevelオプションで変更できます。たとえば3. 就業を基準にするならば、mlogit()関数のオプションにrefleve="3"と入力します。
この場合、3.就業との比較で、どのような人が1.進学や2.ニートを選ぶかを示します。興味深いのは、選択肢2のexp:2の結果で、1.進学を基準としたときは非有意でしたが、今回は係数が負でP値が1%未満で統計的に有意になっています。この結果は、就業経験年数が短いと就業より進学を選ぶ傾向にあることを示しています。
次回は順序ロジットモデルを紹介します。
本コラムは「Rによるデータ分析入門」のWEBサポートページとして作成されました。WEBサポートの一覧は以下を参照してください。
WEBサポートの一覧は以下を参照してください。