* Scatter Plot with Quantile Curves; %macro VarPlot(dataset,grid,q1,q2,q3,h,outdata); /* Inputs: DATASET = Data set to be analyzed GRID = Data set with the grid points (X variable) Q1, Q2, Q3 = Low, middle and upper quantiles to be estimated H = Bandwidth parameter for local smoothing OUTDATA = Output data set containing the local estimates of the three quantile functions evaluated at the grid points (ESTIMATE variable) as well as the raw data points */ %GlobalQSmooth(dataset=&dataset,grid=&grid,gamma=&q1,p=5,outdata=upper); %GlobalQSmooth(dataset=&dataset,grid=&grid,gamma=&q2,p=5,outdata=mid); %GlobalQSmooth(dataset=&dataset,grid=&grid,gamma=&q3,p=5,outdata=lower); data initial; set upper; h=&h; %LocalQSmooth(dataset=&dataset,gamma=&q1,initial=initial,outdata=q1); data initial; set mid; h=&h; %LocalQSmooth(dataset=&dataset,gamma=&q2,initial=initial,outdata=q2); data initial; set lower; h=&h; %LocalQSmooth(dataset=&dataset,gamma=&q3,initial=initial,outdata=q3); data q1; set q1; quantile=1; data q2; set q2; quantile=2; data q3; set q3; quantile=3; data rawdata; set &dataset; quantile=0; estimate=y; data &outdata; set q1 q2 q3 rawdata; %mend VarPlot;