Kcom | R Documentation |
Given a point process model fitted to a point pattern dataset,
this function computes the compensator
of the K
function based on the fitted model
(as well as the usual nonparametric estimates
of K
based on the data alone).
Comparison between the nonparametric and model-compensated K
functions serves as a diagnostic for the model.
Kcom(object, r = NULL, breaks = NULL, ...,
correction = c("border", "isotropic", "translate"),
conditional = !is.poisson(object),
restrict = FALSE,
model = NULL,
trend = ~1, interaction = Poisson(), rbord = reach(interaction),
compute.var = TRUE,
truecoef = NULL, hi.res = NULL)
object |
Object to be analysed.
Either a fitted point process model (object of class |
r |
Optional.
Vector of values of the argument |
breaks |
This argument is for advanced use only. |
... |
Ignored. |
correction |
Optional vector of character strings specifying the edge
correction(s) to be used. See |
conditional |
Optional. Logical value indicating whether to compute the estimates for the conditional case. See Details. |
restrict |
Logical value indicating
whether to compute the restriction estimator ( |
model |
Optional. A fitted point process model (object of
class |
trend , interaction , rbord |
Optional. Arguments passed to |
compute.var |
Logical value indicating whether to compute the
Poincare variance bound for the residual |
truecoef |
Optional. Numeric vector. If present, this will be treated as
if it were the true coefficient vector of the point process model,
in calculating the diagnostic. Incompatible with |
hi.res |
Optional. List of parameters passed to |
This command provides a diagnostic for the goodness-of-fit of
a point process model fitted to a point pattern dataset.
It computes an estimate of the K
function of the
dataset, together with a model compensator of the
K
function, which should be approximately equal if the model is a good
fit to the data.
The first argument, object
, is usually a fitted point process model
(object of class "ppm"
), obtained from the
model-fitting function ppm
.
For convenience, object
can also be a point pattern
(object of class "ppp"
). In that case, a point process
model will be fitted to it, by calling ppm
using the arguments
trend
(for the first order trend),
interaction
(for the interpoint interaction)
and rbord
(for the erosion distance in the border correction
for the pseudolikelihood). See ppm
for details
of these arguments.
The algorithm first extracts the original point pattern dataset
(to which the model was fitted) and computes the
standard nonparametric estimates of the K
function.
It then also computes the model compensator of the
K
function. The different function estimates are returned
as columns in a data frame (of class "fv"
).
The argument correction
determines the edge correction(s)
to be applied. See Kest
for explanation of the principle
of edge corrections. The following table gives the options
for the correction
argument, and the corresponding
column names in the result:
correction | description of correction | nonparametric | compensator |
"isotropic" | Ripley isotropic correction | iso | icom |
"translate" | Ohser-Stoyan translation correction | trans | tcom |
"border" | border correction | border | bcom
|
The nonparametric estimates can all be expressed in the form
\hat K(r) = \sum_i \sum_{j < i} e(x_i,x_j,r,x) I\{ d(x_i,x_j) \le r \}
where x_i
is the i
-th data point,
d(x_i,x_j)
is the distance between x_i
and
x_j
, and e(x_i,x_j,r,x)
is
a term that serves to correct edge effects and to re-normalise the
sum. The corresponding model compensator is
{\bf C} \, \tilde K(r) = \int_W \lambda(u,x) \sum_j e(u,x_j,r,x \cup u) I\{ d(u,x_j) \le r\}
where the integral is over all locations u
in
the observation window,
\lambda(u,x)
denotes the conditional intensity
of the model at the location u
, and x \cup u
denotes the
data point pattern x
augmented by adding the extra point u
.
If the fitted model is a Poisson point process, then the formulae above are exactly what is computed. If the fitted model is not Poisson, the formulae above are modified slightly to handle edge effects.
The modification is determined by the arguments
conditional
and restrict
.
The value of conditional
defaults to FALSE
for Poisson models
and TRUE
for non-Poisson models.
If conditional=FALSE
then the formulae above are not modified.
If conditional=TRUE
, then the algorithm calculates
the restriction estimator if restrict=TRUE
,
and calculates the reweighting estimator if restrict=FALSE
.
See Appendix D of Baddeley, Rubak and \Moller (2011).
Thus, by default, the reweighting estimator is computed
for non-Poisson models.
The nonparametric estimates of K(r)
are approximately unbiased
estimates of the K
-function, assuming the point process is
stationary. The model compensators are unbiased estimates
of the mean values of the corresponding nonparametric estimates,
assuming the model is true. Thus, if the model is a good fit, the mean value
of the difference between the nonparametric estimates and model compensators
is approximately zero.
A function value table (object of class "fv"
),
essentially a data frame of function values.
There is a plot method for this class. See fv.object
.
, \ege and Jesper \Moller.
Baddeley, A., Rubak, E. and \Moller, J. (2011) Score, pseudo-score and residual diagnostics for spatial point process models. Statistical Science 26, 613–646.
Related functions:
Kres
,
Kest
.
Alternative functions:
Gcom
,
psstG
, psstA
, psst
.
Point process models: ppm
.
fit0 <- ppm(cells, ~1) # uniform Poisson
if(interactive()) {
plot(Kcom(fit0))
# compare the isotropic-correction estimates
plot(Kcom(fit0), cbind(iso, icom) ~ r)
# uniform Poisson is clearly not correct
}
fit1 <- ppm(cells, ~1, Strauss(0.08))
K1 <- Kcom(fit1)
K1
if(interactive()) {
plot(K1)
plot(K1, cbind(iso, icom) ~ r)
plot(K1, cbind(trans, tcom) ~ r)
# how to plot the difference between nonparametric estimates and compensators
plot(K1, iso - icom ~ r)
# fit looks approximately OK; try adjusting interaction distance
}
fit2 <- ppm(cells, ~1, Strauss(0.12))
K2 <- Kcom(fit2)
if(interactive()) {
plot(K2)
plot(K2, cbind(iso, icom) ~ r)
plot(K2, iso - icom ~ r)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.