Page 1 of 1

priors for Bayesian design

PostPosted: Mon Apr 04, 2022 1:58 pm
by wxy008
Hi Michiel,
I used below codes to run an efficient design and used it to do a pilot study. After I ran MNL, I found that the price coefficient was negative but not significant. Do you think I can use the coefficient of price as a prior to run the Bayesian design even if it is not significant? If I use a non-significant coefficient as a prior of Bayesian, will it cause an issue? Does my efficient design have a issue that causes non-significant price coefficient?
Code: Select all
Design
;alts = alt1*, alt2*, alt3*, nobuy
;rows = 5
;block =1
;eff = (mnl,d)
;model:
U(alt1) = b0 + b1[-0.001]* price[25,40,55,70,85] + b2[-0.001]* broken[5,10,15,20,30]
           
          /
U(alt2) = b0 + b1*price + b2*broken
           
/
U(alt3) = b0 + b1*price + b2*broken
$

Re: priors for Bayesian design

PostPosted: Mon Apr 04, 2022 4:54 pm
by Michiel Bliemer
If your sample size was (very) small, the price coefficient may not be statistically significant. It may also not be statistically significant if most people choose the nobuy option (you may want to check).

You can still use the non-significant coefficient for price, but it will be unreliable so your sample size estimate will also be unreliable. But the parameter estimate is still your best guess for the parameter value. To account for unreliability of priors, Bayesian priors are useful as you indicate, which uses a wide range of price coefficients are priors to optimise over. My only concern would be positive values for the price coefficient being drawn from the prior distribution. \

For example, if you use b1[(n,-0.05,0.03)], then Ngene will perform draws over a Normal distribution with mean -0.05 (the most likely value), and a standard deviation of 0.03 (indicating the unreliability of the prior). Some of these draws may be greater than zero. To avoid positive price coefficients when drawing from the distribution, you could instead use b1[(u,-0.1,0)], which is a uniform distribution between -0.1 and 0. This distribution also has a mean of -0.05, but will avoid drawing positive values for the price coefficient.

Note that 5 rows in a design is very small. Also note that Ngene struggles to find a design because most of your choice tasks will contain a dominant alternative. You can find more efficient designs by increasing the number of rows (and block the design so that you still only give 5 choice tasks to a respondent) and using the modified Federov algorithm. This algorithm is more capable in handling designs with many constraints (in your case, dominance constraints) but cannot guarantee attribute level balance, so imposing some attribute level balance constraints is necessary. In the example below, I require that each attribute level appears between 1 and 3 times across the 10 rows.

Code: Select all
Design
;alts = alt1*, alt2*, alt3*, nobuy
;rows = 10
;block = 2
;eff = (mnl,d)
;alg = mfederov
;model:
U(alt1) = b0
        + b1[-0.001] * price[25,40,55,70,85](1-3,1-3,1-3,1-3,1-3)
        + b2[-0.001] * broken[5,10,15,20,30](1-3,1-3,1-3,1-3,1-3)
        /
U(alt2) = b0
        + b1         * price 
        + b2         * broken
        /
U(alt3) = b0
        + b1         * price
        + b2         * broken
$


Michiel

Re: priors for Bayesian design

PostPosted: Mon Apr 04, 2022 9:21 pm
by wxy008
Thanks so much, Michiel!