all 104 open data Mlogitdata.wk1 data(format=wk1,org=obs) / *table set ag = %if(age.eq.3.,1.,0.) ; * 1->old 0->young set SECT = %if(sector.eq.3.,1.,0.) ; * 1->industry 0->service+trade set EDU = %if(EDUC.eq.4.,1.,0.) ; * 1->postgrad 0->university set GEND = %if(GENDER.eq.2.,1.,0.) ; * 1->MALE 0->FEMALE SET VAR = A4 ; * THIS IS WHERE WE COPY THE ITEM I.E. DEPENDENT VARIABLE SET X1 = AG SET X2 = GEND SET X3 = SECT set Y1 = %if(VAR.eq.3.,1.,0.) ; * 1->AVERAGE 0->OTHER set Y2 = %if(VAR.eq.4..OR.VAR.eq.5.,1.,0.) ; * 1->HIGH 0->OTHER set Y0 = 1.0-Y1-Y2 ; * 1->LOW 0->OTHER NONLIN B10 B11 B12 B13 B20 B21 B22 B23 COMP B10=-2.,B20=-15.,B11=-40.,B12=-0.1,B13=10.,B21=120.,B22=10.,B23=10. FRML EQ = B10+B11*X1+B12*X2+B13*X3 FRML EQQ = B20+B21*X1+B22*X2+B23*X3 FRML P1 = EXP(EQ)/(1.+EXP(EQ)+EXP(EQQ)) FRML P2 = EXP(EQQ)/(1.+EXP(EQ)+EXP(EQQ)) FRML LOGL = Y1*LOG(P1) + Y2*LOG(P2) + Y0*LOG(1.0000001-P1-P2) ;* 1.0000001 is to avoid a crash MAXIMIZE(TRACE,METHOD=SIMPLEX,ITERS=5,PRINT) LOGL 1 * MAXIMIZE(TRACE,METHOD=BFGS,ROBUST,RECURSIVE,ITERS=300) LOGL 1 *