Multiplicative utility function

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Re: Multiplicative utility function

Postby chao » Fri Apr 13, 2012 11:20 am

Hi John,

Firstly, thanks for your previous kind reply. Currently I'm using the Ngene 1.1.1 to handle the probabilities that need sum to 1. Now I have two questions about the syntax: (1) Can I define property of 'eff' as 'rppanel' to optimize the design, or 'mnl,d' would also work? (2) how the use of 'alg' would impact the design efficiency?

My utility functions are similar as below:

U(alt1) = b1[n,-0.05,0.3] * prA1[0,10,20,50,80,90,10] * A1[10,12,14] + b2[n,-0.05,0.3]* prA2[fcn(1 - alt1.prA1)] * A2[25,27,29]
/
U(alt2) = b1 * prA1 * A1 + b2* prA2[fcn(1 - alt2.prA1)] * A2

I notice that in the syntax quoted below, the 'alg' was not defined. But the 'alg = swap' syntax appeared on page 185 (section 8.9) of the Ngene Manual. My question is how the use of 'alg' would impact the design efficiency? If including an 'alg' syntax is needed, what type of algorithm would you recommend for my type of utility functions?

Thanks for you time and help. Much appreciated.

Chao

johnr wrote:The good news is that we working on setting up Ngene to support this type of problem. We hope to have the next version of Ngene (V1.1.1) released sometime soon. For the present, the syntax proposed for this type of problem will look something like this:

Design
;alts = alt1, alt2
;rows = 12
;eff = (mnl,d)
;model:
U(alt1) = b1[0.2] * pbEa[0.2,0.4] * Early[10,12,14] + b2[0.5]* pbOn[0.5,0.3] * Ontime[20,22,24]
+ b3[-0.4] * pbLa[fcn(1 - alt1.pbEa - alt1.pbOn)] * Late[25,27,29] /

U(alt2) = b1 * pbEa * Early + b2 * pbOn * Ontime + b3 * pbLa[fcn(1-alt2.pbEa -alt2.pbOn)] * Late $

Note that this is somewhat more complex than at first glance. This is because your W (or in the above my pbLa) must sum to 1 (or 100) – which is a new feature in Ngene. This will be handled via the fcn command above which makes the level of an attribute a function of the levels of another attribute. Secondly, it also requires the estimation of an interaction term without a main effect being estimated (b2 * A*W where A and W do not have priors - in the above my pbLa and Late for example are interactions but not main effects). This also is a new feature.

As you can hopefully appreciate, this requires substantive testing in that we need to test thoroughly any new feature to ensure that it is compatible with all other functionality – e.g., what will happen if the design is orthogonal and you want to do this – this attribute cannot be orthogonal hence we need to ensure that the program doesn’t crash when users do things that are not possible. We also have to test that it is compatible with other model types, with other features such as pivoting, etc. This is a non-trivial task

Thus stay tuned. It is coming and hopefully, subject to there being no substantive compatibility issues, sometime very soon.

John
chao
 
Posts: 4
Joined: Thu Dec 22, 2011 9:38 am

Re: Multiplicative utility function

Postby johnr » Fri Apr 13, 2012 2:22 pm

Hi Chao

1. The method should be applicable to any model type. It is basically a way to control the attribute levels of the design, and should not impact upon the model type in anyway as far as I can tell.

2. Ngene will default to the swap algorithm if it is not present in the syntax, hence the example syntax will use the swap algorithm. The problem with this approach is that you will loose balance by definition whilst the swap algorithm is designed to preserve balance as much as possible. Hence, from a statistically efficient perspective, you are probably (we haven't really tested this for this specific case) better off using something like the Modified Federov algorithm which does not preserve balance, I would still at this stage suggest using the swap algorithm. At least that way, it should preserve attribute level balance as much as it can, particularly for attributes that are not made to sum to something else (as with your A1 attribute for example). We have found the simple swap algorithm tends to work remarkably well, being very fast to locate quite efficient designs, whilst being able to maintain attribute level balance. It may not find the best design as quick as other designs, it tends to outperform them (at least in all our trials) initially. Hence, if you are going to run the program say overnight, it will probably find a better design than other algorithms up to that point. Of course, the Modified Federov algorithm will probably say that it has found a better design, but it did so by letting go of attribute level balance.

John
johnr
 
Posts: 168
Joined: Fri Mar 13, 2009 7:15 am

Re: Multiplicative utility function

Postby chao » Sat Apr 21, 2012 5:14 am

Thanks John, your reply did help a lot. I appreciate.

- Chao
chao
 
Posts: 4
Joined: Thu Dec 22, 2011 9:38 am

Previous

Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 39 guests