Question on efficient design and interaction effect

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Question on efficient design and interaction effect

Postby bpaudel » Fri Apr 16, 2021 10:31 am

Hi,
I am designing a choice experiment for my research project. I want to use efficient design to generate choice sets for my choice experiment. I am thinking to generate 6 blocks with a total of 36 choice sets and include 3 alternatives (Option A, Option B and Neither) in a choice set.
Regarding the attributes and levels, I have 5 attributes (Price, grass-finished, carbon-friendly, humanely raised and traceability) with their levels mentioned below:
Price($/lb): $2.5, $5, $7.5, $10
Grass-finished: Yes, No
Carbon-friendly: Yes, No
Humanely raised: Yes, No
Traceability: USDA label, Blockchain, No label

Dummies in design:
Grass-finished (Yes)=1, Grass-finished (No)=0
Carbon-friendly (Yes)=1, Carbon-friendly (No)=0
Humanely raised (Yes)=1, Humanely raised (No)=0
USDA label of traceability=2, Blockchain traceability=1, No label=0

Design
;alts= optA*, optB*, Neither
;rows=36
;eff=(mnl,d, mean)
;block=6
;alg= mfederov
;model:
U(optA) = b1 [(n, -3.4253, 0.7711)] * price[1.99, 3.49, 4.99, 6.49]
+ b2.dummy[(n, 0.2843, 0.537)]* Grassfinished[1, 0]
+ b3.dummy[(n, 0.5362, 0.8788)]* Carbonfriendly[1, 0]
+ b4.dummy[(n, 0.1193, 0.022)]* Humanelyraised[1, 0]
+ b5.dummy[(n, 3.3897, 0.2018)|(n, 2.4182, 0.2467)] * Traceability[2, 1, 0] /
U(optB) = b1 * price
+ b2 * Grassfinished
+ b3 * Carbonfriendly
+ b4 * Humanelyraised
+ b5 * Traceability /
U(Neither) = b0 [(n, -3.5339, 0.566)]
$



Questions/Concerns:
• In addition to main effects, I also want to see the interaction effects of above-mentioned attributes during analysis. Do I need to incorporate interaction dummy in the model here or I can examine interaction effects using above mentioned model?
• Are there any issues in the model?
I kindly request you to provide insights on above mentioned concerns.

With regards,
bpaudel
bpaudel
 
Posts: 18
Joined: Wed Apr 17, 2019 12:41 am

Re: Question on efficient design and interaction effect

Postby Michiel Bliemer » Fri Apr 16, 2021 11:36 am

There is 1 major issue, namely your prior for price is too large, multiplying price levels with -3.4 leads to very negative values and therefore choice probabilities for Neither with be near 100%. I do not know where -3.4 came from, but please use an appropriate value. If it came out of a pilot study, please use the exact same coding as you used in model estimation. If you got it from the literature, please make sure to make an appropriate currency conversion.

A minor issue is the number of draws. By default Ngene will take 200 Halton draws, but with 7 Bayesian priors this is not enough. I suggest using ;bdraws = gauss(3), which does 3^7 = 2178 draws, or use something like ;bdraws = sobol(2000).

Using a design with 36 rows, you should be able to estimate all possible interaction effects after data collection, but if you want to be sure and optimise for estimating interaction effects, you can include them in your utility specification, e.g. ... + b6[0] * Humanelyraised.dummy[1] * Traceability.dummy[2] + ... Note that there can be make a lot of different interaction effects with dummy coded attributes so you may want to choose the ones that you expect to be most relevant.

Michiel
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm

Re: Question on efficient design and interaction effect

Postby bpaudel » Fri Apr 16, 2021 2:17 pm

Thank you for pointing those issues. I have revised my priors looking into the literature.

The revised Ngene syntnx is,

Design
;alts= optA*, optB*, Neither
;rows=36
;eff=(mnl,d, mean)
;block=6
;alg= mfederov
;bdraws=gauss(3)
;model:
U(optA) = b1 [(n, -0.2395, 0.103)] * price[2.5, 5, 7.5, 10]
+ b2.dummy[(n, 0.2843, 0.537)]* Grassfinished[1,0]
+ b3.dummy[(n, 0.0595, 0.056)]* Carbonfriendly[1,0]
+ b4.dummy[(n, 0.1193, 0.022)]* Humanelyraised[1, 0]
+ b5.dummy[(n, 0.0515, 0.032)|(n, 0.0415, 0.033)] * Traceability[2, 1, 0] /
U(optB) = b1 * price
+ b2 * Grassfinished
+ b3 * Carbonfriendly
+ b4 * Humanelyraised
+ b5 * Traceability /
U(Neither) = b0 [(n, -3.5339, 0.566)]
$

Please let me know if there is still any concern.

With regards,
bpaudel
bpaudel
 
Posts: 18
Joined: Wed Apr 17, 2019 12:41 am

Re: Question on efficient design and interaction effect

Postby Michiel Bliemer » Fri Apr 16, 2021 2:52 pm

The candidate set may be quite large, which would make the mfederov algorithm quite slow, so you could choose to restrict the candidate set to 2000 choice tasks.
Further, price will not be attribute level balanced, I usually include some contraints to ensure some degree of level balance. For dummy coded attributes this is not necessary.

Design
;alts= optA*, optB*, Neither
;rows=36
;eff=(mnl,d, mean)
;block=6
;alg= mfederov(candidates = 2000)
;bdraws=gauss(3)
;model:
U(optA) = b1 [(n, -0.2395, 0.103)] * price[2.5, 5, 7.5, 10](6-12,6-12,6-12,6-12)
+ b2.dummy[(n, 0.2843, 0.537)]* Grassfinished[1,0]
+ b3.dummy[(n, 0.0595, 0.056)]* Carbonfriendly[1,0]
+ b4.dummy[(n, 0.1193, 0.022)]* Humanelyraised[1, 0]
+ b5.dummy[(n, 0.0515, 0.032)|(n, 0.0415, 0.033)] * Traceability[2, 1, 0] /
U(optB) = b1 * price
+ b2 * Grassfinished
+ b3 * Carbonfriendly
+ b4 * Humanelyraised
+ b5 * Traceability /
U(Neither) = b0 [(n, -3.5339, 0.566)]
$

Michiel
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm

Re: Question on efficient design and interaction effect

Postby bpaudel » Fri Apr 16, 2021 3:06 pm

Thank you so much for your help.

With regards,
bpaudel
bpaudel
 
Posts: 18
Joined: Wed Apr 17, 2019 12:41 am

Re: Question on efficient design and interaction effect

Postby bpaudel » Sat Apr 17, 2021 5:17 am

Hi,
I am just curious how do we do balancing of attribute levels in the ngene design. Can you please explain how to did you put (6-12, 6-12, 6-12, 6-12) for balancing price levels?

With regards,
bpaudel
bpaudel
 
Posts: 18
Joined: Wed Apr 17, 2019 12:41 am

Re: Question on efficient design and interaction effect

Postby Michiel Bliemer » Sat Apr 17, 2021 8:28 am

With 36 rows and price having 4 levels, the attribute would be attribute level balanced if each level appears exactly 9 times within the design. Therefore, the range should be around 9. I tried 8-10 but that was too strict, Ngene was not able to find a design. It worked well with 6-12.

Michiel
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm

Re: Question on efficient design and interaction effect

Postby bpaudel » Sat Apr 17, 2021 1:26 pm

Thank you for explaining the process.

With regards,
bpaudel
bpaudel
 
Posts: 18
Joined: Wed Apr 17, 2019 12:41 am

Re: Question on efficient design and interaction effect

Postby bpaudel » Thu Apr 22, 2021 11:59 am

Hi,
I want to run an optimal orthogonal design in NGene using the attributes and levels mentioned below. I am new to optimal orthogonal designs in NGene. There is slight revision in attributes and levels.

Price ($/lb): $2.5, $5, $7.5, $10
Feedlot: Grass-finished, Grain fed, No label
Carbon-friendly: Yes, No label
Humanely raised: Yes, No label
Traceability: Blockchain traceable, No label

Dummies:

Feedlot: Grass-finished =2, Grain-fed = 1, No label =0

Carbon-friendly: Yes = 1, No label =0

Humanely raised: Yes =1, No label =0

Traceability: Blockchain traceable =1, No label=0

Looking into the manual, I have the code as below:
Design
;alts= optA*, optB*, Neither
;rows=36
;orth=ood
;block=4
;bdraws=gauss(3)
;model:
U(optA) = b1[0]* price[2.5, 5, 7.5, 10](6-12,6-12,6-12,6-12)
+ b2.dummy[0|0]*Feedlot[2, 1,0]
+ b3.dummy[0]*Carbonfriendly[1,0]
+ b4.dummy[0]*Humanelyraised[1, 0]
+ b5.dummy[0]* Traceability[1, 0] /
U(optB) = b1* price
+ b2 * Feedlot
+ b3 * Carbonfriendly
+ b4 * Humanelyraised
+ b5 * Traceability /
U(Neither) = b0 [(n, -3.5339, 0.566)]
$

Questions:
• Do we need priors for optimal orthogonal design? I have priors listed from previous literatures.
• Are there any issues in the design?

With regards,
bpaudel
bpaudel
 
Posts: 18
Joined: Wed Apr 17, 2019 12:41 am

Re: Question on efficient design and interaction effect

Postby Michiel Bliemer » Thu Apr 22, 2021 1:26 pm

Optimal orthogonal designs do not account for prior information, cannot avoid dominant alternatives, and does not account for the optout alternative.

The syntax would be:

Design
;alts= optA, optB
;rows=36
;orth=ood
;block=4
;model:
U(optA) = b1[0]* price[2.5, 5, 7.5, 10]
+ b2.dummy[0|0]*Feedlot[2, 1,0]
+ b3.dummy[0]*Carbonfriendly[1,0]
+ b4.dummy[0]*Humanelyraised[1, 0]
+ b5.dummy[0]* Traceability[1, 0] /
U(optB) = b1* price
+ b2 * Feedlot
+ b3 * Carbonfriendly
+ b4 * Humanelyraised
+ b5 * Traceability
$

Alternatively, you could generate a D-efficient design with near-zero priors, which can remove dominant alternatives and account for the optout alternative.

Michiel
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm


Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 9 guests