Page 1 of 1

Optimising panel mixed logit design_Syntax errors

PostPosted: Mon Jun 15, 2015 9:33 pm
by neeraj85
Hi,

I've been trying to optimise panel mixed logit design using the MNL design. The design comprises of 3 alternatives (2 hypothetical and 1 status quo)

Following are the steps carried out by me:
1. Generated a design using MNL. This created a design with a name d347.ngd
2. Evaluated the efficiency of d347.ngd for panel mixed logit

ISSUE: The execution terminates suddenly after few minutes and throws a message to contact choice metrics.

Following is the script whose run is ending abruptly:

;alts(Cat7) = alt1*, alt2*, alt3*
;alts(Cat8) = alt1*, alt2*, alt3*
;alts(Cat9) = alt1*, alt2*, alt3*
;alts(Cat10) = alt1*, alt2*, alt3*
;alts(Cat11) = alt1*, alt2*, alt3*
;alts(Cat12) = alt1*, alt2*, alt3*

;alg = eval(d347.ngd)
;rows = 10
;eff = fish2(rpecpanel,d,mean)
;rdraws = gauss(3)
;bdraws = gauss(3)
;rep = 1000
;fisher(fish2) = design1(Cat7[0.191], Cat8[0.163], Cat9[0.207], Cat10[0.289], Cat11[0.134], Cat12[0.016])

;model(Cat7):
U(alt1) = b90[n,(n,-0.2746,0.0544),(n,0.1923,0.0526)] * tt.ref[7.5] + b91[n,(n,-0.1228,0.0379),(n,0.1843,0.0449)] * tts.ref[2] + b92[n,(n,-0.1382,0.0654),(n,0.2310,0.0770)] * sn.ref[5] + b93[(n,-1.5784,0.3706)] * vr.ref[0.85] + s1[ec,0.2]/
U(alt2) = b90[n,(n,-0.2746,0.0544),(n,0.1923,0.0526)] * tt.piv[-20%, -10%, 0%, 10%, 20%] + b91[n,(n,-0.1228,0.0379),(n,0.1843,0.0449)] * tts.piv[-50%, -25%, 0%, 25%, 50%] + b92[n,(n,-0.1382,0.0654),(n,0.2310,0.0770)] * sn.piv[-50%, -25%, 0%, 25%, 50%] + b93[(n,-1.5784,0.3706)] * vr.piv[-25%, -12.5%, 0%, 12.5%, 25%] + s1 + s2[ec,0.5]/
U(alt3) = b90[n,(n,-0.2746,0.0544),(n,0.1923,0.0526)] * tt.piv[-20%, -10%, 0%, 10%, 20%] + b91[n,(n,-0.1228,0.0379),(n,0.1843,0.0449)] * tts.piv[-50%, -25%, 0%, 25%, 50%] + b92[n,(n,-0.1382,0.0654),(n,0.2310,0.0770)] * sn.piv[-50%, -25%, 0%, 25%, 50%] + b93[(n,-1.5784,0.3706)] * vr.piv[-25%, -12.5%, 0%, 12.5%, 25%] + s2

;model(Cat8):
U(alt1) = b90[n,(n,-0.2746,0.0544),(n,0.1923,0.0526)] * tt.ref[22.5] + b91[n,(n,-0.1228,0.0379),(n,0.1843,0.0449)] * tts.ref[6] + b92[n,(n,-0.1382,0.0654),(n,0.2310,0.0770)] * sn.ref[12] + b93[(n,-1.5784,0.3706)] * vr.ref[2.45] + s1[ec,0.2]/
U(alt2) = b90[n,(n,-0.2746,0.0544),(n,0.1923,0.0526)] * tt.piv[-20%, -10%, 0%, 10%, 20%] + b91[n,(n,-0.1228,0.0379),(n,0.1843,0.0449)] * tts.piv[-50%, -25%, 0%, 25%, 50%] + b92[n,(n,-0.1382,0.0654),(n,0.2310,0.0770)] * sn.piv[-50%, -25%, 0%, 25%, 50%] + b93[(n,-1.5784,0.3706)] * vr.piv[-25%, -12.5%, 0%, 12.5%, 25%] + s1 + s2[ec,0.5]/
U(alt3) = b90[n,(n,-0.2746,0.0544),(n,0.1923,0.0526)] * tt.piv[-20%, -10%, 0%, 10%, 20%] + b91[n,(n,-0.1228,0.0379),(n,0.1843,0.0449)] * tts.piv[-50%, -25%, 0%, 25%, 50%] + b92[n,(n,-0.1382,0.0654),(n,0.2310,0.0770)] * sn.piv[-50%, -25%, 0%, 25%, 50%] + b93[(n,-1.5784,0.3706)] * vr.piv[-25%, -12.5%, 0%, 12.5%, 25%] + s2

;model(Cat9):
U(alt1) = b90[n,(n,-0.2746,0.0544),(n,0.1923,0.0526)] * tt.ref[45] + b91[n,(n,-0.1228,0.0379),(n,0.1843,0.0449)] * tts.ref[11] + b92[n,(n,-0.1382,0.0654),(n,0.2310,0.0770)] * sn.ref[20] + b93[(n,-1.5784,0.3706)] * vr.ref[5.3] + s1[ec,0.2]/
U(alt2) = b90[n,(n,-0.2746,0.0544),(n,0.1923,0.0526)] * tt.piv[-20%, -10%, 0%, 10%, 20%] + b91[n,(n,-0.1228,0.0379),(n,0.1843,0.0449)] * tts.piv[-50%, -25%, 0%, 25%, 50%] + b92[n,(n,-0.1382,0.0654),(n,0.2310,0.0770)] * sn.piv[-50%, -25%, 0%, 25%, 50%] + b93[(n,-1.5784,0.3706)] * vr.piv[-25%, -12.5%, 0%, 12.5%, 25%] + s1 + s2[ec,0.5]/
U(alt3) = b90[n,(n,-0.2746,0.0544),(n,0.1923,0.0526)] * tt.piv[-20%, -10%, 0%, 10%, 20%] + b91[n,(n,-0.1228,0.0379),(n,0.1843,0.0449)] * tts.piv[-50%, -25%, 0%, 25%, 50%] + b92[n,(n,-0.1382,0.0654),(n,0.2310,0.0770)] * sn.piv[-50%, -25%, 0%, 25%, 50%] + b93[(n,-1.5784,0.3706)] * vr.piv[-25%, -12.5%, 0%, 12.5%, 25%] + s2

;model(Cat10):
U(alt1) = b90[n,(n,-0.2746,0.0544),(n,0.1923,0.0526)] * tt.ref[75] + b91[n,(n,-0.1228,0.0379),(n,0.1843,0.0449)] * tts.ref[19] + b92[n,(n,-0.1382,0.0654),(n,0.2310,0.0770)] * sn.ref[30] + b93[(n,-1.5784,0.3706)] * vr.ref[12.0] + s1[ec,0.2]/
U(alt2) = b90[n,(n,-0.2746,0.0544),(n,0.1923,0.0526)] * tt.piv[-20%, -10%, 0%, 10%, 20%] + b91[n,(n,-0.1228,0.0379),(n,0.1843,0.0449)] * tts.piv[-50%, -25%, 0%, 25%, 50%] + b92[n,(n,-0.1382,0.0654),(n,0.2310,0.0770)] * sn.piv[-50%, -25%, 0%, 25%, 50%] + b93[(n,-1.5784,0.3706)] * vr.piv[-25%, -12.5%, 0%, 12.5%, 25%] + s1 + s2[ec,0.5]/
U(alt3) = b90[n,(n,-0.2746,0.0544),(n,0.1923,0.0526)] * tt.piv[-20%, -10%, 0%, 10%, 20%] + b91[n,(n,-0.1228,0.0379),(n,0.1843,0.0449)] * tts.piv[-50%, -25%, 0%, 25%, 50%] + b92[n,(n,-0.1382,0.0654),(n,0.2310,0.0770)] * sn.piv[-50%, -25%, 0%, 25%, 50%] + b93[(n,-1.5784,0.3706)] * vr.piv[-25%, -12.5%, 0%, 12.5%, 25%] + s2

;model(Cat11):
U(alt1) = b90[n,(n,-0.2746,0.0544),(n,0.1923,0.0526)] * tt.ref[105] + b91[n,(n,-0.1228,0.0379),(n,0.1843,0.0449)] * tts.ref[26] + b92[n,(n,-0.1382,0.0654),(n,0.2310,0.0770)] * sn.ref[42] + b93[(n,-1.5784,0.3706)] * vr.ref[19.3] + s1[ec,0.2]/
U(alt2) = b90[n,(n,-0.2746,0.0544),(n,0.1923,0.0526)] * tt.piv[-20%, -10%, 0%, 10%, 20%] + b91[n,(n,-0.1228,0.0379),(n,0.1843,0.0449)] * tts.piv[-50%, -25%, 0%, 25%, 50%] + b92[n,(n,-0.1382,0.0654),(n,0.2310,0.0770)] * sn.piv[-50%, -25%, 0%, 25%, 50%] + b93[(n,-1.5784,0.3706)] * vr.piv[-25%, -12.5%, 0%, 12.5%, 25%] + s1 + s2[ec,0.5]/
U(alt3) = b90[n,(n,-0.2746,0.0544),(n,0.1923,0.0526)] * tt.piv[-20%, -10%, 0%, 10%, 20%] + b91[n,(n,-0.1228,0.0379),(n,0.1843,0.0449)] * tts.piv[-50%, -25%, 0%, 25%, 50%] + b92[n,(n,-0.1382,0.0654),(n,0.2310,0.0770)] * sn.piv[-50%, -25%, 0%, 25%, 50%] + b93[(n,-1.5784,0.3706)] * vr.piv[-25%, -12.5%, 0%, 12.5%, 25%] + s2

;model(Cat12):
U(alt1) = b90[n,(n,-0.2746,0.0544),(n,0.1923,0.0526)] * tt.ref[135] + b91[n,(n,-0.1228,0.0379),(n,0.1843,0.0449)] * tts.ref[34] + b92[n,(n,-0.1382,0.0654),(n,0.2310,0.0770)] * sn.ref[50] + b93[(n,-1.5784,0.3706)] * vr.ref[21.0] + s1[ec,0.2]/
U(alt2) = b90[n,(n,-0.2746,0.0544),(n,0.1923,0.0526)] * tt.piv[-20%, -10%, 0%, 10%, 20%] + b91[n,(n,-0.1228,0.0379),(n,0.1843,0.0449)] * tts.piv[-50%, -25%, 0%, 25%, 50%] + b92[n,(n,-0.1382,0.0654),(n,0.2310,0.0770)] * sn.piv[-50%, -25%, 0%, 25%, 50%] + b93[(n,-1.5784,0.3706)] * vr.piv[-25%, -12.5%, 0%, 12.5%, 25%] + s1 + s2[ec,0.5]/
U(alt3) = b90[n,(n,-0.2746,0.0544),(n,0.1923,0.0526)] * tt.piv[-20%, -10%, 0%, 10%, 20%] + b91[n,(n,-0.1228,0.0379),(n,0.1843,0.0449)] * tts.piv[-50%, -25%, 0%, 25%, 50%] + b92[n,(n,-0.1382,0.0654),(n,0.2310,0.0770)] * sn.piv[-50%, -25%, 0%, 25%, 50%] + b93[(n,-1.5784,0.3706)] * vr.piv[-25%, -12.5%, 0%, 12.5%, 25%] + s2 $


Is it because I am having 3 parameters as random? I am even running the same script but with 2 random parameters. However, its still running and hasn't terminated yet.

Thanks a lot in advance

Neeraj

Re: Optimising panel mixed logit design_Syntax errors

PostPosted: Mon Jun 15, 2015 11:01 pm
by Michiel Bliemer
If my quick calculation is correct, you are asking Ngene to evaluate the design using more than 531,000,000 draws. Clearly, it is not possible to keep so many numbers in memory on a normal conputer. Carefully consider reducing the total number of draws by reducing the number of Bayesian priors and random parameters, error components, and Gaussian abscissas.

Re: Optimising panel mixed logit design_Syntax errors

PostPosted: Tue Jun 16, 2015 8:05 pm
by neeraj85
Thanks a lot sir.

Can you please let me know how you calculated the number of draws from the given information.
This will give me further insights on carefully adjusting the script.

Re: Optimising panel mixed logit design_Syntax errors

PostPosted: Tue Jun 16, 2015 9:58 pm
by Michiel Bliemer
You have 5 random coefficients and 7 Bayesian priors, each with 3 Gaussian abscissas using a panel size of 1000 yields 3^7 * 3^5 * 1000 draws for each of the models.