Page 1 of 1

Labelled Experimental design

PostPosted: Wed Feb 01, 2023 9:27 pm
by kjacob
Hello friends,

I am trying to generate a fractional labelled experimental design in Ngene and the alternatives I have a varying number of attributes and differing levels for the attributes.

Alt 1 - Oral
Alt 2 - Injection
Alt 3 - Vaginal ring
Alt 4 - Implant

I have 6 attributes:

1. Number of doses[/b]: Oral - (weekly or 1 Month); Injection - (2 months or 6 months); Vaginal ring - (1 Month or 3 months) and Implant (6 months or 12 months)

2. Effectiveness of HIV prevention: Oral (the weekly dose has an effectiveness of 80-90%, while the 1 month one has an effectiveness of 70-80%); Injection (the two months one has an effectiveness of 90-95%, while the 6 months one has an effectiveness of 85-90%); Vaginal ring (50-70%); Implant (the 6 months one has an effectiveness of 90-95%, while the 12 moths one has an effectiveness of 80-90%)

3. Prevents pregnancy: Oral (does not prevent pregnancy); Injection (the 2 month dose does not prevent pregnancy while the 6 months dose prevents pregnancy); Vaginal ring (the 1 month dose does not prevent pregnancy, the 3 month dose prevents pregnancy); Implant (the 6 month dose does not prevent pregnancy, there are two 12 month dose ones with one preventing pregnancy and one not)

4. Prevents STIs: Oral (NO - does not prevent STIs); Injection (NO - does not prevent STIs); Vaginal ring (the 1 month dose does not prevent STIs, while the 3 months dose prevents STIs); Implant (NO - does not prevent STIs);

5. Price (in KES): Oral (100,300,500); Injection (500,1000,1500); Vaginal ring (500,1000,1500); Implant (500,1000,1500)

6. Distribution point: All have three levels (Public hospital only, Public and private hospitals, Private retail pharmacy)

I have done the below experimental design but I am getting errors and a lot of warning signs.

Code: Select all
Design
;alts = alt1*, alt2*, alt3*, alt4*, none
;rows = 12
;fact
;model:
U(alt1) =       b2 *  ndose[0,1] + b3  *  effectiveness[0,1]  + b4 * distrib[0,1,2] + b5 *  price[500,1000,1500]                            /
U(alt2) =       b6 *  ndose[0,1] + b7  *  effectiveness[0,1]  + b4 * distrib[0,1,2] + b8 *  pregnancy[0,1] + b5 * price[500,1000,1500]    /
U(alt3) =       b9 * ndose[0,1] + b10  *  effectiveness[0,1]  + b4 * distrib[0,1,2] + b11 * pregnancy[0,1] + b12 * sti[0,1] + b5 * price[500,1000,1500]  /
U(alt4) =       b13 * ndose[0,1] + b14 *  effectiveness[0,1]  + b4 * distrib[0,1,2] + b15 * pregnancy[0,1] + b5 * price[500,1000,1500]    /
U(none) =       b1 

$


Kindly help

Re: Labelled Experimental design

PostPosted: Thu Feb 02, 2023 9:55 am
by Michiel Bliemer
Warnings are fine, they are not errors. In your case they mainly indicate that dominance and repetition checks cannot be performed because you have a labelled experiment. The asterisk (*) should only be used to indicate unlabelled alternatives.

Instead of a random fractional factorial design, I would recommend an efficient design. You also need more rows. You should specify the utility function exactly as you would estimate them. So that means adding appropriate alternative-specific constants and using dummy coding for categorical variables. Your price levels for Oral are different from the ones you write in the text.

Note that you explain that doses and perfectly correlated with effectiveness, this means that one of these parameters cannot be estimated due to multicollinearity. You need to combine them into a single attribute, i.e. "1 week dose, 80-90% effective" and "1 month dose, 70-80% effectiveness). The issue arises with pregnancy, which also seems to be almost perfectly correlated with dose. And same for Prevent STIs. You are not allowing any variations in the data and therefore you will not be able to estimate your model. For example, you could allow that 1 month dose has 80-90% effectiveness, these are all hypothetical alternatives and as long as attribute level combinations are not entirely unrealistic you should try to vary as much as possible to allow identification of model parameters.

Think carefully about the utility functions you want to estimate, and make sure that all parameters are identifiable after you apply all the constraints across the attributes.

Re: Labelled Experimental design

PostPosted: Fri Feb 03, 2023 7:44 pm
by kjacob
Thank you very much for the advice.

I have re-examined the attributes and levels, and utility functions and done a factorial design as below that will be used for piloting then do an efficient design later.

Code: Select all
Design
;alts = oral, injec, ring, impl, none
;fact
;rows = 12
;model:
U(oral)  =  oral_asc  + oral1 * ndose[0,1] + oral2 * effectiveness[0,1]  + oral3 * pregnancy[0,1] + oral4 * stis[0,1] + oral5 * distrib[0,1,2] + oral6 * price[500,1000,1500] /
U(injec) =  injec_asc + injec1* ndose[0,1] + injec2* effectiveness[0,1]  + injec3* pregnancy[0,1] + injec4* stis[0,1] + injec5* distrib[0,1,2] + injec6* price[500,1000,1500] /
U(ring)  =  ring_asc  + ring1 * ndose[0,1] + ring2* effectiveness[0,1]   + ring3 * pregnancy[0,1] + ring4 * stis[0,1] + ring5 * distrib[0,1,2] + ring6 * price[500,1000,1500] /
U(impl)  =              impl1 * ndose[0,1] + impl2* effectiveness[0,1]   + impl3 * pregnancy[0,1] + impl4 * stis[0,1] + impl5 * distrib[0,1,2] + impl6* price[500,1000,1500]  /
U(none)  =  b1

$


Does this include the alternative specific constants appropriately?

Re: Labelled Experimental design

PostPosted: Sun Feb 05, 2023 9:04 am
by Michiel Bliemer
Yes the constants are correct.