title 'Gurr example'; data gurr; input Avg1 Avg2; cards; 0.15 0.25 0.8 0.316666667 0.1 0.093333333 0.25 0.333333333 0.999 0.999 0.5 0.583333333 0.8 0.633333333 0.333333333 0.416666667 0.45 0.45 0.516666667 0.583333333 0.5 0.7 0.33 0.33 0.5 0.5 0.5 0.5 0.33 0.356666667 0.5 0.566666667 0.33 0.33 0.33 0.366666667 0.33 0.333333333 0.5 0.666666667 0.333333333 0.3 0.5 0.7 0.1 0.1 0.33 0.333333333 0.03 0.03 0.5 0.5 0.1 0.133333333 0.3 0.366666667 0.5 0.166666667 0.32 0.32 0.433333333 0.566666667 0.4 0.4 0.6 0.466666667 0.33 0.33 0.5 0.566666667 0.333333333 0.4 0.6 0.533333333 0.25 0.333333333 0.333333333 0.333333333 0.333 0.186666667 0.5 0.566666667 0.11 0.11 0.5 0.483333333 0.333333333 0.333333333 0.33 0.333333333 0.07 0.07 0.1 0.1 0.33 0.333333333 0.5 0.5 0.33 0.333333333 0.33 0.33 0.33 0.33 0.333333333 0.5 0.001 0.233333333 0.2 0.233333333 0.533333333 0.633333333 0.4 0.473333333 0.333 0.333 0.33 0.333333333 0.5 0.633333333 0.333 0.433333333 0.633333333 0.666666667 0.5 0.5 0.3 0.466666667 0.1 0.466666667 0.716666667 0.766666667 0.65 0.616666667 0.333333333 0.333333333 0.33 0.426666667 0.333 0.333 0.33 0.33 0.773333333 0.7 0.2 0.3 0.2 0.333333333 0.6 0.6 0.5 0.5 0.7 0.5 0.33 0.5 0.9 0.9 0.7 0.666666667 0.333333333 0.333333333 0.1 0.1 0.333333333 0.553333333 0.25 0.566666667 0.33 0.4 0.5 0.383333333 0.5 0.5 0.6 0.9 0.33 0.5 0.5 0.333333333 0.5 0.5 0.583333333 0.3 0.25 0.25 0.333 0.333 0.6 0.616666667 0.5 0.633333333 0.33 0.4 0.333333333 0.333333333 0.333 0.333 0.333333333 0.333333333 0.5 0.666666667 0.5 0.5 0.5 0.6 0.266666667 0.333333333 0.5 0.533333333 0.333333333 0.333333333 0.4 0.333333333 0.5 0.333333333 0.633333333 0.6 0.5 0.733333333 0.5 0.5 0.33 0.333333333 0.33 0.333333333 0.999 0.6 0.333333333 0.366666667 0.5 0.566666667 0.5 0.5 0.333333333 0.6 0.33 0.566666667 0.666666667 0.7 0.3 0.4 0.333333333 0.333333333 0.416666667 0.633333333 0.25 0.25 0.383333333 0.483333333 0.333333333 0.333333333 0.33 0.333333333 0.5 0.616666667 0.566666667 0.533333333 0.3 0.233333333 0.6 0.75 0.3 0.566666667 0.25 0.3 0.516666667 0.733333333 0.333333333 0.333333333 0.4 0.733333333 0.1 0.2 0.5 0.5 0.5 0.6 0.7 0.766666667 0.2 0.3 0.33 0.4 0.33 0.333333333 0.333333333 0.36 0.3 0.4 0.6 0.533333333 0.5 0.8 0.683333333 0.7 0.9 0.733333333 0.3 0.5 0.3 0.333333333 0.5 0.6 0.1 0.1 0.5 0.5 0.2 0.233333333 ; run; ; proc nlmixed data = gurr tech = trureg hess cov itdetails; *Starting values; parms B01 = 0.1, G01 = -2.5, Q = 0.0; title 'Avg1 2-component mixture model'; *To run a model with M2 = 1/3, substitute 1/3 for 1/2 in the M2 = 1/2 statement; *To run a model on Avg2, substitute Avg2 in the ll and model statements; *Composition submodel; C = EXP(Q)/(1+EXP(Q)); *Location submodel; M1 = EXP(B01)/(1+EXP(B01)); M2 = 1/2; *Dispersion submodel; PHI1 = EXP(-G01); D = .01; ll = log(C*PDF('BETA',Avg1, M1*PHI1, PHI1 - M1*PHI1,0,1)+(1-C)* PDF('BETA',Avg1,1,1,M2-D,M2+D)); model Avg1 ~ general(ll); ; run; ; proc nlmixed data = gurr tech = trureg hess cov itdetails; *Starting values; parms B01 = 0.1, G01 = -2.5, Q1 = -0.5, Q2 = 0.5; title 'Avg1 3-component mixture model'; *To run a model on Avg2, substitute Avg2 in the ll and model statements; *Composition submodel; C1 = EXP(Q1)/(1+EXP(Q1)+EXP(Q2)); C2 = EXP(Q2)/(1+EXP(Q1)+EXP(Q2)); *Location submodel; M1 = EXP(B01)/(1+EXP(B01)); M2 = 1/2; M3 = 1/3; *Dispersion submodel; PHI1 = EXP(-G01); D = .01; ll = log(C1*PDF('BETA',Avg1, M1*PHI1, PHI1 - M1*PHI1,0,1)+C2* PDF('BETA',Avg1,1,1,M2-D,M2+D)+(1-C1-C2)* PDF('BETA',Avg1,1,1,M3-D,M3+D)); model Avg1 ~ general(ll); ; run;