Page 1 of 1

### Unbalanced attribute levels in the generated experiments wit

Posted: Sun May 08, 2022 8:40 pm
Unbalanced attribute levels in the generated experiments with conditions

Hi all, I am designing an SP experiment with two unlabeled alternatives with four attributes, A, B, C, and D. A and C are continuous, while B and D are both binary. Moreover, If B=0, C would be less than 20 and D would be 1. Then I found in the generated experiments, that the frequency of B=0 would be much lesser than that of B=1, which I think is not consistent with the reality. Can anyone give a hand and some clues about what really happened and how to fix it? Thanks.
The code is attached.
Code: Select all
`?SP testDesign;alts=alt1, alt2;rows=50;eff=(mnl,d);cond:if(alt1.B=0, alt1.C<20),if(alt2.B=0, alt2.C<20),if(alt1.B=0, alt1.D=1),if(alt2.B=0, alt2.D=1);model:U(alt1)=b1 * A[0:10:1] + b2 * B[0,1] + b3 * C[0:25:5] + b4 * D[0,1]/U(alt2)=b1 * A + b2 * B + b3 * C + b4 * D\$`

### Re: Unbalanced attribute levels in the generated experiments

Posted: Mon May 09, 2022 12:28 am
The fact that B=0 appears much less is because of your constraints. In particular your constraint if(altx.B=0, altx.D=1). Namely, The combination B=0 and D=0 is not allowed according to this constraint, so this removes B=0 from many choice tasks.

You can consider using the modified Federov algorithm, which allows imposing constraints on the number of times each attribute level must appear within the design. This algorithm only accepts reject constraints, so I have rewritten the conditional constraints to reject constraints. Note that imposing constraints of the number of times each attribute level must appear makes it much more difficult for Ngene to find a feasible design. I was able to run the syntax below, it took several minutes before Ngene could find a feasible design. The more you relax the constraints, the more efficient your design will be.

Code: Select all
`?SP testDesign;alts=alt1, alt2;rows=50;eff=(mnl,d);alg = mfederov;reject:alt1.B = 0 and alt1.C = 20,alt2.B = 0 and alt2.C = 20,alt1.B = 0 and alt1.D = 0,alt2.B = 0 and alt2.D = 0;model:U(alt1) = b1 * A[0,1,2,3,4,5,6,7,8,9,10](3-6,3-6,3-6,3-6,3-6,3-6,3-6,3-6,3-6,3-6,3-6)         + b2 * B[0,1](20-30,20-30)        + b3 * C[0,5,10,15,20,25](8-12,8-12,8-12,8-12,8-12,8-12)         + b4 * D[0,1](20-30,20-30)        /U(alt2) = b1 * A + b2 * B + b3 * C + b4 * D\$`

Michiel

### Re: Unbalanced attribute levels in the generated experiments

Posted: Thu May 12, 2022 12:42 am
Thanks Michiel, it really helps!!

### Re: Unbalanced attribute levels in the generated experiments

Posted: Thu May 12, 2022 1:13 am
One more question, how should the required appearance times for the level be decided? Any calculation method or just a rule of thump? Thanks.

### Re: Unbalanced attribute levels in the generated experiments

Posted: Thu May 12, 2022 8:49 am
You have 50 rows. If you have an attribute with 2 levels, then perfect balance will be that each level appears 25 times. So you could use (25,25) but that is too strict and Ngene will not be able to find a design. I relaxed it to (20-30,20-30). How far you need to relax depends on whether Ngene is able to find a design or not.

Michiel

### Re: Unbalanced attribute levels in the generated experiments

Posted: Thu May 12, 2022 10:58 am
I see. Thank you for your instruction, Michiel !!