/*-----------------------------------------------------------------
S A S S A M P L E L I B R A R Y
NAME: qrsex1
TITLE: Example 1 for PROC QUANTSELECT
DESC: Simulated Data
PRODUCT: STAT
SYSTEM: ALL
KEYS: Variable Selection,
PROCS: QUANTSELECT
SUPPORT: Yonggang Yao
-----------------------------------------------------------------*/
%let seed=321;
%let p=20;
%let n=3000;
data analysisData;
array x{&p} x1-x&p;
do i=1 to &n;
U = ranuni(&seed);
x1 = ranuni(&seed);
x2 = ranexp(&seed);
x3 = abs(rannor(&seed));
y = x1*(U-0.1) + x2*(U*U-0.25) + x3*(exp(U)-exp(0.9));
do j=4 to &p;
x{j} = ranuni(&seed);
end;
output;
end;
run;
proc quantselect data=analysisData;
model y= x1-x&p / quantile=0.1 0.5 0.9
selection=lasso(adaptive);
output out=out p=pred;
run;
proc quantselect data=analysisData;
model y= x1-x&p / quantile=process(n=all)
selection=forward;
run;
proc glmselect data=analysisData;
model y= x1-x3 / selection=forward(select=sbc stop=sbc choose=sbc);
run;