Issues with adding constraints to a d-efficient design

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Issues with adding constraints to a d-efficient design

Postby tomosrobinson » Fri Oct 13, 2023 8:28 pm

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
tomosrobinson
 
Posts: 17
Joined: Tue Nov 17, 2020 2:36 am

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

Postby Michiel Bliemer » Sat Oct 14, 2023 9:10 am

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


Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 44 guests