Mark Connection Function

Estimate the marked connection function of a multitype point pattern.

spatial, nonparametric
markconnect(X, i, j, r=NULL,
         correction=c("isotropic", "Ripley", "translate"),
         method="density", …, normalise=FALSE)

The observed point pattern. An object of class "ppp" or something acceptable to as.ppp.


Number or character string identifying the type (mark value) of the points in X from which distances are measured.


Number or character string identifying the type (mark value) of the points in X to which distances are measured.


numeric vector. The values of the argument \(r\) at which the mark connection function \(p_{ij}(r)\) should be evaluated. There is a sensible default.


A character vector containing any selection of the options "isotropic", "Ripley" or "translate". It specifies the edge correction(s) to be applied.


A character vector indicating the user's choice of density estimation technique to be used. Options are "density", "loess", "sm" and "smrep".

Arguments passed to the density estimation routine (density, loess or sm.density) selected by method.


If TRUE, normalise the pair connection function by dividing it by \(p_i p_j\), the estimated probability that randomly-selected points will have marks \(i\) and \(j\).


The mark connection function \(p_{ij}(r)\) of a multitype point process \(X\) is a measure of the dependence between the types of two points of the process a distance \(r\) apart.

Informally \(p_{ij}(r)\) is defined as the conditional probability, given that there is a point of the process at a location \(u\) and another point of the process at a location \(v\) separated by a distance \(||u-v|| = r\), that the first point is of type \(i\) and the second point is of type \(j\). See Stoyan and Stoyan (1994).

If the marks attached to the points of X are independent and identically distributed, then \(p_{ij}(r) \equiv p_i p_j\) where \(p_i\) denotes the probability that a point is of type \(i\). Values larger than this, \(p_{ij}(r) > p_i p_j\), indicate positive association between the two types, while smaller values indicate negative association.

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 multitype point pattern (a marked point pattern with factor-valued marks).

The argument r is the vector of values for the distance \(r\) at which \(p_{ij}(r)\) is estimated. There is a sensible default.

This algorithm 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 Kest. The edge corrections implemented here are


Ripley's isotropic correction (see Ripley, 1988; Ohser, 1983). This is implemented only for rectangular and polygonal windows (not for binary masks).


Translation correction (Ohser, 1983). Implemented for all window geometries, but slow for complex windows.

Note that the estimator assumes the process is stationary (spatially homogeneous).

The mark connection function is estimated using density estimation techniques. The user can choose between


which uses the standard kernel density estimation routine density, and works only for evenly-spaced r values;


which uses the function loess in the package modreg;


which uses the function sm.density in the package sm and is extremely slow;


which uses the function sm.density in the package sm and is relatively fast, but may require manual control of the smoothing parameter hmult.


An object of class "fv" (see fv.object).

Essentially a data frame containing numeric columns


the values of the argument \(r\) at which the mark connection function \(p_{ij}(r)\) has been estimated


the theoretical value of \(p_{ij}(r)\) when the marks attached to different points are independent

together with a column or columns named "iso" and/or "trans", according to the selected edge corrections. These columns contain estimates of the function p_{ij}(r)p[i,j](r) obtained by the edge corrections named.


Stoyan, D. and Stoyan, H. (1994) Fractals, random shapes and point fields: methods of geometrical statistics. John Wiley and Sons.

See Also

Multitype pair correlation pcfcross and multitype K-functions Kcross, Kdot.

Use alltypes to compute the mark connection functions between all pairs of types.

Mark correlation markcorr and mark variogram markvario for numeric-valued marks.

  • markconnect
    # Hughes' amacrine data
    # Cells marked as 'on'/'off'
    M <- markconnect(amacrine, "on", "off")

    # Compute for all pairs of types at once
    plot(alltypes(amacrine, markconnect))
# }
Documentation reproduced from package spatstat, version 1.56-1, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.