' MLOGIT1.PRG (1.0 - 6/29/98) ' revised for version 4.0 (10/27/2000 h) ' example program for EViews LogL object ' ' multinomial logit with three choices ' with two individual specific regressors ' ' for a discussion, see Section 19.7 of Greene, William H. (1997) ' Econometric Analysis, 3rd edition, Prentice-Hall 'change path to program path %path = @runpath cd "{%path}" ' load artificial data load mlogit ' declare parameter vector coef(3) b2 coef(3) b3 ' true values are ' b2(1) -0.4 b2(2) 1 b2(3) -0.2 ' b3(1) -0.4 b3(2) 0.3 b3(3) 0.5 ' setup the loglikelihood logl mlogit mlogit.append @logl logl1 ' define index for each choice mlogit.append xb2 = b2(1)+b2(2)*x1+b2(3)*x2 mlogit.append xb3 = b3(1)+b3(2)*x1+b3(3)*x2 ' define prob for each choice mlogit.append denom = 1+exp(xb2)+exp(xb3) mlogit.append pr1 = 1/denom mlogit.append pr2 = exp(xb2)/denom mlogit.append pr3 = exp(xb3)/denom ' specify likelihood mlogit.append logl1 = (1-dd2-dd3)*log(pr1)+dd2*log(pr2)+dd3*log(pr3) ' specify analytic derivatives for !i=2 to 3 mlogit.append @deriv b{!i}(1) grad{!i}1 b{!i}(2) grad{!i}2 b{!i}(3) grad{!i}3 mlogit.append grad{!i}1 = dd{!i}-pr{!i} mlogit.append grad{!i}2 = grad{!i}1*x1 mlogit.append grad{!i}3 = grad{!i}1*x2 next ' get starting values from binomial logit equation eq2.binary(d=l) dd2 c x1 x2 b2 = eq2.@coefs equation eq3.binary(d=l) dd3 c x1 x2 b3 = eq3.@coefs ' check analytic derivatives at starting values freeze(tab1) mlogit.checkderiv show tab1 ' do MLE and display results mlogit.ml(showopts,m=1000,c=1e-5) show mlogit.output