
/****************************************************************/
/* SAS SAMPLE LIBRARY */
/* */
/* NAME: MODECEX1 */
/* TITLE: Documentation Example 1 from PROC MODECLUS */
/* PRODUCT: STAT */
/* SYSTEM: ALL */
/* KEYS: MODECLUS */
/* PROCS: MODECLUS */
/* DATA: */
/* */
/* REF: */
/* MISC: PROC MODECLUS PLOT */
/* */
/****************************************************************/
/* Example 1 */
title 'Modeclus Example with Univariate Distributions';
options noovp ps=28 ls=95;
title2 'Uniform Distribution';
data uniform;
drop n;
true=1;
do n=1 to 100;
x=ranuni(123);
output;
end;
proc modeclus data=uniform m=1 k=10 20 40 60 out=out short;
var x;
proc plot; plot density*x=cluster true*x='-'/vzero overlay;
by _K_;
proc modeclus data=uniform m=1 r=.05 .10 .20 .30 out=out short;
var x;
proc plot; plot density*x=cluster true*x='-'/vzero overlay;
by _R_;
run;
title2 'Exponential Distribution';
data expon;
drop n;
do n=1 to 100;
x=ranexp(123);
true=exp(-x);
output;
end;
proc modeclus data=expon m=1 k=10 20 40 out=out short;
var x;
proc plot; plot density*x=cluster true*x='-'/vzero overlay;
by _K_;
proc modeclus data=expon m=1 r=.20 .40 .80 out=out short;
var x;
proc plot; plot density*x=cluster true*x='-'/vzero overlay;
by _R_;
run;
title3 'Different Density-Estimation and Clustering Windows';
proc modeclus data=expon m=1 r=.20 ck=10 20 40 out=out short;
var x;
proc plot; plot density*x=cluster true*x='-'/vzero overlay;
by _CK_;
run;
title3 'Cascaded Density Estimates Using Arithmetic Means';
proc modeclus data=expon m=1 r=.20 cascade=1 2 4 am out=out short;
var x;
proc plot; plot density*x=cluster true*x='-'/vzero overlay;
by _R_ _CASCAD_;
run;
title2 'Normal Mixture Distribution';
data normix;
drop n sigma;
sigma=.125;
do n=1 to 100;
x=rannor(456)*sigma+mod(n,2)/2;
true=exp(-.5*(x/sigma)**2)+exp(-.5*((x-.5)/sigma)**2);
true=.5*true/(sigma*sqrt(2*3.1415926536));
output;
end;
proc modeclus data=normix m=1 k=10 20 40 60 out=out short;
var x;
proc plot; plot density*x=cluster true*x='-'/vzero overlay;
by _K_;
proc modeclus data=normix m=1 r=.05 .10 .20 .30 out=out short;
var x;
proc plot; plot density*x=cluster true*x='-'/vzero overlay;
by _R_;
run;
title3 'Cascaded Density Estimates Using Arithmetic Means';
proc modeclus data=normix m=1 r=.05 cascade=1 2 4 am out=out short;
var x;
proc plot; plot density*x=cluster true*x='-'/vzero overlay;
by _R_ _CASCAD_;
run;
|