! PROBIT model for deriving a score to predict
  a 0/1 outcome, e.g. default on a loan. 
  Dependent variable should be 0/1.
  PROBIT assumes score() has a standard Normal
  distribution, thus probability that
  dependent variable i is in fact 1
  = @PSN( score(i));
! Keywords: PROBIT, discriminant analysis, scoring,
      credit scoring, maximum likelihood estimation;
SETS:
 obs: score;
 var: w;
 oxv(obs,var): x;
ENDSETS
DATA: ! Reference: Greene, W.(1997), Econometric Analysis, Prentice-Hall, NJ, ISBN 0-02-346602-2. Soln: w = 1.626, 0.052, 1.426, -7.452; cbnd = 14;!Assume coefs satisfy: -cbnd < w < cbnd; ndep = 4; ! Which column is the dependent variable. w(ndep) = constant term of regression; obs = 1..32; var = gpa tuce psi grade; x = 2.66 20 0 0 2.89 22 0 0 3.28 24 0 0 2.92 12 0 0 4.00 21 0 1 2.86 17 0 0 2.76 17 0 0 2.87 21 0 0 3.03 25 0 0 3.92 29 0 1 2.63 20 0 0 3.32 23 0 0 3.57 23 0 0 3.26 25 0 1 3.53 26 0 0 2.74 19 0 0 2.75 25 0 0 2.83 19 0 0 3.12 23 1 0 3.16 25 1 1 2.06 22 1 0 3.62 28 1 1 2.89 14 1 0 3.51 26 1 0 3.54 24 1 1 2.83 27 1 1 3.39 17 1 1 2.67 24 1 0 3.65 21 1 1 4.00 23 1 1 3.10 21 1 0 2.39 19 1 1; ENDDATA ! Put bounds on coefficients. These may be restrictive; @FOR(var(k): @BND(-cbnd,w(k),cbnd);); @FOR(obs(i): @FREE( score(i)); score(i) = w(ndep) + @SUM(var(k)| k#ne# ndep: w(k)*x(i,k)); ); ! Maximize the log likelihood function; MAX = @SUM( obs(i)| x(i,ndep) #le# 0: @LOG(1-@PSN(score(i)))) + @SUM( obs(i)| x(i,ndep) #gt# 0: @LOG(@PSN(score(i))));