Incorporating ASC into Bayesian Efficient Design
Posted: Wed May 11, 2022 11:10 pm
Hi there,
I am working on an unlabelled DCE study, which has previously been discussed on another thread in relation to its constraints (viewtopic.php?f=2&t=909)
We are investigating the general public's preferences for different types of public health intervention related to diet. We have six attributes. In each choice task two alternatives will be shown as well as a 'No Choice' option.
We now have pilot data from 157 individuals and are looking to use this information to generate a Bayesian efficient design for the main data collection.
In a previous study I was advised on this forum to use a maximum of 12 Priors and to use 2000 Sobol draws when generating a Bayesian design. I used this information and the MNL results from the pilot to generate the following syntax:
As you can see, I am thus far including 11 Bayesian Priors.
My main question is related to the inclusion of the attribute specific constant (ASC) for the 'No Choice' option. I have consulted the Ngene manual and looked at a couple of other posts on this forum but am still a little confused. I know I need to include this, but unsure exactly what is the best way to do it is?
Would I simply include something like this: U(NoChoice) = asc[(n,-1.168,0.230)] ? Or is there something else I need to include?
If so, do I also need to include the ;con command to specify that the constant needs to be considered when determining the efficiency of the design?
Also, do you think that 2000 Sobol Draws is the best way to go for this design? From reading other posts I'm aware I could also use the 'gauss(3)' option.
Finally, I should point out that I am aware that because of the number of constraints and Bayesian priors this design is going to take a long time to run. I plan on leaving it to run for a number of days.
Best wishes,
Tom
I am working on an unlabelled DCE study, which has previously been discussed on another thread in relation to its constraints (viewtopic.php?f=2&t=909)
We are investigating the general public's preferences for different types of public health intervention related to diet. We have six attributes. In each choice task two alternatives will be shown as well as a 'No Choice' option.
We now have pilot data from 157 individuals and are looking to use this information to generate a Bayesian efficient design for the main data collection.
In a previous study I was advised on this forum to use a maximum of 12 Priors and to use 2000 Sobol draws when generating a Bayesian design. I used this information and the MNL results from the pilot to generate the following syntax:
- Code: Select all
design
;alts = Alt_A*, Alt_B*, NoChoice
;rows = 180
;block = 15
;eff = (mnl,d,mean)
;bdraws = sobol(2000)
;cond:
if(Alt_A.Intervention = 7, Alt_A.Framing = 1),
if(Alt_A.Intervention = [1,2,3,4,5,6,7], Alt_A.Agency <> 3),
if(Alt_A.Intervention = [8,9,10,11,12], Alt_A.Agency <> 1),
if(Alt_B.Intervention = 7, Alt_B.Framing = 1),
if(Alt_B.Intervention = [1,2,3,4,5,6,7], Alt_B.Agency <> 3),
if(Alt_B.Intervention = [8,9,10,11,12], Alt_B.Agency <> 1)
;model:
U(Alt_A) = b1 + b2_Intervention.dummy[-0.050|-0.083|0.048|0.019|0.248|(n,0.437,0.248)|(n,-0.321,0.185)|0.042|0.090|0.153|(n,0.467,0.179)] * Intervention[2,3,4,5,6,7,8,9,10,11,12,1]
+ b3_Framing.dummy[(n,-0.189,0.080)|(n,0.200,0.076)] * Framing[2,3,1]
+ b4_Equity.dummy[(n,-0.261,0.092)|(n,0.031,0.105)] * Equity[2,3,1]
+ b5_Agency.dummy[-0.101|-0.062] * Agency[2,3,1]
+ b6_Value.dummy[(n,0.176,0.092)|(n,0.337,0.112)] * Value[2,3,1]
+ b7_Effectiveness.dummy[(n,0.515,0.093)|(n,1.171,0.142)] * Effectiveness[2,3,1]
+ b8_1_Equity_Agency_Interaction * Equity.dummy[1] * Agency.dummy[1]
+ b8_2_Equity_Agency_Interaction * Equity.dummy[2] * Agency.dummy[1]
+ b8_3_Equity_Agency_Interaction * Equity.dummy[1] * Agency.dummy[2]
+ b8_4_Equity_Agency_Interaction * Equity.dummy[2] * Agency.dummy[2]
+ b9_1_Equity_Value_Interaction * Equity.dummy[1] * Value.dummy[1]
+ b9_2_Equity_Value_Interaction * Equity.dummy[2] * Value.dummy[1]
+ b9_3_Equity_Value_Interaction * Equity.dummy[1] * Value.dummy[2]
+ b9_4_Equity_Value_Interaction * Equity.dummy[2] * Value.dummy[2]
+ b10_1_Equity_Effectiveness_Interaction * Equity.dummy[1] * Effectiveness.dummy[1]
+ b10_2_Equity_Effectiveness_Interaction * Equity.dummy[2] * Effectiveness.dummy[1]
+ b10_3_Equity_Effectiveness_Interaction * Equity.dummy[1] * Effectiveness.dummy[2]
+ b10_4_Equity_Effectiveness_Interaction * Equity.dummy[2] * Effectiveness.dummy[2]
+ b11_1_Agency_Value_Interaction * Agency.dummy[1] * Value.dummy[1]
+ b11_2_Agency_Value_Interaction * Agency.dummy[2] * Value.dummy[1]
+ b11_3_Agency_Value_Interaction * Agency.dummy[1] * Value.dummy[2]
+ b11_4_Agency_Value_Interaction * Agency.dummy[2] * Value.dummy[2]
+ b12_1_Agency_Effectiveness_Interaction * Agency.dummy[1] * Effectiveness.dummy[1]
+ b12_2_Agency_Effectiveness_Interaction * Agency.dummy[2] * Effectiveness.dummy[1]
+ b12_3_Agency_Effectiveness_Interaction * Agency.dummy[1] * Effectiveness.dummy[2]
+ b12_4_Agency_Effectiveness_Interaction * Agency.dummy[2] * Effectiveness.dummy[2]
+ b13_1_Value_Effectiveness_Interaction * Value.dummy[1] * Effectiveness.dummy[1]
+ b13_2_Value_Effectiveness_Interaction * Value.dummy[2] * Effectiveness.dummy[1]
+ b13_3_Value_Effectiveness_Interaction * Value.dummy[1] * Effectiveness.dummy[2]
+ b13_4_Value_Effectiveness_Interaction * Value.dummy[2] * Effectiveness.dummy[2]
/
U(Alt_B) = b1 + b2_Intervention * Intervention
+ b3_Framing * Framing
+ b4_Equity * Equity
+ b5_Agency * Agency
+ b6_Value * Value
+ b7_Effectiveness * Effectiveness
+ b8_Equity_Agency_Interaction * Equity * Agency
+ b9_Equity_Value_Interaction * Equity * Value
+ b10_Equity_Effectiveness_Interaction * Equity * Effectiveness
+ b11_Agency_Value_Interaction * Agency * Value
+ b12_Agency_Effectiveness_Interaction * Agency * Effectiveness
+ b13_Value_Effectiveness_Interaction * Value * Effectiveness
+ b8_1_Equity_Agency_Interaction * Equity.dummy[1] * Agency.dummy[1]
+ b8_2_Equity_Agency_Interaction * Equity.dummy[2] * Agency.dummy[1]
+ b8_3_Equity_Agency_Interaction * Equity.dummy[1] * Agency.dummy[2]
+ b8_4_Equity_Agency_Interaction * Equity.dummy[2] * Agency.dummy[2]
+ b9_1_Equity_Value_Interaction * Equity.dummy[1] * Value.dummy[1]
+ b9_2_Equity_Value_Interaction * Equity.dummy[2] * Value.dummy[1]
+ b9_3_Equity_Value_Interaction * Equity.dummy[1] * Value.dummy[2]
+ b9_4_Equity_Value_Interaction * Equity.dummy[2] * Value.dummy[2]
+ b10_1_Equity_Effectiveness_Interaction * Equity.dummy[1] * Effectiveness.dummy[1]
+ b10_2_Equity_Effectiveness_Interaction * Equity.dummy[2] * Effectiveness.dummy[1]
+ b10_3_Equity_Effectiveness_Interaction * Equity.dummy[1] * Effectiveness.dummy[2]
+ b10_4_Equity_Effectiveness_Interaction * Equity.dummy[2] * Effectiveness.dummy[2]
+ b11_1_Agency_Value_Interaction * Agency.dummy[1] * Value.dummy[1]
+ b11_2_Agency_Value_Interaction * Agency.dummy[2] * Value.dummy[1]
+ b11_3_Agency_Value_Interaction * Agency.dummy[1] * Value.dummy[2]
+ b11_4_Agency_Value_Interaction * Agency.dummy[2] * Value.dummy[2]
+ b12_1_Agency_Effectiveness_Interaction * Agency.dummy[1] * Effectiveness.dummy[1]
+ b12_2_Agency_Effectiveness_Interaction * Agency.dummy[2] * Effectiveness.dummy[1]
+ b12_3_Agency_Effectiveness_Interaction * Agency.dummy[1] * Effectiveness.dummy[2]
+ b12_4_Agency_Effectiveness_Interaction * Agency.dummy[2] * Effectiveness.dummy[2]
+ b13_1_Value_Effectiveness_Interaction * Value.dummy[1] * Effectiveness.dummy[1]
+ b13_2_Value_Effectiveness_Interaction * Value.dummy[2] * Effectiveness.dummy[1]
+ b13_3_Value_Effectiveness_Interaction * Value.dummy[1] * Effectiveness.dummy[2]
+ b13_4_Value_Effectiveness_Interaction * Value.dummy[2] * Effectiveness.dummy[2]
As you can see, I am thus far including 11 Bayesian Priors.
My main question is related to the inclusion of the attribute specific constant (ASC) for the 'No Choice' option. I have consulted the Ngene manual and looked at a couple of other posts on this forum but am still a little confused. I know I need to include this, but unsure exactly what is the best way to do it is?
Would I simply include something like this: U(NoChoice) = asc[(n,-1.168,0.230)] ? Or is there something else I need to include?
If so, do I also need to include the ;con command to specify that the constant needs to be considered when determining the efficiency of the design?
Also, do you think that 2000 Sobol Draws is the best way to go for this design? From reading other posts I'm aware I could also use the 'gauss(3)' option.
Finally, I should point out that I am aware that because of the number of constraints and Bayesian priors this design is going to take a long time to run. I plan on leaving it to run for a number of days.
Best wishes,
Tom