Heterogeneous design w/ status quo and constraints

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Heterogeneous design w/ status quo and constraints

Postby jaein.seo » Sat Jun 30, 2018 3:27 am

Hello,

I'm writing to seek advice on the best approach.

To provide background on the attributes/levels:
Within the DCE, respondents will be presented with choices between “current treatment” and two unlabelled medicines.
1. Device : [0]device1, [1]device2, [2]device3, [3]device4 - dummy
2. Inj: [2]1 inj, [1]2 inj, [0]3 inj - dummy
3. Frequency: q4w, q2w, q1wk - continuous
4. Administration: [2]admin1, [1]admin2, [0]admin3 - dummy
5. Symptom1: [2]never, [1]some, [0]many - dummy
6. Symptom2: [2]never, [1]some, [0]many - dummy
7. Cost: 200, 300, 400, 500 - continuous

Requirements include as follows:
[*] Incorporating the survey responses into the design
The DCE contains two attributes with availability conditions on the levels. The benefit attributes are categorical improvements from the current treatment. For this purpose, respondents will be asked to state their current level. Only levels that are better than the current treatment level will be used to design the unlabelled medicines. Two questions will be asked prior to the DCE choice tasks to collect data on sfd and night which will be the reference level for status quo.
Respondents will be asked before the DCE: “How many symptoms do you currently experience?” Depending on their response, different levels are used in the DCE:
Response Level1 Level2 Level3
None None
Some None Some
Many None Some many

I'd like to have these #5 and #6 attributes dummy.

[*] Single design
3 levels of #5 att * 3 levels of #6 att = 9. This will create 9 different design but one with none sfd and none night is removed.

[*] Constraints
Device 2 and 3 can be only paired with [2]1 injection.

[*] Status quo
They will only present the reference level of the 2 attributes: symptom1 and symptom2.

Any feedback/advice would be greatly appreciated.

Code: Select all
Design
;alts (model1) = none*, trtA*, trtB*
;alts (model2) = none*, trtA*, trtB*
;alts (model3) = none*, trtA*, trtB*
;alts (model4) = none*, trtA*, trtB*
;alts (model5) = none*, trtA*, trtB*
;alts (model6) = none*, trtA*, trtB*
;alts (model7) = none*, trtA*, trtB*
;alts (model8) = none*, trtA*, trtB*

;rows = 36
;block= 3

;eff  = fish(mnl,d)
;alg  = mfederov(stop=total(600mins))

;require:
trtA.device = 2, trtA.injection = 2,
trtA.device = 3, trtA.injection = 2,
trtB.device = 2, trtB.injection = 2,
trtB.device = 3, trtB.injection = 2,

;fisher(Fish) = des1(model1[0.125]) + des2(model2[0.125]) +
                des3(model3[0.125]) + des4(model4[0.125]) + des5(model5[0.125]) +
                des6(model6[0.125]) + des7(model7[0.125]) + des8(model8[0.125])

;model(model1):
U(none)=b0[0]+
        b6[0.01]*symptom2none[1]  /

U(trtA)=
        b1.dummy[0|0|0]      *device   [0,1,2,3]  +
        b2.dummy[0.01|0.02]  *inj[0,1,2]    +
        b3      [0.01]*frequency[1,2,4] +
        b4.dummy[0.01|0.02]*admin[0,1,2] +
        b6.dummy[0.01]*symptom2[1,2] +
        b7[-0.0001]*cost[200,300,400,500] /

U(trtB)=
        b1.dummy[0|0|0]      *device   [0,1,2,3]  +
        b2.dummy[0.01|0.02]  *inj[0,1,2]    +
        b3      [0.01]*frequency[1,2,4] +
        b4.dummy[0.01|0.02]*admin[0,1,2] +
        b6.dummy[0.01]*symptom2[1,2] +
        b7[-0.0001]*cost[200,300,400,500]

;model(model2):
U(none)=b0[0]+
        b6[0]*symptom2none[0] /

U(trtA)=
        b1.dummy[0|0|0]      *device   [0,1,2,3]  +
        b2.dummy[0.01|0.02]  *inj[0,1,2]    +
        b3      [0.01]*frequency[1,2,4] +
        b4.dummy[0.01|0.02]*admin[0,1,2] +
        b6.dummy[0.01|0.02]*symptom2[0,1,2] +
        b7[-0.0001]*cost[200,300,400,500] /

U(trtB)=
        b1.dummy[0|0|0]      *device   [0,1,2,3]  +
        b2.dummy[0.01|0.02]  *inj[0,1,2]    +
        b3      [0.01]*frequency[1,2,4] +
        b4.dummy[0.01|0.02]*admin[0,1,2] +
        b6.dummy[0.01|0.02]*symptom2[0,1,2] +
        b7[-0.0001]*cost[200,300,400,500]

;model(model3):
U(none)=b0[0]+
        b5[0.01]*symptom1none[1] /

U(trtA)=
        b1.dummy[0|0|0]      *device   [0,1,2,3]  +
        b2.dummy[0.01|0.02]  *inj[0,1,2]    +
        b3      [0.01]*frequency[1,2,4] +
        b4.dummy[0.01|0.02]*admin[0,1,2] +
        b5.dummy[0.01]*symptom1[1,2] +
        b7[-0.0001]*cost[200,300,400,500] /

U(trtB)=
        b1.dummy[0|0|0]      *device   [0,1,2,3]  +
        b2.dummy[0.01|0.02]  *inj[0,1,2]    +
        b3      [0.01]*frequency[1,2,4] +
        b4.dummy[0.01|0.02]*admin[0,1,2] +
        b5.dummy[0.01]*symptom1[1,2] +
        b7[-0.0001]*cost[200,300,400,500]

;model(model4):
U(none)=b0[0] +
        b5[0.01]*symptom1none[1] +
        b6[0.01]*symptom2none[1]/

U(trtA)=
        b1.dummy[0|0|0]      *device   [0,1,2,3]  +
        b2.dummy[0.01|0.02]  *inj[0,1,2]    +
        b3      [0.01]*frequency[1,2,4] +
        b4.dummy[0.01|0.02]*admin[0,1,2] +
        b5.dummy[0.01]*symptom1[1,2] +
        b6.dummy[0.01]*symptom2[1,2] +
        b7[-0.0001]*cost[200,300,400,500] /

U(trtB)=
        b1.dummy[0|0|0]      *device   [0,1,2,3]  +
        b2.dummy[0.01|0.02]  *inj[0,1,2]    +
        b3      [0.01]*frequency[1,2,4] +
        b4.dummy[0.01|0.02]*admin[0,1,2] +
        b5.dummy[0.01]*symptom1[1,2] +
        b6.dummy[0.01]*symptom2[1,2] +
        b7[-0.0001]*cost[200,300,400,500]

;model(model5):
U(none)=b0[0] +
        b5[0.01]*symptom1none[1] +
        b6[0]*symptom2none[0] /

U(trtA)=
        b1.dummy[0|0|0]      *device   [0,1,2,3]  +
        b2.dummy[0.01|0.02]  *inj[0,1,2]    +
        b3      [0.01]*frequency[1,2,4] +
        b4.dummy[0.01|0.02]*admin[0,1,2] +
        b5.dummy[0.01]*symptom1[1,2] +
        b6.dummy[0.01|0.02]*symptom2[0,1,2] +
        b7[-0.0001]*cost[200,300,400,500] /

U(trtB)=
        b1.dummy[0|0|0]      *device   [0,1,2,3]  +
        b2.dummy[0.01|0.02]  *inj[0,1,2]    +
        b3      [0.01]*frequency[1,2,4] +
        b4.dummy[0.01|0.02]*admin[0,1,2] +
        b5.dummy[0.01]*symptom1[1,2] +
        b6.dummy[0.01|0.02]*symptom2[0,1,2] +
        b7[-0.0001]*cost[200,300,400,500]

;model(model6):
U(none)=b0[0] +
        b5[0]*symptom1none[0] /

U(trtA)=
        b1.dummy[0|0|0]      *device   [0,1,2,3]  +
        b2.dummy[0.01|0.02]  *inj[0,1,2]    +
        b3      [0.01]*frequency[1,2,4] +
        b4.dummy[0.01|0.02]*admin[0,1,2] +
        b5.dummy[0.01|0.02]*symptom1[0,1,2] +
        b7[-0.0001]*cost[200,300,400,500] /

U(trtB)=
        b1.dummy[0|0|0]      *device   [0,1,2,3]  +
        b2.dummy[0.01|0.02]  *inj[0,1,2]    +
        b3      [0.01]*frequency[1,2,4] +
        b4.dummy[0.01|0.02]*admin[0,1,2] +
        b5.dummy[0.01|0.02]*symptom1[0,1,2] +
        b7[-0.0001]*cost[200,300,400,500]

;model(model7):
U(none)=b0[0] +
        b5[0]*symptom1none[0] +
        b6[0.01]*symptom2none[1]/

U(trtA)=
        b1.dummy[0|0|0]      *device   [0,1,2,3]  +
        b2.dummy[0.01|0.02]  *inj[0,1,2]    +
        b3      [0.01]*frequency[1,2,4] +
        b4.dummy[0.01|0.02]*admin[0,1,2] +
        b5.dummy[0.01|0.02]*symptom1[0,1,2] +
        b6.dummy[0.01]*symptom2[1,2] +
        b7[-0.0001]*cost[200,300,400,500] /

U(trtB)=
        b1.dummy[0|0|0]      *device   [0,1,2,3]  +
        b2.dummy[0.01|0.02]  *inj[0,1,2]    +
        b3      [0.01]*frequency[1,2,4] +
        b4.dummy[0.01|0.02]*admin[0,1,2] +
        b5.dummy[0.01|0.02]*symptom1[0,1,2] +
        b6.dummy[0.01]*symptom2[1,2] +
        b7[-0.0001]*cost[200,300,400,500]

;model(model8):
U(none)=b0[0] +
        b5[0]*symptom1none[0] +
        b6[0]*symptom2none[0] /

U(trtA)=
        b1.dummy[0|0|0]      *device   [0,1,2,3]  +
        b2.dummy[0.01|0.02]  *inj[0,1,2]    +
        b3      [0.01]*frequency[1,2,4] +
        b4.dummy[0.01|0.02]*admin[0,1,2] +
        b5.dummy[0.01|0.02]*symptom1[0,1,2] +
        b6.dummy[0.01|0.02]*symptom2[0,1,2] +
        b7[-0.0001]*cost[200,300,400,500] /

U(trtB)=
        b1.dummy[0|0|0]      *device   [0,1,2,3]  +
        b2.dummy[0.01|0.02]  *inj[0,1,2]    +
        b3      [0.01]*frequency[1,2,4] +
        b4.dummy[0.01|0.02]*admin[0,1,2] +
        b5.dummy[0.01|0.02]*symptom1[0,1,2] +
        b6.dummy[0.01|0.02]*symptom2[0,1,2] +
        b7[-0.0001]*cost[200,300,400,500]$
jaein.seo
 
Posts: 7
Joined: Sat Nov 04, 2017 12:08 am

Re: Heterogeneous design w/ status quo and constraints

Postby Michiel Bliemer » Sat Jul 07, 2018 11:07 am

This is a long question and I am not sure what you are exactly trying to do, but my first observation is that your constraints are probably not correctly specified.

You require trtA.device = 2 but at the same time trtA.device = 3, which is contradictory. Perhaps you are looking for if-then constraints? Then you need to use the ;cond command, I refer to the manual.
Further, you need to refer to the specific models in each of the constraints, e.g. model1.trtA.device. Also, you need to remove the final comma.

I think you are correct in using the ;fisher command in this case, but the utility functions are not properly example, dummy coding for symptom needs to be consistent across all utility specifications, it cannot be that in some cases it has two levels and in other cases it has three levels. You should only use one attribute called 'symptom' across all alternatives and models, e.g. U(none) = b0[0] + b6.dummy[0.01|0.02]*symptom[0,1,2], etc. If only certain levels can occur for certain models and alternatives then you need to impose constraints.

Note that the last level in the syntax refers to the reference level of dummy coded variables.

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


Return to Ngene

Who is online

Users browsing this forum: Google [Bot] and 1 guest

cron