Page 1 of 1

Issues with adding constraints to a d-efficient design

PostPosted: Fri Oct 13, 2023 8:28 pm
by tomosrobinson
Hi everyone,

I'm working on a DCE in the area of health economics, specifically in relation to the provision of eye services. I haven't designed a DCE for a little while, so am a little rusty!

A little bit of background about the DCE. We have a budget for approximately 700 online respondents. We have five attributes (Probability of False Negative, Probability of False Positive, Time to Urgent Referral, Time to Routine Referral and Cost). Following consultation with some clinicians on the project, the attributes have the following levels:

1. Probability of False Positive = (1/100, 5/100, 10/100, 25/100, 50/100)
2. Probability of False Negative = (1/100, 5/100, 10/100, 15/100, 20/100)
3. Time to Urgent Referral = (24 Hours, 36 Hours, 48 Hours)
4. Time to Routine Referral = (24 Hours, 36 Hours, 48 Hours, 5 Days, 14 Days)
5. Cost = (£0, £20, £30, £60, £150)

In line with the Ngene manual, I first generated a design without any constraints. I have also indicated the preference order of the attribute levels by using small near-zero prior values:

Code: Select all
design
;alts = opt1*, opt2*
;block = 12
? efficient design
;eff = (mnl, d)
;alg = mfederov
;rows = 108

;model:
U(opt1) = b1_FalsePos.dummy[0.004|0.003|0.002|0.001]    * FalsePos[0,1,2,3,4]
        + b2_FalseNeg.dummy[0.004|0.003|0.002|0.001]    * FalseNeg[0,1,2,3,4]
        + b3_TimeUrgent.dummy[0.002|0.001]              * TimeUrgent [0,1,2]
        + b4_TimeRoutine.dummy[0.004|0.003|0.002|0.001] * TimeRoutine [0,1,2,3,4]
        + b5_Cost.dummy[0.004|0.003|0.002|0.001]        * Cost[0,1,2,3,4]
/
U(opt2) = b1_FalsePos    * FalsePos
        + b2_FalseNeg    * FalseNeg
        + b3_TimeUrgent  * TimeUrgent
        + b4_TimeRoutine * TimeRoutine
        + b5_Cost        * Cost
$


However, I need to add in a set of constraints related to the 'Time to Urgent' and 'Time to Routine' attributes. Essentially, we
don't want to present any choices where the time to urgent referral is higher than the time to routine referral.

I've tried a few different ways of presenting this, using the 'restrict', 'require' (example below) and 'constraint' options, but with every iteration I'm getting an error...

Code: Select all
;require:
opt1.x3 < opt1.x4,
opt2.x3 < opt2.x4


I'm not sure if its something to do with the design itself or the stringency of the constraints? Or maybe both?!

If anyone has any suggestions that would be fantastic.

Best wishes,

Tom

Re: Issues with adding constraints to a d-efficient design

PostPosted: Sat Oct 14, 2023 9:10 am
by Michiel Bliemer
Ngene does not know what x3 and x4 are.

I believe that the appropriate constraints would be:

;reject:
opt1.TimeUrgent >= opt1.TimeRoutine,
opt2.TimeUrgent >= opt2.TimeRoutine

I generally only use ;require constraints to create scenario variables or a status quo alternative.

Michiel