Page 1 of 1

Minimum Number of Choice Tasks + Including Priors

PostPosted: Wed Aug 16, 2023 10:34 pm
by mabbott
Hi,

I recently ran a pilot study for my genetic testing DCE using the following experimental design:

Code: Select all
design
;alts = alt1*, alt2*, sq*
;rows = 36
;block = 3
;eff = (mnl, d)

;alg=mfederov(stop = noimprov(3600 secs))

;require:
sq.Diagnosis = 30,
sq.Visits = 10,
sq.Time = 24

;reject:
alt1.Time=6 and alt1.Visits=14,
alt2.Time=6 and alt2.Visits=14

;model :
U(alt1) = asca[0]
        + b1.dummy[0.1|0.2|0.3]    * Diagnosis[35,45,55,30] ? percentage chance of diagnosis
        + b2.dummy[-0.1|-0.2|-0.3] * Visits[6,10,14,2]        ? number of clinic visits
        + b3.dummy[-0.1|-0.2|-0.3] * Time[12,24,36,6]       ? months waiting for results
        + b4[-0.0001]              * Cost[500,2000,4000,8000](10-14,10-14,10-14,10-14)   ? cost in GBP
        /
U(alt2) = ascb[0]
        + b1                       * Diagnosis
        + b2                       * Visits
        + b3                       * Time
        + b4                       * Cost
        /
U(sq)   = b1                       * Diagnosis
        + b2                       * Visits
        + b3                       * Time
        + b4                       * Cost_sq[0]
$


I'm now wondering:

1) Whether I included an unnecessarily large number of choice tasks in my pilot study. I think the formula for the number of choice tasks is (J-1)*S >= K. So in this case it would be 2*S >= 18, where 18 is the number of parameters to be estimated (16 levels + 2 constants). Not sure if I have interpreted the number of parameters correctly.

2) How can I include the priors from my pilot study in the design, rather than the 'best guess' directional priors from before? I have the following coefficients from the pilot:

Diagnosis: 0.1060
Visits: - 0.0591
Wait: - 0.5019
Cost: - 0.0005

How can I update my design to include these priors from the pilot study?

Thanks!

Re: Minimum Number of Choice Tasks + Including Priors

PostPosted: Thu Aug 17, 2023 8:43 am
by Michiel Bliemer
You have 11 parameters in your model (K) and you have 3 alternatives (J), which means that the lower bound is K/(J-1) = 11/2 = 6 rows. To have sufficient variation in your data, I usually recommend at least 3 times as much, so 18. Having more rows is not a problem, 36 rows is fine. But if you prefer less rows, you could reduce it.

Preferably you would estimate all coefficients directly in exactly the same way as you write down the utility functions in Ngene. So that means that you estimate dummy coded coefficients as well as the constant. You seem to have estimated linear effects, which is fine, but that requires conversion to dummy coding. You should at least add the constant to model estimation.

To convert coefficients for linear effects with coefficients for dummy coded variables, you first compute the utility of each level. For example for diagnosis:
U(level 30) = 0.1060 * 30 = 3.18
U(level 35) = 3.71
U(level 45) = 4.77
U(level 55) = 5.83

Next, you need to ensure that the base level has 0 utility, so that means deducting 3.18 from all utilities:
U(level 30) = 0
U(level 35) = 0.53
U(level 45) = 1.59
U(level 55) = 2.65

These are now the dummy coded coefficients that you can add to Ngene:

b1.dummy[0.53|1.59|2.65] * Diagnosis[35,45,55,30]

You can do the same for "visits", but for "wait" your coefficient cannot be -0.5019 as this is too large relative to your attribute levels. Perhaps you used years instead of months in your coding when you estimated the model, e.g. 0.5, 1, 2, 3 instead of 6,12, 24, 36?

For "cost" you can directly add the coefficient,

b4[-0.0005] * Cost[500,2000,4000,8000](10-14,10-14,10-14,10-14)

Michiel

Re: Minimum Number of Choice Tasks + Including Priors

PostPosted: Thu Aug 17, 2023 8:59 pm
by mabbott
Hi Michiel,

Thanks very much for your response. I have re-run my design with 3 blocks of 8 choice tasks, and added priors to the attributes and constants.

The -0.5019 coefficient on the 'wait' attribute should have been -0.05019, I was just missing a zero...!

Thanks again for your help!

Michael