Undesired dominant alternatives in generated design

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Undesired dominant alternatives in generated design

Postby ChrisG » Tue Apr 25, 2023 12:48 am

Hi everyone, I will be conducting a choice experiment on job preferences in order to estimate how much wage individuals are willing to forgo to enjoy job amenities. Therefore, it's a willingness-to-pay design with the wage parameter (b1 below) as WTP denominator. Most importantly, we also want to estimate interaction effects between different attributes.
To plan a pilot I am using Ngene to generate an efficient design with 24 choice situations which will be presented to participants in blocks of six per participant.
Utility functions for the two alternatives are identical; priors for main effects are estimations based on the literature. Specifically, for categorical attribute B preferences are assumed to be 1>2>3>4, and for P 1>2>3, therefore the defined dummy priors in the code. "A" is a risk factor, therefore, generates disutility. Parameters for the interaction effects are completely unknown; therefore, the zeroes as priors for b51 to b102.

My problem is that when generating designs using the code below, I frequently get clearly dominant alternatives in the suggested choice situations.
To give an example, Ngene suggests the following choice situation where alt2 is clearly dominant:
alt1: W=75 / B=3 / P=1 / A=30
alt2: W=130 / B=2 / P=1 / A=30

Can you help/explain to me what I am doing/coding wrong?
I would highly appreciate it!

Code: Select all
Design
;alts = alt1, alt2
;rows = 24
;block = 4
;eff = (mnl, wtp(ref1))
;wtp = ref1(*/b1)
;model:
U(alt1) = b1[0.01] * W[75,100,115,130] + b2.dummy[0.3|0.2|0.1]* B[1,2,3,4]
+ b3.dummy[0.2|0.1] * P[1,2,3] + b4[-0.01] * A[30,45,60]
+ b51[0] * W*B.dummy[1] + b52[0] * W*B.dummy[2] + b53[0] * W*B.dummy[3]
+ b61[0] * W*P.dummy[1] + b62[0] * W*P.dummy[2]
+ b7[0]*W*A   
+ b811[0] * B.dummy[1]*P.dummy[1] + b812[0] * B.dummy[1]*P.dummy[2]
+ b821[0] * B.dummy[2]*P.dummy[1] + b822[0] * B.dummy[2]*P.dummy[2]
+ b831[0] * B.dummy[3]*P.dummy[1] + b832[0] * B.dummy[3]*P.dummy[2]
+ b91[0] * B.dummy[1]*A + b92[0] * B.dummy[2]*A + b93[0] * B.dummy[3]*A
+ b101[0] * P.dummy[1]*A + b102[0] * P.dummy[2]*A
               /
U(alt2) = b1 * W + b2.dummy * B + b3.dummy * P + b4 * A
+ b51 * W*B.dummy[1] + b52 * W*B.dummy[2] + b53 * W*B.dummy[3]
+ b61 * W*P.dummy[1] + b62 * W*P.dummy[2]
+ b7*W*A
+ b811 * B.dummy[1]*P.dummy[1] + b812 * B.dummy[1]*P.dummy[2]
+ b821 * B.dummy[2]*P.dummy[1] + b822 * B.dummy[2]*P.dummy[2]
+ b831 * B.dummy[3]*P.dummy[1] + b832 * B.dummy[3]*P.dummy[2]
+ b91 * B.dummy[1]*A + b92 * B.dummy[2]*A + b93 * B.dummy[3]*A
+ b101 * P.dummy[1]*A + b102 * P.dummy[2]*A
$
ChrisG
 
Posts: 6
Joined: Wed Mar 08, 2023 2:16 am

Re: Undesired dominant alternatives in generated design

Postby Michiel Bliemer » Tue Apr 25, 2023 9:53 am

You need to indicate that alt1 and alt2 are generic alternatives by adding an asterisk:

;alts = alt1*, alt2*

This tells Ngene to avoid dominant alternatives and also duplicates where profiles of alt1 and alt2 are merely swapped.

Note that you should not use ;wtp if the priors are not informative. In your case, b1 is an uninformative near-zero prior and therefore WTP is dividing by near-zero, which is an issue. I suggest simply optimising for the D-error as in the script below.

Code: Select all
Design
;alts = alt1*, alt2*
;rows = 24
;block = 4
;eff = (mnl, d)
;model:
U(alt1) = b1[0.01]              * W[75,100,115,130]
        + b2.dummy[0.3|0.2|0.1] * B[1,2,3,4]
        + b3.dummy[0.2|0.1]     * P[1,2,3]
        + b4[-0.01]             * A[30,45,60]
        + b51[0]                * W*B.dummy[1]
        + b52[0]                * W*B.dummy[2]
        + b53[0]                * W*B.dummy[3]
        + b61[0]                * W*P.dummy[1]
        + b62[0]                * W*P.dummy[2]
        + b7[0]                 * W*A   
        + b811[0]               * B.dummy[1]*P.dummy[1]
        + b812[0]               * B.dummy[1]*P.dummy[2]
        + b821[0]               * B.dummy[2]*P.dummy[1]
        + b822[0]               * B.dummy[2]*P.dummy[2]
        + b831[0]               * B.dummy[3]*P.dummy[1]
        + b832[0]               * B.dummy[3]*P.dummy[2]
        + b91[0]                * B.dummy[1]*A
        + b92[0]                * B.dummy[2]*A
        + b93[0]                * B.dummy[3]*A
        + b101[0]               * P.dummy[1]*A
        + b102[0]               * P.dummy[2]*A
        /
U(alt2) = b1                    * W
        + b2                    * B
        + b3                    * P
        + b4                    * A
        + b51                   * W*B.dummy[1]
        + b52                   * W*B.dummy[2]
        + b53                   * W*B.dummy[3]
        + b61                   * W*P.dummy[1]
        + b62                   * W*P.dummy[2]
        + b7                    * W*A   
        + b811                  * B.dummy[1]*P.dummy[1]
        + b812                  * B.dummy[1]*P.dummy[2]
        + b821                  * B.dummy[2]*P.dummy[1]
        + b822                  * B.dummy[2]*P.dummy[2]
        + b831                  * B.dummy[3]*P.dummy[1]
        + b832                  * B.dummy[3]*P.dummy[2]
        + b91                   * B.dummy[1]*A
        + b92                   * B.dummy[2]*A
        + b93                   * B.dummy[3]*A
        + b101                  * P.dummy[1]*A
        + b102                  * P.dummy[2]*A
$


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

Re: Undesired dominant alternatives in generated design

Postby ChrisG » Tue Apr 25, 2023 9:07 pm

Thank you Michiel, your answer was most helpful!
ChrisG
 
Posts: 6
Joined: Wed Mar 08, 2023 2:16 am


Return to Choice experiments - Ngene

Who is online

Users browsing this forum: Google [Bot] and 6 guests

cron