Page 1 of 1
"fractional=x%" with multiple constraints
Posted:
Wed Mar 20, 2013 11:21 pm
by drpetrolia
I have an MNL design with a lot of constraints that runs into the memory problem discussed in the manual on p.154. But when I use the 'fractional=x%' option I can't really tell if it is being recognized or not. The window still pops up that recommends using the 'fractional=x%' option even when that syntax is added and then the program freezes up, so I can't tell if the additional syntax is not being recognized, or if I have simply exhausted the software's constraint handling capabilities, or if the problem is with the design itself. I've tried 'fractional=90%', fractional=50%', and fractional=10%' with the same outcome.
So should that window still pop up if the fractional syntax is included? Is there some way to know if it is being recognized or not?
Here's how I have the fractional syntax included:
Design
;alts = Brand1, Brand2, Brand3, None
;rows = 24
; block = 4
;eff = (mnl,s)
;cond:
if(Brand2.Brand = 1, Brand1.Brand <> 1),
if(Brand2.Brand = 2, Brand1.Brand <> 2),
if(Brand2.Brand = 3, Brand1.Brand <> 3),
...a bunch more constraints...
if(Brand3.Brand = 12, Brand3.Salt = 3),
if(Brand3.Brand = 12, Brand3.Wild = 0),
fractional = 50%
;model:
...
Re: "fractional=x%" with multiple constraints
Posted:
Thu Mar 21, 2013 11:04 am
by Andrew Collins
The receommendation will still show even if 'fractional' has been specified, and the size of the full factorial exceeds 250 000.
The likely problem is that the fractional value is still not small enough at 10%. I would try even smaller numbers. If you still have a problem with very small numbers, please send through the full syntax. If the full specification is sensitive, you can send it to
contact@choice-metrics.com, although I will answer on the forum.
It may well be that the manual setting of the factorial size is too tedious for most users, so we may automate this somewhat in future releases. If we did this, we would likely reveal key information in the trace, and provide extra options to control the process.
Re: "fractional=x%" with multiple constraints
Posted:
Thu Mar 21, 2013 12:28 pm
by Michiel Bliemer
Is it perhaps possible to rewrite the conditions into constraints that can be used by the ;reject or ;require command? Some of them will be easy, some may be more difficult I suppose? The first three could be rewritten as
;require
Brand2.Brand <> Brand1.Brand
You can then use the modified Federov algorithm for finding an efficient design satisfying the constraints.
It is also important to think about whether you really need all your constraints. If you really need all brands to be different across alternatives, why not using a labelled experiment instead? And is it a problem if the same brand appears in two alternatives, or is this purely a constraint because you think it is more efficient? If the latter is true, then better let go of the constraint and let Ngene optimise on efficiency. It is difficult to judge whether some constraints are really needed, but finding efficient designs with constraints can be very difficult, it is not an easy problem to solve, so the more you can relax the constraints, the more efficient your design will be.
Re: "fractional=x%" with multiple constraints
Posted:
Sat Mar 23, 2013 12:21 am
by drpetrolia
Thanks a lot for the guidance!
As for rewriting the conditions using ";require", I have some other constraints that can only be written using ";constraint" and if I understand things correctly, you cannot use both contraint and require simultaneously.
Fortunately, I've discovered that many of my constraints to keep particular attributes from taking on the same level in a given choice set are non-binding anyway, i.e., that the efficient design generally doesn't do this anyway. So in most cases I can just drop them, simplifying things and avoiding the constraint overload problem. (These constraints were not based on any assumption of gaining efficiency but because for the particular good we are testing it would not make sense to the subject to see these levels in this way.)
Thanks again, Dan