* * NEURAL.RPF * RATS Version 8, User's Guide, Example 13.4 * open data probit.dat data(org=obs) 1 95 public1_2 public3_4 public5 private $ years teacher loginc logproptax yesvm * * Linear probability model. Compute the "fitted" values. Because the LPM * doesn't constrain the fitted values to the [0,1] range, some of them * may be (and are) outside that. * linreg yesvm # constant public1_2 public3_4 public5 private years teacher $ loginc logproptax prj lpmfitted * * Probit model. Compute the fitted probabilities. * ddv(dist=probit) yesvm # constant public1_2 public3_4 public5 private years teacher $ loginc logproptax prj(distr=probit,cdf=prfitted) * * Neural network. We use two hidden nodes. (One won't be much different * from the models above). Note that the CONSTANT isn't included in the * explanatory variables, since it's automatically included. * nnlearn(hidden=2,iters=10000,save=nnmeth) # public1_2 public3_4 public5 private years teacher $ loginc logproptax # yesvm * * Compute the forecast values from the network. * nntest / nnmeth # public1_2 public3_4 public5 private years teacher $ loginc logproptax # testvm * * Compute the number of correct predictions for the various models * sstat(smpl=yesvm==0) / 1>>nos testvm<.5>>nnnos $ lpmfitted<.5>>lpmnos prfitted<.5>>prbnos sstat(smpl=yesvm==1) / 1>>yes testvm>.5>>nnyes $ lpmfitted>.5>>lpmyes prfitted>.5>>prbyes * report(action=define,$ hlabels=||"Vote","Actual","Neural Net","LPM","Probit"||) report(atcol=1) "No" nos nnnos lpmnos prbnos report(atcol=1) "Yes" yes nnyes lpmyes prbyes report(action=show)