## Documentation Example 4 for PROC VARIOGRAM

```
/****************************************************************/
/*          S A S   S A M P L E   L I B R A R Y                 */
/*                                                              */
/*    NAME: VROEX4                                              */
/*   TITLE: Documentation Example 4 for PROC VARIOGRAM          */
/* PRODUCT: STAT                                                */
/*  SYSTEM: ALL                                                 */
/*    KEYS: spatial analysis, semivariogram, covariogram        */
/*   PROCS: VARIOGRAM                                           */
/*    DATA:                                                     */
/*                                                              */
/* SUPPORT: alkolo                                              */
/*     REF: PROC VARIOGRAM, EXAMPLE 4                           */
/*    MISC:                                                     */
/****************************************************************/

title 'Covariogram and Semivariogram';

data dataCoord;
retain seed 837591;
do i=1 to 100;
East = round(100*ranuni(seed),0.1);
North = round(100*ranuni(seed),0.1);
output;
end;
run;

/* Perform 500 simulations of SRF with features as specified ---*/

proc sim2d outsim=dataSims;
simulate numreal=500 seed=79750
nugget=2 scale=6 range=10 form=exp;
mean 30;
grid gdata=dataCoord xc=East yc=North;
run;

/* Compute empirical semivariogram for each simulation ---------*/

proc variogram data=dataSims outv=outv noprint;
compute lagd=3 maxlag=18;
coord xc=gxc yc=gyc;
by _ITER_;
var svalue;
run;

/* Sort OUTV= data set to use as input in PROC MEANS -----------*/

proc sort data=outv;
by lag;
run;

/* Average semivariance and covariance for each lag over n sims */

proc means data=outv n mean noprint;
var Distance variog covar;
by lag;
output out=dataAvgs mean(variog)=Semivariance
mean(covar)=Covariance
mean(Distance)=Distance;
run;

/* Plot average semivariogram and covariogram ------------------*/

proc sgplot data=dataAvgs;
title "Empirical Semivariogram and Covariogram";
xaxis label = "Distance" grid;
yaxis  label = "Semivariance" min=-0.5 max=9 grid;
y2axis label = "Covariance"   min=-0.5 max=9;
scatter y=Semivariance x=Distance /
markerattrs = GraphData1
name='Semivar'
legendlabel='Semivariance';
scatter y=Covariance x=Distance /
y2axis
markerattrs = GraphData2
name='Covar'
legendlabel='Covariance';
discretelegend 'Semivar' 'Covar';
run;

/* Obtain the sample variance from the data set ----------------*/

proc print data=dataAvgs (obs=1);
run;

```