Learn R Programming

spatstat.explore (version 3.2-3)

pcfmulti: Marked pair correlation function

Description

For a marked point pattern, estimate the multitype pair correlation function using kernel methods.

Usage

pcfmulti(X, I, J, ..., r = NULL,
            kernel = "epanechnikov", bw = NULL, stoyan = 0.15,
            correction = c("translate", "Ripley"),
            divisor = c("r", "d"),
            Iname = "points satisfying condition I",
            Jname = "points satisfying condition J",
            ratio = FALSE)

Value

An object of class "fv".

Arguments

X

The observed point pattern, from which an estimate of the cross-type pair correlation function \(g_{ij}(r)\) will be computed. It must be a multitype point pattern (a marked point pattern whose marks are a factor).

I

Subset index specifying the points of X from which distances are measured.

J

Subset index specifying the points in X to which distances are measured.

...

Ignored.

r

Vector of values for the argument \(r\) at which \(g(r)\) should be evaluated. There is a sensible default.

kernel

Choice of smoothing kernel, passed to density.default.

bw

Bandwidth for smoothing kernel, passed to density.default.

stoyan

Coefficient for default bandwidth rule.

correction

Choice of edge correction.

divisor

Choice of divisor in the estimation formula: either "r" (the default) or "d".

Iname,Jname

Optional. Character strings describing the members of the subsets I and J.

ratio

Logical. If TRUE, the numerator and denominator of each edge-corrected estimate will also be saved, for use in analysing replicated point patterns.

Author

Adrian Baddeley Adrian.Baddeley@curtin.edu.au

and Rolf Turner r.turner@auckland.ac.nz

Details

This is a generalisation of pcfcross to arbitrary collections of points.

The algorithm measures the distance from each data point in subset I to each data point in subset J, excluding identical pairs of points. The distances are kernel-smoothed and renormalised to form a pair correlation function.

  • If divisor="r" (the default), then the multitype counterpart of the standard kernel estimator (Stoyan and Stoyan, 1994, pages 284--285) is used. By default, the recommendations of Stoyan and Stoyan (1994) are followed exactly.

  • If divisor="d" then a modified estimator is used: the contribution from an interpoint distance \(d_{ij}\) to the estimate of \(g(r)\) is divided by \(d_{ij}\) instead of dividing by \(r\). This usually improves the bias of the estimator when \(r\) is close to zero.

There is also a choice of spatial edge corrections (which are needed to avoid bias due to edge effects associated with the boundary of the spatial window): correction="translate" is the Ohser-Stoyan translation correction, and correction="isotropic" or "Ripley" is Ripley's isotropic correction.

The arguments I and J specify two subsets of the point pattern X. They may be any type of subset indices, for example, logical vectors of length equal to npoints(X), or integer vectors with entries in the range 1 to npoints(X), or negative integer vectors.

Alternatively, I and J may be functions that will be applied to the point pattern X to obtain index vectors. If I is a function, then evaluating I(X) should yield a valid subset index. This option is useful when generating simulation envelopes using envelope.

The choice of smoothing kernel is controlled by the argument kernel which is passed to density. The default is the Epanechnikov kernel.

The bandwidth of the smoothing kernel can be controlled by the argument bw. Its precise interpretation is explained in the documentation for density.default. For the Epanechnikov kernel with support \([-h,h]\), the argument bw is equivalent to \(h/\sqrt{5}\).

If bw is not specified, the default bandwidth is determined by Stoyan's rule of thumb (Stoyan and Stoyan, 1994, page 285) applied to the points of type j. That is, \(h = c/\sqrt{\lambda}\), where \(\lambda\) is the (estimated) intensity of the point process of type j, and \(c\) is a constant in the range from 0.1 to 0.2. The argument stoyan determines the value of \(c\).

See Also

pcfcross, pcfdot, pcf.ppp.

Examples

Run this code
  adult <- (marks(longleaf) >= 30)
  juvenile <- !adult
  p <- pcfmulti(longleaf, adult, juvenile)

Run the code above in your browser using DataLab