Page 1 of 1

Cases of dominance

PostPosted: Mon Nov 17, 2014 9:34 pm
by Bouscasse
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

Re: Cases of dominance

PostPosted: Tue Nov 18, 2014 3:54 pm
by Michiel Bliemer
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)$

Re: Cases of dominance

PostPosted: Fri Nov 21, 2014 7:16 am
by Bouscasse
Dear Michiel,

Thank you very much for you answer !

Hélène

Re: Cases of dominance

PostPosted: Fri Nov 21, 2014 10:57 pm
by Bouscasse
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

Re: Cases of dominance

PostPosted: Tue Nov 25, 2014 4:44 pm
by Michiel Bliemer
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.