# nncorr

##### Nearest-Neighbour Correlation of Marked Point Pattern

Computes the nearest-neighbour correlation of a marked point pattern.

- Keywords
- spatial, nonparametric

##### Usage

```
nncorr(X,
f = function(m1, m2) { m1 * m2 },
...,
use = "all.obs", method = c("pearson", "kendall", "spearman"))
```

##### Arguments

- X
- The observed point pattern.
An object of class
`"ppp"`

. - f
- Function $f$ used in the definition of the nearest neighbour correlation.
- ...
- Extra arguments passed to
`f`

. - use,method
- Arguments passed to the standard correlation function
`cor`

.

##### Details

The nearest neighbour correlation $\bar n_f$ of a marked point process $X$ is a number measuring the dependence between the mark of a typical point and the mark of its nearest neighbour.

Three different values are computed: the unnormalised, normalised,
and classical correlations.
The **unnormalised** nearest neighbour correlation (Stoyan and Stoyan,
1994, section 14.7) is defined as
$$\bar n_f = E[f(M, M^\ast)]$$
where $E[]$ denotes mean value,
$M$ is the mark attached to a
typical point of the point process, and $M^\ast$ is the mark
attached to its nearest neighbour (i.e. the nearest other point of the
point process).
Here $f$ is any function
$f(m_1,m_2)$
with two arguments which are possible marks of the pattern,
and which returns a nonnegative real value.
Common choices of $f$ are:
for continuous real-valued marks,
$$f(m_1,m_2) = m_1 m_2$$
for discrete marks (multitype point patterns),
$$f(m_1,m_2) = 1(m_1 = m_2)$$
and for marks taking values in $[0,2\pi)$,
$$f(m_1,m_2) = \sin(m_1 - m_2)$$
For example, in the second case, the unnormalised nearest neighbour
correlation $\bar n_f$ equals the proportion of
points in the pattern which have the same mark as their nearest
neighbour.

Note that $\bar n_f$ is not a ``correlation'' in the usual statistical sense. It can take values greater than 1.

We can define a **normalised** nearest neighbour correlation
by
$$\bar m_f = \frac{E[f(M,M^\ast)]}{E[f(M,M')]}$$
where again $M$ is the
mark attached to a typical point, $M^\ast$ is the mark
attached to its nearest neighbour, and $M'$ is an independent
copy of $M$ with the same distribution.
This normalisation is also not a ``correlation''
in the usual statistical sense, but is normalised so that
the value 1 suggests ``lack of correlation'':
if the marks attached to the points of `X`

are independent
and identically distributed, then
$\bar m_f = 1$.
The interpretation of values larger or smaller than 1 depends
on the choice of function $f$.

Finally if the marks of `X`

are real numbers, we can also compute the
**classical** correlation, that is, the correlation coefficient
of the two random variables $M$ and $M^\ast$.
The classical correlation has a value between $-1$ and $1$.
Values close to $-1$ or $1$ indicate strong dependence between
the marks.

This function computes the unnormalised and normalised nearest neighbour correlations, and the classical correlation if appropriate.

The argument `X`

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

) and must be a marked point pattern.

The argument `f`

must be a function, accepting two arguments `m1`

and `m2`

which are vectors of equal length containing mark
values (of the same type as the marks of `X`

).
It must return a vector of numeric
values of the same length as `m1`

and `m2`

.
The values must be non-negative.

The arguments `use`

and `method`

control
the calculation of the classical correlation using `cor`

,
as explained in the help file for `cor`

.

Other arguments may be passed to `f`

through the `...`

argument.
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 `X$window`

)
may have arbitrary shape.
Biases due to edge effects are
treated using the

##### Value

- Labelled vector of length 2 or 3 containing the unnormalised and normalised nearest neighbour correlations, and the classical correlation if appropriate.

##### References

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

##### Examples

```
data(finpines)
nncorr(finpines)
# heights of neighbouring trees are slightly negatively correlated
data(amacrine)
nncorr(amacrine, function(m1, m2) { m1 == m2})
# neighbouring cells are usually of different type
```

*Documentation reproduced from package spatstat, version 1.9-1, License: GPL version 2 or newer*