Bayesian Priors from Pilot Study into Design

This forum is for posts that specifically focus on the Windows desktop version of Ngene (i.e. all version 1.x releases).

Moderators: Andrew Collins, Michiel Bliemer, johnr

Michiel Bliemer
Posts: 2039
Joined: Tue Mar 31, 2009 4:13 pm

Re: Bayesian Priors from Pilot Study into Design

Post by Michiel Bliemer »

The script looks fine, but you need to use sobol draws as halton is not good if you have more than 5 Bayesian priors.

Ngene generates candidate sets for the modified Federov algorithm randomly. In this case, it tries to find 2000 choice tasks that satisfy your constraints. The require constraints seem to be the issue, not exactly sure why. In the script below I replaced three require constraints with a direct constraint in the utility function of Default. This script should immediately run without issues. In the new version of Ngene we are implementing a special command for status quo alternatives that no longer require constraints.

Code: Select all

Design
;alts = A*, B*, Default*
;rows = 24
;block= 4 ,minsum
;eff = (mnl, d)

;con
;alg = mfederov ?(candidates=1000)
    ;require:
    Default.rps = 0,
    Default.po = 0,
    Default.jo = 0
?;bdraws=sobol(2000)

   ;model:
    U(A) =     b1[.005]   * bev[4,50,82] ?continuous
               + b2.dummy[(n,.042, .037)|(n,.18, .043)|(n,.23, .046)|(n,.28, .079)|(n, .37,.064)] * rps[1,2,3,4,5,0] ?Dummy coded
               + b3[.044] * rpv[0,5,10,20] ?continuous
               + b4.dummy[(n,-.14, .044)|(n,.245, .044)]   * po[1,2,0] ?Dummy coded
               + b5.dummy[(n,.22, .018)|(n,-.33, .024)]  * jo[1,2,0] ?Dummy coded
               + b6[-.0144308]               * pr[0, 5, 15, 30, 50, 75] ?continuous
               + b7[.00161]               * bev*rps
               + b8[-.0013]               * rps*rpv
               /
    U(B)     = b1 * bev
               + b2 * rps
               + b3 * rpv
               + b4 * po
               + b5 * jo
               + b6 * pr
               + b7 * bev*rps
               + b8 * rps*rpv
               /
    U(Default) = b0[(n,-.69, .051)]
               + b1 * bev_d[4]
               + b2 * rps
               + b3 * rpv_d[0]
               + b4 * po
               + b5 * jo
               + b6 * pr_d[0]
               + b7 * bev*rps
               + b8 * rps*rpv
    $
Michiel
jamalm
Posts: 32
Joined: Sat Aug 01, 2020 6:54 am

Re: Bayesian Priors from Pilot Study into Design

Post by jamalm »

Thanks for the tip on using sobol draws when there're more than 5 Bayesian priors. I'm also glad to hear that the Ngene team is actively working on improving the software. For what it's worth, I prefer using NGene over SAS, R, or Stata to create DCE designs.

In your earlier comment, similar to what I had seen in the NGene manual, you mentioned the following:
D-errors are model-specific and cannot be compared across studies.
This makes sense to me. However, what doesn't make sense is that many papers report only a "one D-error" value without stating or comparing it against their design's initial D-error. What's the best practice for reporting such designs?
-Jamal
Michiel Bliemer
Posts: 2039
Joined: Tue Mar 31, 2009 4:13 pm

Re: Bayesian Priors from Pilot Study into Design

Post by Michiel Bliemer »

I do not report D-errors in my papers unless I am comparing different designs for the same model. Also reporting the initial D-error may not be useful since that initial D-error is a random design and is different each time to press run in Ngene. I usually just say something like "A D-efficient design was generated using informative priors from a pilot study where only main effects were taken into account".

It is the same as reporting the loglikelihood value in model estimation. It has no meaning on its own and is data-specific. It is only meaningful to compare different model estimations.

Michiel
Post Reply