Page 1 of 1

Handling unlabeled alternatives

PostPosted: Tue Jul 13, 2010 5:27 pm
by ofirhil
Hi,
I'm trying to design an SP choice experiment with unlabeled alternatives. I have three unlabeled alternatives:alt1,alt2,alt3.
I decided first to begin with the example syntax from the manual (p. 169) with two unlabeled alternatives and it worked fine, but when i added the third alternative i got the error message below.
The example code(with three alternatives)
Code: Select all
Design
;alts = alt1*, alt2*, alt3*
;rows=9
;eff=(mnl,d)
;model:
U(alt1) = a[-0.1]*A[96,114,126,144] + b[-0.5]*B[25,28,31,34] + c[0.1]*C[20,40,60,80]/
U(alt2) = a*A + b*B + c*C/
U(alt3) = a*A + b*B + c*C
$


And the error message in the end of the process:
Code: Select all
Error: A random design could not be generated after 2000000 attempts. There were 0 row repetitions, 119497 alternative repetitions, and 1880503 cases of dominance
Finished.


The reason i use unlabeled alternatives is since i want to prevent: within choice task alternative repetition, dominance and choice task repetition.
Can you please direct me how to implement an unlabeled choice experiment with the three alternatives, is it possible?

Many Thanks,
Ofir

Re: Handling unlabeled alternatives

PostPosted: Thu Jul 15, 2010 7:15 pm
by Andrew Collins
Hi Ofir,

The problem is due to the high likelihood of at least one of the alternatives being dominated (i.e. should never be chosen as another alternative in the choice set is better on all attributes), given that there are three alternatives, and not that many attribute levels. There may be a design that doesn't fail, but since the first design is generated with a full randomisation of the levels, it may not be found.

Can you afford to add extra attribute levels? By adding a fifth level into each of the attributes below, Ngene can generate some designs and improve the d-error fairly well. You could keep the range the same and change the spacings, but this won't be possible with categorical attribute levels.

Another approach, if level balance is not important, is to use the modified federov algorithm by adding
Code: Select all
;alg=mfederov

Optionally, you could move to the swapping algorithm after a certain amount of time or iterations using something like:
Code: Select all
;alg=mfederov(stop = noimprov(1000 iterations)),swap

However, this does not seem to improve things much.

We are playing around with some different approaches to dominance, with the aim of making it more flexible in the future.

Cheers,
Andrew

Re: Handling unlabeled alternatives

PostPosted: Sun Jul 18, 2010 8:02 pm
by ofirhil
Thanks for the tips, but i'm rather strict with the number of levels of the attributes, and the federov alg. isn't working for me since i have constraints on
attributes values.
I guess my major problem is that i need 27 choice sets in the unlabeled choice experiment , am i right?

Re: Handling unlabeled alternatives

PostPosted: Mon Jul 19, 2010 10:47 am
by Andrew Collins
Hi Ofir,

You can also apply constraints with the federov algorithm, however they are specified a little differently. I will use and example from "8.2.2 Constrained designs" in the demonstration project (from the help menu).

Code: Select all
Design
;alts = Alt1, Alt2
;rows = 6
;eff = (mnl, d)
;alg = mfederov
;reject:
Alt1.X1 > Alt2.X3
;model:
U(Alt1) = b1[-0.2] + b2[0.3] * X1[2,4,6](1-3,1-3,1-3) + b3[0.4] * X2[1,3,5](1-3,1-3,1-3) /
U(Alt2) =            b2      * X3[2,4,6](1-3,1-3,1-3) + b4[0.3] * X4[1,2,3](1-3,1-3,1-3) $


You can specify a series of reject conditions with the reject property (comma separate them as with the cond property). Any choice set that satisfies the logical rule with not make it into the experimental design. The round brackets after the attribute level specification specify how many times each level can appear. The narrower the range, the harder it will be to find a design. There is also a require property, where the choice set will not enter the experimental design if the logical rule evaluates to false.

So you could add the reject or require conditions to the following syntax:

Code: Select all
Design
;alts = alt1*, alt2*, alt3*
;rows=9
;eff=(mnl,d)
;alg=mfederov
;model:
U(alt1) = a[-0.1]*A[96,114,126,144](1-3,1-3,1-3,1-3) + b[-0.5]*B[25,28,31,34](1-3,1-3,1-3,1-3) + c[0.1]*C[20,40,60,80](1-3,1-3,1-3,1-3)/
U(alt2) = a*A + b*B + c*C/
U(alt3) = a*A + b*B + c*C
$


The problem is coming from a combination of the number of attributes (more attributes will tend to break the dominance situation), the number of levels (more levels makes it easier for an attribute to be better or worse than another attribute in the choices et), and the number of alternatives (more alternatives create more combinations of alternatives, each of which lead to a dominance situation). The advantage of the federov algorithm in this situation is that by not trying to force complete attribute level balance, a larger area of the design space can be examined.