Dominant alternatives

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Dominant alternatives

Postby claudiab » Fri Jun 01, 2018 3:44 pm

Dear all,
I have some questions regarding dominant alternatives and repetitions in an unlabelled design.
I have just posted a question regarding another topic (C-error in WTP efficient designs), so the description of the experimental design might be a little bit redundant (sorry for this).
I have obtained priors from a Pilot study to generate a D-efficient Bayesian design. Specifically, I have divided by two the parameters values (both mean and st errors), and specified the mean values = 0 of the parameters which were statistically insignificant in the MNL model. All the priors are assumed to follow a normal distribution. Here is the syntax:
Code: Select all
Design
;alts = alt1, alt2, nobuy
;rows = 48
;block =12;
;eff=(mnl,d,mean)
;bdraws=gauss(3)
;con
;cond:
if (alt1.INV=[0], alt1.COM=[0]),
if (alt2.INV=[0], alt2.COM=[0]),
if (alt1.COM=[0], alt1.INV=[0]),
if (alt2.COM=[0], alt2.INV=[0])
;model:
U(alt1) = b1[(n,-0.23,0.04)]*PPPRICE[1,2,3,4]         
        + b2.dummy[(n,0.70,0.13)|(n,0.36,0.12)|(n,0.33,0.12)]*STANDARDS[3,2,1,0]
        + b3[(n,3.18,0.44)]*FPRICE[0.05,0.1,0.2,0.3]
        + b4[(n,0,1.60)]*INV[0,0.05,0.10]
        + b5.dummy[(n,0.60,0.18)|(n,0.58,0.18)|(n,0,0.18)]*COM[3,2,1,0]
/U(alt2) = b1*PPPRICE
        + b2*STANDARDS
        + b3*FPRICE
        + b4*INV
        + b5*COM/
U(nobuy)= b0[(n,0,0.24)]$


I would like to control for dominant alternatives and repetitions by adding the stars on alt1 and alt2.
My first concern is related to the use of this command in case I have some mean values=0, i.e. without a sign, and priors which, instead, have a negative or positive value. I was wondering whether this may cause disadvantages in the generation of the design, especially in the allocation of the attributes levels across the choice tasks.
Second, if I keep the number of the choice tasks = 48 and add the stars, I do not obtain any design after ten minutes. On the other hand, if I specify the number of the choice tasks = 24, Ngene successfully generates the designs. Given my number of parameters and alternatives (two product alternatives and a nobuy alternative), 24 choice tasks should be ok. As expected, the D-error significantly increases: from a value of 0.5497 (48 rows design) to a value of 1.106 (24 rows design) and this latter one is a little bit higher than the D-error of 48 rows design * 2. I am wondering which approach is more appropriate (or safer) to use, whether the larger design without checking for replication and dominant alternatives or the design with a higher D-error, but specifying the stars on the unlabelled alternatives. Any suggestion is more than appreciated.
Thanks again for your kind attention and support.
Claudia
claudiab
 
Posts: 19
Joined: Sun Jul 10, 2016 10:18 am

Re: Dominant alternatives

Postby Michiel Bliemer » Fri Jun 01, 2018 4:14 pm

It is fine using some priors equal to zero, Ngene will check for dominance on all the other attributes (and levels).

Asking for 48 rows without any dominant alternative using the default column based swapping algorithm will make it difficult for Ngene to find a design since this is a heavily constrained design due to the dominance check. In heavily constrained designs it is best to use the row based modified Federov algorithm as suggested below.

The modified Federov algorithm cannot easily satisfy attribute level balance and it is not compatible with the ;cond command. Attribute level balance is approximately satisfied automatically for dummy coded variables, while for continuous variables you may want to impose upper and lower bounds on the number of times each level appears as I have suggested in the syntax. Further, I have replaced the ;cond constraints with ;reject constraints, which are compatible with the modified Federov algorithm.

Code: Select all
Design
;alts = alt1*, alt2*, nobuy
;rows = 48
;block =12;
;eff=(mnl,d,mean)
;reject:
alt1.inv = 0 and alt1.com = 1,
alt1.inv = 0 and alt1.com = 2,
alt1.inv = 0 and alt1.com = 3,
alt1.com = 0 and alt1.inv = 0.05,
alt1.com = 0 and alt1.inv = 0.10,
alt2.inv = 0 and alt2.com = 1,
alt2.inv = 0 and alt2.com = 2,
alt2.inv = 0 and alt2.com = 3,
alt2.com = 0 and alt2.inv = 0.05,
alt2.com = 0 and alt2.inv = 0.10
;bdraws=gauss(1)
;alg = mfederov(candidates = 5000)
;con
;model:
U(alt1) = b1[(n,-0.23,0.04)]*PPPRICE[1,2,3,4](8-16,8-16,8-16,8-16)         
        + b2.dummy[(n,0.70,0.13)|(n,0.36,0.12)|(n,0.33,0.12)]*STANDARDS[3,2,1,0]
        + b3[(n,3.18,0.44)]*FPRICE[0.05,0.1,0.2,0.3](8-16,8-16,8-16,8-16)
        + b4[(n,0,1.60)]*INV[0,0.05,0.10](12-20,12-20,12-20)
        + b5.dummy[(n,0.60,0.18)|(n,0.58,0.18)|(n,0,0.18)]*COM[3,2,1,0]
/U(alt2) = b1*PPPRICE
        + b2*STANDARDS
        + b3*FPRICE
        + b4*INV
        + b5*COM/
U(nobuy)= b0[(n,0,0.24)]$


You will have to be a bit patient for the first output to show up in the output window, this may take several minutes.
Further note that I have set the number of draws here initially to 1, ;bdraws = gauss(1), such that you can test it. Using gauss(3) will do a very large number of draws and this will make the algorithm very slow. In that case you may want to choose gauss(2), run it overnight, and also decide to use less Bayesian priors.

I have asked a colleague to look at your other question on WTP efficiency.

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

Re: Dominant alternatives

Postby claudiab » Sat Jun 02, 2018 4:18 pm

Michiel,

Thanks a lot for your help. I ran the syntax you proposed, specifying price not with a Bayesian prior, but as a fixed parameter ("b1[-0.23]") and using gauss(2), instead of gauss(3). Everything went well. I have also obtained a series of designs with guass(3), but I'd rather use gauss(2) as you suggested.
Thanks again for everything,
Claudia
claudiab
 
Posts: 19
Joined: Sun Jul 10, 2016 10:18 am


Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 10 guests

cron