Partial profile design for labelled experiment?

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Partial profile design for labelled experiment?

Postby kkavta » 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
kkavta
 
Posts: 4
Joined: Mon Sep 11, 2023 6:28 pm

Re: Partial profile design for labelled experiment?

Postby Michiel Bliemer » Mon Oct 09, 2023 7:01 am

It would be called an explicit partial profile design or an overlap design if a given number of attributes have overlapping levels in each choice task. This given number is usually fixed across choice tasks.

Looking at your reject constraints, you do not allow R1.flow = 2 and R2.flow = 0, but you do allow R1.flow = 0 and R2.flow = 2, which is somewhat odd. With your constraints, you mainly rule out several combinations of attribute levels, but it does not really consistently impose overlapping attribute levels. Creating a candidate set in which you have 3 out of 8 attributes overlapping would be preferred. What you could do is let Ngene generate a large number (e.g., 50,000) of random choice tasks, and copy them into Excel. Then in Excel you determine the overlap for each choice task and you only keep the ones with exactly 3 attributes overlapping.

You could also use this spreadsheet that I created: https://www.dropbox.com/scl/fi/ly03e0kzvwg2i2flcl867/Partial-profile-candidate-set-generator.xlsx?rlkey=1mrp3q1yjgi4tewwh8rp4qwyn&dl=0

To answer your second question, there is no difference in the code that you use for model estimation, but your standard errors will be larger because there are less trade-offs in your data when some attributes is overlapping. This means that you need a large sample size to achieve the same standard errors in model estimation.

Michiel
Michiel Bliemer
 
Posts: 1885
Joined: Tue Mar 31, 2009 4:13 pm


Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 40 guests