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
Interactions between all levels of 2 dummies
Moderators: Andrew Collins, Michiel Bliemer, johnr
-
Michiel Bliemer
- Posts: 2057
- Joined: Tue Mar 31, 2009 4:13 pm
Re: Interactions between all levels of 2 dummies
The syntax
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:
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 /
...
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:
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.Error: An interaction term is associated with a dummy or effects coded parameter. Interactions of dummy or effects coded attributes are not currently supported.
Re: Interactions between all levels of 2 dummies
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:
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:
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
Thanks
Dan
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
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 $
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
Dan