## S3 method for class 'mppm':
kstest(model, covariate, ...,
verbose=TRUE, interpolate=FALSE, fast=TRUE, jitter=TRUE)
"mppm"
representing a point process model
fitted to multiple spatial point patterns.model
.ks.test
to control the test.TRUE
, values of the covariate
are only sampled at the original quadrature points used to
fit the model. If FALSE
, values of the covariate
are sampled at all pixels, which can be slower by three ordersTRUE
, observed values of the covariate
are perturbed by adding small random values, to avoid
tied observations."htest"
containing the results of the
test. See ks.test
for details.kstest
for the class mppm
. This function performs a goodness-of-fit test of
a point process model that has been fitted to multiple point patterns.
The observed distribution
of the values of a spatial covariate at the data points,
and the predicted distribution of the same values under the model,
are compared using the Kolmogorov-Smirnov test.
The argument model
should be a fitted point process model
fitted to multiple point patterns
(object of class "mppm"
). It should be a Poisson point process.
The argument covariate
contains the values of a spatial
function. It can be
function(x,y)
"im"
function(x,y)
, one for each point patternhyperframe
)
of which the first
column will be taken as containing the covariatemodel
.covariate
is an image, it should have numeric values,
and its domain should cover the observation window of the
model
. If covariate
is a function, it should expect
two arguments x
and y
which are vectors of coordinates,
and it should return a numeric vector of the same length
as x
and y
. First the original data point pattern is extracted from model
.
The values of the covariate
at these data points are
collected.
The predicted distribution of the values of the covariate
under the fitted model
is computed as follows.
The values of the covariate
at all locations in the
observation window are evaluated,
weighted according to the point process intensity of the fitted model,
and compiled into a cumulative distribution function $F$ using
ewcdf
.
The probability integral transformation is then applied:
the values of the covariate
at the original data points
are transformed by the predicted cumulative distribution function
$F$ into numbers between 0 and 1. If the model is correct,
these numbers are i.i.d. uniform random numbers. The
Kolmogorov-Smirnov test of uniformity is then applied using
the Rcore function ks.test
.
This test was apparently first described (in the context of spatial data) by Berman (1986). See also Baddeley et al (2005).
The argument interpolate
determines
how pixel values will be handled when code{covariate} is a pixel image.
The value of the covariate at a data point is obtained
by looking up the value of the nearest pixel if
interpolate=FALSE
, or by linearly interpolating
between the values of the four nearest pixels
if interpolate=TRUE
. Linear interpolation is slower,
but is sometimes necessary to avoid tied values of the covariate
arising when the pixel grid is coarse.
Berman, M. (1986) Testing for spatial association between a point process and another stochastic process. Applied Statistics 35, 54--62.
ks.test
,
quadrat.test
,
mppm
# three i.i.d. realisations of nonuniform Poisson process
lambda <- as.im(function(x,y) { 300 * exp(x) }, square(1))
dat <- hyperframe(X=list(rpoispp(lambda), rpoispp(lambda), rpoispp(lambda)))
# fit uniform Poisson process
fit0 <- mppm(X~1, dat)
# fit correct nonuniform Poisson process
fit1 <- mppm(X~x, dat)
# test covariate = x coordinate
xcoord <- function(x,y) { x }
# test wrong model
kstest.mppm(fit0, xcoord)
# test right model
kstest.mppm(fit1, xcoord)
Run the code above in your browser using DataLab