Generating Bayesian efficient designs for RP model

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Generating Bayesian efficient designs for RP model

Postby miq » Mon Jan 18, 2010 1:55 am

I have the following problem with generating Bayesian efficient designs. Whether I specify the model for the random parameter there is no error message, and the program says 'running', however 'current evaluation' stays at '-'.
This happens both if I specify fixed and random priors for mean and standard deviation of the parameter distribution. Is it possible the first evaluation takes so long or is something wrong?

I thought the number of draws might help to see what's going on, but even if I specify the number of draws with e.g. ';bdraws=halton(10)' the output starts with 'Note: Defaulting to 200 Halton random draws.' anyway. Why?

Finally, it does not matter whether I specify '; eff=(mnl,d)' or '; eff=(rp,d,mean)' - what's the point in eff=(mnl,...) if some of my parameters are random?

Any help on these is greatly appreciated.

My syntax looks like this:

Design
; alts = O, E, P, Y
; rows = 12

?; eff=(mnl,d)
; eff=(rp,d,mean)

;bdraws=halton(10)

?; model:
?U(O) = pon[n,-16.0180,4.68627]*pon[0.1,0.3,0.5]+poff[n,-14.0301,7.35709]*poff[0.3,.5,.7]+ro[n,7.32721,3.44299]*ro[25,50,75]+zn[n,3.21745,3.37543]*zn[25,50,75]+in[n,.05263,5.95403]*in[20,30,40]/
?U(E) = pon*pon[0.1,0.3,0.5]+poff*poff[0.3,.5,.7]+ro*ro[25,50,75]+zn*zn[25,50,75]+in*in[20,30,40]/
?U(P) = pon*pon[0.1,0.3,0.5]+poff*poff[0.3,.5,.7]+ro*ro[25,50,75]+zn*zn[25,50,75]+in*in[20,30,40]/
?U(Y) = pon*pon[0.1,0.3,0.5]+poff*poff[0.3,.5,.7]+ro*ro[25,50,75]+zn*zn[25,50,75]+in*in[20,30,40]
?
?$

; model:
U(O) = pon[n,(n,-16.0180,2.19671),(n,4.68627,1.89947)]*pon[0.1,0.3,0.5]+poff[n,(n,-14.0301, 2.31918),(n,7.35709,1.61024)]*poff[0.3,.5,.7]+ro[n,(n,7.32721,1.33660),(n,3.44299,1.03664)]*ro[25,50,75]+zn[n,(n,3.21745,.97683),(n,3.37543,1.03310)]*zn[25,50,75]+in[n,(n,.05263,1.88574),(n,5.95403,2.48069)]*in[20,30,40]/
U(E) = pon*pon[0.1,0.3,0.5]+poff*poff[0.3,.5,.7]+ro*ro[25,50,75]+zn*zn[25,50,75]+in*in[20,30,40]/
U(P) = pon*pon[0.1,0.3,0.5]+poff*poff[0.3,.5,.7]+ro*ro[25,50,75]+zn*zn[25,50,75]+in*in[20,30,40]/
U(Y) = pon*pon[0.1,0.3,0.5]+poff*poff[0.3,.5,.7]+ro*ro[25,50,75]+zn*zn[25,50,75]+in*in[20,30,40]

$

miq
 
Posts: 22
Joined: Thu Mar 26, 2009 6:13 am

Re: Generating Bayesian efficient designs for RP model

Postby miq » Mon Jan 18, 2010 2:01 am

PS.
I've just noticed that when I use Bayesian parameter distribution and non-random parameters the same thing happens - no evaluations are produced.
miq
 
Posts: 22
Joined: Thu Mar 26, 2009 6:13 am

Re: Generating Bayesian efficient designs for RP model

Postby Andrew Collins » Fri Jan 22, 2010 1:25 pm

The problem can be identified with a stripped back MNL model with fixed, non-random parameters (which will use the mean prior values). When I ran such a design, a single design with a very large d-error was generated. Opening the design, it can be seen that the probabilities are almost 0s and 1s, so there is a problem with the underlying utilities. One choiceset is below.

Utilities: 597.82528, 433.3516, 436.15762, 438.83492
Probabilities: 1, 0, 0, 0

The priors and levels need to be specified in a way that will lead to some trading between the alternatives. It might be as much an issue of scaling as anything else: as the design stands the error term is having nearly no impact.

More generally, if there are problems with complex models, the best approach is to run a non-bayesian MNL model and see if the probabilities are reasonable. Its a bit like starting with MNL for model estimation.

Answering your other questions:
* ;bdraws specifies the number of Bayesian draws. If there are random priors specified, with no ;rdraws property, the number of random draws (used for the random parameters) will default to 200.
* There are several reasons for the ability to include mnl in the ;eff property. One is really listed above: if things are going wrong for a more complex model, specifying mnl allows you to drop back to mnl without having the manually remove all the extra syntax (random parameters, error components, etc). Another reason is that you might want to employ model averaging, where the error measure is a combination of several model types, say ;eff = (mnl, d) + (rppanel, d), where each model uses the same underlying design.
Andrew Collins
 
Posts: 78
Joined: Sat Mar 28, 2009 4:48 pm


Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 12 guests

cron