For a multitype point pattern, estimate the distribution of the distance from a point of type \(i\) to the nearest point of type \(j\).

`Gcross(X, i, j, r=NULL, breaks=NULL, ..., correction=c("rs", "km", "han"))`

An object of class `"fv"`

(see `fv.object`

).

Essentially a data frame containing six numeric columns

- r
the values of the argument \(r\) at which the function \(G_{ij}(r)\) has been estimated

- rs
the ``reduced sample'' or ``border correction'' estimator of \(G_{ij}(r)\)

- han
the Hanisch-style estimator of \(G_{ij}(r)\)

- km
the spatial Kaplan-Meier estimator of \(G_{ij}(r)\)

- hazard
the hazard rate \(\lambda(r)\) of \(G_{ij}(r)\) by the spatial Kaplan-Meier method

- raw
the uncorrected estimate of \(G_{ij}(r)\), i.e. the empirical distribution of the distances from each point of type \(i\) to the nearest point of type \(j\)

- theo
the theoretical value of \(G_{ij}(r)\) for a marked Poisson process with the same estimated intensity (see below).

- X
The observed point pattern, from which an estimate of the cross type distance distribution function \(G_{ij}(r)\) will be computed. It must be a multitype point pattern (a marked point pattern whose marks are a factor). See under Details.

- i
The type (mark value) of the points in

`X`

from which distances are measured. A character string (or something that will be converted to a character string). Defaults to the first level of`marks(X)`

.- j
The type (mark value) of the points in

`X`

to which distances are measured. A character string (or something that will be converted to a character string). Defaults to the second level of`marks(X)`

.- r
Optional. Numeric vector. The values of the argument \(r\) at which the distribution function \(G_{ij}(r)\) should be evaluated. There is a sensible default. First-time users are strongly advised not to specify this argument. See below for important conditions on \(r\).

- breaks
This argument is for internal use only.

- ...
Ignored.

- correction
Optional. Character string specifying the edge correction(s) to be used. Options are

`"none"`

,`"rs"`

,`"km"`

,`"hanisch"`

and`"best"`

. Alternatively`correction="all"`

selects all options.

The arguments `i`

and `j`

are always interpreted as
levels of the factor `X$marks`

. They are converted to character
strings if they are not already character strings.
The value `i=1`

does **not**
refer to the first level of the factor.

The function \(G_{ij}\) does not necessarily have a density.

The reduced sample estimator of \(G_{ij}\) is pointwise approximately unbiased, but need not be a valid distribution function; it may not be a nondecreasing function of \(r\). Its range is always within \([0,1]\).

The spatial Kaplan-Meier estimator of \(G_{ij}\) is always nondecreasing but its maximum value may be less than \(1\).

Adrian Baddeley Adrian.Baddeley@curtin.edu.au and Rolf Turner r.turner@auckland.ac.nz.

This function `Gcross`

and its companions
`Gdot`

and `Gmulti`

are generalisations of the function `Gest`

to multitype point patterns.

A multitype point pattern is a spatial pattern of points classified into a finite number of possible ``colours'' or ``types''. In the spatstat package, a multitype pattern is represented as a single point pattern object in which the points carry marks, and the mark value attached to each point determines the type of that point.

The argument `X`

must be a point pattern (object of class
`"ppp"`

) or any data that are acceptable to `as.ppp`

.
It must be a marked point pattern, and the mark vector
`X$marks`

must be a factor.
The arguments `i`

and `j`

will be interpreted as
levels of the factor `X$marks`

. (Warning: this means that
an integer value `i=3`

will be interpreted as
the number 3, **not** the 3rd smallest level).

The ``cross-type'' (type \(i\) to type \(j\)) nearest neighbour distance distribution function of a multitype point process is the cumulative distribution function \(G_{ij}(r)\) of the distance from a typical random point of the process with type \(i\) the nearest point of type \(j\).

An estimate of \(G_{ij}(r)\) is a useful summary statistic in exploratory data analysis of a multitype point pattern. If the process of type \(i\) points were independent of the process of type \(j\) points, then \(G_{ij}(r)\) would equal \(F_j(r)\), the empty space function of the type \(j\) points. For a multitype Poisson point process where the type \(i\) points have intensity \(\lambda_i\), we have $$G_{ij}(r) = 1 - e^{ - \lambda_j \pi r^2} $$ Deviations between the empirical and theoretical \(G_{ij}\) curves may suggest dependence between the points of types \(i\) and \(j\).

This algorithm estimates the distribution function \(G_{ij}(r)\)
from the point pattern `X`

. It assumes that `X`

can be treated
as a realisation of a stationary (spatially homogeneous)
random spatial point process in the plane, observed through
a bounded window.
The window (which is specified in `X`

as `Window(X)`

)
may have arbitrary shape.
Biases due to edge effects are
treated in the same manner as in `Gest`

.

The argument `r`

is the vector of values for the
distance \(r\) at which \(G_{ij}(r)\) should be evaluated.
It is also used to determine the breakpoints
(in the sense of `hist`

)
for the computation of histograms of distances. The reduced-sample and
Kaplan-Meier estimators are computed from histogram counts.
In the case of the Kaplan-Meier estimator this introduces a discretisation
error which is controlled by the fineness of the breakpoints.

First-time users would be strongly advised not to specify `r`

.
However, if it is specified, `r`

must satisfy `r[1] = 0`

,
and `max(r)`

must be larger than the radius of the largest disc
contained in the window. Furthermore, the successive entries of `r`

must be finely spaced.

The algorithm also returns an estimate of the hazard rate function, \(\lambda(r)\), of \(G_{ij}(r)\). This estimate should be used with caution as \(G_{ij}(r)\) is not necessarily differentiable.

The naive empirical distribution of distances from each point of
the pattern `X`

to the nearest other point of the pattern,
is a biased estimate of \(G_{ij}\).
However this is also returned by the algorithm, as it is sometimes
useful in other contexts. Care should be taken not to use the uncorrected
empirical \(G_{ij}\) as if it were an unbiased estimator of
\(G_{ij}\).

Cressie, N.A.C. *Statistics for spatial data*.
John Wiley and Sons, 1991.

Diggle, P.J. *Statistical analysis of spatial point patterns*.
Academic Press, 1983.

Diggle, P. J. (1986).
Displaced amacrine cells in the retina of a
rabbit : analysis of a bivariate spatial point pattern.
*J. Neurosci. Meth.* **18**, 115--125.

Harkness, R.D and Isham, V. (1983)
A bivariate spatial point pattern of ants' nests.
*Applied Statistics* **32**, 293--303

Lotwick, H. W. and Silverman, B. W. (1982).
Methods for analysing spatial processes of several types of points.
*J. Royal Statist. Soc. Ser. B* **44**, 406--413.

Ripley, B.D. *Statistical inference for spatial processes*.
Cambridge University Press, 1988.

Stoyan, D, Kendall, W.S. and Mecke, J.
*Stochastic geometry and its applications*.
2nd edition. Springer Verlag, 1995.

Van Lieshout, M.N.M. and Baddeley, A.J. (1999)
Indices of dependence between types in multivariate point patterns.
*Scandinavian Journal of Statistics* **26**, 511--532.

`Gdot`

,
`Gest`

,
`Gmulti`

```
# amacrine cells data
G01 <- Gcross(amacrine)
# equivalent to:
# \donttest{
G01 <- Gcross(amacrine, "off", "on")
# }
plot(G01)
# empty space function of `on' points
if(interactive()) {
F1 <- Fest(split(amacrine)$on, r = G01$r)
lines(F1$r, F1$km, lty=3)
}
# synthetic example
pp <- runifpoispp(30)
pp <- pp %mark% factor(sample(0:1, npoints(pp), replace=TRUE))
G <- Gcross(pp, "0", "1") # note: "0" not 0
```

Run the code above in your browser using DataLab