Optimising panel mixed logit design_Syntax errors

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
neeraj85
Posts: 31
Joined: Wed Jan 28, 2015 4:58 pm

Optimising panel mixed logit design_Syntax errors

Post 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
Michiel Bliemer
Posts: 2057
Joined: Tue Mar 31, 2009 4:13 pm

Re: Optimising panel mixed logit design_Syntax errors

Post 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.
neeraj85
Posts: 31
Joined: Wed Jan 28, 2015 4:58 pm

Re: Optimising panel mixed logit design_Syntax errors

Post 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.
Michiel Bliemer
Posts: 2057
Joined: Tue Mar 31, 2009 4:13 pm

Re: Optimising panel mixed logit design_Syntax errors

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