25: MTC Private Auto - Motorized Nested Mode Choice
25: MTC Private Auto - Motorized Nested Mode Choice¶
m = larch.example(17)
Model 25’s nesting structure groups motorized and shared ride alternatives. (pp. 182)
Since private auto is completely contained within motorized, we can use the private nest when we define the motorized nest.
private_auto = m.graph.new_node(parameter='mu_private', children=[1,2,3], name='Private_Auto')
motorized = m.graph.new_node(parameter='mu_moto', children=[private_auto,4], name='Motorized')
m.ordering = (
("CostbyInc","costbyincome",),
("TravelTime",".*time.*",".*dist.*", ),
("Household","hhinc.*","vehbywrk.*",),
("Zonal","wkcbd.*","wkempden.*",),
("ASCs","ASC.*",),
)
>>> m.load_data()
>>> m.maximize_loglike(method='bhhh')
┣ ...Optimization terminated successfully...
>>> m.loglike()
-3427.166...
>>> print(m.pfo()[['value']])
value
Category Parameter
CostbyInc costbyincome -0.0363
TravelTime motorized_time -0.0106
nonmotorized_time -0.0471
motorized_ovtbydist -0.0995
Household hhinc#4 -0.0022
hhinc#5 -0.0090
hhinc#6 -0.0061
vehbywrk_BIKE -0.6885
vehbywrk_SR -0.3218
vehbywrk_TRANSIT -0.4628
vehbywrk_WALK -0.7052
Zonal wkcbd_BIKE 0.5003
wkcbd_SR2 0.2753
wkcbd_SR3 1.0253
wkcbd_TRANSIT 0.7310
wkcbd_WALK 0.1416
wkempden_BIKE 0.0014
wkempden_SR2 0.0016
wkempden_SR3 0.0024
wkempden_TRANSIT 0.0019
wkempden_WALK 0.0022
ASCs ASC_BIKE -1.3790
ASC_SR2 -1.6337
ASC_SR3 -3.1469
ASC_TRANSIT -0.4069
ASC_WALK 0.3391
Other mu_moto 0.5322
mu_private 0.9236