Handling unlabeled alternatives

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

Post Reply
ofirhil
Posts: 2
Joined: Fri Jul 09, 2010 12:09 am

Handling unlabeled alternatives

Post 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
Andrew Collins
Posts: 77
Joined: Sat Mar 28, 2009 4:48 pm

Re: Handling unlabeled alternatives

Post 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
ofirhil
Posts: 2
Joined: Fri Jul 09, 2010 12:09 am

Re: Handling unlabeled alternatives

Post 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?
Andrew Collins
Posts: 77
Joined: Sat Mar 28, 2009 4:48 pm

Re: Handling unlabeled alternatives

Post 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.
Post Reply