Partial profile design for labelled experiment?
Posted: Fri Oct 06, 2023 12:20 am
Dear Prof. Michiel,
Greetings of the day!
Background: I want to generate a design for food delivery riders, where there are provided with two labelled choices for routes (i.e. 1. suggested by platform, 2. Alternative route). There are two objectives: 1) To calulate willingness to pay in terms of extra travel time to avoid certain route characteristics (this could have been achieved with an unlabelled choices also), b) Test nudging strategy where platform pays an additional payment to riders for choosing their suggested route, which is also a safer route (here labelled alternatives are required).
Since the number of attributes are large (8) and since the travel time is usually very important in route choice, respondents might ignore some attributes altogether. To solve this, I have tried to create a design using reject conditions such that respondent only have to compare 4-6 attributes in each choice task, rest attribute levels remain same for both alternatives. The final design seems to have decent error values and looks realistic. My questions are the following:
a) Can this design be called partial profile design given the fact that it is labelled experiment and that there is no candidate set used as such? More importantly is the design correct?
b) Will there be any difference in estimation stage? Does having same values of some attributes for both alternative in each row of sheet have an impact on estimated parameter values?
My Ngene code is the following:
design
;alts = R1,R2
;rows = 24
;eff =(mnl,d)
;block = 6
;alg = mfederov
;reject:
R1.flow = 2 and R2.flow = 1,
R1.flow = 2 and R2.flow = 0,
R1.flow = 1 and R2.flow = 0,
R1.seg = 1 and R2.seg = 0,
R1.seg = 2 and R2.seg = 1,
R1.seg = 2 and R2.seg = 0,
R1.seg = 3 and R2.seg = 2,
R1.seg = 3 and R2.seg = 1,
R1.seg = 3 and R2.seg = 0,
R1.seg = 4 and R2.seg = 3,
R1.seg = 4 and R2.seg = 2,
R1.seg = 4 and R2.seg = 1,
R1.seg = 4 and R2.seg = 0,
R1.traffic = 2 and R2.traffic = 1,
R1.traffic = 2 and R2.traffic = 0,
R1.traffic = 1 and R2.traffic = 0,
R1.time1 = 12 and R2.time2 =12,
R1.time1 = 12 and R2.time2 =15,
R1.time1 = 15 and R2.time2 =15,
R1.exp = 2 and R2.exp = 1,
R1.exp = 2 and R2.exp = 0,
R1.exp = 1 and R2.exp = 0,
R1.miss = 2 and R2.miss = 1,
R1.miss = 2 and R2.miss = 0,
R1.miss = 1 and R2.miss = 0
;model:
U(R1) = bR1[0.5] +
btime[-1.0]*time1[12,15,18,20](3-9,3-9,3-9,3-9) +
b.flow.dummy[-0.3|-0.5]*flow[1,2,0](5-11,5-11,5-11) +
bseg.dummy[-0.3|-0.5|-0.8]*seg[1,2,3,0](3-9,3-9,3-9,3-9) +
btra.dummy[-0.3|-0.5]*traffic[1,2,0](5-11,5-11,5-11) +
bcross [-0.5] * cross1[6,8,10](5-11,5-11,5-11) +
bexp.dummy[-0.3|-0.5]*exp[1,2,0](5-11,5-11,5-11)+
bmiss.dummy[-0.3|-0.5]*miss[1,2,0](5-11,5-11,5-11)+
badd [0.8] *add1[0,0.25,0.5,0.75](5-9,3-8,3-8,3-8) /
U(R2)= btime[-1.0]*time2[7,10,12,15](3-9,3-9,3-9,3-9) +
bflow.dummy[-0.3|-0.5]*flow[1,2,0](5-11,5-11,5-11) +
bseg.dummy[-0.3|-0.5|-0.8]*seg[1,2,3,0](3-9,3-9,3-9,3-9) +
btra.dummy[-0.3|-0.5]*traffic[1,2,0](5-11,5-11,5-11) +
bcross [-0.5] * cross2[10,12,14](5-11,5-11,5-11) +
bexp.dummy[-0.3|-0.5]*exp[1,2,0](5-11,5-11,5-11)+
bmiss.dummy[-0.3|-0.5]*miss[1,2,0](5-11,5-11,5-11)+
badd [0.8] *add2[0]
$
After formatting the choice task looks something like this:
https://docs.google.com/presentation/d/ ... ue&sd=true
Sorry for the long post, but I thought context would help.
Thank you so much for your support,
Kuldeep
Greetings of the day!
Background: I want to generate a design for food delivery riders, where there are provided with two labelled choices for routes (i.e. 1. suggested by platform, 2. Alternative route). There are two objectives: 1) To calulate willingness to pay in terms of extra travel time to avoid certain route characteristics (this could have been achieved with an unlabelled choices also), b) Test nudging strategy where platform pays an additional payment to riders for choosing their suggested route, which is also a safer route (here labelled alternatives are required).
Since the number of attributes are large (8) and since the travel time is usually very important in route choice, respondents might ignore some attributes altogether. To solve this, I have tried to create a design using reject conditions such that respondent only have to compare 4-6 attributes in each choice task, rest attribute levels remain same for both alternatives. The final design seems to have decent error values and looks realistic. My questions are the following:
a) Can this design be called partial profile design given the fact that it is labelled experiment and that there is no candidate set used as such? More importantly is the design correct?
b) Will there be any difference in estimation stage? Does having same values of some attributes for both alternative in each row of sheet have an impact on estimated parameter values?
My Ngene code is the following:
design
;alts = R1,R2
;rows = 24
;eff =(mnl,d)
;block = 6
;alg = mfederov
;reject:
R1.flow = 2 and R2.flow = 1,
R1.flow = 2 and R2.flow = 0,
R1.flow = 1 and R2.flow = 0,
R1.seg = 1 and R2.seg = 0,
R1.seg = 2 and R2.seg = 1,
R1.seg = 2 and R2.seg = 0,
R1.seg = 3 and R2.seg = 2,
R1.seg = 3 and R2.seg = 1,
R1.seg = 3 and R2.seg = 0,
R1.seg = 4 and R2.seg = 3,
R1.seg = 4 and R2.seg = 2,
R1.seg = 4 and R2.seg = 1,
R1.seg = 4 and R2.seg = 0,
R1.traffic = 2 and R2.traffic = 1,
R1.traffic = 2 and R2.traffic = 0,
R1.traffic = 1 and R2.traffic = 0,
R1.time1 = 12 and R2.time2 =12,
R1.time1 = 12 and R2.time2 =15,
R1.time1 = 15 and R2.time2 =15,
R1.exp = 2 and R2.exp = 1,
R1.exp = 2 and R2.exp = 0,
R1.exp = 1 and R2.exp = 0,
R1.miss = 2 and R2.miss = 1,
R1.miss = 2 and R2.miss = 0,
R1.miss = 1 and R2.miss = 0
;model:
U(R1) = bR1[0.5] +
btime[-1.0]*time1[12,15,18,20](3-9,3-9,3-9,3-9) +
b.flow.dummy[-0.3|-0.5]*flow[1,2,0](5-11,5-11,5-11) +
bseg.dummy[-0.3|-0.5|-0.8]*seg[1,2,3,0](3-9,3-9,3-9,3-9) +
btra.dummy[-0.3|-0.5]*traffic[1,2,0](5-11,5-11,5-11) +
bcross [-0.5] * cross1[6,8,10](5-11,5-11,5-11) +
bexp.dummy[-0.3|-0.5]*exp[1,2,0](5-11,5-11,5-11)+
bmiss.dummy[-0.3|-0.5]*miss[1,2,0](5-11,5-11,5-11)+
badd [0.8] *add1[0,0.25,0.5,0.75](5-9,3-8,3-8,3-8) /
U(R2)= btime[-1.0]*time2[7,10,12,15](3-9,3-9,3-9,3-9) +
bflow.dummy[-0.3|-0.5]*flow[1,2,0](5-11,5-11,5-11) +
bseg.dummy[-0.3|-0.5|-0.8]*seg[1,2,3,0](3-9,3-9,3-9,3-9) +
btra.dummy[-0.3|-0.5]*traffic[1,2,0](5-11,5-11,5-11) +
bcross [-0.5] * cross2[10,12,14](5-11,5-11,5-11) +
bexp.dummy[-0.3|-0.5]*exp[1,2,0](5-11,5-11,5-11)+
bmiss.dummy[-0.3|-0.5]*miss[1,2,0](5-11,5-11,5-11)+
badd [0.8] *add2[0]
$
After formatting the choice task looks something like this:
https://docs.google.com/presentation/d/ ... ue&sd=true
Sorry for the long post, but I thought context would help.
Thank you so much for your support,
Kuldeep