Page 1 of 1
Efficient Designs

Posted:
Wed Nov 13, 2024 10:33 pm
by AnnaChi
Hello,Professor, I'm new here and I'd like to ask a question about D-efficient design:
I currently have five attributes, including three policy attributes(every attribute have two levels:improve and status quo) ,one policy effect(which have two levels:minor improvement and major improvement) and one payment attribute(50,100,200yuan). The specific code is as follows.
- Code: Select all
design
;alts = alt1*, alt2*
;rows=12
;block=2
;eff=(mnl,d)
;con
;model:
U(alt1)=b2.dummy[0.0001]*A[1,0]?0=status quo(base),1=improment
+b3.dummy[0.0001]*B[1,0]?0=status quo(base),1=improment
+b4.dummy[0.0001]*C[1,0]?0=status quo(base),1=improment
+b5.dummy[0.0001]*D[1,0]?0=minor improment(base),1=major improment
+b6.dummy[-0.0001|-0.0001]*E[1,2,0]?/
U(alt2)=b2.dummy*A+b3.dummy*B+b4.dummy*C+b5.dummy*D+b6.dummy*E
$
I decided to generate 12 scenarios and then divide them into two parts, but one of the choice set is inconsistent which have no policy(three policy attributes are status quo) while pilicy effect is major improvement. How should I modify this situation?
Anna
Re: Efficient Designs

Posted:
Fri Nov 15, 2024 1:34 pm
by Michiel Bliemer
I am not exactly sure what you mean with "inconsistent", but perhaps you mean to impose constraints?
Something like:
;cond:
if(alt1.A=0, alt1.D=1)
Otherwise, please reformulate your question as I do not quite understand what you are asking.
Michiel
Re: Efficient Designs

Posted:
Fri Nov 15, 2024 5:34 pm
by AnnaChi
Dear professor
I am sorry for my unclear expression. My problem is that after I ran the choice set with the above code, I realized that one of the choice sets doesn't match reality. That is, the levels of policy attributes are all status quo, but the level of policy effect is major improvement , which defies normal logic. I would like to ask you how to add constraints to avoid this situation.
Anna
Re: Efficient Designs

Posted:
Fri Nov 15, 2024 6:06 pm
by Michiel Bliemer
Ok, then my answer was correct. You need to impose constraints to create realistic .
With the default swapping algorithm, you can use if-then constraints in the ;cond property.
With the modified Federov algorithm, you can use reject constraints in the ;reject property.
I refer to the manual for examples of such constraints. Let me know if you need further help in formulating your constraints.
Michiel
Re: Efficient Designs

Posted:
Mon Dec 02, 2024 1:10 am
by AnnaChi
Michiel Bliemer wrote:Ok, then my answer was correct. You need to impose constraints to create realistic .
With the default swapping algorithm, you can use if-then constraints in the ;cond property.
With the modified Federov algorithm, you can use reject constraints in the ;reject property.
I refer to the manual for examples of such constraints. Let me know if you need further help in formulating your constraints.
Michiel
Dear professor,
I have added constraints to codes in order to get the desired results.Is it correct for me to use the following command for efficient design? (2 alternatives and 1 exit option)
- Code: Select all
design
;alts = alt1*, alt2*
;rows=12
;block=2
;eff=(mnl,d)
;cond:
If(alt1.A+alt1.B=0,alt1.C=1),
If(alt1.A+alt1.C=0,alt1.B=1),
If(alt1.C+alt1.B=0,alt1.A=1),
If(alt2.A+alt2.B=0,alt2.C=1),
If(alt2.A+alt2.C=0,alt2.B=1),
If(alt2.C+alt2.B=0,alt2.A=1),
If(alt1.A+alt1.B+alt1.C>alt2.A+alt2.B+alt2.C,alt1.D>alt2.D),
If(alt1.A+alt1.B+alt1.C<alt2.A+alt2.B+alt2.C,alt1.D<alt2.D)
;model:
U(alt1)=b2.dummy[0.0001]*A[1,0]?0=status quo(base),1=improment
+b3.dummy[0.0001]*B[1,0]?0=status quo(base),1=improment
+b4.dummy[0.0001]*C[1,0]?0=status quo(base),1=improment
+b5.dummy[0.0001]*D[1,0]?0=minor improment(base),1=major improment
+b6.dummy[-0.0001|-0.0001]*E[1,2,0]?/
U(alt2)=b2.dummy*A+b3.dummy*B+b4.dummy*C+b5.dummy*D+b6.dummy*E
$
But the result I obtained is D-error=0.646891.Is this error too large? If I reduce the number of constraints, then I will not get the choice set I want. Or can you tell me that I am doing the right thing?
Anna
Re: Efficient Designs

Posted:
Mon Dec 02, 2024 4:19 pm
by Michiel Bliemer
The D-error is fine, so I do not see an issue.
While 12 rows is sufficient to estimate your model, you could consider increasing the number of rows. If you do, Ngene may struggle to find choice tasks without dominant alternatives using the default swapping algorithm. You could consider using the modified Federov algorithm ;alg = mfederov and replace your conditional constraints with reject constraints. For example:
;reject:
alt1.A+alt1.B=0 and alt1.C=0,
etc.
Michiel
Re: Efficient Designs

Posted:
Mon Dec 02, 2024 11:05 pm
by AnnaChi
Michiel Bliemer wrote:The D-error is fine, so I do not see an issue.
While 12 rows is sufficient to estimate your model, you could consider increasing the number of rows. If you do, Ngene may struggle to find choice tasks without dominant alternatives using the default swapping algorithm. You could consider using the modified Federov algorithm ;alg = mfederov and replace your conditional constraints with reject constraints. For example:
;reject:
alt1.A+alt1.B=0 and alt1.C=0,
etc.
Michiel
Thank you for your advice . I would like to ask you why 12 rows is not perfect for my model?
Anna
Re: Efficient Designs

Posted:
Tue Dec 03, 2024 8:51 am
by Michiel Bliemer
With more rows you have more variation in the data and you can estimate more complex utility functions after data collection, such as nonlinear effects or interaction effects. The minimum number of rows needed is (6 parameters)/(2 alternatives - 1) = 6, so 6 rows is enough to estimate the model and I generally recommend multiplying this number with at least 2 or 3 to get sufficient variation in the data. So 12 is sufficient, but I probably would prefer 18. More rows is never an issue.
Michiel
Re: Efficient Designs

Posted:
Tue Dec 03, 2024 12:57 pm
by AnnaChi
Michiel Bliemer wrote:With more rows you have more variation in the data and you can estimate more complex utility functions after data collection, such as nonlinear effects or interaction effects. The minimum number of rows needed is (6 parameters)/(2 alternatives - 1) = 6, so 6 rows is enough to estimate the model and I generally recommend multiplying this number with at least 2 or 3 to get sufficient variation in the data. So 12 is sufficient, but I probably would prefer 18. More rows is never an issue.
Michiel
Thank you for your help. I have learned a lot from you!
Anna