Issues with adding constraints to a d-efficient design

This forum is for posts that specifically focus on the Windows desktop version of Ngene (i.e. all version 1.x releases).

Moderators: Andrew Collins, Michiel Bliemer, johnr

Post Reply
tomosrobinson
Posts: 19
Joined: Tue Nov 17, 2020 2:36 am

Issues with adding constraints to a d-efficient design

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

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

Post 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
Post Reply