Details Section Examples for PROC HPQUANTSELECT
/****************************************************************/
/* 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;