Cases of dominance

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Cases of dominance

Postby Bouscasse » Mon Nov 17, 2014 9:34 pm

Dear Ngene users and admins,

I am currently working on a stated preference questionnaire (choice experiment) for my PhD. It aims at identifying the modal choice factors with a focus on intercity journeys.

For two exercices of choices, which includes dummies (clock-face scheduling and comfort), I encounter some difficulties since “a valid initial random design could not be generated” due to alternative repetitions and cases of dominance. I think it is due to the dummy which is set to 1 in the status quo with a positive prior. But, I have the feeling (which is surely wrong) that a higher frequency or a smaller travel cost or travel time could be preferred to the status quo. I tried to put very low coefficients for the clock variable but it does not change anything. The only solution I found is to change attribute levels (0%,-25% and -50%). Is there another solution ? The problem is the same for the comfort variable but changing attribute levels does not solve anything...

---2.1 EXERCICE 2 - train users - without pass
---Reference time = 60 for the train, 50 for the car
---Reference cost = 8.5 euros per travel for the car and for the train
---ALT1 = train statu quo (SQ), ALT2=train, ALT3 = VOITURE

Design
;alts = train1SQ*, train2*, car
;rows = 12
;eff = (mnl,D)
;block = 3
;model:
U(train1SQ) = b1[(u,-0.09,-0.06)] * time.ref[60] + b2[(u,0.3,0.8)] * freq.ref[2] +b3[(u,0.63,1.30)] * clockface.ref[1]+b4[(u,-0.9,-0.18)]*cost.ref[8.5]/
U(train2) = b1 * time.piv[-25%,0%,25%] + b2 * freq.piv[-1.5,-1,0,1]+ b3 * clockface.piv[-1,0] + b4 * cost.piv[-25%,0%,25%]/
U(car) = b1 * time[37.5,50,62.5] + b4 * cost.piv[-25%,0%,25%]$


---------------------------------------------------------

Here are more details about the choice experiment caracteristics :


The choice experiment includes 6 attributes which are split into 3 choice "exercises" containing each 4 choice sets. First, respondents are asked to choose between travel time (-25%,0%,+25% for train users and -50%,-25%,0% for car users), cost(-25%,0%,+25%), train frequency (0,5 ; 1 ; or 4 train per hour) and delay (expressed as delay probability : 5% ; 10% ; 20% and delay time : 10 min., 15 min., 30 min.). Second, they are asked to choose between time, cost, frequency and clock-face scheduling (yes or no). Third, they are asked to choose between time, cost and comfort (seat available or not).

The reference attribute levels are personalized. Travel time and travel cost are declared by the respondent during the recruitment step. Train frequency, delay time, delay probability, clock-face scheduling and comfort are unknown for each traveler. The status quo value is thus taken at the level region and is thus the same for all respondents.

For the two first choice exercises, a train user choose between its actual option in train, another option in train and a third option in car and an automobilist choose between its actual option in car and two alternative options in train. For the third choice exercise, all choose between a train, a car and a coach alternative.

I try to perform an efficient design using priors from the literature.

Best regards,

Hélène
Bouscasse
 
Posts: 3
Joined: Mon Nov 03, 2014 1:49 am

Re: Cases of dominance

Postby Michiel Bliemer » Tue Nov 18, 2014 3:54 pm

The problem seems to be in attribute level balance. The default algorithm in Ngene (;alg = swap) ensures that the experimental design is attribute level balanced. However, in your case, combined with the dominancy constraints, Ngene finds it difficult to find a design that is balanced.

To overcome your problem, it is best to use another algorithm, namely the Modified Federov algorithm (;alg = mfederov), which does not ensure attribute level balance, but does guarantee that no dominant alternatives appear in the design. In order to have at least some level of attribute level balance, you can specify lower and upper bounds on the number of times each attribute level appears within the design.

The syntax below seems to work:

Code: Select all
Design
;alts = train1SQ*, train2*, car
;rows = 12
;eff = (mnl,d)
;alg = mfederov
;block = 3
;model:
U(train1SQ) = b1[(u,-0.09,-0.06)] * time.ref[60] + b2[(u,0.3,0.8)] * freq.ref[2] +b3[(u,0.63,1.30)] * clockface.ref[1]+b4[(u,-0.9,-0.18)]*cost.ref[8.5]/
U(train2) = b1 * time.piv[-25%,0%,25%](3-5,3-5,3-5) + b2 * freq.piv[-1.5,-1,0,1](2-4,2-4,2-4,2-4)+ b3 * clockface.piv[-1,0](5-7,5-7) + b4 * cost.piv[-25%,0%,25%](3-5,3-5,3-5)/
U(car) = b1 * time[37.5,50,62.5](3-5,3-5,3-5) + b4 * cost.piv[-25%,0%,25%](3-5,3-5,3-5)$
Michiel Bliemer
 
Posts: 1741
Joined: Tue Mar 31, 2009 4:13 pm

Re: Cases of dominance

Postby Bouscasse » Fri Nov 21, 2014 7:16 am

Dear Michiel,

Thank you very much for you answer !

Hélène
Bouscasse
 
Posts: 3
Joined: Mon Nov 03, 2014 1:49 am

Re: Cases of dominance

Postby Bouscasse » Fri Nov 21, 2014 10:57 pm

Dear Michiel,

To generate coherent designs, I'm trying to adopt a mfederov algorithm in all "exercices". But for the first one, NGENE systematically "crash" without any report of error.
We tried it on two computers (with two different licenses) but the problem remains the same.

Here is the code:
Design
;alts = train1SQ*, train2*, car
;rows = 12
;eff = (mnl,D)
;block = 3
;alg = mfederov
;model:
U(train1SQ)= b1[(u,-0.09,-0.06)]*time.ref[60]+b2[(u,0.18,0.84)]*freq.ref[2]+b3[(u,-0.1,-0.08)]*prob_delay.ref[10] + b4[(u,-0.45,-0.09)] *time_delay.ref[15] +b5[(u,-.9,-0.18)]*cost.ref[8.5]/
U(train2) = b1 * time.piv[-25%,0%,25%](3-5,3-5,3-5) + b2 *freq.piv[-1.5,-1, 0,2](2-4,2-4,2-4,2-4)+ b3*prob_delay.piv[-5,0,10](3-5,3-5,3-5)+ b4 *time_delay.piv[-5,0,15](3-5,3-5,3-5)+b5*cost.piv[-25%,0%,25%](3-5,3-5,3-5)/
U(car) = b1 * time[37.5,50,62.5](3-5,3-5,3-5) + b3*prob_delay.piv[-5,0,10](3-5,3-5,3-5)+ b4 *time_delay.piv[-5,0,15](3-5,3-5,3-5)+b5*cost.piv[-25%,0%,25%](3-5,3-5,3-5)$

Do you have an idea of what is wrong ?

Best regards,

Hélène
Bouscasse
 
Posts: 3
Joined: Mon Nov 03, 2014 1:49 am

Re: Cases of dominance

Postby Michiel Bliemer » Tue Nov 25, 2014 4:44 pm

You have added another attribute and the number of candidates seems to be too large to keep in memory. An easy fix is to limit the number of candidates, such as:
;alg = mfederov(candidates = 1000)

It works on my computer, give it a try.
Michiel Bliemer
 
Posts: 1741
Joined: Tue Mar 31, 2009 4:13 pm


Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 9 guests

cron