交通計画A Transportation Planning A

計量行動分析 第7回
離散選択モデル
ロジットモデル
連続的選択と離散的選択

標準的消費者行動モデル(連続的選択)

一定期間に購入する
財・サービスの量を説明
(お金・時間をいくらずつ割り振るか?)

離散的(質的)選択モデル

どの種類の財を選択するか?
(どこへ行くか?何を買うか?)
 離散的(discrete)な
選択肢(alternative)からの選択
5万円
離散的選択のモデル化



個人は,採りうる選択肢alternativeを列挙する
それぞれの選択肢の特徴と費用に基づいて,評
価得点utilityをつける
評価点が高いものを選ぶ
中国旅行 60点
フランス旅行 40点
アメリカ旅行50点
確定的選択モデル

個人は「評価得点が少しでも高いほうの選択肢を
必ず選ぶ」と考えるモデル



全員が同じ考え方で評価
 同じ状況に直面する人は,全員同じ選択肢を選択
 異なる条件の人の選択結果から効用関数を推定
 判別関数モデル,数量化理論II類モデル
同じ状況に対する個人間での考え方の違いを考慮
 例:高齢者は着席可能性を,若者は低運賃を重視
 犠牲量(最小化)モデル
比較における「あいまいさ」を認める

ファジィ選択モデル
確率的選択:評価点の差と選択率

実際には


ほとんど評価点が同じときは,どちらも選択される可
能性がある
評価点の差が大きいときは,片方しか選ばれない.
選択肢Aが選ばれる可能性
1
2つは同じ魅力
50%ずつ
Aが圧倒的に劣る
Aが選ばれること
はほとんどない
0
Aが圧倒的に良い
ほとんどAだけが
選ばれる
選択肢Aの得点-選択肢Bの得点
ロジットモデル

S字型の曲線として,
という式で表わされる曲線を使うと,



いろいろな計算が簡単にできる
3つ以上の選択肢からの選択も同じ形になる
2000年ノーベル経済学賞
McFadden(1937-)が提案

各自の評価点が安定している部分と確率的に変
動する部分の和である場合の選択から理論的に
導いた。(ランダム効用モデル)
ロジットモデル

選択肢が2つの2項ロジットモデル
Binary (Binomial) Logit
exp(V1 )
exp(V2 )
P1 
, P2 
 1  P1
exp(V1 )  exp(V2 )
exp(V1 )  exp(V2 )

選択肢が多数(n個)ある場合の
多項ロジットモデル Multinomial Logit
Pj 
exp(V j )

N
k 1
exp(Vk )
モデルの使用手順
選択モデルの定式化(得点からSカーブで選択率を計算)
パラメータη,βの推定
(実際の選択結果から、どういう得点付けだったかを推測)
将来の選択率の予測
(将来の選択肢の状況から得点を計算し、選択率を計算)
実際の観測結果から、
もとの事象の発生確率を推定する

手品師がイカサマかも知れないコインを6
回振ったら、表が5回、裏が1回出た。


このコインは正しいコインだろうか?表が出や
すいようなイカサマのコインだろうか?
表5回、裏1回という観測結果から、このコ
インを1回振ったときに表が出る確率pの値
を推測したい。


比率を用いてそのままp=5/6と推測する方法
さいゆうほう(最尤法)
比率によるロジットモデルの推定

集計的方法(集団の選択率にあわせる)



ある選択肢の状況下で観測された集団の選
択確率pを用いる
ロジットモデルから、その時の2つの選択肢の
魅力度VAとVBの差が逆算できる
魅力度の差がうまく一致するように、魅力度の
関数の形を調整する
先の例:6回のうち5回表だから、p=5/6と推測した。
回帰分析 Linear Regression
y  ln[PijCAR / PijBUS ]
y
平面
y  x1  x2  
をうまく決める
x1  (tijCAR  tijBUS )
x2  (cijCAR  cijBUS )
x1
x2
2つ(以上)の変数を用いて、目的の変数yの値をうまく予
測できるような平面を決める方法
最尤法による推定
(個々の事象の組み合わせを考える)





コインを続けて6回振ったところ、そのうち5回が表であっ
た.このコインの表の出る確率qはいくらか?
母数(ここでは表の出る確率q)を変えたときに,観察され
た事象が実現する確率を求める(尤度関数L(q))
観察された事象の発生確率が最大になるqの値を求める
尤度関数を求めてみよう
確率qの事象が5回,(1-q)の事象が1回観察されたの
だから、何回目が裏かが6通りあることを踏まえると、
6! 5
L(q) 6 C5 q (1  q) 
q (1  q)  6q 5 (1  q )
5!1!
5
1
最尤法による母数の推定の例
尤度関数を最大化する
L(q)  6q (1  q)
5

L(θ)
0.45
0.4

dL(q)
 6 5q 4 (1  q)  q 5  6q 4 (5  5q  q)
dq
0.35
0.3
0.25
0.2
 6q 4 (5  6q)  0
0.15
あるいは対数をとったものをqに
ついて最大化してもよい
0.05
0.1
0
0.00
0.20
0.40
0.60
0.80
1.00
L * (q)  ln L(q)  ln 6  5 ln q  ln(1  q)
dL * 5
1
5(1  q)  q 5  6q
 


0
dq q (1  q)
q(1  q)
q(1  q)
 q  5 / 6  8.333 これは,6回のうち5回という割合に一致
最尤法によるロジットモデルの推定

非集計的方法(各個人の選択を考える)



魅力度の関数形を仮定する
各個人が直面した選択肢の状況をもとに、ロ
ジットモデルで各自の選択確率を求める。
それらを掛け合わせて、観測された事象の発
生確率(尤度関数)を求める
L  n1  j 1 Pnj
N

J
 nj
尤度関数の値が最大になるように、魅力度の
関数の形を調整する
交通手段選択モデル

あるODを移動する消費者が,複数の交通手段
の所要時間や費用を考えて手段を選択
U i  Vi   j
BUS
ij
V
 t
BUS
ij
 c
BUS
ij
VijCAR  tijCAR  cijCAR  

2項ロジットモデル
exp( Vi )
Pi  Prob[ Ui  Uk : k ( i)  K ] 
k 1,2 exp( Vk )
選択肢jの魅力度が他の選択肢よりも高い確率
2項ロジットモデルの図解
V*
1
V
0
X2
X1
集計データ(比率)を用いた
ロジットモデルの推定
表3.15 バスの所要時間
表3.17 バスの所要費用
tBij
cBij
1
2
3
1
5
11
13
2
10
12
3
14
16
表3.19 バスの分担率
1
2
3
1
130
140
180
12
2
140
130
7
3
180
220
PBij
1
2
3
1
0.273
0.265
0.253
220
2
0.282
0.248
0.255
130
3
0.239
0.192
0.244
単位:分
単位:円
表3.16 自動車の所要時
間
表3.18 自動車の所要費用
表3.20 自動車の分担率
cCij
PCij
tCij
1
2
3
1
2
3
1
2
3
1
21
45
58
1
0.727
0.735
0.747
1
3
8
10
2
45
42
60
2
0.718
0.752
0.745
2
8
7
11
3
58
60
19
3
0.761
0.808
0.756
3
10
11
3
単位:分
単位:円
集計データ(比率)を用いた
線形回帰分析による推定
ロジットモデル式から、2つの選択率の比は以下のようになる
ln[PijCAR / PijBUS ]   (tijCAR  tijBUS )   (cijCAR  cijBUS )  
t
B ij t
C ij
5
10
14
11
12
16
13
12
7
3
8
10
8
7
11
10
11
3
cB ij cC ij PB ij PC ij ln(PC /PB ) t
C -tB
130
21 0.273 0.727
0.979
-2
140
45 0.282 0.718
0.935
-2
180
58 0.239 0.761
1.158
-4
140
45 0.265 0.735
1.020
-3
130
42 0.248 0.752
1.109
-5
220
60 0.192 0.808
1.437
-5
180
58 0.253 0.747
1.083
-3
220
60 0.255 0.745
1.072
-1
130
19 0.244 0.756
1.131
-4
cC -cB
-109
-95
-122
-95
-88
-160
-122
-160
-111
集計データ(比率)を用いた
線形回帰分析による推定
係数 標準誤差 t
切片 0.3898 0.045 8.731
X 値 1-0.0796 0.006 -13.2
X 値 2-0.0039 3E-04 -12.2
回帰統計
重相関0.
R9899
重決定0.
R9799
2
補正 R 02.9732
標準誤差
0.0237
観測数
9
V
 0.0796t
CAR
ij
-1
P-値 下限 95%上限 95%下限 95.
上限
0% 95.0%
1E-04 0.281 0.499055 0.281 0.499
1E-05 -0.09 -0.0648 -0.09 -0.06
2E-05
-0 -0.00309
-0
-0
バスの分担率
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
VijBUS  0.0796tijBUS  0.00387cijBUS
CAR
ij
-2
 0.00387c
CAR
ij
0.1
0
 0.390
-2
-1
0
1
VBUS-VCAR
2
Rによる線形回帰
tb <- c(5,10,14,11,12,16,13,12,7)
tc <- c(3,8,10,8,7,11,10,11,3)
cb <- c(130,140,180,140,130,220,180,220,130)
cc <- c(21,45,58,45,42,60,58,60,19)
pb <- c(0.273,0.282,0.239,0.265,0.248,0.192,0.253,0.255,0.244)
pc <- rep(1,9)-pb
lnpbpc <- log(pc/pb)
tsa <- tc-tb
csa <- cc-cb
ans <- lm(lnpbpc ~ tsa+csa)
summary(ans)
Rによる線形回帰の推定結果
Call:
lm(formula = lnpbpc ~ tsa + csa)
Residuals:
Min
1Q Median
3Q
Max
-0.021913 -0.017819 -0.006659 0.018098 0.030403
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.3898049 0.0446483 8.731 0.000125 ***
tsa
-0.0795878 0.0060416 -13.173 1.18e-05 ***
csa
-0.0038682 0.0003171 -12.200 1.85e-05 ***
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.0237 on 6 degrees of freedom
Multiple R-squared: 0.9799,
Adjusted R-squared: 0.9732
F-statistic: 146 on 2 and 6 DF, p-value: 8.165e-06
最尤法による
ロジットモデルの推定
表3.15 バスの所要時間
表3.17 バスの所要費用
tBij
cBij
1
2
3
1
2
3
1
5
11
13
1
130
140
180
2
10
12
12
2
140
130
220
3
14
16
7
3
180
220
130
単位:分
単位:円
表3.16 自動車の所要時
間
表3.18 自動車の所要費用
tCij
cCij
1
2
3
1
2
3
1
21
45
58
1
3
8
10
2
45
42
60
2
8
7
11
3
58
60
19
3
10
11
3
単位:分
単位:円
表 バスの利用者数
NBij
1
2
39
22
1
11
31
2
16
15
3
3
21
25
50
表 自動車の利用者数
NCij
1
2
3
104
61
62
1
28
94
73
2
51
63 155
3
最尤法による
ロジットモデルの推定
時間 費用
選択人数 魅力度(仮定値) 個人の選択率 事象発生確率
tBij tCij cBij cCij NBij NCij Vbij
Vcij
Pbij Pcij
Pb^Nb Pc^Nc
5 3 130 21 39 104 -0.8878 0.0831 0.27 0.72529 1.3E-22 3.1E-15
10 8 140 45 11
28 -1.3163 -0.399 0.29 0.71449 1E-06 8.2E-05
14 10 180 58 16
51 -1.7816 -0.605 0.24 0.76436 9E-11 1.1E-06
11 8 140 45 22
61 -1.3944 -0.399 0.27 0.73014 3.1E-13 4.7E-09
12 7 130 42 31
94 -1.4341
-0.31 0.25 0.75484 1.2E-19 3.3E-12
16 11 220 60 15
63 -2.0908 -0.691 0.2 0.80222 2.8E-11 9.3E-07
13 10 180 58 21
62 -1.7035 -0.605 0.25 0.75001 2.3E-13 1.8E-08
12 11 220 60 25
73 -1.7786 -0.691 0.25 0.74801 1.1E-15 6.2E-10
7 3 130 19 50 155 -1.0439 0.0907 0.24 0.75669 2E-31 1.7E-19
魅力度関数の係数の仮定値
-0.078045
α
6E-139 7.8E-87
-0.003828
β
尤度関数 尤度関数 5E-225
0.397569
γ
最大になるように値を調整
最尤法による
ロジットモデルの推定
ソルバー機能:
表計算ソフト:Excel の中では、いくつかの数値が
別のセルの数値に影響を与える場合、
目的のセルの数値を最大にするように、元の数値
を決定する計算ができる。
実際には、この尤度関数は、あまりに値が小さい
ため、数値計算誤差の影響でうまく計算できない。
尤度関数の対数(log)を取ったものを考え、それを
最大化する。

ln n1  j 1 Pnj
N
J
 nj
 
N
n 1


ln
P
nj
nj
j 1
J
最尤法による
ロジットモデルの推定
時間 費用
選択人数 魅力度(仮定値) 個人の選択率選択率の対数 人数分を合計
tBij tCij cBij cCij NBij NCij Vbij
Vcij
Pbij Pcij
lnPbij lnPcij NblnPb NclnPc
5 3 130 21 39 104 -0.8878 0.0831 0.27 0.725 -1.292 -0.321 -50.39 -33.4
10 8 140 45 11
28 -1.3163 -0.399 0.29 0.714 -1.253 -0.336 -13.79 -9.413
14 10 180 58 16
51 -1.7816 -0.605 0.24 0.764 -1.445 -0.269 -23.13 -13.7
11 8 140 45 22
61 -1.3944 -0.399 0.27
0.73 -1.31 -0.315 -28.82 -19.19
12 7 130 42 31
94 -1.4341
-0.31 0.25 0.755 -1.406 -0.281 -43.58 -26.44
16 11 220 60 15
63 -2.0908 -0.691 0.2 0.802 -1.621 -0.22 -24.31 -13.88
13 10 180 58 21
62 -1.7035 -0.605 0.25
0.75 -1.386 -0.288 -29.11 -17.84
12 11 220 60 25
73 -1.7786 -0.691 0.25 0.748 -1.378 -0.29 -34.46 -21.19
7 3 130 19 50 155 -1.0439 0.0907 0.24 0.757 -1.413 -0.279 -70.67 -43.21
魅力度関数の係数の仮定値
-0.078045
α
-318.3 -198.3
-0.003828
β
対数尤度関数 -516.5
0.397569
γ
最大になるように値を調整
作成されたロジットモデル
V BUS  0.078t BUS  0.0038c BUS
V CAR  0.078t CAR  0.0038c CAR  0.3975
PBUS
exp(VBUS )

exp(VBUS )  exp(VCAR )
PCAR  1  PBUS
Rにおける
尤度関数の定義と最大化
#対数尤度関数の定義 係数ベクトルxの関数と見なす.
LL <- function (x){
vbus <- x[1] * tb + x[2] * cb
vcar <- x[1] * tc + x[2] * cc + x[3]
ppb <- 1/(1+exp(vcar - vbus))
ppc <- 1- ppb
return(sum(pb*log(ppb)+pc*log(ppc)))
}
#Optim関数で最大化を行い,結果をresに代入する.初期値は(0,0,0)
b0=c(0,0,0)
res<-optim(b0,LL, method = "BFGS", hessian = TRUE, control=list(fnscale=-1))
Rによる推定結果の表示
> res
$par
[1] -0.081037584 -0.004007811 0.369193890
$value
[1] -5.047779
$counts
function gradient
62
18
$convergence
[1] 0
$message
NULL
$hessian
[,1]
[,2]
[,3]
[1,] -19.628306 -613.3939 5.313007
[2,] -613.393875 -23980.3173 196.530577
[3,] 5.313007 196.5306 -1.681972
Rによる非集計最尤法の推定

完全非集計データ(1サンプル1行)の時


glm(従属変数~独立変数1+・・・+独立変
数n,family=binomial(link=“logit”))
従属変数が比率の場合

glm(従属変数~独立変数1+・・・+独立変
数n,family=quasibinomial(link=“logit”))
Rによる最尤法での推定
比率を説明する場合
ans2 <- glm(pc ~ tsa+csa, family=quasibinomial(link="logit"))
summary(ans2)
Call:
glm(formula = pc ~ tsa + csa, family = quasibinomial(link = "logit"))
Deviance Residuals:
Min
1Q
Median
3Q
Max
-0.008856 -0.007615 -0.002659 0.007188 0.013667
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.3991916 0.0446219 8.946 0.000109 ***
tsa
-0.0787542 0.0060030 -13.119 1.21e-05 ***
csa
-0.0038095 0.0003174 -12.001 2.03e-05 ***
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for quasibinomial family taken to be 0.0001007740)
各個人の選択を説明する場合
Rにより,個人ごとのデータを作成
nb <- c(39,11,16,22,31,15,21,25,50)
nc <- c(104,28,51,61,94,63,62,73,155)
nn <- nb + nc
nnf <-numeric(length=10)
for (i in 1:9){
nnf[i+1]=nnf[i]+nn[i]
}
chc <- numeric(length=nnf[10]-1)
tim <- numeric(length=nnf[10]-1)
cst <- numeric(length=nnf[10]-1)
for (i in 1:9){
chc[nnf[i]:(nnf[i]+nn[i]-1)] <- c(rep(1,nb[i]), rep(0,nc[i]))
tim[nnf[i]:(nnf[i]+nn[i]-1)] <- rep((tb[i]-tc[i]),nn[i])
cst[nnf[i]:(nnf[i]+nn[i]-1)] <- rep((cb[i]-cc[i]),nn[i])
各個人の選択を説明する場合
ans3 <- glm(chc ~ tim+cst, family=binomial(link="logit"))
summary(ans3)
Call:
glm(formula = chc ~ tim + cst, family = binomial(link = "logit"))
Deviance Residuals:
Min
1Q Median
3Q
Max
-0.8215 -0.7630 -0.7470 -0.1019 1.8016
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.385889 0.507795 -0.760 0.447
tim
-0.079514 0.061803 -1.287 0.198
cst
-0.003873 0.003465 -1.118 0.264
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 1034.7 on 919 degrees of freedom
Residual deviance: 1032.4 on 917 degrees of freedom
AIC: 1038.4
Number of Fisher Scoring iterations: 4
理論的補足
ランダム項がある場合の選択
ランダム項の確率分布の仮定

集団全体における各自の効用の誤差εの頻度分
布を連続的な確率密度関数で表現
選択率の導出
選択率の導出(図解)
ε2
V1-V2+ε1
V1-V2
(>0)
ε1
V1-V2(<0)の場合
ε2
ε1
選択肢1が選ばれる確率
Prob(U1>U2)
=Prob(V1+ε1>V2+ε2)
=Prob(ε2<V1-V2+ε1)
誤差項をどのような分布で考えるか?
(まんじゅうのふくらみ方)
釣鐘(つりがね)まんじゅうを,
中央からずれた位置で包丁
で切る
右下の方の切れ端の体積
が選択率を表わす.
具体的なランダム効用モデル

ロジット(LOGIT)モデル
 各選択肢の誤差項が独立で同一の
Gumbel分布に従う
F ( x)  Prob(  x)  exp exp(x)
f ( x)  F ' ( x)   exp(x) F ( x)
と仮定したモデル
 第k選択肢の選択確率は,
Pi  exp(Vi ) /  exp(Vk )
k

η:誤差項の分散に
反比例するパラメータ
プロビット(PROBIT)モデル
 誤差項が多変量正規分布に従うと仮定したモデル
 選択確率を解析的に表示することができない
 モンテカルロシミュレーションなどを用い近似値を計算
非集計データによる
ロジットモデルのパラメータ推定
尤度関数
尤度関数の値を最大にするようにβを定める
パラメータ推定(2)
ニュートン・ラプソン法
最尤法の計算例
通勤に2 種類の交通手段(1:バ
ス、2:鉄道) があり、10 人の両交
通機関での所要時間を調べたと
ころ、表のようであった。
ロジットモデルを適用して、所要
時間のパラメータとバスの選択し
定数項のパラメータを計算せよ。
さらに、バス専用レーンの設置に
より、全てのサンプルのパス所要
時間が1 分短縮された場合に、
バス選択確率がどのように変化
するかを推測せよ。
サンプル 選択 所要時間
番号
バス バス 鉄道
1
0
22
22
2
0
24
20
3
0
23
19
4
0
21
20
5
0
22
20
6
0
24
21
7
1
21
20
8
1
20
20
9
1
23
25
10
1
20
23
合計→
4
22
21
時間差
Z1-Z2
0
4
4
1
2
3
1
0
-2
-3
←平均
Rによる計算
use <- c(0,0,0,0,0,0,1,1,1,1)
tbus <- c(22,24,23,21,22,24,21,20,23,20)
trail <- c(22,20,19,20,20,21,20,20,25,23)
tdiff <- tbus - trail
ans4 <- glm(use ~ tdiff, family=binomial(link="logit"))
summary(ans4)
Rによる計算結果
Call:
glm(formula = use ~ tdiff, family = binomial(link = "logit"))
Deviance Residuals:
Min
1Q Median
3Q
Max
-1.4457 -0.3896 -0.1086 0.2146 1.5412
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.6117
1.1632 0.526 0.599
tdiff
-1.4357
1.0207 -1.406 0.160
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 13.460 on 9 degrees of freedom
Residual deviance: 6.406 on 8 degrees of freedom
AIC: 10.406
Number of Fisher Scoring iterations: 6
尤度関数の数値計算例
alpha/beta
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
alpha/beta
0.5
0.55
0.6
0.65
0.7
0.75
0.8
0.85
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
2.2
2.4
0.0044
0.01169
0.02091
0.02873
0.03337
0.03485
0.03397
0.03163
0.02853
0.02517
0.02184
0.01872
0.00413
0.00378
0.01141
0.01091
0.02099
0.02071
0.0294
0.02964
0.03461
0.03544
0.03651
0.03784
0.03588
0.03754
0.03364
0.03546
0.03052
0.03239
0.02706
0.02887
0.02358
0.02527
0.02028
0.02182
0.00338
0.01022
0.02008
0.02945
0.03585
0.03878
0.03888
0.03704
0.03407
0.03055
0.02688
0.02332
0.00296
0.00252
0.00937
0.00841
0.01913
0.01789
0.02883
0.0278
0.03579
0.03527
0.03929
0.03936
0.03986
0.04044
0.03834
0.03931
0.03555
0.03676
0.03209
0.03342
0.02839
0.02976
0.02474
0.02606
0.0021
0.0074
0.01644
0.0264
0.0343
0.03898
0.04061
0.03993
0.03769
0.03454
0.03095
0.02726
0.00171
0.00136
0.00637
0.00537
0.01484
0.01315
0.02469
0.02273
0.03292
0.03118
0.03815
0.0369
0.04036
0.03968
0.04016
0.04001
0.0383
0.03857
0.03539
0.03597
0.03195
0.03272
0.02831
0.02918
0.00106
0.00443
0.01145
0.02061
0.02914
0.03527
0.03859
0.03947
0.03849
0.03625
0.03325
0.02987
0.00081
0.00359
0.00979
0.0184
0.02687
0.03331
0.03714
0.03856
0.03807
0.03623
0.03353
0.03034
1
1.05
1.1
1.15
1.2
1.25
1.3
1.35
1.4
1.45
1.5
1.55
0.03527
0.03661
0.03773
0.03865
0.03936
0.03989
0.04023
0.04041
0.04044
0.04033
0.04010
0.03976
0.03484
0.03625
0.03745
0.03844
0.03923
0.03982
0.04024
0.04049
0.04058
0.04053
0.04036
0.04006
0.03430
0.03578
0.03705
0.03812
0.03898
0.03965
0.04014
0.04045
0.04061
0.04063
0.04051
0.04027
0.03366
0.03521
0.03655
0.03768
0.03862
0.03936
0.03992
0.04031
0.04054
0.04062
0.04056
0.04038
0.03292
0.03453
0.03594
0.03714
0.03815
0.03896
0.03960
0.04006
0.04036
0.04050
0.04051
0.04040
0.03210
0.03376
0.03522
0.03650
0.03757
0.03846
0.03917
0.03970
0.04007
0.04029
0.04036
0.04031
0.03118
0.03289
0.03442
0.03575
0.03690
0.03785
0.03863
0.03924
0.03968
0.03996
0.04011
0.04012
0.03019
0.03195
0.03353
0.03492
0.03613
0.03715
0.03800
0.03867
0.03918
0.03954
0.03975
0.03983
尤度関数の
数値計算例(ソルバー)
alpha/beta 1.436
0.611735 0.04064
=1/(
(1+EXP(-B$24*0+$A25))*
(1+EXP(-B$24*4+$A25))*
(1+EXP(-B$24*4+$A25))*
(1+EXP(-B$24*1+$A25))*
(1+EXP(-B$24*2+$A25))*
(1+EXP(-B$24*3+$A25))*
(1+EXP(B$24*1-$A25))*
(1+EXP(B$24*0-$A25))*
(1+EXP(B$24*(-2)-$A25))*
(1+EXP(B$24*(-3)-$A25))
)
得られたパラメータを用いた予測
現況再現
α
0.612 β -1.44
V1
V2 P1 P2 予測
-30.97 -31.6 0.65 0.352
-33.84 -28.7 0.01 0.994
-32.41 -27.3 0.01 0.994
-29.54 -28.7 0.30 0.695
-30.97 -28.7 0.09 0.905
-33.84 -30.1 0.02 0.976
-29.54 -28.7 0.30 0.695
-28.10 -28.7 0.65 0.352
-32.41 -35.9 0.97 0.03
-28.10
-33 0.99 0.007
バスを利用するサンプルの予測値
政策実施後
1
0
0
0
0
0
0
1
1
1
4
(レーン設置後)
V1
V2 P1 P2 予測
-29.54 -31.6 0.89 0.114
-32.41 -28.7 0.02 0.976
-30.97 -27.3 0.02 0.976
-28.10 -28.7 0.65 0.352
-29.54 -28.7 0.30 0.695
-32.41 -30.1 0.09 0.905
-28.10 -28.7 0.65 0.352
-26.67 -28.7 0.89 0.114
-30.97 -35.9 0.99 0.007
-26.67
-33 1.00 0.002
バスを利用するサンプルの予測値
1
0
0
1
0
0
1
1
1
1
6
多項ロジットモデル
Multinomial Logit Model
Pi  exp(Vi ) /  exp(Vk )
k
モデル作成の手順
多項ロジットモデル
Multinomial Logit Model
個人によって
全ての選択肢が
利用できない
場合もありうる
Pi  exp(Vi ) /  exp(Vk )
k
推定結果の評価
的中率
モデル上の選択結果と,実際の選択結果との当てはまりを示す指標
多項ロジットモデル用のデータ
(愛媛大学作成:)ehime.csv
SEQ,選択,年齢,保有台数,鉄道可能性,時間,費用,バス可能性,時間,費用,4輪可能性,時間,費用
3869,1,7,5,1,37.2 ,250,1,129.0 ,850,1,25.61,120.61
7447,1,7,5,1,37.2 ,250,1,121.3 ,1174.33,1,25.61,120.61
7924,1,7,5,1,42.1 ,230,1,148.3 ,960,1,29.85,142.34
2460,1,5,5,1,39.0 ,230,1,106.6 ,970,1,37.06,177.84
3800,1,5,5,1,39.0 ,230,1,91.3 ,850,1,37.06,177.84
3347,1,3,5,1,22.0 ,140,1,77.9 ,300,1,9.41,34.04
4143,1,3,5,1,22.0 ,140,1,77.9 ,300,1,9.41,34.04
2529,1,1,5,1,45.0 ,320,1,94.8 ,910,1,34.42,165.4
4985,1,1,5,1,45.0 ,320,1,128.5 ,1050,1,34.42,165.39
6424,1,6,4,1,83.3 ,570,1,179.8 ,1604.61,1,62.26,511.51
7791,1,6,4,1,83.3 ,570,1,172.0 ,1720,1,62.26,511.51
1498,1,5,4,1,43.6 ,650,1,169.3 ,1932.33,1,77.59,400.49
1962,1,5,4,1,54.1 ,609,1,136.0 ,1182.28,1,61.78,313.43
2367,1,5,4,1,120.3 ,1100,1,112.2 ,1449.06,1,60.44,306.36
2369,1,5,4,1,120.3 ,1100,1,112.2 ,1449.06,1,60.44,306.36
3985,1,5,4,1,54.1 ,609,1,134.2 ,1182.28,1,61.78,313.43
4307,1,5,4,1,43.6 ,650,1,183.8 ,2082.33,1,77.59,400.49
4931,1,5,4,1,155.0 ,1100,1,143.1 ,1449.06,1,60.44,306.36
4932,1,5,4,1,155.0 ,1100,1,143.1 ,1449.06,1,60.44,306.36
4701,1,1,4,1,54.7 ,320,1,105.9 ,1020,1,31.65,160.45
5774,1,1,4,1,29.7 ,180,1,67.4 ,450,1,14.63,61.37
6840,1,1,4,1,29.7 ,180,1,97.8 ,450,1,14.63,61.37
7242,1,1,4,1,54.7 ,320,1,98.9 ,882.17,1,31.65,160.45
2368,1,7,3,1,120.3 ,1100,1,112.2 ,1449.06,1,60.44,306.36
3309,1,7,3,1,75.7 ,570,1,167.2 ,1460,1,58.17,497.65
4662,1,7,3,1,18.0 ,140,1,70.4 ,160,1,6.81,20.01
4830,1,7,3,1,35.3 ,296,1,95.3 ,440,1,20.37,92.23
4933,1,7,3,1,155.0 ,1100,1,143.1 ,1449.06,1,60.44,306.36
4980,1,7,3,1,33.7 ,190,1,125.1 ,800,1,22.24,102.38
多項ロジットモデルの最尤法プ
ログラム(愛媛大学作成:)
### Multi Nomial Logit (MNL) estimation program (Original code by EHIME University)
###データファイルの読み込み
Data<-read.csv("ehime.csv",header=T)
hh<-nrow(Data) ##データ数:Data の行数を数える
print(hh)
ch<- 3 ##今回用いる選択肢の数
b0<-c(0, 0, 0, 0, 0, 0)
Srail <- sum(Data[,14]== 1); Sbus <- sum(Data[,14]== 2); Scar <- sum(Data[,14]== 3)
cat("rail:",Srail," bus:",Sbus," car:",Scar,"\n")
## Logit model の対数尤度関数の定義
fr <- function(x) {
LL=0
##効用の計算
rail <- x[1]*Data[, 6]/100 + x[2]*Data[, 7]/100 + x[5]*matrix(1,nrow =hh,ncol=1)
bus <- x[1]*Data[, 9]/100 + x[2]*Data[,10]/100 + x[3]*(Data[, 3]>=6) + x[6]*matrix(1,nrow=hh,ncol=1)
car <- x[1]*Data[,12]/100 + x[2]*Data[,13]/100 + x[4]*(Data[, 4]>=2)
##効用の指数化
Erail <- exp(rail)*Data[, 5]
Ebus <- exp(bus )*Data[, 8]
Ecar <- exp(car )*Data[,11]
PPrail <- Erail/(Erail+Ebus+Ecar)
PPbus <- Ebus /(Erail+Ebus+Ecar)
PPcar <- Ecar /(Erail+Ebus+Ecar)
##選択結果の確率のみを有効化
Prail <- (PPrail!=0)*PPrail + (PPrail==0)
Pbus <- (PPbus !=0)*PPbus + (PPbus ==0)
Pcar <- (PPcar !=0)*PPcar + (PPcar ==0)
##選択結果
Crail <- Data[,14]== 1
多項ロジットモデルの
最尤法による推定結果
rail: 493 bus: 432 car: 708
roh = 0.2432912
rohbar= 0.2398755
$par
[1] -1.7411817 -0.1757195 1.7302273 2.5890795 2.0644240 2.3457336
$value
[1] -1329.232
$counts
function gradient
38 14
$convergence
[1] 0
$message
NULL
$hessian
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] -80.15815 -538.9584 -67.42988 65.52220 27.40143 -114.7780
[2,] -538.95843 -4708.3230 -493.74059 503.37025 123.55640 -800.5406
[3,] -67.42988 -493.7406 -127.96682 31.64655 79.67259 -127.9668
[4,] 65.52220 503.3703 31.64655 -214.17601 136.44173 77.7343
[5,] 27.40143 123.5564 79.67259 136.44173 -293.24442 123.6202
[6,] -114.77804 -800.5406 -127.96682 77.73429 123.62021 -224.7471
[1] -5.857365 -5.520454 12.528884 17.136179 13.928912 10.259022
多項ロジットモデルの
最尤法による推定結果
rail: 493 bus: 432 car: 708
roh = 0.2432912
rohbar= 0.2398755
$par
時間
費用
高齢B
台数C
鉄道
バス
[1] -1.7411817 -0.1757195 1.7302273 2.5890795 2.0644240 2.3457336
[1] -5.857365
-5.520454 12.528884 17.136179 13.928912 10.259022
$value
[1] -1329.232
所要時間は -0.0174[/分],費用は -0.00176[/円]でパラメータ比から得られる時間
評価値は10[円/分]程度と,若干低い
多項ロジットモデル (パッケージ)
Multinomial Logit Model
install.packages("mlogit")
library("mlogit")
Dehime<-read.csv("ehime.csv",header=T)
Ehime <-mlogit.data(Dehime,varying=c(5:13),
shape="wide",choice="choice")
#MNL without constant term
summary(mlogit(choice~time+cost-1,data=Ehime))
#MNL with constant term
summary(mlogit(choice~time+cost,data=Ehime))
多項ロジットモデル(定数項なし)
Multinomial Logit Model
Call:
mlogit(formula = Choice ~ time + cost - 1, data = Ehime)
Frequencies of alternatives:
bus
car rail
0.26454 0.43356 0.30190
Newton-Raphson maximisation
gradient close to zero. May be a solution
5 iterations, 0h:0m:0s
g'(-H)^-1g = 7.47E-31
Coefficients :
Estimate
Std. Error
t-value Pr(>|t|)
time -0.00329405 0.00197725 -1.6660 0.0957185 .
cost -0.00096882 0.00025323 -3.8259 0.0001303 ***
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Log-Likelihood: -1715.7
多項ロジットモデル(定数項あり)
Multinomial Logit Model
Call:
mlogit(formula = Choice ~ time + cost, data = Ehime)
Frequencies of alternatives:
bus
car rail
0.26454 0.43356 0.30190
Newton-Raphson maximisation
gradient close to zero. May be a solution
5 iterations, 0h:0m:0s
g'(-H)^-1g = 9.17E-26
Coefficients :
Estimate
Std. Error
t-value Pr(>|t|)
altcar
-1.07985435 0.14856671 -7.2685 3.635e-13 ***
altrail
-0.95903599 0.11625041 -8.2497 2.220e-16 ***
time
-0.01607098 0.00261456 -6.1467 7.910e-10 ***
cost
-0.00119568 0.00027125 -4.4081 1.043e-05 ***
Log-Likelihood: -1680.5
McFadden R^2: 0.68776
Likelihood ratio test : chisq = 152.13 (p.value=< 2.22e-16
MNLモデルの限界と注意点

青バス・赤バス問題(I.I.A特性)
例:バスと自動車の交通機関選択モデル
 バスも自動車も共に一般化交通費用が等しい
→バス,自動車の選択率は1/2ずつになる
 バスの半数を赤く,半数を青く塗って区別
→青バス,赤バス,自動車の選択率は1/3ずつ
色を変えたらバスのシェアが1/2から2/3に上昇?

各選択肢の確率的効用の間に相関がある場合
には,非現実的な選択率を与える
ネスティッド(入れ子)ロジットモデル
Nested Logit Model (NL)
下位の選択肢のうち
大きいほうを取ったと
きの期待値
ネスティッド(入れ子)ロジットモデル
Nested Logit Model (NL)
下位の選択肢の間
の相関のほうが,上
位の選択肢間の相
関より大きい必要が
ある
ネスティッド(入れ子)ロジットモデル
Nested Logit Model (NL)
•段階推定法:下の階層から順次推定して,ログサ
ム変数値を計算して上位階層を推定する
•階層間でパラメータ値が大きく異なるなど,解釈が困難
•同時推定法:全体の対数尤度関数を作り,全パラメータ
値とスケールパラメータを一気に推定
ネスティッドロジットモデルの最尤
法プログラム(愛媛大学作成:)
### Nested Logit estimation program (Original code by EHIME University)
###データファイルの読み込み
Data<-read.csv(“ehime.csv",header=T)
hh<-nrow(Data) ##データ数:Data の行数を数える
print(hh)
ch<- 3 ##今回用いる選択肢の数
b0<-c(0, 0, 0, 0, 0, 0, 1) ##初期パラメータ値(全て0)
## サンプルにおける各選択肢のシェア
Srail <- sum(Data[,2]==“rail”); Sbus <- sum(Data[,2]==“ bus”); Scar <- sum(Data[,2]==“car”)
cat("rail:",Srail," bus:",Sbus," car:",Scar,"\n")
## Logit model の対数尤度関数の定義
fr <- function(x) {
LL=0
##効用の計算
rail <- x[1]*Data[, 6]/100 + x[2]*Data[, 7]/100 + x[5]*matrix(1,nrow =hh,ncol=1)
bus <- x[1]*Data[, 9]/100 + x[2]*Data[,10]/100 + x[3]*(Data[, 3]>=6) + x[6]*matrix(1,nrow
=hh,ncol=1)
car <- x[1]*Data[,12]/100 + x[2]*Data[,13]/100 + x[4]*(Data[, 4]>=2)
##効用の指数化
Erail <- exp(rail)*Data[, 5]
Ebus <- exp(bus )*Data[, 8]
Ecar <- exp(car )*Data[,11]
NLモデルの計算結果(ehime)
ケースA:rohbar= 0.2652 (最も大きい)
パラメータ:
t 値:
-0.8978 0.01277 1.178 0.5003 0.03899 -0.43394 4.873
-5.62
1.41
8.43 6.39 0.42
-3.40
7.04
時間 費用 高齢B 台数C 鉄道 バス スケール
ケースB:rohbar= 0.2416
パラメータ:
t 値:
-1.327 -0.1613 1.244 2.413 1.877 2.382 1.354
-4.86
-6.01 7.20 14.97 11.86 12.29 9.82
時間 費用 高齢B 台数C 鉄道 バス スケール
ケースC:rohbar= 0.2470
パラメータ:
t 値:
-2.357 -0.1976 2.297 3.008 1.992 2.814 0.5830
-5.69 -4.70 11.29 15.79 9.53 9.81 8.72
時間
費用 高齢B 台数C 鉄道 バス スケール
スケー
ルパラ
メータが
1以上