Learn R Programming

spatstat.explore (version 3.5-2)

markcrosscorr: Mark Cross-Correlation Function

Description

Given a spatial point pattern with several columns of marks, this function computes the mark correlation function between each pair of columns of marks.

Usage

markcrosscorr(X, r = NULL,
                correction = c("isotropic", "Ripley", "translate"),
                method = "density", ..., normalise = TRUE, Xname = NULL)

Arguments

Value

A function array (object of class "fasp") containing the mark cross-correlation functions for each possible pair of columns of marks.

Details

First, all columns of marks are converted to numerical values. A factor with \(m\) possible levels is converted to \(m\) columns of dummy (indicator) values.

Next, each pair of columns is considered, and the mark cross-correlation is defined as $$ k_{mm}(r) = \frac{E_{0u}[M_i(0) M_j(u)]}{E[M_i,M_j]} $$ where \(E_{0u}\) denotes the conditional expectation given that there are points of the process at the locations \(0\) and \(u\) separated by a distance \(r\). On the numerator, \(M_i(0)\) and \(M_j(u)\) are the marks attached to locations \(0\) and \(u\) respectively in the \(i\)th and \(j\)th columns of marks respectively. On the denominator, \(M_i\) and \(M_j\) are independent random values drawn from the \(i\)th and \(j\)th columns of marks, respectively, and \(E\) is the usual expectation.

Note that \(k_{mm}(r)\) is not a ``correlation'' in the usual statistical sense. It can take any nonnegative real value. The value 1 suggests ``lack of correlation'': if the marks attached to the points of X are independent and identically distributed, then \(k_{mm}(r) \equiv 1\).

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.

The cross-correlations are estimated in the same manner as for markcorr.

See Also

markcorr

Examples

Run this code
  # The dataset 'betacells' has two columns of marks:
  #       'type' (factor)
  #       'area' (numeric)
  if(interactive()) plot(betacells)
  plot(markcrosscorr(betacells))

Run the code above in your browser using DataLab