spline.correlog is the function to estimate the spline (cross-)correlogram from spatial data. Either univariate or multivariate (time seres) for each site can be used.
spline.correlog( x, y, z, w =NULL, df =NULL, type ="boot", resamp =1000, npoints =300, save =FALSE, filter =FALSE, fw =0, max.it =25, xmax =FALSE, latlon =FALSE, na.rm =FALSE, quiet =FALSE)
Arguments
x: vector of length n representing the x coordinates (or longitude; see latlon).
y: vector of length n representing the y coordinates (or latitude).
z: vector of length n or matrix of dimension n x p representing p observation at each location.
w: an optional second variable with identical dimension to z (to estimate cross-correlograms).
df: degrees of freedom for the spline. Default is sqrt(n).
type: takes the value "boot" (default) to generate a bootstrap distribution or "perm" to generate a null distribution
resamp: the number of resamples for the bootstrap or the null distribution.
npoints: the number of points at which to save the value for the spline function (and confidence envelope / null distribution).
save: If TRUE, the whole matrix of output from the resampling is saved (a resamp x npoints dimensional matrix).
filter: If TRUE, the Fourier filter method of Hall and coworkers is applied to ensure positive semidefiniteness of the estimator.
fw: If filter is TRUE, it may be useful to truncate the function at some distance fw sets the truncation distance. When set to zero, no truncation is done.
max.it: the maximum iteration for the Newton method used to estimate the intercepts.
xmax: If FALSE, the max observed in the data is used. Otherwise all distances greater than xmax is omitted.
latlon: If TRUE, coordinates are latitude and longitude.
na.rm: If TRUE, NA's will be dealt with through pairwise deletion of missing values.
quiet: If TRUE, the counter is suppressed during execution.
Returns
An object of class "spline.correlog" is returned, consisting of the following components: - real: the list of estimates from the data.
$x.intercept: the lowest value at which the function is = 0. If correlation is initially negative, the distance is given as negative.
$e.intercept: the lowest value at which the function 1/e.
$y.intercept: the extrapolated value at x=0 (nugget).
predictedx: the x-axes for the fitted covariance function.
predcitedy: the values for the covariance function.
boot: a list with the analogous output from the bootstrap or null distribution.
$summary: gives the full vector of output for the x.intercept, y.intercept, e.intercept, and a quantile summary for the resampling distribution.
$boot: If save=TRUE, the full raw matrices from the resampling is saved.
max.distance: the maximum spatial distance considered.
Details
If observations are univariate the spline (cross-)correlogram represents the generalization of the spatial (cross-)correlogram; if observations are multivariate the spline (cross-)correlogram represents the generalization of the Mantel (cross-)correlogram.
The spline (cross-)correlogram differs from the spatial correlogram (and Mantel correlogram) in that it estimated spatial dependence as a continuous functions of distance (rather than binning into distance classes). The spline correlogram differs from the nonparametric (cross-)correlation function in that the zero-correlation reference line in the former corresponds to the region-wide correlation reference line in the latter. The x-intercept in the spline correlogram is the distance at which object are no more similar than that expected by-chance-alone across the region.
Missing values are allowed -- values are assumed missing at random.
Examples
# first generate some sample datax <- expand.grid(1:20,1:5)[,1]y <- expand.grid(1:20,1:5)[,2]# z data from an exponential random fieldz <- cbind( rmvn.spa(x = x, y = y, p =2, method ="exp"), rmvn.spa(x = x, y = y, p =2, method ="exp"))# w data from a gaussian random fieldw <- cbind( rmvn.spa(x = x, y = y, p =2, method ="gaus"), rmvn.spa(x = x, y = y, p =2, method ="gaus"))# univariate spline correlogramfit1 <- spline.correlog(x = x, y = y, z = z[,1], resamp =100)## Not run: plot.spline.correlog(fit1)summary(fit1)# multivariate spline correlogramfit2 <- spline.correlog(x = x, y = y, z = z, resamp =100)## Not run: plot.spline.correlog(fit2)summary(fit2)# multivariate spline cross-correlogramfit3 <- spline.correlog(x = x, y = y, z = z, w = w, resamp =100)## Not run: plot.spline.correlog(fit3)summary(fit3)
References
Bjornstad, O.N. & Falck, W. (2001) Nonparametric spatial covariance functions: estimation and testing. Environmental and Ecological Statistics, 8:53-70. doi:10.1023/A:1009601932481