Design with alternative specific attributes

This forum is for posts covering broader stated choice experimental design issues.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Design with alternative specific attributes

Postby Ellen_2527 » Wed May 14, 2025 12:45 pm

Hello,
I would greatly appreciate some direction on the best approach regarding the following design, please.

Three alternatives: two injectables (4 different modes of administration, two of which are provided by clinicians Who=1) and one oral treatment (self admin Who=0)
Which of the following specification options is correct, considering the following:
1) Pain, Redness, Nodules are not applicable for orals (i.e., No pain, No redness, No nodules). These are applicable to injectables only: mild, moderate, severe
2) General side effects are applicable to both orals and injectables (share the same levels)
3) We want half of the choice tasks to show a frequency of "4" and half a frequency of "5". 4 and 5 are frequencies only relevant to orals (daily, weekly)
4) We will implement a two step approach i.e., if orals are chosen in step 1, then respondents will be "forced" to pick one of the injectables in step 2.
5) Priors were produced from a pilot study

Thank you in advance!

Option 1 :
Design;
;alts = alt1, alt2, sq
;rows = 16
;eff = (mnl,d)
;cond:
if(alt1.Mode=4, alt1.Who=1),
if(alt2.Mode=4, alt2.Who=1),

if(alt1.Mode=3, alt1.Who=1),
if(alt2.Mode=3, alt2.Who=1)

; alg = sc
;model:
U(alt1)= b1[-0.04] * Mode[1,2,3,4]+
b2[0.4] * Freq[0,1,2] +
b3[-0.1] * Who[0,1]+
b4[-0.3] * Pain[1,2,3] +
b5[0.1] * Red[1,2,3] +
b6[-0.07] * Nod[1,2,3,4] +
b7[-0.06] * Gen[0,5,10]/

U(alt2)= b1 * Mode +
b2 * Freq +
b3 * Who+
b4 * Pain+
b5 * Red+
b6 * Nod+
b7 * Gen/

U(sq) = b8[0.4] * FreqSq[4,5] +
b7 * Gen

$

Option 2 (to show balanced levels for Gen of orals vs. injectables ?)
Design;
;alts = alt1, alt2, sq
;rows = 16
;eff = (mnl,d)
;cond:
if(alt1.Mode=4, alt1.Who=1),
if(alt2.Mode=4, alt2.Who=1),

if(alt1.Mode=3, alt1.Who=1),
if(alt2.Mode=3, alt2.Who=1)

; alg = sc
;model:
U(alt1)= b1[-0.04] * Mode[1,2,3,4]+
b2[0.4] * Freq[0,1,2] +
b3[-0.1] * Who[0,1]+
b4[-0.3] * Pain[1,2,3] +
b5[0.1] * Red[1,2,3] +
b6[-0.07] * Nod[1,2,3,4] +
b7[-0.06] * Gen[0,5,10]/

U(alt2)= b1 * Mode +
b2 * Freq +
b3 * Who+
b4 * Pain+
b5 * Red+
b6 * Nod+
b7 * Gen/

U(sq) = b8[0.4] * FreqSq[4,5] +
b9[-0.06] * GenSq[0,5,10]/

$

Option 3
Design;
;alts = alt1, alt2, sq
;rows = 16
;eff = (mnl,d)
;cond:
if(alt1.Mode=5, alt1.Who=1),
if(alt2.Mode=5, alt2.Who=1),

if(alt1.Mode=4, alt1.Who=1),
if(alt2.Mode=4, alt2.Who=1)

;model:
U(alt1)= b1 * Mode[2,3,4,5] +
b2 * Freq[2,3,4,5] +
b3 * Who[1,2]+
b4 * Pain[2,3,4] +
b5 * Red[2,3,4] +
b6 * Nod[2,3,4,5] +
b7[-0.0001] * Gen[0,5,10]/

U(alt2)= b1 * Mode+
b2 * Freq +
b3 * Who+
b4 * Pain+
b5 * Red+
b6 * Nod+
b7 * Gen/

U(sq) = b1 * ModeSq[1]+
b2 * FreqSq[1] +
b3 * WhoSq[2]+
b4 * PainSq[1]+
b5 * RedSq[1]+
b6 * NodSq[1]+
b7 * GenSq[0,5,10]
$
Ellen_2527
 
Posts: 1
Joined: Mon May 12, 2025 7:21 pm

Re: Design with alternative specific attributes

Postby Michiel Bliemer » Thu May 22, 2025 12:08 am

It is very difficult for me to match your descriptions with the variables in your utility function because you did not put any comments in your script.

So I understand you have something like:
;alts = injectable1*, injectable2*, oral

First of all, you need to use dummy or effects coding for categorical variables. So should not use:
b1[-0.3] * pain[1,2,3]

Instead, you need to use something like
b1.dummy[-0.3|-0.6] * pain[1,2,0] ? 0=mild (base), 1=moderate, 2=severe

where the first prior (-0.3) reflects the utility of level 1 (moderate) relative to base level 0 (mild), and the second prior (-0.6) reflects the level for level 2 (severe) relative to base level 0 (mild). So you need to dummy code your data when you estimate parameters from your pilot study.

Similarly, you need to use
b3.dummy[..] * who[1,0] ? 0=self (base), 1=clinician

Secondly, I suggest you use the default swapping algorithm (so remove ;alg = sc), which will maintain attribute level balance such that you will have equal appearances of 4 and 5.

I think that Option 2 is correct. If you want an alternative-specific coefficient for Gen but use the same levels, then you can simply specify b9[-0.6] * Gen in Option 2.
Option 3 would not make sense if pain etc are not attributes of oral; so then they should not appear in the utility function of the oral alternative.

Further, you need to add an alternative-specific constant for oral, so it would be:
U(oral) = b10 + b8[0.4] * FreqOral[4,5] + b9[-0.06]* Gen

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


Return to General questions about choice experiments

Who is online

Users browsing this forum: No registered users and 5 guests

cron