I am working on estimating an eMDC2 model that incorporates an implicit budget. The goal is to analyze travel time spent on trip purposes based on individuals' socio-economic profiles and I am not considering any outside good in my model estimation.
However, I am getting the following error message: unexpected numeric constant.
Could you please check my code and fix the issue?
My code is as follows:
Code: Select all
# ################################################################# #
#### LOAD LIBRARY AND DEFINE CORE SETTINGS ####
# ################################################################# #
### Clear memory and initialise
rm(list = ls())
library(apollo)
apollo_initialise()
### Set core controls
apollo_control = list(
modelName ="eMDC_without_budget",
modelDescr ="Extended MDC with complementarity and substitution, with unobserved budget and socio-demographics",
indivID ="UserID",
outputDirectory="output"
)
# ################################################################# #
#### LOAD DATA AND APPLY ANY TRANSFORMATIONS ####
# ################################################################# #
database = read.csv("Tokyo_data_apollo.csv")
### Randomly split dataset into estimation (70%) and validation (30%)
set.seed(1)
database$validation <- runif(nrow(database))>0.7
dbVal <- database[ database$validation,] # validation sample
database <- database[!database$validation,] # estimation sample
# ################################################################# #
#### DEFINE MODEL PARAMETERS ####
# ################################################################# #
### Parameters starting values c(name1=value1, name2=value2, ...)
apollo_beta = c(
# Base utility of inside goods
bBusiness_trip = 0,
bWork_trip = 0,
bRestaurant_trip = 0,
bHospital_trip = 0,
bLeisure_trip = 0,
bAltruistic_trip = 0,
bShopping_trip = 0,
bStrolling = 0,
bBusiness_trip_Female = 0,
bBusiness_Age_30_49 = 0,
bBusiness_Age_above_50 = 0,
bBusiness_trip_Mode_choice_car = 0,
bBusiness_trip_Mode_choice_train = 0,
bBusiness_trip_Car_ownership = 0,
bWork_trip_Female = 0,
bWork_Age_30_49 = 0,
bWork_Age_above_50 = 0,
bWork_trip_Mode_choice_car = 0,
bWork_trip_Mode_choice_subway = 0,
bWork_trip_Mode_choice_train = 0,
bRestaurant_trip_Female = 0,
bRestaurant_Housewife_Househusband = 0,
bRestaurant_Car_ownership = 0,
bRestaurant_Unemployed = 0,
bRestaurant_Mode_choice_car = 0,
bHospital_trip_Age_above_50 = 0,
bHospital_trip_Female = 0,
bHospital_trip_Housewife_Househusband = 0,
bLeisure_trip_Female = 0,
bLeisure_trip_Mode_choice_train = 0,
bAltruistic_trip_Female = 0,
bAltruistic_Unemployed = 0,
bAltruistic_Housewife_Househusband = 0,
bAltruistic_Part_time = 0,
bShopping_trip_Female = 0,
bShopping_trip_Housewife_Househusband = 0,
bStrolling_Housewife_Househusband = 0,
bStrolling_Age_above_50 = 0,
bStrolling_Unemployed = 0,
bStrolling_Part_time = 0,
# Satiation
sBusiness_trip = 0,
sWork_trip = 0,
sRestaurant_trip = 0,
sHospital_trip = 0,
sLeisure_trip = 0,
sAltruistic_trip = 0,
sShopping_trip = 0,
sStrolling = 0,
# Complementarity and substitution
dBusWork = 1,
dShopStrol = 0,
dShopRes = 0,
dShopLeis = 0,
dAltHosp = 0,
dAltStrol = 0,
# S.d. of error term
sigma = 1)
### Names of fixed parameters
apollo_fixed = c('dBusWork')
# ################################################################# #
#### GROUP AND VALIDATE INPUTS ####
# ################################################################# #
apollo_inputs = apollo_validateInputs()
# ################################################################# #
#### DEFINE MODEL AND LIKELIHOOD FUNCTION ####
# ################################################################# #
apollo_probabilities=function(apollo_beta, apollo_inputs,
functionality="estimate"){
### Initialise
apollo_attach(apollo_beta, apollo_inputs)
on.exit(apollo_detach(apollo_beta, apollo_inputs))
P = list()
### Prepare Inputs
alts = c("Business_trip", "Work_trip", "Restaurant_trip", "Hospital_trip", "Leisure_trip", "Altruistic_trip", "Shopping_trip", "Strolling")
nAlt = length(alts)
ones = setNames(as.list(rep(1, nAlt)), alts)
continuousChoice = list(Business_trip = Business_trip,
Work_trip = Work_trip,
Restaurant_trip = Restaurant_trip,
Hospital_trip = Hospital_trip,
Leisure_trip = Leisure_trip,
Altruistic_trip = Altruistic_trip,
Shopping_trip = Shopping_trip,
Strolling = Strolling)
utilities = list(
Business_trip = bBusiness_trip + bBusiness_trip_Female*Female + bBusiness_Age_30_49*Age_30_49 + bBusiness_Age_above_50*Age_above_50 +
bBusiness_trip_Mode_choice_car*Mode_choice_car + bBusiness_trip_Mode_choice_train*Mode_choice_train + bBusiness_trip_Car_ownership*Car_ownership ,
Work_trip = bWork_trip + bWork_trip_Female*Female + bWork_Age_30_49*Age_30_49 + bWork_Age_above_50*Age_above_50 +
bWork_trip_Mode_choice_car*Mode_choice_car + bWork_trip_Mode_choice_train*Mode_choice_train + bWork_trip_Mode_choice_subway*Mode_choice_subway,
Restaurant_trip = bRestaurant_trip + bRestaurant_Housewife_Househusband*Housewife_Househusband + bRestaurant_trip_Female*Female + bRestaurant_Car_ownership*Car_ownership +
bRestaurant_Unemployed*Unemployed + bRestaurant_Mode_choice_car*Mode_choice_car,
Hospital_trip = bHospital_trip + bHospital_trip_Age_above_50*Age_above_50 + bHospital_trip_Female*Female + bHospital_trip_Housewife_Househusband*Housewife_Househusband,
Leisure_trip = bLeisure_trip + bLeisure_trip_Female*Female + bLeisure_trip_Mode_choice_train*Mode_choice_train,
Altruistic_trip = bAltruistic_trip + bAltruistic_trip_Female*Female + bAltruistic_Unemployed*Unemployed + bAltruistic_Housewife_Househusband*Housewife_Househusband +
bAltruistic_Part_time*Part_time,
Shopping_trip = bShopping_trip + bShopping_trip_Female*Female + bShopping_trip_Housewife_Househusband*Housewife_Househusband,
Strolling = bStrolling + bStrolling_Housewife_Househusband*Housewife_Househusband + bStrolling_Age_above_50*Age_above_50 + bStrolling_Unemployed*Unemployed +
bStrolling_Part_time*bStrolling_Part_time
)
gamma = list (Business_trip = sBusiness_trip,
Work_trip = sWork_trip,
Restaurant_trip = sRestaurant_trip,
Hospital_trip = sHospital_trip,
Leisure_trip = sLeisure_trip,
Altruistic_trip = sAltruistic_trip,
Shopping_trip = sShopping_trip,
Strolling = sStrolling)
delta <- c (0, 0, 0, 0,
dShopStrol, 0, 0, 0,
dShopRes, dAltStrol, 0, 0,
dShopLeis, dAltHosp, dBusWork 0)
delta <- matrix(delta, nrow=nAlt, ncol=nAlt, byrow=TRUE)
emdc_settings <- list(continuousChoice = continuousChoice,
avail = ones,
utilities = utilities,
gamma = gamma,
delta = delta,
cost = ones,
sigma = sigma)
P[["model"]] = apollo_emdc(emdc_settings, functionality)
### Comment out as necessary
P = apollo_panelProd(P, apollo_inputs, functionality)
P = apollo_prepareProb(P, apollo_inputs, functionality)
return(P)
}
# ################################################################# #
#### MODEL ESTIMATION & OUTPUT ####
# ################################################################# #
model = apollo_estimate(apollo_beta, apollo_fixed,
apollo_probabilities, apollo_inputs)