* The Optimal Bandwidth Function for the Computation of the Upper Quantile Reference Limits; ods listing close; %macro bandwidth(dataset,gamma,p,outdata); data _null_; set &dataset nobs=m; call symput("n",m); run; %GlobalQSmooth(dataset=&dataset,grid=grid100,gamma=&gamma, p=&p,outdata=q1); %GlobalQSmooth(dataset=&dataset,grid=grid100,gamma=probnorm(1), p=&p,outdata=q2); %GlobalQSmooth(dataset=&dataset,grid=grid100,gamma=0.5, p=&p,outdata=q3); data q1; set q1; keep x secder; data q2; set q2; qprob1=poly; keep x qprob1; data q3; set q3; median=poly; keep x median; proc kde data=&dataset ngrid=101 gridl=10 gridu=60 out=margdens; var x; proc sort data=margdens; by x; data comb; merge q1 q2 q3 margdens; by x; data &outdata; set comb; dens=pdf("normal",probit(&gamma))/(qprob1-median); denom=3.546*&n*density*secder*secder*dens*dens; h=(&gamma*(1-&gamma)/denom)**0.2; %mend bandwidth;