Getting Started Example for PROC SPATIALREG

/*--------------------------------------------------------------

                    SAS Sample Library

        Name: sprgs.sas
 Description: Example program from SAS/ETS User's Guide,
              The SPATIALREG Procedure
       Title: Getting Started Example for PROC SPATIALREG
     Product: SAS/ETS Software
        Keys: spatial regression data analysis
        PROC: SPATIALREG
       Notes:

--------------------------------------------------------------*/

data crimeoh;
  input crime income hvalue lat lon;
datalines;
18.802 21.232 44.567 35.62 42.38
32.388  4.477 33.200 36.50 40.52
38.426 11.337 37.125 36.71 38.71
 0.178  8.438 75.000 33.36 38.41
15.726 19.531 80.467 38.80 44.07
30.627 15.956 26.350 39.82 41.18
50.732 11.252 23.225 40.01 38.00
26.067 16.029 28.750 43.75 39.28
48.585  9.873 18.000 39.61 34.91
34.001 13.598 96.400 47.61 36.42
36.869  9.798 41.750 48.58 34.46
20.049 21.155 47.733 49.61 32.65
19.146 18.942 40.300 50.11 29.91
18.905 22.207 42.100 51.24 27.80
27.823 18.950 42.500 50.89 25.24
16.241 29.833 61.950 48.44 27.93
 0.224 31.070 81.267 46.73 31.91
30.516 17.586 52.600 43.44 35.92
33.705 11.709 30.450 43.37 33.46
40.970  8.085 20.300 41.13 33.14
52.794 10.822 34.100 43.95 31.61
41.968  9.918 23.600 44.10 30.40
39.175 12.814 27.000 43.70 29.18
53.711 11.107 22.700 41.04 28.78
25.962 16.961 33.500 43.23 27.31
22.541 18.796 35.800 42.67 24.96
26.645 11.813 26.800 41.21 25.90
29.028 14.135 27.733 39.32 25.85
36.664 13.380 25.700 41.09 27.49
42.445 17.017 43.300 38.32 28.82
56.920  7.856 22.850 41.31 30.90
61.299  8.461 17.900 39.36 32.88
60.750  8.681 32.500 39.72 30.64
68.892 13.906 22.500 38.29 30.35
38.298 14.236 53.200 36.60 32.09
54.839  7.625 18.800 37.60 34.08
56.706 10.048 19.900 37.13 36.12
62.275  7.467 19.700 37.85 36.30
46.716  9.549 41.700 35.95 36.40
57.066  9.963 42.900 35.72 35.60
54.522 11.618 30.600 35.76 34.66
43.962 13.185 60.000 36.15 33.92
40.074 10.655 19.975 34.08 30.42
23.974 14.948 28.450 30.32 28.26
17.677 16.940 31.800 27.94 29.85
14.306 18.739 36.300 27.27 28.21
19.101 18.477 39.600 24.25 26.69
16.531 18.324 76.100 25.47 25.71
16.492 25.873 44.333 29.02 26.58
;

data Weight;
  input rowid colid wgt;
  datalines;
      2.0000    1.0000    0.2500
    5.0000    1.0000    0.5000
    6.0000    1.0000    0.2500
    1.0000    2.0000    0.3333
    3.0000    2.0000    0.1667
    6.0000    2.0000    0.2500
    7.0000    2.0000    0.1250
    2.0000    3.0000    0.2500
    4.0000    3.0000    0.2500
    7.0000    3.0000    0.1250
   37.0000    3.0000    0.1429
   38.0000    3.0000    0.2000
   39.0000    3.0000    0.2500
    3.0000    4.0000    0.1667
   37.0000    4.0000    0.1429
   39.0000    4.0000    0.2500
   40.0000    4.0000    0.1667
    1.0000    5.0000    0.3333
    6.0000    5.0000    0.2500
    1.0000    6.0000    0.3333
    2.0000    6.0000    0.2500
    5.0000    6.0000    0.5000
    7.0000    6.0000    0.1250
    2.0000    7.0000    0.2500
    3.0000    7.0000    0.1667
    6.0000    7.0000    0.2500
    8.0000    7.0000    0.5000
    9.0000    7.0000    0.1667
   18.0000    7.0000    0.1429
   36.0000    7.0000    0.1250
   38.0000    7.0000    0.2000
    7.0000    8.0000    0.1250
   18.0000    8.0000    0.1429
    7.0000    9.0000    0.1250
   18.0000    9.0000    0.1429
   20.0000    9.0000    0.2000
   32.0000    9.0000    0.1429
   36.0000    9.0000    0.1250
   38.0000    9.0000    0.2000
   11.0000   10.0000    0.3333
   17.0000   10.0000    0.1000
   18.0000   10.0000    0.1429
   19.0000   10.0000    0.1667
   10.0000   11.0000    0.2500
   12.0000   11.0000    0.3333
   17.0000   11.0000    0.1000
   11.0000   12.0000    0.3333
   13.0000   12.0000    0.2500
   17.0000   12.0000    0.1000
   12.0000   13.0000    0.3333
   14.0000   13.0000    0.3333
   16.0000   13.0000    0.2000
   17.0000   13.0000    0.1000
   13.0000   14.0000    0.2500
   15.0000   14.0000    0.5000
   16.0000   14.0000    0.2000
   14.0000   15.0000    0.3333
   16.0000   15.0000    0.2000
   13.0000   16.0000    0.2500
   14.0000   16.0000    0.3333
   15.0000   16.0000    0.5000
   17.0000   16.0000    0.1000
   23.0000   16.0000    0.1429
   10.0000   17.0000    0.2500
   11.0000   17.0000    0.3333
   12.0000   17.0000    0.3333
   13.0000   17.0000    0.2500
   16.0000   17.0000    0.2000
   18.0000   17.0000    0.1429
   19.0000   17.0000    0.1667
   21.0000   17.0000    0.2500
   22.0000   17.0000    0.2500
   23.0000   17.0000    0.1429
    7.0000   18.0000    0.1250
    8.0000   18.0000    0.5000
    9.0000   18.0000    0.1667
   10.0000   18.0000    0.2500
   17.0000   18.0000    0.1000
   19.0000   18.0000    0.1667
   20.0000   18.0000    0.2000
   10.0000   19.0000    0.2500
   17.0000   19.0000    0.1000
   18.0000   19.0000    0.1429
   20.0000   19.0000    0.2000
   21.0000   19.0000    0.2500
   31.0000   19.0000    0.1111
    9.0000   20.0000    0.1667
   18.0000   20.0000    0.1429
   19.0000   20.0000    0.1667
   31.0000   20.0000    0.1111
   32.0000   20.0000    0.1429
   17.0000   21.0000    0.1000
   19.0000   21.0000    0.1667
   22.0000   21.0000    0.2500
   31.0000   21.0000    0.1111
   17.0000   22.0000    0.1000
   21.0000   22.0000    0.2500
   23.0000   22.0000    0.1429
   31.0000   22.0000    0.1111
   16.0000   23.0000    0.2000
   17.0000   23.0000    0.1000
   22.0000   23.0000    0.2500
   24.0000   23.0000    0.1667
   25.0000   23.0000    0.2000
   29.0000   23.0000    0.1667
   31.0000   23.0000    0.1111
   23.0000   24.0000    0.1429
   25.0000   24.0000    0.2000
   29.0000   24.0000    0.1667
   30.0000   24.0000    0.1667
   31.0000   24.0000    0.1111
   33.0000   24.0000    0.1667
   23.0000   25.0000    0.1429
   24.0000   25.0000    0.1667
   26.0000   25.0000    0.3333
   27.0000   25.0000    0.2500
   29.0000   25.0000    0.1667
   25.0000   26.0000    0.2000
   27.0000   26.0000    0.2500
   28.0000   26.0000    0.2500
   25.0000   27.0000    0.2000
   26.0000   27.0000    0.3333
   28.0000   27.0000    0.2500
   29.0000   27.0000    0.1667
   26.0000   28.0000    0.3333
   27.0000   28.0000    0.2500
   29.0000   28.0000    0.1667
   30.0000   28.0000    0.1667
   23.0000   29.0000    0.1429
   24.0000   29.0000    0.1667
   25.0000   29.0000    0.2000
   27.0000   29.0000    0.2500
   28.0000   29.0000    0.2500
   30.0000   29.0000    0.1667
   24.0000   30.0000    0.1667
   28.0000   30.0000    0.2500
   29.0000   30.0000    0.1667
   31.0000   30.0000    0.1111
   33.0000   30.0000    0.1667
   34.0000   30.0000    0.2000
   19.0000   31.0000    0.1667
   20.0000   31.0000    0.2000
   21.0000   31.0000    0.2500
   22.0000   31.0000    0.2500
   23.0000   31.0000    0.1429
   24.0000   31.0000    0.1667
   30.0000   31.0000    0.1667
   32.0000   31.0000    0.1429
   33.0000   31.0000    0.1667
    9.0000   32.0000    0.1667
   20.0000   32.0000    0.2000
   31.0000   32.0000    0.1111
   33.0000   32.0000    0.1667
   34.0000   32.0000    0.2000
   35.0000   32.0000    0.1429
   36.0000   32.0000    0.1250
   24.0000   33.0000    0.1667
   30.0000   33.0000    0.1667
   31.0000   33.0000    0.1111
   32.0000   33.0000    0.1429
   34.0000   33.0000    0.2000
   35.0000   33.0000    0.1429
   30.0000   34.0000    0.1667
   32.0000   34.0000    0.1429
   33.0000   34.0000    0.1667
   35.0000   34.0000    0.1429
   43.0000   34.0000    0.3333
   32.0000   35.0000    0.1429
   33.0000   35.0000    0.1667
   34.0000   35.0000    0.2000
   36.0000   35.0000    0.1250
   41.0000   35.0000    0.3333
   42.0000   35.0000    0.2000
   43.0000   35.0000    0.3333
    7.0000   36.0000    0.1250
    9.0000   36.0000    0.1667
   32.0000   36.0000    0.1429
   35.0000   36.0000    0.1429
   37.0000   36.0000    0.1429
   38.0000   36.0000    0.2000
   40.0000   36.0000    0.1667
   42.0000   36.0000    0.2000
    3.0000   37.0000    0.1667
    4.0000   37.0000    0.2500
   36.0000   37.0000    0.1250
   38.0000   37.0000    0.2000
   39.0000   37.0000    0.2500
   40.0000   37.0000    0.1667
   42.0000   37.0000    0.2000
    3.0000   38.0000    0.1667
    7.0000   38.0000    0.1250
    9.0000   38.0000    0.1667
   36.0000   38.0000    0.1250
   37.0000   38.0000    0.1429
    3.0000   39.0000    0.1667
    4.0000   39.0000    0.2500
   37.0000   39.0000    0.1429
   40.0000   39.0000    0.1667
    4.0000   40.0000    0.2500
   36.0000   40.0000    0.1250
   37.0000   40.0000    0.1429
   39.0000   40.0000    0.2500
   41.0000   40.0000    0.3333
   42.0000   40.0000    0.2000
   35.0000   41.0000    0.1429
   40.0000   41.0000    0.1667
   42.0000   41.0000    0.2000
   35.0000   42.0000    0.1429
   36.0000   42.0000    0.1250
   37.0000   42.0000    0.1429
   40.0000   42.0000    0.1667
   41.0000   42.0000    0.3333
   34.0000   43.0000    0.2000
   35.0000   43.0000    0.1429
   44.0000   43.0000    0.2500
   43.0000   44.0000    0.3333
   45.0000   44.0000    0.5000
   46.0000   44.0000    0.2000
   49.0000   44.0000    0.5000
   44.0000   45.0000    0.2500
   46.0000   45.0000    0.2000
   44.0000   46.0000    0.2500
   45.0000   46.0000    0.5000
   47.0000   46.0000    0.5000
   48.0000   46.0000    0.5000
   49.0000   46.0000    0.5000
   46.0000   47.0000    0.2000
   48.0000   47.0000    0.5000
   46.0000   48.0000    0.2000
   47.0000   48.0000    0.5000
   44.0000   49.0000    0.2500
   46.0000   49.0000    0.2000
;

proc iml;
  use Weight nobs nobs;
  read all;

  nloc=49;
  W=repeat(0,nloc,nloc);

  do i=1 to nobs;
     rid=rowid[i];
     cid=colid[i];
     val=wgt[i];
     W[rid,cid]=val;
  end;


  create crimeWmat from W;
  append from W;
  close crimeWmat;
quit;

proc print data=crimeoh(obs=10);
   var crime income hvalue lat lon ;
run;

/*-- Linear Model --*/

proc spatialreg data=crimeoh;
   model crime = income hvalue / type=LINEAR;
run;

/*-- SAR Model --*/

proc spatialreg data=crimeoh Wmat=crimeWmat NONORMALIZE;
   model crime = income hvalue / type=SAR;
run;

/*-- SDM --*/

proc spatialreg data=crimeoh Wmat=crimeWmat NONORMALIZE;
   model crime = income hvalue / type=SAR;
   spatialeffects income hvalue;
run;