Interactions between all levels of 2 dummies

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Interactions between all levels of 2 dummies

Postby dsr » Tue Jun 02, 2009 2:16 am

I am generating a design for a 3 attribute, 2 alternative, experiment
I have a dummy (att1) with 4 levels [A,B,C,D]
I have a second dummy (att2) with 3 levels [X,Y,Z]

I want a design that will allow me to estimate the interactions between each level of these 2 attributes
A*X, A*Y, A*Z………..D*X, D*Y, D*Z
as well as the main effects.

I have priors for the marginal utilities of the levels of att1 & att2, but not for the interactions between them ( I hope to get them from the pilot)
There is a price attribute also.

Ignoring the price attribute for now, if I specify the utility function (of alternative 1) as

U(alt1) =
b1.dummy[0.18 | 0.34 | 0.439]*att1[0,1,2,3] +
b2.dummy[0.22 | 0.33] *att2[0,1,2] +
b3*att1*att2 /


is this specification sufficient to create a design which allows estimation of the impact on utility of the 12 interactions between each level of the 2 dummies (att1, att2)?

Or do I need to state this more explicitly, perhaps by having each dummy as a separate (0,1) attribute and all the interactions explicit:

U(alt1) =
b11[0]*A[0,1] + b12[0.18]*B[0,1] + b13[0.34]*C[0,1] + b14[0.439]*D[0,1]
b21[0]*X[0,1] + b22[0.22]*Y[0,1] + b23[0.33]*Z[0,1]
+ b31[0]*A*X + b32[0]*A*Y + b33[0]*A*Z
+ b41[0]*B*X + b42[0]*B*Y + b43[0]*B*Z
+ b51[0]*C*X + b52[0]*C*Y + b53[0]*C*Z
+ b61[0]*D*X + b62[0]*D*Y + b63[0]*D*Z /



If I need this latter specification then I presume I would need constraints such as:

;require:
alt1.A + alt1.B + alt1.C + alt1.D = 1,
alt2.A + alt2.B + alt2.C + alt2.D = 1

alt1.X + alt1.Y + alt1.Z = 1,
alt2.X + alt2.Y + alt2.Z = 1


_________
thanks,
d
dsr
 
Posts: 9
Joined: Wed May 27, 2009 7:22 pm

Re: Interactions between all levels of 2 dummies

Postby Michiel Bliemer » Wed Jun 10, 2009 5:17 am

The syntax
Code: Select all
...
U(alt1) = b1.dummy[0.18 | 0.34 | 0.439] * att1[0,1,2,3] + b2.dummy[0.22 | 0.33] * att2[0,1,2] + b3[0.1] * att1 * att2  /
...

will work, but assume that the interaction att1 * att2 has a single parameter only.

In your case, you want each interaction term to have a separate parameter, so b3 should contain 2x3 = 6 parameters in total. This is currently not supported in Ngene, as an error message in Ngene would come up:

Error: An interaction term is associated with a dummy or effects coded parameter. Interactions of dummy or effects coded attributes are not currently supported.


I think indeed the only way to make this currently happen is to put conditions in, as you suggest yourself. It will be something we will consider for the next version.
Michiel Bliemer
 
Posts: 1885
Joined: Tue Mar 31, 2009 4:13 pm

Re: Interactions between all levels of 2 dummies

Postby dsr » Wed Jan 26, 2011 9:09 pm

I would like to re-open this topic (after nearly 2 years!) as I have returned to this type of issue.

To recap on the issue:
I have att1 with 4 levels [A,B,C,D]
& att2 with 3 levels [X,Y,Z]

I want a 2 Alt design that will allow me to estimate the interactions between each level of these 2 attributes
A*X, A*Y, A*Z……… D*X, D*Y, D*Z
as well as the main effects.

In the absence of a quick way to do this I was entering the levels of the 2 attributes as separate [0,1] attributes.
Michael’s suggestion was that I use REQUIRE to ensure only 1 value of att1=1 in any option, and likewise for att2.

So I used:
Code: Select all
;require:
alt1.X + alt1.Y + alt1.Z = 1,
alt2.X + alt2.Y + alt2.Z = 1,
alt1.A + alt1.B + alt1.C + alt1.D = 1,
alt2.A + alt2.B + alt2.C + alt2.D = 1


When I try this the design constraints are not operating and I would be grateful for advice as to what I am doing wrong in this design:

Code: Select all
Design
;alts = alt1, alt2
;rows = 120
;block=10
;eff = (mnl,d)
;require:
alt1.X + alt1.Y + alt1.Z = 1,
alt2.X + alt2.Y + alt2.Z = 1,
alt1.A + alt1.B + alt1.C + alt1.D = 1,
alt2.A + alt2.B + alt2.C + alt2.D = 1
;model:

U(alt1) = b0[-0.2]*P[10,20,30,40,50,60,70,80,90,100]
        + b1[0.0]*A[0,1] + b2[0.17]*B[0,1] + b3[0.33]*C[0,1] + b4[0.43]*D[0,1]
        + b5[0.1]*X[0,1] + b6[0.21]*Y[0,1] + b7[0.43]*Z[0,1]
        + b15[0]*A*X + b16[0]*A*Y + b17[0]*A*Z
        + b25[0]*B*X + b26[0]*B*Y + b27[0]*B*Z
        + b35[0]*C*X + b36[0]*C*Y + b37[0]*C*Z
        + b45[0]*D*X + b46[0]*D*Y + b47[0]*D*Z /

U(alt2) = b0*P
        + b1 *A   + b2*B + b3*C + b4*D
        + b5 *X   + b6*Y + b7*Z
        + b15*A*X + b16*A*Y + b17*A*Z
        + b25*B*X + b26*B*Y + b27*B*Z
        + b35*C*X + b36*C*Y + b37*C*Z
        + b45*D*X + b46*D*Y + b47*D*Z $


This snippet of a resulting design indicates that my REQUIRE conditions are not being met.
ie, for Alt1:
A+B+C+D does not = 1 in SCE 1,2,3,5,6
X+Y+Z does not = 1 in SCE 1,3,5,6

Code: Select all
sce    alt1.p      alt1.A   alt1.B   alt1.C   alt1.D   alt1.X   alt1.Y   alt1.Z
1   70                  0      1      0             1      0      1      1
2   80                  1      0      0             1      0      1      0
3   60                  0      1      0             1      1      1      0
4   50                  1      0      0             0      1      0      0
5   90                  0      0      1             1      1      0      1
6   40                  0      0      0             0      0      0      0


Thanks
Dan
dsr
 
Posts: 9
Joined: Wed May 27, 2009 7:22 pm


Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 30 guests