Beginner help needed - am I on the rigtht track?

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Re: Beginner help needed - am I on the rigtht track?

Postby Michiel Bliemer » Mon Apr 16, 2018 9:37 am

That problem seems to arise because I swapped the definition of clean maize. You can simply reverse the sign of bm from -0.1 to 0.1.
But then you still may find choice tasks in which clean maize appears with a low price, which I believe you would like to prevent.

You can remove such dominant alternatives by telling Ngene that alt1 and alt2 are generic. Then, together with a positive sign for clean maize and a negative sign for price, Ngene knows how to avoid such dominant alternatives. Note that this will remove a lot of possible choice tasks, so you first need to check how many choice tasks are still left. This can be done with the syntax below. Note that I have added the no choice alternative with a constant, which you need in your model estimation.

Design
;alts = alt1*, alt2*, none
;rows = all
;fact
;require:
alt1.season = alt2.season
;model:
U(alt1) = bm[0.1] * mold[0,1] + bms * mold * season[0,1] + bp[-0.005] * price[90,100,125,150,200,250] + bps * price * season /
U(alt2) = bm * mold[0,1] + bms * mold * season[0,1] + bp * price[90,100,125,150,200,250] + bps * price * season /
U(none) = bnone $

If you run this syntax, it will tell you that only 60 choice tasks satisfy all your constraints. This is not a lot. So what you could do is actually use all 60 choice tasks in your design and create 5 blocks of 12 choice tasks each, which you can do by adding ;block = 5 to the syntax.

Alternatively, you can let Ngene select the 24 (or 12 if you like) most efficient choice tasks using the following syntax. The efficient design will rely on your priors, to please ensure that they make sense (I think they are sufficiently small such that they are safe, but if you have better priors from a small pilot study or something you may want to include them here):

Design
;alts = alt1*, alt2*, none
;rows = 24
;block = 2
;eff = (mnl,d)
;alg = mfederov
;require:
alt1.season = alt2.season
;model:
U(alt1) = bm[0.1] * mold[0,1] + bms * mold * season[0,1](12,12) + bp[-0.005] * price[90,100,125,150,200,250](3-5,3-5,3-5,3-5,3-5,3-5) + bps * price * season /
U(alt2) = bm * mold[0,1] + bms * mold * season[0,1](12,12) + bp * price[90,100,125,150,200,250](3-5,3-5,3-5,3-5,3-5,3-5) + bps * price * season /
U(none) = bnone $

Since this is a very heavily constrained design, the default (swapping) algorithm will no longer find a solution, so you will have to switch to the Modified Federov algorithm as I propose above. This algorithm will not maintain attribute level balance, therefore in order to ensure that each season appears exactly 12 times across the design, I have imposed level appearance constraints by adding (12,12) to season. Similarly, I impose constraints on price levels, ensuring that they each appear between 3 and 5 times (it will not be possible to let them each appear exactly 4 times, that imposes too many constraints).

Note that blocking will never be perfect (in neither syntax), so you will need to make sure (possibly manually) that each block contains 6 of each season.

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

Re: Beginner help needed - am I on the rigtht track?

Postby kschneider » Thu Apr 19, 2018 10:25 am

Hello again,
Apologies for the continued need for assistance here, but after discussing with the PI on this project today, we'd like to introduce a constraint so that the clean maize is always more expensive than the moldy (and we will insert a 7th question as a rationality check where clean is cheaper that won't be included in the analysis).

Is this possible with the following final model:

Design
;alts = alt1, alt2, none
;rows = 24
;block = 2
;eff = (mnl,d)
;model:
U(alt1) = bm[-0.1] * mold[0,1] + bms * mold * season[0,1] + bp[-0.005] * price[90,100,125,150,200,250] + bps * price * season /
U(alt2) = bm * mold[0,1] + bms * mold * season[season] + bp * price + bps * price * season $

mold[0] = moldy
mold[1] = clean
season[0] = harvest
season[1] = lean
none[0] = buy
none[1] = optout

and a recap that the analysis wants to estimate:
bm / bp = willingness to pay for clean maize in season "harvest"
(bm + bms) / (bp + bps) = willingness to pay for clean maize in season "lean"

Thanks again SO very much,
Kate
kschneider
 
Posts: 6
Joined: Wed Apr 11, 2018 1:38 am

Re: Beginner help needed - am I on the rigtht track?

Postby Michiel Bliemer » Thu Apr 19, 2018 4:48 pm

Did you try my previously suggested syntax? The addition of an asterisk (*) behind alt1 and alt2 should result in cheaper moldy maize versus more expensive cleaner maize I think? The asterisk removes dominant alternatives with cheap clean maize.

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

Previous

Return to Choice experiments - Ngene

Who is online

Users browsing this forum: Google [Bot] and 6 guests