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
Optimising panel mixed logit design_Syntax errors
Moderators: Andrew Collins, Michiel Bliemer, johnr
-
Michiel Bliemer
- Posts: 2057
- Joined: Tue Mar 31, 2009 4:13 pm
Re: Optimising panel mixed logit design_Syntax errors
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
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.
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
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.