Overlapping Attributes

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

Moderators: Andrew Collins, Michiel Bliemer, johnr

Overlapping Attributes

Postby markp » Mon May 20, 2019 2:23 am

Hello,

I would like prevent no more than 4 attributes from varying between alternatives. I am using the code at (viewtopic.php?f=4&t=525)

I've created a set of 10000 choice sets that meet this criteria (https://drive.google.com/file/d/19Uj6Tq ... sp=sharing)

When I run my code I get "MNL D-Error Undefined." All designs are invalid.

I was hoping on get help on getting this strategy to work, or an alternative strategy?

Thank you.

Code: Select all
Design
;alts(not_used) = alt1, alt2
;alts(main) = alt1, alt2
;rows = 120
;eff = main(mnl, d)
;block=10
;alg=mfederov(candidates=profiles_may13.csv)
;model(not_used):
U(alt1) = b1[0.76]*time[10,5,2,1] +
b2.dummy[0|0|0|0]*se[0,1,2,3,4]  +
ise1[-0.02]*se.dummy[1]*time +
ise2[-0.04]*se.dummy[2]*time +
ise3[-0.06]*se.dummy[3]*time +
ise4[-0.08]*se.dummy[4]*time +
b3.dummy[0|0|0|0]*l[0,1,2,3,4]  +
il1[-0.02]*l.dummy[1]*time +
il2[-0.04]*l.dummy[2]*time +
il3[-0.06]*l.dummy[3]*time +
il4[-0.08]*l.dummy[4]*time +
b4.dummy[0|0|0|0]*a[0,1,2,3,4]  +
ia1[-0.02]*a.dummy[1]*time +
ia2[-0.04]*a.dummy[2]*time +
ia3[-0.06]*a.dummy[3]*time +
ia4[-0.08]*a.dummy[4]*time +
b5.dummy[0|0|0|0]*bo[0,1,2,3,4]  +
ibo1[-0.02]*bo.dummy[1]*time +
ibo2[-0.04]*bo.dummy[2]*time +
ibo3[-0.06]*bo.dummy[3]*time +
ibo4[-0.08]*bo.dummy[4]*time +
b6.dummy[0|0|0|0]*bl[0,1,2,3,4]  +
ibl1[-0.02]*bl.dummy[1]*time +
ibl2[-0.04]*bl.dummy[2]*time +
ibl3[-0.06]*bl.dummy[3]*time +
ibl4[-0.08]*bl.dummy[4]*time +
b7.dummy[0|0|0|0]*p[0,1,2,3,4] +
ip1[-0.02]*p.dummy[1]*time +
ip2[-0.04]*p.dummy[2]*time +
ip3[-0.06]*p.dummy[3]*time +
ip4[-0.08]*p.dummy[4]*time +
b8.dummy[0|0|0|0]*m[0,1,2,3,4] +
im1[-0.02]*m.dummy[1]*time +
im2[-0.04]*m.dummy[2]*time +
im3[-0.06]*m.dummy[3]*time +
im4[-0.08]*m.dummy[4]*time +
b9.dummy[0|0|0|0]*so[0,1,2,3,4] +
iso1[-0.02]*so.dummy[1]*time +
iso2[-0.04]*so.dummy[2]*time +
iso3[-0.06]*so.dummy[3]*time +
iso4[-0.08]*so.dummy[4]*time /
U(alt2) = b1*time +
b2.dummy*se  +
ise1*se.dummy[1]*time +
ise2*se.dummy[2]*time +
ise3*se.dummy[3]*time +
ise4*se.dummy[4]*time +
b3.dummy*l  +
il1*l.dummy[1]*time +
il2*l.dummy[2]*time +
il3*l.dummy[3]*time +
il4*l.dummy[4]*time +
b4.dummy*a  +
ia1*a.dummy[1]*time +
ia2*a.dummy[2]*time +
ia3*a.dummy[3]*time +
ia4*a.dummy[4]*time +
b5.dummy*bo  +
ibo1*bo.dummy[1]*time +
ibo2*bo.dummy[2]*time +
ibo3*bo.dummy[3]*time +
ibo4*bo.dummy[4]*time +
b6.dummy*bl  +
ibl1*bl.dummy[1]*time +
ibl2*bl.dummy[2]*time +
ibl3*bl.dummy[3]*time +
ibl4*bl.dummy[4]*time +
b7.dummy*p +
ip1*p.dummy[1]*time +
ip2*p.dummy[2]*time +
ip3*p.dummy[3]*time +
ip4*p.dummy[4]*time +
b8.dummy*m +
im1*m.dummy[1]*time +
im2*m.dummy[2]*time +
im3*m.dummy[3]*time +
im4*m.dummy[4]*time +
b9.dummy*so +
iso1*so.dummy[1]*time +
iso2*so.dummy[2]*time +
iso3*so.dummy[3]*time +
iso4*so.dummy[4]*time

;model(main):
U(alt1) =
ise1[-0.02]*se.dummy[1]*time +
ise2[-0.04]*se.dummy[2]*time +
ise3[-0.06]*se.dummy[3]*time +
ise4[-0.08]*se.dummy[4]*time +
il1[-0.02]*l.dummy[1]*time +
il2[-0.04]*l.dummy[2]*time +
il3[-0.06]*l.dummy[3]*time +
il4[-0.08]*l.dummy[4]*time +
ia1[-0.02]*a.dummy[1]*time +
ia2[-0.04]*a.dummy[2]*time +
ia3[-0.06]*a.dummy[3]*time +
ia4[-0.08]*a.dummy[4]*time +
ibo1[-0.02]*bo.dummy[1]*time +
ibo2[-0.04]*bo.dummy[2]*time +
ibo3[-0.06]*bo.dummy[3]*time +
ibo4[-0.08]*bo.dummy[4]*time +
ibl1[-0.02]*bl.dummy[1]*time +
ibl2[-0.04]*bl.dummy[2]*time +
ibl3[-0.06]*bl.dummy[3]*time +
ibl4[-0.08]*bl.dummy[4]*time +
ip1[-0.02]*p.dummy[1]*time +
ip2[-0.04]*p.dummy[2]*time +
ip3[-0.06]*p.dummy[3]*time +
ip4[-0.08]*p.dummy[4]*time +
im1[-0.02]*m.dummy[1]*time +
im2[-0.04]*m.dummy[2]*time +
im3[-0.06]*m.dummy[3]*time +
im4[-0.08]*m.dummy[4]*time +
iso1[-0.02]*so.dummy[1]*time +
iso2[-0.04]*so.dummy[2]*time +
iso3[-0.06]*so.dummy[3]*time +
iso4[-0.08]*so.dummy[4]*time /
U(alt2) =
ise1*se.dummy[1]*time +
ise2*se.dummy[2]*time +
ise3*se.dummy[3]*time +
ise4*se.dummy[4]*time +
il1*l.dummy[1]*time +
il2*l.dummy[2]*time +
il3*l.dummy[3]*time +
il4*l.dummy[4]*time +
ia1*a.dummy[1]*time +
ia2*a.dummy[2]*time +
ia3*a.dummy[3]*time +
ia4*a.dummy[4]*time +
ibo1*bo.dummy[1]*time +
ibo2*bo.dummy[2]*time +
ibo3*bo.dummy[3]*time +
ibo4*bo.dummy[4]*time +
ibl1*bl.dummy[1]*time +
ibl2*bl.dummy[2]*time +
ibl3*bl.dummy[3]*time +
ibl4*bl.dummy[4]*time +
ip1*p.dummy[1]*time +
ip2*p.dummy[2]*time +
ip3*p.dummy[3]*time +
ip4*p.dummy[4]*time +
im1*m.dummy[1]*time +
im2*m.dummy[2]*time +
im3*m.dummy[3]*time +
im4*m.dummy[4]*time +
iso1*so.dummy[1]*time +
iso2*so.dummy[2]*time +
iso3*so.dummy[3]*time +
iso4*so.dummy[4]*time
$

markp
 
Posts: 5
Joined: Thu May 16, 2019 5:54 am

Re: Overlapping Attributes

Postby Michiel Bliemer » Thu May 23, 2019 11:07 am

There is an issue with your candidate set.

Please add a header row. In your case I suggest: resp, cset, alt1.time, alt1.se, etc. Otherwise it is very difficult to see what is the issue.
Please make sure that all levels appear in each column. For example, in the column for alt1.l level 4 never appears, therefore you cannot estimate the model since you have dummy coded this attribute.

For future Ngene related questions, please use the Ngene forum (this forum is for general questions about stated choice experiments).

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 3 guests

cron