SAS Code Used to Construct the Information Surface of an Irregular Region * Select 17 design points; data source; do x1=0 to 5 by .2; do x2=0 to 5 by .2; if x1+x2 < 7 then output; end; end; proc optex data=source seed=377; model x1 x2; generate n=17 criterion = s; examine design; output out=design; * Generate 1000 datasets; data sim ; set design ; do index = 1 to 1000 ; y = normal(35573) ; output ; end ; proc sort data = sim ; by index ; * Fit nonparametric response surface; proc g3grid data = sim out = smooth ; by index ; grid x1*x2=y / spline smooth = .05 axis1 = 0 to 5 by .2 axis2 = 0 to 5 by .2 ; proc sort data = smooth ; by x1 x2 ; * Compute variance at every grid point; proc means data = smooth noprint ; by x1 x2 ; var y ; output out = surface var = vary ; * Compute information; data info ; set surface ; keep x1 x2 inf vary ; inf = 1/vary ; * Smooth the information surface; proc g3grid data = info out = smthinfo ; grid x1*x2=inf / spline smooth = .05 axis1 = 0 to 5 by .2 axis2 = 0 to 5 by .2 ; * Hide everything outside the region; data cover ; length function color style $8 ; retain hsys ysys xsys '2' ; function = 'poly' ; when = 'a' ; line = 1 ; style = 'solid' ; color = 'white' ; x = 5 ; y = 2 ; output ; function = 'polycont'; x = 2; y = 5; output ; function = 'polycont'; x = 5; y = 5; output ; function = 'polycont'; x = 5; y = 2; output ; function = 'move' ; x = 5 ; y = 2 ; output ; function = 'draw' ; when = 'a' ; color = 'black' ; line = 1 ; size = .1 ; x = 2 ; y = 5 ; output ; axis1 order = (0 to 5 by 1) ; * Plot the information contours; proc gcontour data = smthinfo annotate = cover ; symbol1 h = .7 l = 1 ; plot x1*x2=inf / autolabel=(check=none) levels = 1.8 2.0 2.2 2.4 2.6 2.8 haxis = axis1 vaxis = axis1 nolegend; run ;