Design for pilot test

This forum is for posts covering broader stated choice experimental design issues.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Re: Design for pilot test

Postby johnr » Thu Dec 13, 2018 6:22 am

Hi Samantha

No. When you add Beta.effects to the code, internally it effects codes the variable when calculating the choice probabilities for the design, irrespective of how you ask the code to report the levels (i.e., B[0,1). The B[0,1] is only for reporting in this case. So you could use B[-1000,201] and it would still use -1 and 1 when generating the design (but report in the design output the levels -1000 and 201).

Beta.dummy does the same for dummy coding.

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

Re: Design for pilot test

Postby Michiel Bliemer » Thu Dec 13, 2018 8:41 am

b.effects[0.9] * B[0,1] where 0=no, 1=yes

This means that the contribution to utility will be 0.9 if B has level 0 (no) and it has a contribution to utility of -0.9 if B has level 1 (yes). Therefore, attribute B influences utility with 1.8 in total, which is very high, so likely your prior 0.9 too large. As mentioned earlier, priors should be set very carefully and preferably come from a pilot study.

Michiel
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm

Re: Design for pilot test

Postby samantha » Fri Feb 08, 2019 3:08 pm

Hi again,

I very much appreciated all of your help with my pilot study! I have completed the pilot, and it was suggested by my colleagues that I analyze the attributes as both linear (continuous) variables and as categorical. I therefore dummy coded all my attributes to code the full DCE design. I am trying to code one design using the model average approach as I will analyze the data both ways.

I came up with the following:

Design
;alts(model1) = A1*, B2*
;alts(model2) = A1*, B2*
;rows = 24
;eff = model1(mnl,d,mean) + model2(mnl,d,mean)
;rdraws = gauss(3)
;bdraws = gauss(3)
;rep = 1000
;block = 2
;model(model1):
U(A1) = b1[(n,-0.1278,0.2356)] * A[8,4,2] + b2.dummy[(n,0.6077,0.7753)] * B[0,1] + b3[(n,-0.249,0.5278)] * C[18,12,6] + b4[(n,-0.0429,0.0880)] * D[50,35,20] + b5[(n,-0.1837,0.4864)] * E[20,15,10]/
U(B2) = b1 * A + b2 * B + b3 * C + b4 * D + b5 * E
;model(model2):
U(A1) = b1.dummy[(n,-0.9106,1.8188)|(n,-0.2808,1.5451)] * A[8,4,2] + b2.dummy[(n,0.6077,0.7753)] * B[0,1] + b3.dummy[(n,-3.0724,7.4707)|(n,-1.3685,3.3384)] * C[18,12,6] + b4.dummy[(n,-1.2882,2.9468)|(n,-0.6827,1.9131)] * D[50,35,20] + b5.dummy[(n,-1.8936,5.7179)|(n,-1.1191,2.8336)] * E[20,15,10]/
U(B2) = b1 * A + b2 * B + b3 * C + b4 * D + b5 * E
$

This works for mnl, but when I evaluate the design with rppanel it works for model 1 (where all parameters are random), but Ngene does not stop running or solve the design for rppanel for model 2 (not sure how to code dummy variables as random so I guessed):

Design
;alts = A1*, B2*
;rows = 24
;eff = (rppanel,d)
;block = 2
;eval = Average design 1.ngd
;model:
U(A1) = b1.dummy[n,-0.9106,1.8188|n,-0.2808,1.5451] * A[8,4,2] + b2.dummy[n,0.6077,0.7753] * B[0,1] + b3.dummy[n,-3.0724,7.4707|n,-1.3685,3.3384] * C[18,12,6] + b4.dummy[n,-1.2882,2.9468|n,-0.6827,1.9131] * D[50,35,20] + b5.dummy[n,-1.8936,5.7179|n,-1.1191,2.8336] * E[20,15,10]/
U(B2) = b1 * A + b2 * B + b3 * C + b4 * D + b5 * E
$

I will want to test for heterogeneous preferences, is it possible to write dummy or categorical variables as random variables?

Thanks,
Samantha
samantha
 
Posts: 7
Joined: Tue Nov 13, 2018 4:53 am

Re: Design for pilot test

Postby Michiel Bliemer » Fri Feb 08, 2019 3:36 pm

The syntax looks fine but there can be several issues that prevent Ngene from calculating the Fisher information matrix. The syntax runs but essentially produces an Undefined D-error, which can be the result of several things. There could be an issue with your priors, for example b3(1) dummy if -3.07 is quite high and therefore C is a dominant attribute, but what especially worries me is your standard deviations for the normal distributions that are very large, e.g. a standard deviation of 7.47 for b3(1) dummy is extreme, which means that Ngene is drawing values for b3(1) ranging from around -10 to 4. I notice that your Bayesian standard deviations are the same as the random parameter standard deviations, which is not correct. When you estimate an MNL model you can use the information of the betas and standard errors as Bayesian priors, i.e. (n,beta,sterror). But for priors for your random parameter model you will need to estimate a mixed logit model and take the estimated parameters as priors for your rppanel model.

We will look further into trying to find out what the issue could be, but I suggest you carefully look at the priors you have obtained because clearly something is not right.

Michiel
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm

Previous

Return to Choice experiments - general

Who is online

Users browsing this forum: No registered users and 6 guests