Labelled CE with alternative specific attributes

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Labelled CE with alternative specific attributes

Postby LaureK » Wed Mar 18, 2020 3:59 am

Dear all,

Many thanks for providing the possibility to post questions on this forum.

I am currently preparing a Dz-efficient design for the pilot study of a labelled choice experiment and will then generate a Bayesian Efficient design for the actual survey based on the priors obtained in the pilot.

Each choice card will present 3 labelled alternatives + an opt-out option.
I have the following attributes:
- 4 alternative specific attributes that appear in 2 alternatives (attributes A, C, D and E)
- 1 generic attribute that appears in all 3 alternatives (attribute F = the cost attribute)
- 1 alternative specific attribute that appears in only 1 of the alternatives (attribute B in alternative 2)

I am also interested in the interactions between attribute A and attributes C, D and E.
My NGene syntax (for the pilot study) so far is:

Code: Select all
;alts = alt1, alt2, alt3, alt 4
;rows = 36
;block = 6
;eff = (mnl,d)

if(alt2.C = 0 and alt2.D = 0, alt2.E > 0),
if(alt3.C = 0 and alt3.D = 0, alt3.E > 0),
if(alt2.A >= alt1.A, alt2.F > alt1.F)


U(alt1) = b0 + b1.dummy[0|0]*A[3,2,1]+ b2*F[1,2,3,4,5,6] /

U(alt2) = b3 + b1*A[3,2,1]+ b4*B[1,2,3,4,5,6]+ b5.dummy[0|0]*C[2,1,0] + b6.dummy[0|0]*D[2,1,0] + b7.dummy[0|0]*E[2,1,0] + b2*F[1,2,3,4,5,6]
          + b9*A.dummy[3]*C.dummy[2] + b10*A.dummy[3]*C.dummy[1] + b11*A.dummy[2]*C.dummy[2] + b20*A.dummy[2]*C.dummy[1]
          + b12*A.dummy[3]*D.dummy[2] + b13*A.dummy[3]*D.dummy[1] + b14*A.dummy[2]*D.dummy[2] + b15*A.dummy[2]*D.dummy[1]
          + b16*A.dummy[3]*E.dummy[2] + b17*A.dummy[3]*E.dummy[1] + b18*A.dummy[2]*E.dummy[2] + b19*A.dummy[2]*E.dummy[1] /

U(alt3) = b8 + b5*C[2,1,0] + b6*D[2,1,0] + b7*E[2,1,0] + b2*F[1,2,3,4,5,6]

My questions are the following:
1- I am worried that the alternative specific constant for alternative 2, which will capture the effect of the label, might be correlated with attribute B since it is only defined in alt2, so that I would not be able to distinguish the effect of the label from the effect of attribute B. Can this be an issue?
2- If I use the condition if(alt2.A >= Alt1.A, Alt2.F > Alt1.F), is there a risk that I introduce a correlation between attribute A and attribute F?
3- I am unsure about what the size of the design should be in the presence of alternative specific attributes. Can I use a smaller number of rows (e.g. 18 in 3 blocks of 6)?
4- Initially the number of invalid designs is low but after some time (30 minutes), it reaches about 10,000 (of 75,000 evaluations). Is this a sign that something is wrong with the design?

Many thanks for your help,
Posts: 2
Joined: Fri Feb 07, 2020 3:15 am

Re: Labelled CE with alternative specific attributes

Postby Michiel Bliemer » Wed Mar 18, 2020 1:16 pm

1. If Ngene produces a finite D-error (i.e., not Inf or NaN), then all parameters are identifiable and the model CAN be estimated. Constants will only be correlated if B would have a specific level. This is not the case, B has different levels across different choice tasks and therefore there is no perfect correlation and there is no issue.

2. You introduce correlations through conditions, but as long as you do not introduce PERFECT correlation it is fine. You do not have to avoid correlations. An example of a perfect correlation would be requiring something like alt1.A = alt1.F. You do not have perfect correlations and you can estimate all parameters.

3. Yes you can use 18 rows with 3 blocks, you can try it in Ngene. Ngene would tell you if the number of rows was not enough. If you try ;rows = 8 it will tell you that you need at least 9 rows. However, that is a minimum and given that you are trying to estimate 25 parameters, it is always a good idea to use more rows. You could use 18, but I would probably feel more comfortable with 36 rows in 6 blocks (6 versions of the survey with 6 choice tasks each). There are no hard hardlines, but the more choice tasks you have in your design, the more variation in your data and the more parameters you will be able to estimate. Having said that, it is generally not necessary to use a very large number of rows.

4. No, this has more something to do with the algorithms in Ngene. Each algorithm in Ngene uses some randomisation and at it may happen that certain combinations of attribute levels create perfect correlations in the data and then some of the parameters cannot be estimated (in your case, this will likely happen in some of the interaction effects, since these are more sensitive to correlations). These are discarded (invalid designs), meaning that they have an infinite D-error. But the algorithm will continue searching. As long as there are valid designs being generated you can ignore invalid designs.

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

Re: Labelled CE with alternative specific attributes

Postby LaureK » Wed Mar 18, 2020 8:22 pm

Dear Michiel,
Many thanks for your response, this is very helpful.
Kind regards,
Posts: 2
Joined: Fri Feb 07, 2020 3:15 am

Re: Labelled CE with alternative specific attributes

Postby jamalm » Tue Aug 04, 2020 9:11 am

Dear all,

This is my first time using Ngene to design a DCE survey (SAS was my previous go-to software). Similar to Laure and following the Ngene manual, I am developing a design for the pilot study of a labeled CE using priors from the literature (and some just guesses) to ultimately design a Bayesian Efficient design. As of now, I have 4 attributes with 4, 2, 4, 40 levels. The attribute with 40 levels, TC, is a combination of three attributes that they all vary together (e.g., down payment for an investment, first 5 year's monthly payment, and second 5 year's monthly payment). Each choice set has two alternatives and a status quo (opt-out) option. My Ngene syntax for the pilot study as of now is what follows:

Code: Select all
;alts = Green, Yellow, Default
;rows = 80
? In total 80 choice sets are blocked in 20 blocks of each 4 choice sets. So every respondent will answer 4 choice sets.
;eff = (mnl, d)
?;eff = (mnl, wtp(wtp1))
;alg = mfederov(candidates=15000000)

Yellow.S> 1 ,
Yellow.TC<37 ,
Green.TC>36 and Green.TC<40


U(Yellow) =
            b2[.2]*S[1,2,3,4]   +
            b3 [-.4]* V[1,2]    +
            b4[-.2]* W[1,2,3,4] +

U(Green) =
            b02   +
            b2 *S +
            b3 *V +
            b4 *W +
            b5 *TC 

I have some questions/concerns and I would highly appreciate your feedback:
1- Is it okay to have an attribute with 40 levels or should I break it down into its 3 perfectly correlated attributes in the design?
2- Are 80 rows and 20 blocks too many?
3- Once the design is done, would it be okay to present the TC attribute as three attributes to the respondents?
4- I ran the current syntax for an hour and selected the last iteration of the design as the one. However, when I let Ngene run for more than several hours (>3*10^6 iterations), majority (>30) of the TC attribute levels do not appear in the design. Why does Ngene do it and how can I get around that problem?

Thank you,
Posts: 1
Joined: Sat Aug 01, 2020 6:54 am

Re: Labelled CE with alternative specific attributes

Postby Michiel Bliemer » Tue Aug 04, 2020 10:02 am

1. Including 3 separate attributes into a single attribute only makes sense in my opinion if this single attribute is treated as a categorical variable through dummy or effects coding. But that would mean estimating 39 parameters, and then I do not see the benefit of merging 3 attributes into a single attribute. I think separating the 3 attributes makes most sense, thereby estimating separate parameters for the three attributes. If not all combinations of the three attribute levels make sense, then you can impose constraints using ;require and/or ;reject.

2. The number of rows or blocks should not be an issue.

3. That would be fine, but only if you dummy or effects code TC, see comment 1.

4. Your candidate set is far too large. The modified Federov algorithm only reports back once it is gone once through the whole candidate set. It takes very long for Ngene to replace each choice task with one of the 15 million choice tasks in the candidateset. Using a candidateset larger than 10,000 is generally not needed, so I would use candidates=10000 or a smaller value.

Note that instead of typing values [1, 2, ... , 40], you could also use the shortcut [1:40:1]. But as said above, I think you should separate the three attributes in the utility function.

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

Return to Ngene

Who is online

Users browsing this forum: No registered users and 4 guests