Kaz's SAS, HLM, and Rasch Model SAS PROC NLMIXED and GLIMMIX

Non-Linear Multilevel Modeling
"Non-Linear" in this context means that outcome measures are not interval scales (e.g., temperature, height, weight).  In the context of education research, such outcome measures are YES or NO type of dichotomous variables (or ordinal variables).  For example, student drop-out is a dichotomous variable.  (Once my friend thought that "non-linear" here has something to do with independent variables whose values are logged or squared, but this is not right in this context.)

PROC NLMIXED

PROC GLIMMIX
• Experimental procedure to be downloaded from SAS (I have never been successful at this.  Seems like when your PC uses SAS via network, instalilng this patch isn't straight-forward.)
• syntax sample (I plan to use this syntax when I finally successfully install it.)
HOW TO GET INITIAL ESTIMATES?
NLMIXED needs some initial guesses for the parameters estimated, so the iteration can start from somewhere.  One idea, a lazy one, is to just set all values to be 0 in this way:

parms b1=0 b2=0 b3=;

An alternative, perhaps better, is to run logistic regression and use the results
as initial estimates for coefficients.  This is a syntax example:

proc logistic data=final descending;
model response=
P1 P2 P3 P4 P5 P6 P7 P8 P9 P10
P11 P12 P13 P14 P15 P16 P17 P18 P19 P20
P21 P22 P23 P24 P25 P26 P27 P28 P29 P30
P31 P32 P33 P34 P35 P36 P37 P38 P39 P40
P41 P42 P43 P44 P45 P46 P47 P48 P49 P50
P51 P52 P53 P54 P55 P56 P57 P58 P59 P60
P61 P62 P63 P64 P65 P66 P67 P68 P69 P70
P71 P72 P73 P74 P75 P76 P77 P78 P79 P80
P81 P82 P83 P84 P85 P86 P87 P88 P89 P90
/ noint;
ods output ParameterEstimates=initial;
run;

data initial2;set initial;
estimate=round(estimate,0.001);
equal="=";
variable2=translate(variable,"B","P");
syntax=variable2||equal||estimate;
run;

data seed;
syntax="parms                                    ";
run;
data end;
syntax=";                                       ";

data initial3;
set seed initial2 end;run;

data _null_;set initial3;
file "c:\temp\junk.txt";
put (syntax) (200.0);
run;