I am working on a design for a pretest with a status quo option and with 3 categorical attributes and one price attribute (4x3x3x6 levels). The status quo option does not vary across choice cards. It contains the base levels of the categorical attributes and a lowest price level, which is the only level not present in the other 2 alternatives.
I need about 8 choice cards, since K(9:16), depending on the model to be estimated, and generate a design with 18 draws and 2 blocks.
Since the number of levels is mixed, I have problems with level balance. For the last attribute - price, which is continuous and with 6 levels - the differences between the levels are small, so level balance gets less important. But for the first attribute, which is effects coded, level balance is a problem. However, I want to estimate parameters for the base levels too and would therefore prefer to use effects coding.
- Code: Select all
Design
;alts = alt1*, alt2*, SQ
;rows = 18
;block = 2
;bdraws = gauss(2)
;eff = (mnl,d,mean)
;alg = mfederov(candidates=20)
;require:
SQ.TS=3,
SQ.AS=2,
SQ.US=2
;model:
U(alt1) = t.effects[(u,0,1)|(u,0,0.5)|(u,-0.5,0.5)] * TS[0,1,2,3] + a.effects[(u,0,1)|(u,0,0.5)] * AS[0,1,2] +
u.effects[(u,0,1)|(u,0,0.5)] * US[0,1,2] +
p[(u,-1,0)] * P[0.7,0.8,0.9,1,1.1,1.2]/
U(alt2) = t * TS + a * AS + u * US + p * P/
U(SQ) = const[(u,0,1)] + t * TS + a * AS + u * US + p * Psq[0.6]$
I have several issues with the above design:
1. Ngene hangs up when I include more than 20 candidates for mfederov, finding a design is obviously difficult in this case. Is using 20 candidates ok?
2. Should I stay with the coding I used for the pretest also in the main survey?
3. I do not have much information on the priors, but some on the signs and the possible rankings of levels. Are the priors I specified general enough?
4. If I understand correctly, it is recommended to do a pretest with an MNL-optimized design. Does this also hold for the main survey design given the constraints included?
5. Is it appropriate to use 6 levels for the price attribute with the given narrow range? I have tried using 4 levels and 16 rows, but this leads to higher Derrors and more distorted level balance.
6. I would like to estimate interaction effects – with 18 rows I get for a model with one interaction effect Derror = 0.57 and for two interaction effects - Derror = 0.83. Do you recommend using the model with the two interaction effects, although it has greater Derror and the level balance is very bad? I tried imposing level balance constraints, but given the other model constraints Ngene is unable to find a design or hangs up. Is there another way to deal with the problem of having very bad level balance here?
I would appreciate any feedback from your side. Thanks very much in advance.
Nonka
Model with 1 interaction effect:
- Code: Select all
?De=0.57, level balance is more or less ok, not good, but not too bad, S=67 and Sbayesian=289
Design
;alts = alt1*, alt2*, SQ
;rows = 18
;block = 2
;bdraws = gauss(2)
;eff = (mnl,d,mean)
;alg = mfederov(candidates=20)
;require:
SQ.TS=3,
SQ.AS=2,
SQ.US=2
;model:
U(alt1) = t.effects[(u,0,1)|(u,0,0.5)|(u,-0.1,0.1)] * TS[0,1,2,3] + a.effects[(u,0,1)|(u,0,0.5)] * AS[0,1,2] +
u.effects[(u,0,1)|(u,0,0.5)] * US[0,1,2] +
p[(u,-1,0)] * P[0.7,0.8,0.9,1,1.1,1.2] +
int[(u,-1,1)]*TS.effects[1]*US.effects[0]/
U(alt2) = t * TS + a * AS + u * US + p * P +
int[(u,-1,1)]*TS.effects[1]*US.effects[0]/
U(SQ) = const[(u,0,1)] + t * TS + a * AS + u * US + p * Psq[0.6]$
Model with 2 interaction effects:
- Code: Select all
?De=0.83, level balance is bad for TS, S=78 and Sbayesian=383
Design
;alts = alt1*, alt2*, SQ
;rows = 18
;block = 2
;bdraws = gauss(2)
;eff = (mnl,d,mean)
;alg = mfederov(candidates=20)
;require:
SQ.TS=3,
SQ.AS=2,
SQ.US=2
;model:
U(alt1) = t.effects[(u,0,1)|(u,0,0.5)|(u,-0.1,0.1)] * TS[0,1,2,3] + a.effects[(u,0,1)|(u,0,0.5)] * AS[0,1,2] +
u.effects[(u,0,1)|(u,0,0.5)] * US[0,1,2] +
p[(u,-1,0)] * P[0.7,0.8,0.9,1,1.1,1.2] +
int1[(u,-1,1)]*TS.effects[1]*US.effects[0] +
int2[(u,-1,1)]*TS.effects[2]*US.effects[0]/
U(alt2) = t * TS + a * AS + u * US + p * P + int1*TS.effects[1]*US.effects[0] + int2*TS.effects[2]*US.effects[0]/
U(SQ) = const[(u,0,1)] + t * TS + a * AS + u * US + p * Psq[0.6]$