Learn R Programming

spatstat.explore (version 3.5-3)

spatcov: Estimate the Spatial Covariance Function of a Random Field

Description

Given a pixel image, calculate an estimate of the spatial covariance function. Given two pixel images, calculate an estimate of their spatial cross-covariance function.

Usage

spatcov(X, Y=X, ..., correlation=FALSE, isotropic = TRUE,
        clip = TRUE, pooling=TRUE)

Arguments

Value

If isotropic=TRUE (the default), the result is a function value table (object of class "fv") giving the estimated values of the covariance function or spatial correlation function for a sequence of values of the spatial lag distance r.

If isotropic=FALSE, the result is a pixel image (object of class "im") giving the estimated values of the spatial covariance function or spatial correlation function for a grid of values of the spatial lag vector.

Details

In normal usage, only the first argument X is given. Then the pixel image X is treated as a realisation of a stationary random field, and its spatial covariance function is estimated.

Alternatively if Y is given, then X and Y are assumed to be jointly stationary random fields, and their spatial cross-covariance function is estimated.

For any random field X, the spatial covariance is defined for any two spatial locations \(u\) and \(v\) by $$ C(u,v) = \mbox{cov}(X(u), X(v)) $$ where \(X(u)\) and \(X(v)\) are the values of the random field at those locations. Here\(\mbox{cov}\) denotes the statistical covariance, defined for any random variables \(A\) and \(B\) by \(\mbox{cov}(A,B) = E(AB) - E(A) E(B)\) where \(E(A)\) denotes the expected value of \(A\).

If the random field is assumed to be stationary (at least second-order stationary) then the spatial covariance \(C(u,v)\) depends only on the lag vector \(v-u\): $$ C(u,v) = C_2(v-u) $$ $$ C(u,v) = C2(v-u) $$ where \(C_2\) is a function of a single vector argument.

If the random field is stationary and isotropic, then the spatial covariance depends only on the lag distance \(\| v - u \|\): $$ C_2(v-u) = C_1(\|v-u\|) $$ where \(C_1\) is a function of distance.

The function spatcov computes estimates of the covariance function \(C_1\) or \(C_2\) as follows:

  • If isotropic=FALSE, an estimate of the covariance function \(C_2\) is computed, assuming the random field is stationary, using the naive moment estimator, C2 = imcov(X-mean(X))/setcov(Window(X)). The result is a pixel image.

  • If isotropic=TRUE (the default) an estimate of the covariance function \(C_1\) is computed, assuming the random field is stationary and isotropic.

    • When pooling=FALSE, the estimate of \(C_1\) is the rotational average of the naive estimate of \(C_2\).

    • When pooling=TRUE (the default), the estimate of \(C_1\) is the ratio of the rotational averages of the numerator and denominator which form the naive estimate of \(C_2\).

    The result is a function object (class "fv").

If the argument Y is given, it should be a pixel image compatible with X. An estimate of the spatial cross-covariance function between X and Y will be computed.

See Also

imcov, setcov

Examples

Run this code
if(offline <- !interactive()) op <- spatstat.options(npixel=32)

  D <- density(cells)
  plot(spatcov(D))

if(offline) spatstat.options(op)

Run the code above in your browser using DataLab