To keep more control over the choice set and check whether there are any strange choice tasks, I suggest you do the following.
Step 1: Create and inspect candidate set
Code: Select all
design ? Context 1 Scenario A design
;alts = sq*, alt1*, alt2*,
;rows = 1500
;fact
;require: ? fixed reference level for status quo option
sq.type=0,
sq.emission=0,
sq.cost=700,
sq.time=90
? 0=type0, 1=type1, 2=type2, 3=type3
;reject:
?time for type1 is always equal to type0,which is 90
alt1.type=1 AND alt1.time = 105 OR alt1.time = 120 OR alt1.time = 135 OR alt1.time = 150,
alt2.type=1 AND alt2.time = 105 OR alt2.time = 120 OR alt2.time = 135 OR alt2.time = 150,
?time for type2 is always the highest
alt1.type=2 AND alt1.time <= alt2.time,
alt2.type=2 AND alt2.time <= alt1.time,
alt1.type=2 AND alt1.time = 90,
alt2.type=2 AND alt2.time = 90,
? time for type3 is always higher than type0
alt1.type=3 AND alt2.type=0 AND alt1.time <= alt2.time,
alt2.type=3 AND alt1.type=0 AND alt2.time <= alt1.time,
alt1.type=3 AND alt1.time = 90,
alt2.type=3 AND alt2.time = 90,
? time for type3 is always higher than type1
alt1.type=3 AND alt2.type=1 AND alt1.time <= alt2.time,
alt2.type=3 AND alt1.type=1 AND alt2.time <= alt1.time,
? emissions for type0 is the base level, so always 0
alt1.type=0 AND alt1.emission=10 OR alt1.emission=35 OR alt1.emission=60 OR alt1.emission=80 OR alt1.emission=100,
alt2.type=0 AND alt2.emission=10 OR alt2.emission=35 OR alt2.emission=60 OR alt2.emission=80 OR alt2.emission=100,
? emissions for type2 and type3 are always 100
alt1.type=2 AND alt1.emission=10 OR alt1.emission=35 OR alt1.emission=60 OR alt1.emission=80 OR alt1.emission=0,
alt1.type=3 AND alt1.emission=10 OR alt1.emission=35 OR alt1.emission=60 OR alt1.emission=80 OR alt1.emission=0,
alt2.type=2 AND alt2.emission=10 OR alt2.emission=35 OR alt2.emission=60 OR alt2.emission=80 OR alt2.emission=0,
alt2.type=3 AND alt2.emission=10 OR alt2.emission=35 OR alt2.emission=60 OR alt2.emission=80 OR alt2.emission=0,
? emissions for type1 range from 10% to 100%
alt1.type=1 AND alt1.emission=0,
alt2.type=1 AND alt2.emission=0,
? sq.type=0, don’t want a design that has three type0 option
alt1.type=0 AND alt2.type=0
;model:
U(alt1) = b0[(n,0.469650837,0.373433012)]
+ btype.dummy[(n,0.24,0.494067)|(n,0.610872,0.431096)|(n,0.231311,0.418886)]*type[1,2,3,0] ?the expected preference order: type2>type1>type3>type0; 0=type0, 1=type1, 2=type2, 3=type3
+ bemission[(n,0.004666,0.004099)]*emission[0,10,35,60,80,100]
+ bcost[(n,-0.0028,0.00054)]*cost[420,560,700,840,980]
+ btime[(n,-0.00998,0.006987)]*time[90,105,120,135,150]
/
U(alt2) = b0
+ btype*type
+ bemission*emission
+ bcost*cost
+ btime*time
/
U(sq) = btype*type
+ bemission*emission
+ bcost*cost
+ btime*time
$
Step 3: Generate a Bayesian efficient design using this candidate set.
Code: Select all
design ? Context 1 Scenario A design
;alts = sq*, alt1*, alt2*,
;rows = 36
;block= 12
;eff = (mnl,d,median) ? for context 2 I used ;eff = (mnl,d,mean) as 102 data collected
;bdraws = sobol(500)
;alg = mfederov (candidates=candidateset.ngd)
;require:
sq.type=0
;model:
U(alt1) = b0[(n,0.469650837,0.373433012)]
+ btype.dummy[(n,0.24,0.494067)|(n,0.610872,0.431096)|(n,0.231311,0.418886)]*type[1,2,3,0] ?the expected preference order: type2>type1>type3>type0; 0=type0, 1=type1, 2=type2, 3=type3
+ bemission[(n,0.004666,0.004099)]*emission[0,10,35,60,80,100] (3-36,3-36,3-36,3-36,3-36,3-36)
+ bcost[(n,-0.0028,0.00054)]*cost[420,560,700,840,980](4-36,4-36,4-36,4-36,4-36)
+ btime[(n,-0.00998,0.006987)]*time[90,105,120,135,150](4-36,4-36,4-36,4-36,4-36)
/
U(alt2) = b0
+ btype*type
+ bemission*emission
+ bcost*cost
+ btime*time
/
U(sq) = btype*type
+ bemission*emission_sq[0]
+ bcost*cost_sq[700]
+ btime*time_sq[90]
$
Michiel