Page 1 of 1

Dominance and blocking

PostPosted: Fri Aug 25, 2023 3:50 pm
by newdceuser
Hello

I am new to Ngene and am planning a DCE with 6 attributes, 1 attribute with 4 levels and 5 attributes with two levels, d efficient design (syntax below). I can run this syntax and get a design that I am reasonably happy with, however am concerned about the size of the design (quite small at 24 rows and 2 blocks). When trying to expand the design any bigger than this (e.g. 48 rows and 4 blocks) I receive the response re too many cases of dominance, too many constraints or not enough attributes or levels. Wondering if you can advise whether 24 rows and 2 blocks will likely be an issue - of if there is a way around this please!

Thanking you in advance for any help you can give!

Design
;alts = A*, B*, Neither
;rows =24
;block=2

;eff =(mnl,d)

? Add condition that if comparing targeted intervention and standard, targeted must cost more
;cond:
if(a.who=1 and b.who=0, a.cost>b.cost),
if(b.who=1 and a.who=0, a.cost<b.cost)

? Model mnl d-efficient design dummy coded categorical variables, priors not known so very small and right direction
;model:

U(A) = b1[-0.001]*cost[6,12,120,240]
+ b2.dummy[0.001]*who[1,0] ? all=0 (base) specific popn=1
+ b3.dummy[0.001]*diet[1,0] ? no change=0 improve=1
+ b4.dummy[0.001]*activ[1,0] ? no change=0 more active=1
+ b5.dummy[0.001]*well[1,0] ? no change=0 improve=1
+ b6.dummy[0.001]*grow[1,0] ? no change=0 healthier=1

/

U(B) = b1*cost[6,12,120,240]
+ b2*who[1,0]
+ b3*diet[1,0]
+b4*activ[1,0]
+b5*well[1,0]
+b6*grow[1,0]

$

Re: Dominance and blocking

PostPosted: Fri Aug 25, 2023 4:22 pm
by Michiel Bliemer
Since you are only estimating 6 coefficients (excluding the constant), 24 rows in the design should be enough. But if you would like to have more, then you need to switch to the modified Federov algorithm since it is more capable in handling very constrained design such as in your case (since your dominance constraints are quite strict). There exist more than 8,000 rows in total that satisfy all your constraints, so you can easily have more than 24 rows. See the script below.

Note that the modified Federov algorithm cannot handle ;cond constraints, so you need to rewrite them into ;reject constraints (please check that I converted them correctly). Also note that the modified Federov algorithm ignores attribute level balance, so you may want to include constraints on the number of times each attribute level appears. This is particularly important for numerical variables (in your case, cost), so I added the constraint that each level needs to appear a minimum of 8 times and a maximum of 16 times across the 48 rows (so on average 12 times, since 4*12 = 48).

Code: Select all
Design
;alts = A*, B*, Neither
;rows =48
;block=4
;eff =(mnl,d)
;alg = mfederov
;reject:
a.who = 1 and b.who = 0 and a.cost <= b.cost,
b.who = 1 and a.who = 0 and a.cost >= b.cost

? Model mnl d-efficient design dummy coded categorical variables, priors not known so very small and right direction
;model:

U(A) = b0[0]
     + b1[-0.001]      * cost[6,12,120,240](8-16,8-16,8-16,8-16)
     + b2.dummy[0.001] * who[1,0]            ? all=0 (base) specific popn=1
     + b3.dummy[0.001] * diet[1,0]           ? no change=0 improve=1
     + b4.dummy[0.001] * activ[1,0]          ? no change=0 more active=1
     + b5.dummy[0.001] * well[1,0]           ? no change=0 improve=1
     + b6.dummy[0.001] * grow[1,0]           ? no change=0 healthier=1
     /
U(B) = b0
     + b1 * cost[6,12,120,240](8-16,8-16,8-16,8-16)
     + b2 * who[1,0]
     + b3 * diet[1,0]
     + b4 * activ[1,0]
     + b5 * well[1,0]
     + b6 * grow[1,0]
$


Michiel

Re: Dominance and blocking

PostPosted: Thu Oct 26, 2023 3:53 pm
by newdceuser
Thanks for your help Michiel, I ran the pilot test with the design as originally provided (24 rows, 2 blocks) in 45 participants.

Five of the coefficients were stat sig in pilot testing, with the WHO coefficient looking a little unstable.

Issue now is when I add the priors to the syntax and run I am getting a very high S estimate. I am now concerned - although as mentioned all attributes bar WHO reached stat sig in the pilot. Syntax I am running is below - should I be concerned re these monster S estimates?

Thank you!
-------------------------------

Design
;alts = A*, B*, Neither
;rows =24
;block=2

;eff =(mnl,d)

? Add condition that if comparing targeted intervention and standard, targeted must cost more
;cond:
if(a.who=1 and b.who=0, a.cost>b.cost),
if(b.who=1 and a.who=0, a.cost<b.cost)


? Model mnl d-efficient design dummy coded categorical variables, priors included for all bar WHO - set to close to zero as pilot estimates unstable

U(A) = b1[-0.0014]*cost[6,12,120,240]
+ b2.dummy[0.01]*who[1,0] ? all=0 (base) specific popn=1
+ b3.dummy[0.62656]*diet[1,0] ? no change=0 improve=1
+ b4.dummy[0.95684]*activ[1,0] ? no change=0 more active=1
+ b5.dummy[0.56216]*well[1,0] ? no change=0 improve=1
+ b6.dummy[0.85977]*grow[1,0] ? no change=0 healthier=1

/

U(B) = b1*cost[6,12,120,240]
+ b2*who[1,0]
+ b3*diet[1,0]
+b4*activ[1,0]
+b5*well[1,0]
+b6*grow[1,0]


$

Re: Dominance and blocking

PostPosted: Thu Oct 26, 2023 5:52 pm
by Michiel Bliemer
All your sample size estimates are below 21, except for WHO, so there is no worry. Of course the sample size estimate for WHO is very large because its coefficient is very small, which indicates that this attribute may not be important for making a choice and picking up such a little effect would require a very large sample size.

Re: Dominance and blocking

PostPosted: Fri Oct 27, 2023 7:29 am
by newdceuser
Thanks Michiel.