nncorr {spatstat} | R Documentation |
Computes the nearest-neighbour correlation of a marked point pattern.
nncorr(X, f = function(m1, m2) { m1 * m2 }, ..., use = "all.obs", method = c("pearson", "kendall", "spearman"))
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 .
|
The nearest neighbour correlation nbar 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
nbar[f] = E[f(M, M*)]
where E[] denotes mean value, M is the mark attached to a typical point of the point process, and M* is the mark attached to its nearest neighbour (i.e. the nearest other point of the point process).
Here f is any function f(m1,m2) 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(m1,m2)= m1 * m2
for discrete marks (multitype point patterns),
f(m1,m2)= (m1 == m2)
and for marks taking values in [0,2 * pi),
f(m1,m2) = sin(m1-m2).
For example, in the second case, the unnormalised nearest neighbour correlation nbar[f] equals the proportion of points in the pattern which have the same mark as their nearest neighbour.
Note that nbar[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
mbar[f] = E[f(M,M*)]/E[f(M,M')]
where again M is the
mark attached to a typical point, M* 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
mbar[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*.
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 ‘border method’ edge correction.
Labelled vector of length 2 or 3 containing the unnormalised and normalised nearest neighbour correlations, and the classical correlation if appropriate.
Adrian Baddeley adrian@maths.uwa.edu.au http://www.maths.uwa.edu.au/~adrian/ and Rolf Turner rolf@math.unb.ca http://www.math.unb.ca/~rolf
Stoyan, D. and Stoyan, H. (1994) Fractals, random shapes and point fields: methods of geometrical statistics. John Wiley and Sons.
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