R is a programming language for statistical computing and graphics. To install R, required installation files can be found in the following link:
Apollo Choice Modeling framework has been employed in running the mode choice model component. We prepared the R notebooks for all models included in the guidebook.
rm(list = ls())
In first step of data processing in R, we need to call required package
library(apollo)
## Apollo 0.2.8
## http://www.ApolloChoiceModelling.com
## See url for a detailed manual, examples and a user forum.
## Sign up to the user forum to receive updates on new releases.
##
## Your version of Apollo is more than six months old.
## Using the latest version will ensure you have all
## current functionality and bug fixes.
## You can update to the latest version by typing:
## install.packages("apollo")
apollo_initialise()
apollo_control = list(
modelName = "MNL_Mode Choice Model_NMO",
modelDescr = "Simple MNL model on mode choice considering NMO",
indivID = "id",
outputDirectory = "output",
panelData = FALSE
)
database = read.csv("D:/Projects/20-102/Project Task/Task 4/R code/Mode choice data_NMO.csv",header=TRUE)
summary(database)
## id Choice Drive Pasenger
## Min. : 1 Min. :1.000 Min. :0.0000 Min. :0.0000
## 1st Qu.:1251 1st Qu.:2.000 1st Qu.:0.0000 1st Qu.:0.0000
## Median :2500 Median :2.000 Median :1.0000 Median :0.0000
## Mean :2500 Mean :3.093 Mean :0.6166 Mean :0.0528
## 3rd Qu.:3750 3rd Qu.:4.000 3rd Qu.:1.0000 3rd Qu.:0.0000
## Max. :5000 Max. :9.000 Max. :1.0000 Max. :1.0000
## Transit Bike Walk PRKR
## Min. :0.0000 Min. :0.0000 Min. :0.000 Min. :0.000
## 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.000 1st Qu.:0.000
## Median :0.0000 Median :0.0000 Median :0.000 Median :0.000
## Mean :0.1888 Mean :0.0112 Mean :0.042 Mean :0.034
## 3rd Qu.:0.0000 3rd Qu.:0.0000 3rd Qu.:0.000 3rd Qu.:0.000
## Max. :1.0000 Max. :1.0000 Max. :1.000 Max. :1.000
## Other TNC Micro av_Drive
## Min. :0.0000 Min. :0.00 Min. :0.000 Min. :0.000
## 1st Qu.:0.0000 1st Qu.:0.00 1st Qu.:0.000 1st Qu.:1.000
## Median :0.0000 Median :0.00 Median :0.000 Median :1.000
## Mean :0.0026 Mean :0.04 Mean :0.012 Mean :0.865
## 3rd Qu.:0.0000 3rd Qu.:0.00 3rd Qu.:0.000 3rd Qu.:1.000
## Max. :1.0000 Max. :1.00 Max. :1.000 Max. :1.000
## av_Transit av_Bike av_Walk av_Passenger av_PRKR
## Min. :0.000 Min. :0.0000 Min. :0.0000 Min. :1 Min. :1
## 1st Qu.:1.000 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:1 1st Qu.:1
## Median :1.000 Median :1.0000 Median :0.0000 Median :1 Median :1
## Mean :0.992 Mean :0.5688 Mean :0.1916 Mean :1 Mean :1
## 3rd Qu.:1.000 3rd Qu.:1.0000 3rd Qu.:0.0000 3rd Qu.:1 3rd Qu.:1
## Max. :1.000 Max. :1.0000 Max. :1.0000 Max. :1 Max. :1
## av_TNC av_Micro av_Other time_Other time_Drive
## Min. :1 Min. :1 Min. :1 Min. : 0.02167 Min. : 0.01667
## 1st Qu.:1 1st Qu.:1 1st Qu.:1 1st Qu.: 12.79958 1st Qu.: 9.84583
## Median :1 Median :1 Median :1 Median : 21.59083 Median :16.60833
## Mean :1 Mean :1 Mean :1 Mean : 23.53870 Mean :18.10670
## 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1 3rd Qu.: 31.70917 3rd Qu.:24.39167
## Max. :1 Max. :1 Max. :1 Max. :101.76833 Max. :78.28333
## time_Transit time_PRKR time_Bike time_Walk
## Min. : 0.0 Min. : 10.0 Min. : 0.10 Min. : 0.3167
## 1st Qu.: 14.0 1st Qu.: 24.0 1st Qu.: 22.54 1st Qu.: 60.7750
## Median : 29.0 Median : 39.0 Median : 50.33 Median : 134.2083
## Mean : 34.2 Mean : 44.2 Mean : 65.56 Mean : 171.9537
## 3rd Qu.: 48.0 3rd Qu.: 58.0 3rd Qu.: 93.91 3rd Qu.: 245.9250
## Max. :202.7 Max. :212.7 Max. :380.65 Max. :1451.8333
## time_TNC time_Micro cost_Drive cost_Transit
## Min. : 0.01833 Min. : 0.09 Min. : 1.335 Min. :1.280
## 1st Qu.:10.83042 1st Qu.: 20.29 1st Qu.: 2.266 1st Qu.:3.250
## Median :18.26917 Median : 45.29 Median : 3.465 Median :3.250
## Mean :19.91737 Mean : 59.00 Mean : 4.095 Mean :4.468
## 3rd Qu.:26.83083 3rd Qu.: 84.52 3rd Qu.: 5.289 3rd Qu.:6.750
## Max. :86.11167 Max. :342.58 Max. :19.818 Max. :9.750
## cost_PRKR cost_Other cost_TNC cost_Micro
## Min. : 1.428 Min. : 1.934 Min. : 1.735 Min. :1.024
## 1st Qu.: 3.410 1st Qu.: 3.987 1st Qu.: 2.946 1st Qu.:1.704
## Median : 3.953 Median : 5.864 Median : 4.505 Median :2.206
## Mean : 4.878 Mean : 5.994 Mean : 5.323 Mean :2.581
## 3rd Qu.: 6.977 3rd Qu.: 7.441 3rd Qu.: 6.876 3rd Qu.:3.450
## Max. :10.204 Max. :18.598 Max. :25.764 Max. :5.600
## DCBD Male Age20 Age2140
## Min. : 0.1264 Min. :0.0000 Min. :0.0000 Min. :0.0000
## 1st Qu.: 3.4522 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000
## Median : 9.6320 Median :1.0000 Median :0.0000 Median :0.0000
## Mean :12.7275 Mean :0.5278 Mean :0.0342 Mean :0.3782
## 3rd Qu.:17.1038 3rd Qu.:1.0000 3rd Qu.:0.0000 3rd Qu.:1.0000
## Max. :68.9812 Max. :1.0000 Max. :1.0000 Max. :1.0000
## HH_0car HH_2cars HH_1pers MOR_PIK
## Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. :0.00
## 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.00
## Median :0.0000 Median :0.0000 Median :0.0000 Median :1.00
## Mean :0.0836 Mean :0.4278 Mean :0.1028 Mean :0.68
## 3rd Qu.:0.0000 3rd Qu.:1.0000 3rd Qu.:0.0000 3rd Qu.:1.00
## Max. :1.0000 Max. :1.0000 Max. :1.0000 Max. :1.00
## NMO nmo_vo01 nmo_hin
## Min. :0.0 Min. :0.000 Min. :0.000
## 1st Qu.:0.0 1st Qu.:0.000 1st Qu.:0.000
## Median :0.0 Median :0.000 Median :0.000
## Mean :0.2 Mean :0.443 Mean :0.072
## 3rd Qu.:0.0 3rd Qu.:1.000 3rd Qu.:0.000
## Max. :1.0 Max. :1.000 Max. :1.000
table(database$Choice)
##
## 1 2 3 4 5 6 7 8 9
## 13 3083 264 944 210 56 170 200 60
Here, Choice = Mode alternatives, Drive = Drive mode, Passenger = Passenger mode, Transit = Transit mode, Walk = Walk mode, Bike = Bike mode, PRKR = Park and Ride mode, Other = Other mode, TNC = TNC mode, Micro = Shared-micromobility mode, av_Drive = Availability of drive mode, av_Passenger = Availability of Passenger mode, av_Transit = Availability of Transit mode, av_Walk = Availability of Walk mode, av_Bike = Availability of Bike mode, av_PRKR = Availability of Park and Ride mode, av_TNC = Availability of TNC mode, av_Micro = Availability of Shared-micromobility mode, av_Other = Availability of Other mode, time_Other = Travel time of Other mode, time_Drive = Travel time of Drive mode, time_Transit = Travel time of Transit mode, time_PRKR = Travel time of Park and Ride mode, time_Bike = Travel time of Bike mode, time_Walk = Travel time of Walk mode, time_TNC = Travel time of TNC mode, time_Micro = Travel time of Shared-micromobility mode, cost_Drive = Travel cost of Drive mode, cost_Transit = Travel cost of Transit mode, cost_PRKR = Travel cost of Park and Ride mode, cost_Other = Travel cost of Other mode, cost_TNC = Travel cost of TNC mode, cost_Micro = Travel cost of Shared-micromobility mode, DCBD = Destination distance from CBD, Male = Male, Age 20 = Age <= 20, Age2140 = Age 21-40, HH_1pers = One person HH, HH_0car = Zero car HH, HH_2cars = HH with two cars, MOR_PIK = Morning peak, NMO = NMO availability, nmo_vo01 = NMO availability* HH car ≤ 1, nmo_hin = NMO availability* High income HH
Include fixed parameters in estimation process. Vector with names (in quotes) of parameters to be kept fixed at their starting value in apollo_beta, use apollo_beta_fixed = c() if none
apollo_beta=c(asc_Other = 0,
asc_Drive = 0,
asc_Passenger = 0,
asc_Transit = 0,
asc_Walk = 0,
asc_Bike = 0,
asc_PRKR = 0,
asc_TNC = 0,
asc_Micro = 0,
b_tt = 0,
b_cost = 0,
b_DCBD_Drive = 0,
b_DCBD_Passenger = 0,
b_male_Drive = 0,
b_male_Passenger = 0,
b_male_Bike = 0,
b_male_TNC = 0,
b_male_Micro = 0,
b_Age20_Bike = 0,
b_Age20_PRKR = 0,
b_Age2140_Transit = 0,
b_Age2140_Walk = 0,
b_HH1pers_Passenger = 0,
b_HH0car = 0,
b_HH0car_TNC = 0,
b_HH2cars_Drive = 0,
b_Morpik = 0,
b_Morpik_PRKR = 0,
b_NMO = 0,
b_NMOvo01 = 0,
b_NMOhi_TNC = 0)
apollo_fixed = c("asc_Other")
apollo_inputs = apollo_validateInputs()
## All checks on apollo_control completed.
## All checks on database completed.
# DEFINE MODEL AND LIKELIHOOD FUNCTION
apollo_probabilities=function(apollo_beta, apollo_inputs, functionality="estimate"){
# Attach inputs and detach after function exit
apollo_attach(apollo_beta, apollo_inputs)
on.exit(apollo_detach(apollo_beta, apollo_inputs))
# Create list of probabilities P
P = list()
# List of utilities: these must use the same names as in mnl_settings, order is irrelevant
V = list()
V[["Other"]] = asc_Other + b_tt * time_Other + b_cost * cost_Other
V[["Drive"]] = asc_Drive + b_tt * time_Drive + b_cost * cost_Drive + b_DCBD_Drive * DCBD + b_male_Drive * Male + b_HH2cars_Drive * HH_2cars
V[["Passenger"]] = asc_Passenger + b_tt * time_Drive + b_DCBD_Passenger * DCBD + b_male_Passenger * Male + b_HH1pers_Passenger * HH_1pers
V[["Transit"]] = asc_Transit + b_tt * time_Transit + b_cost * cost_Transit + b_Age2140_Transit * Age2140 + b_HH0car * HH_0car + b_Morpik * MOR_PIK
V[["Walk"]] = asc_Walk + b_tt * time_Walk + b_Age2140_Walk * Age2140 + b_HH0car * HH_0car
V[["Bike"]] = asc_Bike + b_tt * time_Bike + b_male_Bike * Male + b_Age20_Bike * Age20 + b_HH0car * HH_0car
V[["PRKR"]] = asc_PRKR + b_tt * time_PRKR + b_cost * cost_PRKR + b_Age20_PRKR * Age20 + b_Morpik_PRKR * MOR_PIK
V[["TNC"]] = asc_TNC + b_tt * time_TNC + b_cost * cost_TNC + b_male_TNC * Male + b_HH0car_TNC * HH_0car + b_Morpik * MOR_PIK + b_NMO * NMO + b_NMOvo01 * nmo_vo01 + b_NMOhi_TNC * nmo_hin
V[["Micro"]] = asc_Micro + b_tt * time_Micro + b_cost * cost_Micro + b_male_Micro * Male + b_NMO * NMO + b_NMOvo01 * nmo_vo01
### Define settings for MNL model component
mnl_settings = list(
alternatives = c(Other=1, Drive=2, Passenger=3, Transit=4,Walk=5, Bike=6, PRKR=7, TNC=8,Micro=9),
avail = list(Other=av_Other, Drive=av_Drive, Passenger=av_Passenger, Transit=av_Transit, Walk=av_Walk,
Bike=av_Bike, PRKR=av_PRKR, TNC=av_TNC, Micro=av_Micro),
choiceVar = Choice,
utilities = V
)
# Compute probabilities using MNL model
P[["model"]] = apollo_mnl(mnl_settings, functionality)
# Prepare and return outputs of function
P = apollo_prepareProb(P, apollo_inputs, functionality)
return(P)
nrow(p)
}
model = apollo_estimate(apollo_beta, apollo_fixed, apollo_probabilities, apollo_inputs)
## Preparing user-defined functions.
##
## Testing likelihood function...
##
## Overview of choices for MNL model component :
## Other Drive Passenger Transit Walk
## Times available 5000.00 4325.00 5000.00 4960.00 958.00
## Times chosen 13.00 3083.00 264.00 944.00 210.00
## Percentage chosen overall 0.26 61.66 5.28 18.88 4.20
## Percentage chosen when available 0.26 71.28 5.28 19.03 21.92
## Bike PRKR TNC Micro
## Times available 2844.00 5000.0 5000 5000.0
## Times chosen 56.00 170.0 200 60.0
## Percentage chosen overall 1.12 3.4 4 1.2
## Percentage chosen when available 1.97 3.4 4 1.2
##
## Pre-processing likelihood function...
##
## Testing influence of parameters
## Starting main estimation
## Initial function value: -10127.64
## Initial gradient value:
## asc_Drive asc_Passenger asc_Transit asc_Walk
## 2515.168651 -398.825397 287.329365 100.162698
## asc_Bike asc_PRKR asc_TNC asc_Micro
## -295.533730 -492.825397 -462.825397 -602.825397
## b_tt b_cost b_DCBD_Drive b_DCBD_Passenger
## -53652.015240 -423.924610 41809.095358 -5105.797077
## b_male_Drive b_male_Passenger b_male_Bike b_male_TNC
## 1449.430556 -265.789683 -127.902778 -243.789683
## b_male_Micro b_Age20_Bike b_Age20_PRKR b_Age2140_Transit
## -319.789683 -16.545635 -21.075397 167.549603
## b_Age2140_Walk b_HH1pers_Passenger b_HH0car b_HH0car_TNC
## 51.972222 -59.224206 235.660714 -48.466270
## b_HH2cars_Drive b_Morpik b_Morpik_PRKR b_NMO
## 1401.539683 -89.152778 -306.490079 -7.738095
## b_NMOvo01 b_NMOhi_TNC
## -373.103175 131.295635
## initial value 10127.635998
## iter 2 value 7194.665183
## iter 3 value 6502.392983
## iter 4 value 6369.960848
## iter 5 value 6069.720590
## iter 6 value 5459.548973
## iter 7 value 5028.178719
## iter 8 value 4761.994234
## iter 9 value 4444.481173
## iter 10 value 4371.965817
## iter 11 value 4327.340712
## iter 12 value 4292.084229
## iter 13 value 4268.552399
## iter 14 value 4199.313859
## iter 15 value 4070.599240
## iter 16 value 3971.030589
## iter 17 value 3941.005077
## iter 18 value 3915.329490
## iter 19 value 3891.407949
## iter 20 value 3873.237412
## iter 21 value 3844.732540
## iter 22 value 3822.810829
## iter 23 value 3809.619071
## iter 24 value 3788.730165
## iter 25 value 3766.482352
## iter 26 value 3747.232326
## iter 27 value 3732.557637
## iter 28 value 3730.994814
## iter 29 value 3728.819912
## iter 30 value 3727.772645
## iter 31 value 3719.147990
## iter 32 value 3712.693816
## iter 33 value 3710.724645
## iter 34 value 3708.096724
## iter 35 value 3706.196381
## iter 36 value 3705.540218
## iter 37 value 3704.467623
## iter 38 value 3703.275935
## iter 39 value 3702.822423
## iter 40 value 3702.414034
## iter 41 value 3702.190480
## iter 42 value 3702.115833
## iter 43 value 3702.099678
## iter 44 value 3702.096565
## iter 45 value 3702.096192
## iter 45 value 3702.096144
## iter 45 value 3702.096144
## final value 3702.096144
## converged
## Additional convergence test using scaled estimation. Parameters will be
## scaled by their current estimates and additional iterations will be
## performed.
## initial value 3702.096144
## iter 1 value 3702.096144
## final value 3702.096144
## converged
## Estimated parameters:
## Estimate
## asc_Other 0.00000
## asc_Drive 3.66382
## asc_Passenger 0.56495
## asc_Transit 3.47700
## asc_Walk 3.74440
## asc_Bike 0.23731
## asc_PRKR 2.28119
## asc_TNC -4.99355
## asc_Micro -3.60408
## b_tt -0.05382
## b_cost -0.36184
## b_DCBD_Drive 0.07584
## b_DCBD_Passenger 0.04221
## b_male_Drive 0.21605
## b_male_Passenger -1.14400
## b_male_Bike 1.26909
## b_male_TNC 0.78985
## b_male_Micro 0.68135
## b_Age20_Bike -1.91858
## b_Age20_PRKR -2.03812
## b_Age2140_Transit 0.31370
## b_Age2140_Walk 0.46040
## b_HH1pers_Passenger -1.20390
## b_HH0car 1.21636
## b_HH0car_TNC -0.90714
## b_HH2cars_Drive 0.75762
## b_Morpik 0.24520
## b_Morpik_PRKR 0.93532
## b_NMO 5.63650
## b_NMOvo01 1.58724
## b_NMOhi_TNC 3.78482
##
## Final LL: -3702.0961
##
## Calculating log-likelihood at equal shares (LL(0)) for applicable
## models...
## Calculating log-likelihood at observed shares from estimation data
## (LL(c)) for applicable models...
## Calculating LL of each model component...
## Calculating other model fit measures
## Computing covariance matrix using analytical gradient.
## 0%....25%....50%....75%...100%
## Negative definite Hessian with maximum eigenvalue: -0.569701
## Computing score matrix...
apollo_modelOutput(model)
## Model run by Surface using Apollo 0.2.8 on R 4.1.3 for Windows.
## www.ApolloChoiceModelling.com
##
## Model name : MNL_Mode Choice Model_NMO
## Model description : Simple MNL model on mode choice considering NMO
## Model run at : 2023-11-20 12:41:29
## Estimation method : bfgs
## Model diagnosis : successful convergence
## Number of individuals : 5000
## Number of rows in database : 5000
## Number of modelled outcomes : 5000
##
## Number of cores used : 1
## Model without mixing
##
## LL(start) : -10127.64
## LL at equal shares, LL(0) : -10127.64
## LL at observed shares, LL(C) : -5215.96
## LL(final) : -3702.1
## Rho-squared vs equal shares : 0.6345
## Adj.Rho-squared vs equal shares : 0.6315
## Rho-squared vs observed shares : 0.2902
## Adj.Rho-squared vs observed shares : 0.2845
## AIC : 7464.19
## BIC : 7659.71
##
## Estimated parameters : 30
## Time taken (hh:mm:ss) : 00:00:14.86
## pre-estimation : 00:00:2.92
## estimation : 00:00:2.82
## post-estimation : 00:00:9.13
## Iterations : 48
## Min abs eigenvalue of Hessian : 0.569701
##
## Unconstrained optimisation.
##
## These outputs have had the scaling used in estimation applied to them.
## Estimates:
## Estimate s.e. t.rat.(0) Rob.s.e.
## asc_Other 0.00000 NA NA NA
## asc_Drive 3.66382 0.289546 12.6537 0.282744
## asc_Passenger 0.56495 0.318100 1.7760 0.323617
## asc_Transit 3.47700 0.292264 11.8968 0.287899
## asc_Walk 3.74440 0.309656 12.0921 0.319224
## asc_Bike 0.23731 0.383379 0.6190 0.385603
## asc_PRKR 2.28119 0.348279 6.5499 0.348095
## asc_TNC -4.99355 0.823483 -6.0639 0.845797
## asc_Micro -3.60408 0.809226 -4.4537 0.851793
## b_tt -0.05382 0.003139 -17.1442 0.004950
## b_cost -0.36184 0.017275 -20.9452 0.018879
## b_DCBD_Drive 0.07584 0.005421 13.9904 0.006871
## b_DCBD_Passenger 0.04221 0.007660 5.5106 0.009207
## b_male_Drive 0.21605 0.089431 2.4158 0.082298
## b_male_Passenger -1.14400 0.160155 -7.1430 0.175948
## b_male_Bike 1.26909 0.303865 4.1765 0.303260
## b_male_TNC 0.78985 0.225839 3.4974 0.235021
## b_male_Micro 0.68135 0.292525 2.3292 0.308707
## b_Age20_Bike -1.91858 1.021390 -1.8784 1.017471
## b_Age20_PRKR -2.03812 1.013756 -2.0105 1.025783
## b_Age2140_Transit 0.31370 0.091763 3.4186 0.082970
## b_Age2140_Walk 0.46040 0.183569 2.5080 0.178276
## b_HH1pers_Passenger -1.20390 0.353137 -3.4092 0.351941
## b_HH0car 1.21636 0.181317 6.7084 0.168671
## b_HH0car_TNC -0.90714 0.447506 -2.0271 0.420983
## b_HH2cars_Drive 0.75762 0.081652 9.2787 0.077587
## b_Morpik 0.24520 0.095292 2.5731 0.087227
## b_Morpik_PRKR 0.93532 0.225563 4.1466 0.227532
## b_NMO 5.63650 0.719874 7.8298 0.724803
## b_NMOvo01 1.58724 0.219102 7.2443 0.263080
## b_NMOhi_TNC 3.78482 0.264426 14.3134 0.306941
## Rob.t.rat.(0)
## asc_Other NA
## asc_Drive 12.9581
## asc_Passenger 1.7457
## asc_Transit 12.0771
## asc_Walk 11.7297
## asc_Bike 0.6154
## asc_PRKR 6.5534
## asc_TNC -5.9040
## asc_Micro -4.2312
## b_tt -10.8733
## b_cost -19.1664
## b_DCBD_Drive 11.0375
## b_DCBD_Passenger 4.5848
## b_male_Drive 2.6252
## b_male_Passenger -6.5019
## b_male_Bike 4.1848
## b_male_TNC 3.3608
## b_male_Micro 2.2071
## b_Age20_Bike -1.8856
## b_Age20_PRKR -1.9869
## b_Age2140_Transit 3.7809
## b_Age2140_Walk 2.5825
## b_HH1pers_Passenger -3.4208
## b_HH0car 7.2114
## b_HH0car_TNC -2.1548
## b_HH2cars_Drive 9.7647
## b_Morpik 2.8110
## b_Morpik_PRKR 4.1107
## b_NMO 7.7766
## b_NMOvo01 6.0333
## b_NMOhi_TNC 12.3308
Here, asc_Other = Alternative specific constant for Other mode, asc_Drive = Alternative specific constant for Drive mode, asc_Passenger = Alternative specific constant Passenger mode, asc_Transit = Alternative specific constant for Transit mode, asc_Walk = Alternative specific constant for Wlak mode, asc_Bike = Alternative specific constant for Bike mode, asc_PRKR = Alternative specific constant for Park and Ride mode, asc_TNC = Alternative specific constant for TNC mode, asc_Micro = Alternative specific constant for Shared-micromobility mode, b_tt = Coefficient for travel time, b_cost = Coefficient for travel cost, b_DCBD_Drive = Coefficient for destination distance from CBD (Drive mode), b_DCBD_Passenger = Coefficient for destination distance from CBD (Passenger mode), b_male_Drive = Coefficient for male (Drive mode), b_male_Passenger = Coefficient for male (Passenger mode), b_male_Bike = Coefficient for male (Bike mode), b_male_TNC = Coefficient for male (TNC mode), b_male_Micro = Coefficient for male (Shared-micromobility mode), b_Age20_Bike = Coefficient for Age <= 20 (Bike mode), b_Age20_PRKR = Coefficient for Age <= 20 (Park and Ride mode), b_Age2140_Transit = Coefficient for Age 21-40 (Transit mode), b_Age2140_Walk = Coefficient for Age 21-40 (Walk mode), b_HH1pers_Passenger = Coefficient for HH with 1 person (Passenger mode), b_HH0car = Coefficient for HH with zero car (transit, Walk and Bike mode), b_HH0car_TNC = Coefficient for HH with zero car (TNC mode), b_HH2cars_Drive = Coefficient for HH with two cars (Drive mode), b_Morpik = Coefficient for Morning peak (Transit and TNC mode), b_Morpik_PRKR = Coefficient for Morning peak (Park and Ride mode), b_NMO = Coefficient for NMO availability (TNC and Shared-micromobility mode), b_NMOvo01 = Coefficient for NMO availability* HH car ≤ 1 (TNC and Shared-micromobility mode), b_NMOhi_TNC = Coefficient for NMO availability* High income HH (TNC mode)