/*-----------------------------------------------------------------
S A S S A M P L E L I B R A R Y
NAME: hpqtrdt
TITLE: Details Section Examples for PROC HPQUANTSELECT
PRODUCT: HPSTAT
SYSTEM: ALL
KEYS: Model Selection, ODS GRAPHICS
PROCS: HPQUANTSELECT
SUPPORT: Yonggang Yao
-----------------------------------------------------------------*/
/*-----------------------------------------------------------------
Details Section: Class Variable Split Example
-----------------------------------------------------------------*/
data splitExample;
length C2 $6;
drop i;
do i=1 to 1000;
C1 = 1 + mod(i,6);
if i < 250 then C2 = 'Low';
else if i < 500 then C2 = 'Medium';
else C2 = 'High';
x1 = ranuni(1);
x2 = ranuni(1);
y = x1+3*(C2 ='low') + 10*(C1=3) +5*(C1=5) + rannor(1);
output;
end;
run;
proc hpquantselect data=splitExample;
class C1(split) C2(order=data);
model y = C1 C2 x1 x2/orderselect clb;
selection method=forward;
run;
%let seed=321;
%let p=20;
%let n=3000;
data analysisData;
array x{&p} x1-x&p;
do i=1 to &n;
do j=1 to &p;
x{j} = ranuni(&seed);
end;
e = ranuni(&seed);
y = x1 + x2 + x3 + e;
output;
end;
run;