Efficient design with zero priors or near zero priors

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Re: Efficient design with zero priors or near zero priors

Postby Michiel Bliemer » Tue Oct 29, 2024 1:12 pm

Steve,

In your script with interaction effects, the coefficient of x1 is (b1+i1*x6), so x6 moderates the preferences for x1. And the same for the other attributes. The question is if this has a meaningful interpretation, I am not sure.

Note that you should remove the dot "." after i1, i2, etc.

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

Re: Efficient design with zero priors or near zero priors

Postby Steven Guu » Mon Mar 31, 2025 2:36 pm

Dear Professor Bliemer,

Some months ago I asked you for advice regarding the pilot design for my research. I really appreciate your time and help. My data collection (150 respondents) went very well and all significant, I am very thankful for having been able to count on your expertise!

Now I’m going to design my main survey choice cards. since dummy coding can be assumed for all attribute levels in a pilot study when using (near-)zero priors.

In the main survey, I assume the utility function is based on continuous attributes.
The experiment is unlabeled, with two alternatives (no status quo option) and 7 attributes. All attributes take the same levels, currently set at £0, £5, £10, £15, and £20. I would like both alternatives (Option A and Option B) to be constrained so that the sum of the attribute levels always adds up to a fixed amount ( £50).

Here is the current code:

Design
;alts(m1) = opt1*,opt2*
;alts(m2) = opt1*,opt2*
;rows = 60
;block =15,minsum
;eff = m2(rp,d,mean)
;alg =mfederov (candidates =1000)
;rdraws=gauss(3)
;bdraws=gauss(3)
;require:
opt1.x1 + opt1.x2 + opt1.x3 + opt1.x4 + opt1.x5 + opt1.x6 + opt1.x7 = 50,
opt2.x1 + opt2.x2 + opt2.x3 + opt2.x4 + opt2.x5 + opt2.x6 + opt2.x7 = 50

;model(m1):
U(opt1) = b1 * y[0,1] * x1[5,10,15,20,0]
+ b2 * y * x2[5,10,15,20,0]
+ b3 * y * x3[5,10,15,20,0]
+ b4 * y * x4[5,10,15,20,0]
+ b5 * y * x5[5,10,15,20,0]
+ b6 * y * x6[5,10,15,20,0]
+ b7 * y * x7[5,10,15,20,0]
/
U(opt2) = b1 * y * x1[5,10,15,20,0]
+ b2 * y * x2[5,10,15,20,0]
+ b3 * y * x3[5,10,15,20,0]
+ b4 * y * x4[5,10,15,20,0]
+ b5 * y * x5[5,10,15,20,0]
+ b6 * y * x6[5,10,15,20,0]
+ b7 * y * x7[5,10,15,20,0]

;model(m2):
U(opt1) =b1[(n,0.1483, 0.0018)] * x1[5,10,15,20,0]
+ b2[(n,0.2113, 0.3038)] * x2[5,10,15,20,0]
+ b3[(n,0.1546, 0.3260)] * x3[5,10,15,20,0]
+ b4[(n,0.1015, 0.1411)] * x4[5,10,15,20,0]
+ b5[(n,0.0622, 0.2545)] * x5[5,10,15,20,0]
+ b6[(n,0.2856, 0.2653)] * x6[5,10,15,20,0]
/
U(opt2) =
+ b1 * x1
+ b2 * x2
+ b3 * x3
+ b4 * x4
+ b5 * x5
+ b6 * x6
$
I have encountered two issues while running my experimental design code and would greatly appreciate your guidance:

1. When entering my current Ngene code, I receive the following error: Error: The 'jeff property specifies non-fixed moments for model 'm2', but no Bayesian priors have been specified for this model. Interestingly, when I remove one set of parentheses around one of the coefficients, the error disappears, and the model runs successfully. Could you kindly advise what might be incorrect in my original specification and how I can rectify it?

2. Additionally, I intended to use the default swapping algorithm (;alg = swap), but this returns the following error: Error: The '¡require property requires factorial designs (;fact), the Modified Federov algorithm (;alg-mfederov'), or the evaluate algorithm (;alg-eval).
Does this imply that under my current experimental conditions, it is not possible to use the default swapping algorithm? If so, would you suggest any alternatives or modifications to my design that would allow the use of the swapping algorithm?

Thank you very much for your assistance—I greatly appreciate your time and help.

Kind regards,
Steve
Steven Guu
 
Posts: 19
Joined: Wed Jun 15, 2022 12:54 am

Re: Efficient design with zero priors or near zero priors

Postby Michiel Bliemer » Sat Apr 05, 2025 8:31 am

1. The parentheses around the priors are correct; these indicate Bayesian priors. Your error is in the ;eff property: you need to replace rp with mnl. Bayesian priors are NOT random parameters (mixed logit). Also, remove ;rdraws.

2. Correct, ;require constraints are row-based constraints that only work with a row-based algorithm (mfederov). You can use the default swapping algorithm only with ;cond constraints. It is not a problem to use the swapping algorithm, but you may want to impose attribute level frequency constraints on x1 to x7, e.g. x1[5,10,15,20,0](10-14,10-14,10-14,10-14,10-14), noting that 12 rows for each level would give you perfect attribute level balance across 60 rows. But the more constraints you impose on the design, the more Ngene will struggle to find a feasible/efficient design.

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

Previous

Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 40 guests

cron