Efficient design using dummy coding
Posted: Mon May 11, 2015 12:36 pm
Many thanks for answering my previous question.
Here I have another few questions related to efficient design using dummy coding in Ngene.
My design syntax is pasted below:
Design
;alts = alt1, alt2
;rows = 16
;eff = (mnl, d)
;model:
U(alt1) = b0[0]+b1.dummy[0|0|0|0|0|0|0]*A[0,1,2,3,4,5,6,7] + b2.dummy[0|0|0]*B[0,1,2,3] + b3.dummy[0|0|0]*C[0,1,2,3]/
U(alt2) = b1*A + b2*B + b3*C$
My first question is what is the reference level used in Ngene? Is it '0' or '7'/'3'? From the example on page 126 it seems '7' is the reference category but I am not sure if it is a general setting.
My second question is how to include the interaction terms when attributes are all dummy coded. Suppose we are interested in the interaction between B and C, I wrote the syntax below:
Design
;alts = alt1, alt2
;rows = 32
;eff = (mnl, d)
;model:
U(alt1) = b0[0]+b1.dummy[0|0|0|0|0|0|0]*A[0,1,2,3,4,5,6,7] + b2.dummy[0|0|0]*B[0,1,2,3] + b3.dummy[0|0|0]*C[0,1,2,3] + i1[0]*B.dummy[0]*C.dummy[0]+i2[0]*B.dummy[0]*C.dummy[1]+i3[0]*B.dummy[0]*C.dummy[2]+i4[0]*B.dummy[0]*C.dummy[3]+i5[0]*B.dummy[1]*C.dummy[0]+i6[0]*B.dummy[1]*C.dummy[1]+i7[0]*B.dummy[1]*C.dummy[2]+i8[0]*B.dummy[1]*C.dummy[3]+i9[0]*B.dummy[2]*C.dummy[0]+i10[0]*B.dummy[2]*C.dummy[1]+i11[0]*B.dummy[2]*C.dummy[2]+i12[0]*B.dummy[2]*C.dummy[3]+i13[0]*B.dummy[3]*C.dummy[0]+i14[0]*B.dummy[3]*C.dummy[1]+i15[0]*B.dummy[3]*C.dummy[2]+i16[0]*B.dummy[3]*C.dummy[3]/
U(alt2) = b1*A + b2*B + b3*C + i1*B.dummy[0]*C.dummy[0]+i2*B.dummy[0]*C.dummy[1]+i3*B.dummy[0]*C.dummy[2]+i4*B.dummy[0]*C.dummy[3]+i5*B.dummy[1]*C.dummy[0]+i6*B.dummy[1]*C.dummy[1]+i7*B.dummy[1]*C.dummy[2]+i8*B.dummy[1]*C.dummy[3]+i9*B.dummy[2]*C.dummy[0]+i10*B.dummy[2]*C.dummy[1]+i11*B.dummy[2]*C.dummy[2]+i12*B.dummy[2]*C.dummy[3]+i13*B.dummy[3]*C.dummy[0]+i14*B.dummy[3]*C.dummy[1]+i15*B.dummy[3]*C.dummy[2]+i16*B.dummy[3]*C.dummy[3]$
I received this warning:
'Warning: No valid design has been found after 1000 evaluations. There may be a problem with the specification of the design. A common problem is that the choice probabilities are too extreme (close to 1 and 0), perhaps because some or all of the prior values are too large. Also, it is generally a good idea to start with a simple design (MNL, non-Bayesian), then add complexity. If you press stop, a design will be reported, which may assist in diagnosing the problem.
Stopped, at 12:16:54 PM, 5/11/2015'
I guess this warning came up probably because I included the interaction terms involving reference levels. Assuming level 3 is the reference level, I subsequently dropped all the interaction terms involving either B.dummy[3] or C.dummy[3] and the syntax became this:
Design
;alts = alt1, alt2
;rows = 32
;eff = (mnl, d)
;model:
U(alt1) = b0[0]+b1.dummy[0|0|0|0|0|0|0]*A[0,1,2,3,4,5,6,7] + b2.dummy[0|0|0]*B[0,1,2,3] + b3.dummy[0|0|0]*C[0,1,2,3] + i1[0]*B.dummy[0]*C.dummy[0]+i2[0]*B.dummy[0]*C.dummy[1]+i3[0]*B.dummy[0]*C.dummy[2]+i5[0]*B.dummy[1]*C.dummy[0]+i6[0]*B.dummy[1]*C.dummy[1]+i7[0]*B.dummy[1]*C.dummy[2]+i9[0]*B.dummy[2]*C.dummy[0]+i10[0]*B.dummy[2]*C.dummy[1]+i11[0]*B.dummy[2]*C.dummy[2]/
U(alt2) = b1*A + b2*B + b3*C + i1*B.dummy[0]*C.dummy[0]+i2*B.dummy[0]*C.dummy[1]+i3*B.dummy[0]*C.dummy[2]+i5*B.dummy[1]*C.dummy[0]+i6*B.dummy[1]*C.dummy[1]+i7*B.dummy[1]*C.dummy[2]+i9*B.dummy[2]*C.dummy[0]+i10*B.dummy[2]*C.dummy[1]+i11*B.dummy[2]*C.dummy[2]$
There was no warning this time.
So can I confirm with you that reference level cannot be used in the interaction terms?
My final question is if there is any easy way to specify all two way interactions for dummy coded attributes? I certainly can write up all the interactions between levels of A, B and C but wonder if there is a command for this.
Many thanks,
Yuanyuan
Here I have another few questions related to efficient design using dummy coding in Ngene.
My design syntax is pasted below:
Design
;alts = alt1, alt2
;rows = 16
;eff = (mnl, d)
;model:
U(alt1) = b0[0]+b1.dummy[0|0|0|0|0|0|0]*A[0,1,2,3,4,5,6,7] + b2.dummy[0|0|0]*B[0,1,2,3] + b3.dummy[0|0|0]*C[0,1,2,3]/
U(alt2) = b1*A + b2*B + b3*C$
My first question is what is the reference level used in Ngene? Is it '0' or '7'/'3'? From the example on page 126 it seems '7' is the reference category but I am not sure if it is a general setting.
My second question is how to include the interaction terms when attributes are all dummy coded. Suppose we are interested in the interaction between B and C, I wrote the syntax below:
Design
;alts = alt1, alt2
;rows = 32
;eff = (mnl, d)
;model:
U(alt1) = b0[0]+b1.dummy[0|0|0|0|0|0|0]*A[0,1,2,3,4,5,6,7] + b2.dummy[0|0|0]*B[0,1,2,3] + b3.dummy[0|0|0]*C[0,1,2,3] + i1[0]*B.dummy[0]*C.dummy[0]+i2[0]*B.dummy[0]*C.dummy[1]+i3[0]*B.dummy[0]*C.dummy[2]+i4[0]*B.dummy[0]*C.dummy[3]+i5[0]*B.dummy[1]*C.dummy[0]+i6[0]*B.dummy[1]*C.dummy[1]+i7[0]*B.dummy[1]*C.dummy[2]+i8[0]*B.dummy[1]*C.dummy[3]+i9[0]*B.dummy[2]*C.dummy[0]+i10[0]*B.dummy[2]*C.dummy[1]+i11[0]*B.dummy[2]*C.dummy[2]+i12[0]*B.dummy[2]*C.dummy[3]+i13[0]*B.dummy[3]*C.dummy[0]+i14[0]*B.dummy[3]*C.dummy[1]+i15[0]*B.dummy[3]*C.dummy[2]+i16[0]*B.dummy[3]*C.dummy[3]/
U(alt2) = b1*A + b2*B + b3*C + i1*B.dummy[0]*C.dummy[0]+i2*B.dummy[0]*C.dummy[1]+i3*B.dummy[0]*C.dummy[2]+i4*B.dummy[0]*C.dummy[3]+i5*B.dummy[1]*C.dummy[0]+i6*B.dummy[1]*C.dummy[1]+i7*B.dummy[1]*C.dummy[2]+i8*B.dummy[1]*C.dummy[3]+i9*B.dummy[2]*C.dummy[0]+i10*B.dummy[2]*C.dummy[1]+i11*B.dummy[2]*C.dummy[2]+i12*B.dummy[2]*C.dummy[3]+i13*B.dummy[3]*C.dummy[0]+i14*B.dummy[3]*C.dummy[1]+i15*B.dummy[3]*C.dummy[2]+i16*B.dummy[3]*C.dummy[3]$
I received this warning:
'Warning: No valid design has been found after 1000 evaluations. There may be a problem with the specification of the design. A common problem is that the choice probabilities are too extreme (close to 1 and 0), perhaps because some or all of the prior values are too large. Also, it is generally a good idea to start with a simple design (MNL, non-Bayesian), then add complexity. If you press stop, a design will be reported, which may assist in diagnosing the problem.
Stopped, at 12:16:54 PM, 5/11/2015'
I guess this warning came up probably because I included the interaction terms involving reference levels. Assuming level 3 is the reference level, I subsequently dropped all the interaction terms involving either B.dummy[3] or C.dummy[3] and the syntax became this:
Design
;alts = alt1, alt2
;rows = 32
;eff = (mnl, d)
;model:
U(alt1) = b0[0]+b1.dummy[0|0|0|0|0|0|0]*A[0,1,2,3,4,5,6,7] + b2.dummy[0|0|0]*B[0,1,2,3] + b3.dummy[0|0|0]*C[0,1,2,3] + i1[0]*B.dummy[0]*C.dummy[0]+i2[0]*B.dummy[0]*C.dummy[1]+i3[0]*B.dummy[0]*C.dummy[2]+i5[0]*B.dummy[1]*C.dummy[0]+i6[0]*B.dummy[1]*C.dummy[1]+i7[0]*B.dummy[1]*C.dummy[2]+i9[0]*B.dummy[2]*C.dummy[0]+i10[0]*B.dummy[2]*C.dummy[1]+i11[0]*B.dummy[2]*C.dummy[2]/
U(alt2) = b1*A + b2*B + b3*C + i1*B.dummy[0]*C.dummy[0]+i2*B.dummy[0]*C.dummy[1]+i3*B.dummy[0]*C.dummy[2]+i5*B.dummy[1]*C.dummy[0]+i6*B.dummy[1]*C.dummy[1]+i7*B.dummy[1]*C.dummy[2]+i9*B.dummy[2]*C.dummy[0]+i10*B.dummy[2]*C.dummy[1]+i11*B.dummy[2]*C.dummy[2]$
There was no warning this time.
So can I confirm with you that reference level cannot be used in the interaction terms?
My final question is if there is any easy way to specify all two way interactions for dummy coded attributes? I certainly can write up all the interactions between levels of A, B and C but wonder if there is a command for this.
Many thanks,
Yuanyuan