Binary choice with status quo

This forum is for posts that specifically focus on the Windows desktop version of Ngene (i.e. all version 1.x releases).

Moderators: Andrew Collins, Michiel Bliemer, johnr

Binary choice with status quo

Postby yhashida » Thu Apr 17, 2025 1:00 am

I am designing a binary-choice CE in which the survey respondent votes for or against the proposed project. The alternative is the status quo, representing a situation where the proposed project doesn't happen, and the wetlands will be lost.
Included attributes are fish, wildlife habitat, access, boardwalk, and cost. The levels are shown below.

I also randomly assign different scenarios depending on where these wetland protection projects happen along the Eastern U.S. coast.
Four project locations are randomly assigned to respondents, but one must include a local location closest to the respondent's ZIP code. This is so that we can differentiate their WTP for these attributes depending on the proximity. In total, each respondent is assigned one local scenario and another randomly assigned non-local scenario.

Does the following code look correct? Does it correctly account for the scenarios?
I appreciate your advice.

Design
;alts = alt1*, sq
;rows = 32
;block = 4
;eff = (mnl,d)

? FISH: recreational fish harvest FISH=0 reduction (SQ), FISH=1 maintain current level, FISH=1 15% increase, FISH = 2 30% increase
? WILD: % of restored land suitable as wildlife habitat WILD=0 no additional habitat (SQ), WILD=1 25% suitable, WILD=2 50% suitable, WILD=3 75% suitable
? ACCESS: % of restored land accessible ACCESS=0 no additional access and access declines (SQ), ACCESS=1 restricted, ACCESS=2 25%, ACCESS=3 50%
? WALK :miles of boardwalk WALK=0 no additional boardwalk and miles reduced (SQ), WALK=1 restricted, WALK=2 1 mile, WALK=3 2 miles
? COST: annual tax increase $10,25,50,75,100,150,200,300
? SCENARIO: 0 local, 1 non-local


;model:
U(alt1) = sq_asc[0]
+ b1.dummy[0.001|0.002] * FISH[2,3,1]
+ b2.dummy[0.001|0.002] * WILD[2,3,1]
+ b3.dummy[0.001|0.002] * ACCESS[2,3,1]
+ b4.dummy[0.001|0.002] * WALK[2,3,1]
+ b5.dummy[-0.01|-0.02|-0.03|-0.04|-0.05|-0.06|-0.07] * COST[10,25,50,75,100,150,200,300]
+ i1 * FISH.dummy[2] * SCENARIO[0,1]
+ i2 * FISH.dummy[3] * SCENARIO
+ i3 * WILD.dummy[2] * SCENARIO
+ i4 * WILD.dummy[3] * SCENARIO
+ i5 * ACCESS.dummy[2] * SCENARIO
+ i6 * ACCESS.dummy[3] * SCENARIO
+ i7 * WALK.dummy[2] * SCENARIO
+ i8 * WALK.dummy[3] * SCENARIO
$
yhashida
 
Posts: 9
Joined: Fri Feb 07, 2025 3:30 am

Re: Binary choice with status quo

Postby Michiel Bliemer » Thu Apr 17, 2025 9:10 am

That script looks pretty good.

Some suggestions:
* Since your attributes have 3 and 8 levels, if you want your design to be attribute level balanced then you would need to select a number of rows that is divisible by 3 and 8, e.g. 24 or 48.
* You have correctly made interactions with the scenario variable to analyse how the scenario moderates the preferences wrt FISH, WILD, ACCESS, and WALK. You can also consider adding SCENARIO in the utility function of the status quo alternative, which would allow you to investigate whether the scenario impacts the choice for choosing a project or not.
* While it is fine to have a single alternative plus a status quo, in the choice tasks there would not be any trade-offs across attributes and therefore it would be more difficult to estimate b1 to b5. To capture more information on these attributes, you could consider adding a second unlabelled alternative.
* You currently have specified the status quo as having only a constant, which is how one would formulate an opt-out alternative. This may be fine, but if your status quo actually has attribute levels (e.g. with values for FISH, ACCESS, etc and COST = 0) then you could consider adding in the utility function with a single level.

See script below.

Code: Select all
Design
;alts = alt1*, alt2*, sq
;rows = 24
;block = 3
;eff = (mnl,d)

? FISH: recreational fish harvest FISH=0 reduction (SQ), FISH=1 maintain current level, FISH=1 15% increase, FISH = 2 30% increase
? WILD: % of restored land suitable as wildlife habitat WILD=0 no additional habitat (SQ), WILD=1 25% suitable, WILD=2 50% suitable, WILD=3 75% suitable
? ACCESS: % of restored land accessible ACCESS=0 no additional access and access declines (SQ), ACCESS=1 restricted, ACCESS=2 25%, ACCESS=3 50%
? WALK :miles of boardwalk WALK=0 no additional boardwalk and miles reduced (SQ), WALK=1 restricted, WALK=2 1 mile, WALK=3 2 miles
? COST: annual tax increase $10,25,50,75,100,150,200,300
? SCENARIO: 0 local, 1 non-local


;model:
U(alt1) =
  b1.dummy[0.001|0.002] * FISH[2,3,1]
+ b2.dummy[0.001|0.002] * WILD[2,3,1]
+ b3.dummy[0.001|0.002] * ACCESS[2,3,1]
+ b4.dummy[0.001|0.002] * WALK[2,3,1]
+ b5.dummy[-0.01|-0.02|-0.03|-0.04|-0.05|-0.06|-0.07] * COST[10,25,50,75,100,150,200,300]
+ i1 * FISH.dummy[2] * SCENARIO[0,1]
+ i2 * FISH.dummy[3] * SCENARIO
+ i3 * WILD.dummy[2] * SCENARIO
+ i4 * WILD.dummy[3] * SCENARIO
+ i5 * ACCESS.dummy[2] * SCENARIO
+ i6 * ACCESS.dummy[3] * SCENARIO
+ i7 * WALK.dummy[2] * SCENARIO
+ i8 * WALK.dummy[3] * SCENARIO
/
U(alt2) =
  b1.dummy * FISH
+ b2.dummy * WILD
+ b3.dummy * ACCESS
+ b4.dummy * WALK
+ b5.dummy * COST
+ i1 * FISH.dummy[2] * SCENARIO[0,1]
+ i2 * FISH.dummy[3] * SCENARIO
+ i3 * WILD.dummy[2] * SCENARIO
+ i4 * WILD.dummy[3] * SCENARIO
+ i5 * ACCESS.dummy[2] * SCENARIO
+ i6 * ACCESS.dummy[3] * SCENARIO
+ i7 * WALK.dummy[2] * SCENARIO
+ i8 * WALK.dummy[3] * SCENARIO
/
U(sq) = sq_asc[0]
+ b6 * SCENARIO

$


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

Re: Binary choice with status quo

Postby yhashida » Fri Apr 18, 2025 2:32 am

Michiel,

Thank you. The reason I have only a single alternative besides the status quo is that a referendum-style choice (voting yes or no on a proposal) is considered more incentive-compatible when the payment is a mandatory tax. As you point out, there is a trade-off, and I wonder if there is a way to tell which model is better. When you say "it would be more difficult to estimate b1 to b5", would that be overcome by a larger sample size?

Another question is, in your suggested code, the scenario (whether it is a local or non-local project) could differ between alternative 1 and alternative 2. It is as if the location is considered another attribute. Is this the right way? Should the scenario be identical between the two alternatives?
yhashida
 
Posts: 9
Joined: Fri Feb 07, 2025 3:30 am

Re: Binary choice with status quo

Postby Michiel Bliemer » Fri Apr 18, 2025 9:38 am

Yes, larger sample size will help in estimating all parameters, so what you have is fine. I am merely pointing out that it does not capture as much information as you would by having comparisons across attributes in two alternatives.

Regarding your second question; No, adding the scenario variable in the second alternative as main effect is not like an attribute; rather, it is interpreted with respect to the label of the alternative. So if you have a 'yes' and 'no' alternative, it merely accounts for the impact of the scenario on 'yes' or 'no' directly, independent of the attributes. But of course the scenario is still the same across both alternatives! Just the way you put the scenario variable in the model is important; you can add it as an interaction with attributes (as you have done), but you can also interact it with the label-specific constant. There is only one label-specific constant (either one for alt1 or for alt2), therefore the interaction drops out of the other alternative. Note that this is not Ngene-specific but rather general choice modelling practice.

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

Re: Binary choice with status quo

Postby yhashida » Tue Apr 22, 2025 12:32 am

Thank you. About the second point, shouldn't the SCENARIO in the interaction terms in the utility function of second alternative, alt2, be SCENARIO[SCENARIO] instead of SCENARIO[0,1]? Otherwise the alternatives might have different scenarios?
yhashida
 
Posts: 9
Joined: Fri Feb 07, 2025 3:30 am

Re: Binary choice with status quo

Postby Michiel Bliemer » Tue Apr 22, 2025 1:20 pm

Yes you are correct. It should be either SCENARIO[SCENARIO] or you should include:

;cond:
if(alt1.SCENARIO = 0, alt2.SCENARIO = 0),
if(alt1.SCENARIO = 1, alt2.SCENARIO = 1)

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

Re: Binary choice with status quo

Postby yhashida » Wed Apr 23, 2025 10:28 pm

Thank you! I really appreciate your help, as always.
yhashida
 
Posts: 9
Joined: Fri Feb 07, 2025 3:30 am


Return to Support for Ngene Desktop (v1.x)

Who is online

Users browsing this forum: No registered users and 19 guests

cron