Estimates the mark-weighted \(K\) function of a marked point pattern.
Kmark(X, f = NULL, r = NULL,
correction = c("isotropic", "Ripley", "translate"), ...,
f1 = NULL, normalise = TRUE, returnL = FALSE, fargs = NULL) markcorrint(X, f = NULL, r = NULL,
correction = c("isotropic", "Ripley", "translate"), ...,
f1 = NULL, normalise = TRUE, returnL = FALSE, fargs = NULL)
The observed point pattern.
An object of class "ppp"
or something acceptable to
as.ppp
.
Optional. Test function \(f\) used in the definition of the mark correlation function. An R function with at least two arguments. There is a sensible default.
Optional. Numeric vector. The values of the argument \(r\) at which the mark correlation function \(k_f(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.
Alternatively correction="all"
selects all options.
Ignored.
An alternative to f
. If this argument is given,
then \(f\) is assumed to take the form
\(f(u,v)=f_1(u)f_1(v)\).
If normalise=FALSE
,
compute only the numerator of the expression for the
mark correlation.
Compute the analogue of the K-function if returnL=FALSE
or the analogue of the L-function if returnL=TRUE
.
Optional. A list of extra arguments to be passed to the function
f
or f1
.
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 correlation integral \(K_f(r)\) has been estimated
the theoretical value of \(K_f(r)\) when the marks attached to different points are independent, namely \(\pi r^2\)
The functions Kmark
and markcorrint
are identical.
(Eventually markcorrint
will be deprecated.)
The mark-weighted \(K\) function \(K_f(r)\) of a marked point process (Penttinen et al, 1992) is a generalisation of Ripley's \(K\) function, in which the contribution from each pair of points is weighted by a function of their marks. If the marks of the two points are \(m_1, m_2\) then the weight is proportional to \(f(m_1, m_2)\) where \(f\) is a specified test function.
The mark-weighted \(K\) function is defined so that $$ \lambda K_f(r) = \frac{C_f(r)}{E[ f(M_1, M_2) ]} $$ where $$ C_f(r) = E \left[ \sum_{x \in X} f(m(u), m(x)) 1{0 < ||u - x|| \le r} \; \big| \; u \in X \right] $$ for any spatial location \(u\) taken to be a typical point of the point process \(X\). Here \(||u-x||\) is the euclidean distance between \(u\) and \(x\), so that the sum is taken over all random points \(x\) that lie within a distance \(r\) of the point \(u\). The function \(C_f(r)\) is the unnormalised mark-weighted \(K\) function. To obtain \(K_f(r)\) we standardise \(C_f(r)\) by dividing by \(E[f(M_1,M_2)]\), the expected value of \(f(M_1,M_2)\) when \(M_1\) and \(M_2\) are independent random marks with the same distribution as the marks in the point process.
Under the hypothesis of random labelling, the mark-weighted \(K\) function is equal to Ripley's \(K\) function, \(K_f(r) = K(r)\).
The mark-weighted \(K\) function is sometimes called the
mark correlation integral because it is related to the
mark correlation function \(k_f(r)\)
and the pair correlation function \(g(r)\) by
$$
K_f(r) = 2 \pi \int_0^r s k_f(s) \, g(s) \, {\rm d}s
$$
See markcorr
for a definition of the
mark correlation function.
Given a marked point pattern X
,
this command computes edge-corrected estimates
of the mark-weighted \(K\) function.
If returnL=FALSE
then the estimated
function \(K_f(r)\) is returned;
otherwise the function
$$
L_f(r) = \sqrt{K_f(r)/\pi}
$$
is returned.
Penttinen, A., Stoyan, D. and Henttonen, H. M. (1992) Marked point processes in forest statistics. Forest Science 38 (1992) 806-824.
Illian, J., Penttinen, A., Stoyan, H. and Stoyan, D. (2008) Statistical analysis and modelling of spatial point patterns. Chichester: John Wiley.
markcorr
to estimate the mark correlation function.
# NOT RUN {
# CONTINUOUS-VALUED MARKS:
# (1) Spruces
# marks represent tree diameter
# mark correlation function
ms <- Kmark(spruces)
plot(ms)
# (2) simulated data with independent marks
X <- rpoispp(100)
X <- X %mark% runif(npoints(X))
Xc <- Kmark(X)
plot(Xc)
# MULTITYPE DATA:
# Hughes' amacrine data
# Cells marked as 'on'/'off'
M <- Kmark(amacrine, function(m1,m2) {m1==m2},
correction="translate")
plot(M)
# }
Run the code above in your browser using DataLab