Calculates and plots a 2-dimensional variogram from a 2-dimensional array of residuals (S.J. Welham).

### Options

`PLOT` = string token |
What to plot (`surface` ); default `surf` |
---|---|

`ROWS` = factor |
Factor defining the rows of the grid |

`COLUMNS` = factor |
Factor defining the columns of the grid |

`REPLICATES` = factor |
Factor defining the replicate grids (if any) |

`RMAX` = scalar |
Maximum lag to include in variogram in row direction (default determined by procedure) |

`CMAX` = scalar |
Maximum lag to include in variogram in column direction (default determined by procedure) |

`RSCALE` = scalar |
Actual distance represented by 1 unit in row direction (default 1) |

`CSCALE` = scalar |
Actual distance represented by 1 unit in column direction (default 1) |

`MINREP` = scalar |
Minimum replication required for position to be included in variogram (default 30) |

`TITLE` = text |
Title for surface/graph; default `*` i.e. none |

`WINDOW` = scalar |
Graphics window to be used for plotting; default 1 |

`SCREEN` = string token |
Whether to keep or clear screen before plotting variogram (`clear` , `keep` ); default `clear` |

`METHOD` = text |
Whether to use Fortran DLL or Genstat code to calculate variogram (`dll` , `genstat` ); default `dll` |

`SCALEPLOT` = string token |
Whether to scale variogram to 0-1 (i.e. unit) scale for plotting (`unit` , `none` ); default `unit` |

### Parameters

`RESIDUALS` = variates |
Variate of residuals to form variogram |
---|---|

`VARIOGRAM` = matrices |
Calculated variogram (trimmed) |

`FULLVARIOGRAM` = matrices |
Calculated variogram (all values) |

`COUNTS` = matrices |
Number of comparisons contributing to each variogram position |

`COMPONENTS` = pointers |
Components used to calculate variogram (only available when `METHOD=genstat` ) |

### Description

`F2DRESIDUALVARIOGRAM`

calculates and plots a 2-dimensional variogram from a 2-dimensional array of residuals, i.e. residuals that come from an experiment with units arranged in a regular grid.

The data variate is specified by the `RESIDUALS`

parameter, and factors defining the rows and columns of the grid are specified using the `ROWS`

and `COLUMNS`

options. The `ROWS`

and `COLUMNS`

should completely define the layout of the data, except in the case that there are replicates of a grid. In this case, the option `REPLICATES`

should be used to specify a factor defining the replicates of the grid.

The full variogram is calculated for all row lag distances 1 … `NLEVELS(ROWS)`

and all column lag distances 1 … `NLEVELS(COLUMNS)`

, unless constrained by options `RMAX`

and `CMAX`

, respectively. This full variogram can be saved using parameter `FULLVARIOGRAM`

, and the number of comparisons contributing to each point can be saved in a corresponding matrix using parameter `COUNTS`

. Missing values will be inserted into the full variogram where the number of comparisons is less than set by option `MINREP`

(default 30). Note that setting `MINREP`

to low values may mean that spurious patterns appear in the variogram.

The full variogram is then trimmed to give a rectangle containing no missing values – this is the variogram that is plotted and can be saved as a matrix using parameter `VARIOGRAM`

.

By default a surface plot is produced for a two-dimensional variogram, i.e. where the trimmed variogram has > 2 rows in both dimensions. If only one dimension has > 2 rows, then a graph will be plotted for that dimension. Note that setting `RMAX=1`

means that a one-dimensional variogram for `COLUMNS`

can be produced, and vice versa (this can be useful for longitudinal data). Plotting can be suppressed by setting option `PLOT=*`

. Within the plot, difference of scale between row and column directions can be represented by specifying the actual distances represented by each row and column unit using the `RSCALE`

and `CSCALE`

options respectively. The variogram will be scaled onto a 0-1 scale for plotting unless specified by `SCALEPLOT=none`

. A title for the plot can be specifed using the `TITLE`

option. The graphics window used for plotting and whether to keep/clear the screen before plotting are controlled by the `WINDOW`

and `SCREEN`

options as usual.

For large grids, calculation of the variogram using Genstat code can be slow. For the PC Windows implementation a Fortran DLL is available to make the calculations much faster. By default, the procedure finds out if the DLL is available, and if so, uses it. Otherwise Genstat cdoe within the procedure is used. The procedure can be forced to use the Genstat code by setting option `METHOD=genstat`

.

When the Genstat code within the procedure calculates the variogram, the components of the variogram can be saved in a pointer specified by the `COMPONENTS`

option.

Options: `PLOT`

, `ROWS`

, `COLUMNS`

, `REPLICATES`

, `RMAX`

, `CMAX`

, `RSCALE`

, `CSCALE`

, `MINREP`

, `TITLE`

, `WINDOW`

, `SCREEN`

, `METHOD`

, `SCALEPLOT`

.

Parameters: `RESIDUALS`

, `VARIOGRAM`

, `FULLVARIOGRAM`

, `COUNTS`

, `COMPONENTS`

.

### Method

The sample variogram position (*i*, *j*) is calculated as the average of the half-squared differences between all pairs of residuals *i* row units and *j* column units apart.

The variogram is trimmed so that the number of pairs of points contributing to each variogram postion is greater than the setting of `MINREP`

.

### Action with `RESTRICT`

`F2DRESIDUALVARIOGRAM`

takes account of any restriction on `RESIDUALS`

, subject to the factors `ROWS`

, `COLUMNS`

and `REPLICATES`

still defining a valid grid of residuals.

### See also

Procedures: `DVARIOGRAM`

, `DCOVARIOGRAM`

, `DRESIDUALS`

, `VPLOT`

.

Commands for: REML analysis of linear mixed models.

### Example

CAPTION 'F2DRESIDUALVARIOGRAM','Lupin seeding rate'; STYLE=meta,plain FACTOR [NVALUES=96; LEVELS=16] row & [LEVELS=6] column FACTOR [LEVELS=8; LABELS=!t(Danja,Gungurru,Illyarrie,Merrit,Unicrop,\ Warrah,Yandee,Yorrel)] variety READ variety,row,column,seedrate,yield; FREPRESENTATION=labels,4(levels) Illyarrie 1 1 4 0.550 Gungurru 2 1 6 0.895 Merrit 3 1 4 0.802 Gungurru 4 1 5 0.824 Gungurru 5 1 4 0.687 Yandee 6 1 4 0.779 Danja 7 1 1 0.545 Gungurru 8 1 1 0.458 Danja 9 1 6 0.958 Merrit 10 1 1 0.493 Yorrel 11 1 3 0.921 Warrah 12 1 3 0.898 Gungurru 13 1 3 1.054 Warrah 14 1 1 0.332 Unicrop 15 1 3 0.816 Illyarrie 16 1 5 0.980 Yorrel 1 2 2 0.503 Illyarrie 2 2 2 0.512 Gungurru 3 2 2 0.611 Warrah 4 2 5 0.808 Illyarrie 5 2 1 0.358 Yandee 6 2 2 0.666 Unicrop 7 2 1 0.316 Warrah 8 2 4 0.824 Illyarrie 9 2 6 0.930 Unicrop 10 2 4 0.710 Warrah 11 2 2 0.408 Unicrop 12 2 5 1.199 Danja 13 2 2 0.916 Yorrel 14 2 4 1.041 Unicrop 15 2 6 0.746 Yandee 16 2 6 1.024 Yorrel 1 3 6 0.876 Warrah 2 3 6 0.683 Danja 3 3 5 1.224 Merrit 4 3 6 1.384 Yandee 5 3 3 0.748 Danja 6 3 5 1.078 Yandee 7 3 5 1.076 Unicrop 8 3 2 0.862 Yorrel 9 3 1 0.534 Merrit 10 3 3 1.131 Merrit 11 3 2 0.958 Illyarrie 12 3 3 1.030 Danja 13 3 4 1.089 Danja 14 3 3 1.006 Yorrel 15 3 5 1.145 Merrit 16 3 5 1.417 Yandee 1 4 2 1.241 Illyarrie 2 4 6 1.035 Unicrop 3 4 2 0.743 Yandee 4 4 3 0.908 Yandee 5 4 6 0.774 Yandee 6 4 4 0.867 Yorrel 7 4 2 0.600 Merrit 8 4 6 1.516 Gungurru 9 4 5 1.019 Illyarrie 10 4 5 0.802 Unicrop 11 4 5 0.861 Danja 12 4 6 1.542 Gungurru 13 4 2 0.517 Yandee 14 4 5 0.828 Gungurru 15 4 4 1.061 Danja 16 4 2 0.694 Gungurru 1 5 6 1.090 Merrit 2 5 4 1.118 Illyarrie 3 5 1 0.521 Unicrop 4 5 4 0.959 Yorrel 5 5 4 0.820 Warrah 6 5 3 0.740 Illyarrie 7 5 3 0.874 Yorrel 8 5 6 1.429 Unicrop 9 5 1 0.439 Warrah 10 5 2 0.436 Yorrel 11 5 1 0.517 Warrah 12 5 1 0.340 Danja 13 5 3 1.151 Unicrop 14 5 3 0.995 Danja 15 5 4 1.197 Yorrel 16 5 3 1.416 Merrit 1 6 3 * Yandee 2 6 1 * Warrah 3 6 6 * Merrit 4 6 5 1.378 Warrah 5 6 5 0.845 Yandee 6 6 1 0.553 Illyarrie 7 6 2 0.872 Gungurru 8 6 1 0.649 Warrah 9 6 4 1.009 Danja 10 6 1 0.660 Yorrel 11 6 5 1.277 Merrit 12 6 1 0.578 Unicrop 13 6 6 1.010 Illyarrie 14 6 4 1.162 Merrit 15 6 2 1.097 Gungurru 16 6 3 1.444 : GROUP seedrate; FACTOR=frate VCOMPONENTS [FIXED=variety*seedrate; SPLINE=seedrate+variety.seedrate]\ frate+variety.frate+row.column; CONSTRAINTS=positive VSTRUCTURE [TERM=row.column] FACTOR=row,column; MODEL=ar,ar REML [PRINT=model,components; MVINCLUDE=yvariate]\ yield; RESIDUALS=resids F2DRESIDUALVARIOGRAM [ROW=row; COLUMN=column] resids; VARIOGRAM=variog PRINT variog; DECIMALS=3; FIELD=8