基礎ゼミ５
MNLの導出とパラメータ推定
平成30年5月14日（月）福田研究室 修士１年生
室 祥太朗

1

目次
多項ロジットモデルの復習
多項ロジットモデルの推定
Rを用いた演習
参考文献

2

3

復習の前に
横浜市内の移動

電車

バス

自動車

バイク

どの交通手段で移動する？
それぞれの交通手段の効用を算出
例えば，，，電車:２５ バス:１５ 自動車:１０ バイク:５ 徒歩:２０
意思決定者は最も大きい効用の選択肢を選ぶ

徒歩

4

ランダム効用理論
意思決定者が選択をする際には「効用」を基準とする．
効用とは選択肢の持つ望ましさを意味しており，最も大きい効用の選択肢を選ぶ．（効用最大化理論）

誤差項を用いて効用を確率的に表現した確率的選択行動を記述している．
選択肢𝑖の効用

𝑈𝑖 = 𝑉𝑖 + 𝜀𝑖
選択肢𝑖の確定項
観測可能な効用の構成要素
e.g.料金，所要時間，個人属性

選択肢𝑖の誤差（ランダム項）
・非観測属性・測定誤差
・情報の不完全性

5

効用関数の特定化
𝑉𝑡𝑟𝑎𝑖𝑛=𝐴𝑆𝐶𝑡𝑟𝑎𝑖𝑛 + 𝛽𝑡𝑖𝑚𝑒 𝑇𝐼𝑀𝐸𝑡𝑟𝑎𝑖𝑛 + 𝛽𝑚𝑎𝑙𝑒 𝑀𝐴𝐿𝐸

𝑉𝑏𝑢𝑠

=

𝐴𝑆𝐶𝑏𝑢𝑠𝑉𝑤𝑎𝑙𝑘=+ 𝛽𝑡𝑖𝑚𝑒

𝑇𝐼𝑀𝐸𝑏𝑢𝑠 ++ 𝛽𝑡𝑖𝑚𝑒 𝑇𝐼𝑀𝐸𝑤𝑎𝑙𝑘 +変数の選択•定数項：説明変数では表現しきれない選択肢固有の効用値，選択肢固有のパラメータと解釈できる•サービスレベル変数(LOS)：選択肢毎に定義される変数で，選択肢間で値が変化する(ex 料金，所要時間)•社会経済変数(SE)：選択肢に依存しない変数で，選択肢間で値が変化しない(ex 性別，年齢，免許の有無)

係数の設定•選択肢共通変数：選択肢間で共通のパラメータを設定（鉄道とバスで時間の係数は同じ）•選択肢固有係数：選択肢間で異なるパラメータを設定（鉄道とバスで時間の係数は違う）

5

効用関数の特定化
𝑉𝑡𝑟𝑎𝑖𝑛=𝐴𝑆𝐶𝑡𝑟𝑎𝑖𝑛 + 𝛽𝑡𝑖𝑚𝑒 𝑇𝐼𝑀𝐸𝑡𝑟𝑎𝑖𝑛 + 𝛽𝑚𝑎𝑙𝑒 𝑀𝐴𝐿𝐸

𝑉𝑏𝑢𝑠

=

𝐴𝑆𝐶𝑏𝑢𝑠𝑉𝑤𝑎𝑙𝑘=+ 𝛽𝑡𝑖𝑚𝑒

𝑇𝐼𝑀𝐸𝑏𝑢𝑠 ++ 𝛽𝑡𝑖𝑚𝑒 𝑇𝐼𝑀𝐸𝑤𝑎𝑙𝑘 +変数の選択•定数項：説明変数では表現しきれない選択肢固有の効用値，選択肢固有のパラメータと解釈できる•サービスレベル変数(LOS)：選択肢毎に定義される変数で，選択肢間で値が変化する(ex 料金，所要時間)•社会経済変数(SE)：選択肢に依存しない変数で，選択肢間で値が変化しない(ex 性別，年齢，免許の有無)

係数の設定•選択肢共通変数：選択肢間で共通のパラメータを設定（鉄道とバスで時間の係数は同じ）•選択肢固有係数：選択肢間で異なるパラメータを設定（鉄道とバスで時間の係数は違う）

5

効用関数の特定化
𝑉𝑡𝑟𝑎𝑖𝑛=𝐴𝑆𝐶𝑡𝑟𝑎𝑖𝑛 + 𝛽𝑡𝑖𝑚𝑒 𝑇𝐼𝑀𝐸𝑡𝑟𝑎𝑖𝑛 + 𝛽𝑚𝑎𝑙𝑒 𝑀𝐴𝐿𝐸

𝑉𝑏𝑢𝑠

=

𝐴𝑆𝐶𝑏𝑢𝑠𝑉𝑤𝑎𝑙𝑘=+ 𝛽𝑡𝑖𝑚𝑒

𝑇𝐼𝑀𝐸𝑏𝑢𝑠 ++ 𝛽𝑡𝑖𝑚𝑒 𝑇𝐼𝑀𝐸𝑤𝑎𝑙𝑘 +変数の選択•定数項：説明変数では表現しきれない選択肢固有の効用値，選択肢固有のパラメータと解釈できる•サービスレベル変数(LOS)：選択肢毎に定義される変数で，選択肢間で値が変化する(ex 料金，所要時間)•社会経済変数(SE)：選択肢に依存しない変数で，選択肢間で値が変化しない(ex 性別，年齢，免許の有無)

係数の設定•選択肢共通変数：選択肢間で共通のパラメータを設定（鉄道とバスで時間の係数は同じ）•選択肢固有係数：選択肢間で異なるパラメータを設定（鉄道とバスで時間の係数は違う）

5

効用関数の特定化
𝑉𝑡𝑟𝑎𝑖𝑛=𝐴𝑆𝐶𝑡𝑟𝑎𝑖𝑛 + 𝛽𝑡𝑖𝑚𝑒 𝑇𝐼𝑀𝐸𝑡𝑟𝑎𝑖𝑛 + 𝛽𝑚𝑎𝑙𝑒 𝑀𝐴𝐿𝐸

𝑉𝑏𝑢𝑠

=

𝐴𝑆𝐶𝑏𝑢𝑠𝑉𝑤𝑎𝑙𝑘=+ 𝛽𝑡𝑖𝑚𝑒

𝑇𝐼𝑀𝐸𝑏𝑢𝑠 ++ 𝛽𝑡𝑖𝑚𝑒 𝑇𝐼𝑀𝐸𝑤𝑎𝑙𝑘 +変数の選択•定数項：説明変数では表現しきれない選択肢固有の効用値，選択肢固有のパラメータと解釈できる•サービスレベル変数(LOS)：選択肢毎に定義される変数で，選択肢間で値が変化する(ex 料金，所要時間)•社会経済変数(SE)：選択肢に依存しない変数で，選択肢間で値が変化しない(ex 性別，年齢，免許の有無)

係数の設定•選択肢共通変数：選択肢間で共通のパラメータを設定（鉄道とバスで時間の係数は同じ）•選択肢固有係数：選択肢間で異なるパラメータを設定（鉄道とバスで時間の係数は違う）

5

効用関数の特定化
𝑉𝑡𝑟𝑎𝑖𝑛=𝐴𝑆𝐶𝑡𝑟𝑎𝑖𝑛 + 𝛽𝑡𝑖𝑚𝑒_1 𝑇𝐼𝑀𝐸𝑡𝑟𝑎𝑖𝑛 + 𝛽𝑚𝑎𝑙𝑒 𝑀𝐴𝐿𝐸

𝑉𝑏𝑢𝑠

=

𝐴𝑆𝐶𝑏𝑢𝑠𝑉𝑤𝑎𝑙𝑘=+ 𝛽𝑡𝑖𝑚𝑒_2

𝑇𝐼𝑀𝐸𝑏𝑢𝑠 ++ 𝛽𝑡𝑖𝑚𝑒_3 𝑇𝐼𝑀𝐸𝑤𝑎𝑙𝑘 +変数の選択•定数項：説明変数では表現しきれない選択肢固有の効用値，選択肢固有のパラメータと解釈できる•サービスレベル変数(LOS)：選択肢毎に定義される変数で，選択肢間で値が変化する(ex 料金，所要時間)•社会経済変数(SE)：選択肢に依存しない変数で，選択肢間で値が変化しない(ex 性別，年齢，免許の有無)

係数の設定•選択肢共通変数：選択肢間で共通のパラメータを設定（鉄道とバスで時間の係数は同じ）•選択肢固有係数：選択肢間で異なるパラメータを設定（鉄道とバスで時間の係数は違う）

5

効用関数の特定化
𝑉𝑡𝑟𝑎𝑖𝑛=𝐴𝑆𝐶𝑡𝑟𝑎𝑖𝑛 + 𝛽𝑡𝑖𝑚𝑒 𝑇𝐼𝑀𝐸𝑡𝑟𝑎𝑖𝑛 + 𝛽𝑚𝑎𝑙𝑒 𝑀𝐴𝐿𝐸

𝑉𝑏𝑢𝑠

=𝐴𝑆𝐶𝑏𝑢𝑠𝑉𝑤𝑎𝑙𝑘=+ 𝛽𝑡𝑖𝑚𝑒

𝑇𝐼𝑀𝐸𝑏𝑢𝑠 ++ 𝛽𝑡𝑖𝑚𝑒 𝑇𝐼𝑀𝐸𝑤𝑎𝑙𝑘 +変数の選択•定数項：説明変数では表現しきれない選択肢固有の効用値，選択肢固有のパラメータと解釈できる•サービスレベル変数(LOS)：選択肢毎に定義される変数で，選択肢間で値が変化する(ex 料金，所要時間)•社会経済変数(SE)：選択肢に依存しない変数で，選択肢間で値が変化しない(ex 性別，年齢，免許の有無)

係数の設定•選択肢共通変数：選択肢間で共通のパラメータを設定（鉄道とバスで時間の係数は同じ）•選択肢固有係数：選択肢間で異なるパラメータを設定（鉄道とバスで時間の係数は違う）

4

ランダム効用理論
意思決定者が選択をする際には「効用」を基準とする．
効用とは選択肢の持つ望ましさを意味しており，最も大きい効用の選択肢を選ぶ．（効用最大化理論）

誤差項を用いて効用を確率的に表現した確率的選択行動を記述している．
選択肢𝑖の効用

𝑈𝑖 = 𝑉𝑖 + 𝜀𝑖
選択肢𝑖の確定項
観測可能な効用の構成要素
e.g.料金，所要時間，個人属性

選択肢𝑖の誤差（ランダム項）
・非観測属性・測定誤差
・情報の不完全性

選択確率の算出
個人𝑛が選択肢𝑗を選択する確率𝑃𝑛 (𝑖)を算出する
𝑃𝑛 (𝑖) = Pr{𝑈𝑖𝑛 ≧ 𝑈𝑗𝑛 , 𝑓𝑜𝑟∀𝑗, 𝑖 ≠ 𝑗}
 誤差項をガンベル分布と仮定すると，ロジットモデルが導出される．
exp(𝜇𝑉𝑖 )𝑃𝑛 (𝑖) =𝑗∈𝑐 exp(𝜇𝑉𝑗 )誤差項を正規分布と仮定すると，プロビットモデルが導出される
多重積分が必要なため，計算が大変パラメータは最尤推定法によって推定

6

7

データ概要（その１）横浜で行われたプローブパーソン調査データ（以下PPデータ）を使用
本調査では計50名のモニターから全3868件のトリップを取得

行毎にそれぞれのトリップIDの情報について書かれている

トリップIDの個人属性

8

データ概要（その２）

どの交通手段を選んだか選んでいない交通手段も含め，所要時間や費用が記載されている

9

データファイルの読み込みデータの行数を調べる

読み込むデータを指定“¥”ではなく”/”であることに注意
要素が０のベクトルを作成する
c(0,0,0,0,0)

尤度関数の定義，初期値の設定
Function関数で尤度関数を定義する※function関数の例
a <- function(x){x+5}a(2)でまわすと7が出る

変数の定義

尤度をLLと定義し，初期値を0に11

効用関数の定義
𝑉𝑡𝑟𝑎𝑖𝑛 = 𝐴𝑆𝐶𝑡𝑟𝑎𝑖𝑛 + 𝛽𝑡𝑖𝑚𝑒 ∗ 𝑇𝐼𝑀𝐸𝑡𝑟𝑎𝑖𝑛
𝑉𝑏𝑢𝑠 = 𝐴𝑆𝐶𝑏𝑢𝑠 + 𝛽𝑡𝑖𝑚𝑒 ∗ 𝑇𝐼𝑀𝐸𝑏𝑢𝑠
𝑉𝑐𝑎𝑟 = 𝐴𝑆𝐶𝑐𝑎𝑟 + 𝛽𝑡𝑖𝑚𝑒 ∗ 𝑇𝐼𝑀𝐸𝑐𝑎𝑟
𝑉𝑏𝑖𝑘𝑒 = 𝐴𝑆𝐶𝑏𝑖𝑘𝑒 + 𝛽𝑡𝑖𝑚𝑒 ∗ 𝑇𝐼𝑀𝐸𝑏𝑖𝑘𝑒
𝑉𝑤𝑎𝑙𝑘 = 𝛽𝑡𝑖𝑚𝑒 ∗ 𝑇𝐼𝑀𝐸𝑤𝑎𝑙𝑘

12効用関数の定義

時間については，説明変数のおよそのケタを揃えて推定計算を安定させるた
め，100で割り100分を単位として変数をとる．（スケーリング）
代替手段生成可否
例えば，バスルートが見つからない等の理由でそもそもバスが使えない場合，0となっている．

13

選択確率の導出
各交通機関の選択確率，例えば鉄道の場合は，
𝑒 𝑉𝑡𝑟𝑎𝑖𝑛𝑃𝑡𝑟𝑎𝑖𝑛 = 𝑉
𝑒 𝑡𝑟𝑎𝑖𝑛 + 𝑒 𝑉𝑏𝑢𝑠 + 𝑒 𝑉𝑐𝑎𝑟 + 𝑒 𝑉𝑏𝑖𝑘𝑒 + 𝑒 𝑉𝑡𝑖𝑘𝑒

14

15

選択確率の補正 選択確率の補正

Ptrain が0 でなかったらそのままPtrain を，Ptrain が0 であれば1 をPtrain に代入するような処理
 選択結果の数値換算

 対数尤度関数の定義

代表交通手段の列が「鉄道」である行には1 を，そうでない行には0 を出力し，Ctrain に代入する．

対数尤度関数の最大化

16

Optim・・・最適化関数
対数尤度関数(fr)を最適化(尤度を最大化)するパラメータを求める$parパラメータの最適解の値$value
最大尤度$message
エラーのありなし，NULLなら無し$hessian
ヘッセ行列(t値の計算に必要)

t値の算出slov・・・ヘッセ行列の逆行列を計算し，分散共分散行列を算出

diag・・・行列の対角成分を抽出

sqrt・・・平方根の計算

最尤推定量を標準偏差で割ることでt値を算出

17

18

結果の出力

X[1]

X[2]

MaxLik関数
Optim関数ではうまく計算できない場合がある．
maxLik関数の使用．
パッケージmaxLikをインストールしないと使えない．
Optimと同じRの最適化関数．
東京北海道間における貨物輸送のMNLの例

参考文献「東京大学羽藤研究室webページ」http://bin.t.u-tokyo.ac.jp/kaken/
社団法人交通工学研究会編（平成7年）：やさしい非集計分析

19

課題１
ダミー変数加えよ．

20

20

課題１

𝑃𝑛 (𝑖) =exp(𝜇𝑉𝑖 )𝑗∈𝑐 exp(𝜇𝑉𝑗 )課題１
結果の出力21

課題２
サービスレベル変数に費用を入れよ．

22

課題２
サービスレベル変数に費用を入れよ．

22

課題２
結果の出力23