Kmeasure(X, sigma, edge=TRUE, ..., varcov=NULL)
"ppp"
, or data
in any format acceptable to as.ppp()
.varcov
.sigma
."im"
,
see im.object
) whose pixel values are estimates
of the density of the reduced second moment measure
at each location.Kest
and the reduced second moment measure is computed
by Kmeasure
. The reduced second moment measure $\kappa$
can be regarded as a generalisation of the more familiar
$K$-function.
An estimate of $\kappa$ derived from a spatial point
pattern dataset can be useful in exploratory data analysis.
Its advantage over the $K$-function is that it is also sensitive
to anisotropy and directional effects.
In a nutshell, the command Kmeasure
computes a smoothed version
of the Fry plot.
As explained under fryplot
, the Fry plot is a scatterplot of the
vectors joining all pairs of points in the pattern.
The reduced second moment measure is (essentially) defined as
the average of the Fry plot over different realisations of the point
process. The command Kmeasure
effectively smooths the Fry plot
of a dataset to obtain an estimate of the reduced second moment measure.
In formal terms, the reduced second moment measure $\kappa$ of a stationary point process $X$ is a measure defined on the two-dimensional plane such that, for a `typical' point $x$ of the process, the expected number of other points $y$ of the process such that the vector $y - x$ lies in a region $A$, equals $\lambda \kappa(A)$. Here $\lambda$ is the intensity of the process, i.e. the expected number of points of $X$ per unit area.
The $K$-function is a special case. The function value $K(t)$ is
the value of the reduced second moment measure
for the disc of radius $t$ centred at the origin; that is,
$K(t) = \kappa(b(0,t))$.
The command Kmeasure
computes an estimate of $\kappa$
from a point pattern dataset X
,
which is assumed to be a realisation of a stationary point process,
observed inside a known, bounded window. Marks are ignored.
The algorithm approximates the point pattern and its window by binary pixel
images, introduces a Gaussian smoothing kernel
and uses the Fast Fourier Transform fft
to form a density estimate of $\kappa$. The calculation
corresponds to the edge correction known as the ``translation
correction''.
The Gaussian smoothing kernel may be specified by either of the
arguments sigma
or varcov
. If sigma
is a single
number, this specifies an isotropic Gaussian kernel
with standard deviation sigma
on each coordinate axis.
If sigma
is a vector of two numbers, this specifies a Gaussian
kernel with standard deviation sigma[1]
on the $x$ axis,
standard deviation sigma[2]
on the $y$ axis, and zero
correlation between the $x$ and $y$ axes. If varcov
is
given, this specifies the variance-covariance matrix of the
Gaussian kernel. There do not seem to be any well-established rules
for selecting the smoothing kernel in this context.
The density estimate of $\kappa$
is returned in the form of a real-valued pixel image.
Pixel values are estimates of the normalised
second moment density at the centre of the pixel.
(The uniform Poisson process would have values identically equal to
$1$.)
The image x
and y
coordinates are on the same scale as vector displacements in the
original point pattern window. The point x=0, y=0
corresponds
to the `typical point'.
A peak in the image near (0,0)
suggests clustering;
a dip in the image near (0,0)
suggests inhibition;
peaks or dips at other positions suggest possible periodicity.
If desired, the value of $\kappa(A)$ for a region
$A$ can be estimated by computing the integral of the pixel image
over the domain $A$, i.e. summing the pixel values and
multiplying by pixel area, using integral.im
.
One possible application is to compute anisotropic counterparts of the
$K$-function (in which the disc of radius $t$ is replaced
by another shape). See Examples.
Stoyan, D. and Stoyan, H. (1994) Fractals, random shapes and point fields: methods of geometrical statistics. John Wiley and Sons.
Kest
,
fryplot
,
spatstat.options
,
integral.im
,
im.object
data(cells)
plot(Kmeasure(cells, 0.05))
# shows pronounced dip around origin consistent with strong inhibition
data(redwood)
plot(Kmeasure(redwood, 0.03), col=grey(seq(1,0,length=32)))
# shows peaks at several places, reflecting clustering and ?periodicity
M <- Kmeasure(cells, 0.05)
# evaluate measure on a sector
W <- as.owin(M)
ang <- as.im(atan2, W)
rad <- as.im(function(x,y){sqrt(x^2+y^2)}, W)
sector <- solutionset(ang > 0 & ang < 1 & rad < 0.6)
integral.im(M[sector, drop=FALSE])
Run the code above in your browser using DataLab