Efficient Designs

This forum is for posts that specifically focus on the Windows desktop version of Ngene (i.e. all version 1.x releases).

Moderators: Andrew Collins, Michiel Bliemer, johnr

Post Reply
AnnaChi
Posts: 7
Joined: Sat Oct 19, 2024 12:10 pm

Efficient Designs

Post 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
Michiel Bliemer
Posts: 2039
Joined: Tue Mar 31, 2009 4:13 pm

Re: Efficient Designs

Post 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
AnnaChi
Posts: 7
Joined: Sat Oct 19, 2024 12:10 pm

Re: Efficient Designs

Post 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
Michiel Bliemer
Posts: 2039
Joined: Tue Mar 31, 2009 4:13 pm

Re: Efficient Designs

Post 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
AnnaChi
Posts: 7
Joined: Sat Oct 19, 2024 12:10 pm

Re: Efficient Designs

Post 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
Michiel Bliemer
Posts: 2039
Joined: Tue Mar 31, 2009 4:13 pm

Re: Efficient Designs

Post 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
AnnaChi
Posts: 7
Joined: Sat Oct 19, 2024 12:10 pm

Re: Efficient Designs

Post 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
Michiel Bliemer
Posts: 2039
Joined: Tue Mar 31, 2009 4:13 pm

Re: Efficient Designs

Post 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
AnnaChi
Posts: 7
Joined: Sat Oct 19, 2024 12:10 pm

Re: Efficient Designs

Post 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
Post Reply