When to use one attribute and when to use constraint

This forum is for posts covering broader stated choice experimental design issues.

Moderators: Andrew Collins, Michiel Bliemer, johnr

When to use one attribute and when to use constraint

Postby tanner1 » Thu Aug 22, 2019 9:11 am

Hi all,

Apologies, I posted this in Ngene but I think it is a more general stated choice experimental design question. I am making a design where I want to communicate both location and project type, but they are inherently linked. For example, a beach clean-up can only occur on coastal cities whereas highway clean-ups can occur in all cities. Should something like that be introduced as a constraint, or do you simply make a design with one attribute instead of two?

Example code is below for a design with:
- 3 2-level variables (qualitative), 2 of which are completely dependent on each other
- 1 4-level quantitative variable
- an opt-out alternative (alt3):

Code: Select all
Design
;alts = alt1, alt2, atl3
;rows=12
;block=4
;eff=(mnl,d)

;cond:
if(alt1.project=1, alt1.location=1),
if(alt1.project=2, alt1.location=2),
if(alt2.project=1, alt2.location=1),
if(alt2.project=2, alt2.location=2),

;model:
U(alt1)=cost[0]*cost[1,3,7,10]+project.dummy[0]*project[1,2]+location.dummy[0]*location[1,2]+type.dummy*type[1,2]
U(alt2)=cost[0]*cost[1,3,7,10]+project.dummy[0]*project[1,2]+location.dummy[0]*location[1,2]+type.dummy*type[1,2]
U(alt3)=asc
$
tanner1
 
Posts: 6
Joined: Tue Jun 25, 2019 8:28 am

Re: When to use one attribute and when to use constraint

Postby Michiel Bliemer » Thu Aug 22, 2019 10:16 am

In this case, project and location are perfectly correlated, therefore it is not possible to include both attributes as a main effect as you have done as the model will not be identifiable (will generate an extremely large D-error). You can see that when you run this syntax (I corrected some mistakes in your syntax):

Code: Select all
Design
;alts = alt1, alt2, alt3
;rows=12
;block=4
;eff=(mnl,d)

;cond:
if(alt1.project=1, alt1.location=1),
if(alt1.project=2, alt1.location=2),
if(alt2.project=1, alt2.location=1),
if(alt2.project=2, alt2.location=2)

;model:
U(alt1)=cost[0]*cost[1,3,7,10]+project.dummy[0]*project[1,2]+location.dummy[0]*location[1,2]+type.dummy*type[1,2] /
U(alt2)=cost[0]*cost[1,3,7,10]+project.dummy[0]*project[1,2]+location.dummy[0]*location[1,2]+type.dummy*type[1,2] /
U(alt3)=asc
$


There are two options:

1) Merge them into a single attribute as you propose
2) Include one of the attributes as an interaction effect instead of a main effect, e.g.

Code: Select all
Design
;alts = alt1, alt2, alt3
;rows=12
;block=4
;eff=(mnl,d)

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

;model:
U(alt1)=cost[0]*cost[1,3,7,10]+project[0]*project[1,0]+interaction[0]*location[1,0]*cost+type[0]*type[1,0] /
U(alt2)=cost[0]*cost[1,3,7,10]+project[0]*project[1,0]+interaction[0]*location[1,0]*cost+type[0]*type[1,0] /
U(alt3)=asc
$


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

Re: When to use one attribute and when to use constraint

Postby tanner1 » Sat Aug 24, 2019 2:56 am

Thanks for the help! I ran the code with the interaction term and the D-errors are looking a lot less alarming.

I don't fully understand what the generic interaction term in the code is, though, and I would eventually like to use preliminary data to estimate priors and refine the design.

Why did you write location to be interacted with cost and "interaction" but not type? Is there an example similar to this in the Hensher, Rose, & Greene book or online that I could read about to better understand what is happening?


Thanks!
tanner1
 
Posts: 6
Joined: Tue Jun 25, 2019 8:28 am

Re: When to use one attribute and when to use constraint

Postby Michiel Bliemer » Sat Aug 24, 2019 8:49 am

Yes you can also use type as an interaction effect. Either cost or type will work because they are varying.

U(alt1) = b1*cost + b2*project + b3*location*cost +b4*type

This can be rewritten as

U(alt1) = (b1+b3*location)*cost + b2*project + b4*type

In other words, interaction coefficient b3 indicates the change in sensitivity to the cost parameter due to the impact of location.

Other utility functions can be defined as well, depending on what you would like to estimate:

U(alt1) = b1*cost + b2*project + b3*location*type +b4*type
U(alt1) = b1*cost + b2*project + b3*location*type + b4*location*cost + b5*type
U(alt1) = b1*cost + b2*location + b3*project*cost + b4*type
U(alt1) = b1*cost + b2*location + b3*project*type + b4*type
U(alt1) = b1*cost + b2*location+ b3*project*type + b4*project*cost + b5*type

I am not sure whether a specific example exists in the Hensher & Rose & Greene book, you will have to ask the authors, but the same issue holds for linear regression models, you cannot create perfectly correlated attributes since this would yield multicollinearity and result in a model that cannot be estimated. You can search for "multicollinearity" and it will explain it for you.

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

Re: When to use one attribute and when to use constraint

Postby tanner1 » Fri Aug 30, 2019 4:22 am

I see!!

It didn't immediately click that interaction[0] was standing for the estimated coefficient for the interaction term the same way cost[0] stands for the cost coefficient. Seeing the alternate utility functions written outside of the code really helped.


So just to recap, just like with two perfectly collinear attributes in linear regression, I can pick which one of location & project I would like to estimate a separate coefficient for.

To overcome the collinearity I can either assume they are one single attribute for the purposes of the design, so

U(alt1) = b1*cost + b2*project + b3*type

In which case I would not identify any additional or separate information related to location.



Or, alternately, I could introduce location (or project) as an interaction term in the way you describe. When doing this, the model assumes that preferences for cost of the program (in your first example) are sensitive to location. In this case, I would not have a clean, separate parameter on cost with which I might estimate willingness to pay; instead it seems I would have two estimates of willingness to pay for the other attributes: one for each level of location.

WTP project = -b2/b1 if location= 0 & -b2/(b1+b3) if location = 1


Hopefully that all made sense :)

Thanks again
tanner1
 
Posts: 6
Joined: Tue Jun 25, 2019 8:28 am

Re: When to use one attribute and when to use constraint

Postby Michiel Bliemer » Fri Aug 30, 2019 9:58 am

Yes I believe that interpretation is all correct :)

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


Return to Choice experiments - general

Who is online

Users browsing this forum: No registered users and 9 guests

cron