# cdf.test.mppm

##### Spatial Distribution Test for Multiple Point Process Model

Performs a spatial distribution test of a point process model fitted to multiple spatial point patterns. The test compares the observed and predicted distributions of the values of a spatial covariate, using either the Kolmogorov-Smirnov, Cramer-von Mises or Anderson-Darling test of goodness-of-fit.

##### Usage

```
# S3 method for mppm
cdf.test(model, covariate, test=c("ks", "cvm", "ad"), ...,
nsim=19, verbose=TRUE, interpolate=FALSE, fast=TRUE, jitter=TRUE)
```

##### Arguments

- model
An object of class

`"mppm"`

representing a point process model fitted to multiple spatial point patterns.- covariate
The spatial covariate on which the test will be based. A function, a pixel image, a list of functions, a list of pixel images, a hyperframe, a character string containing the name of one of the covariates in

`model`

, or one of the strings`"x"`

or`"y"`

.- test
Character string identifying the test to be performed:

`"ks"`

for Kolmogorov-Smirnov test,`"cvm"`

for Cramer-von Mises test or`"ad"`

for Anderson-Darling test.- …
Arguments passed to

`cdf.test`

to control the test.- nsim
Number of simulated realisations which should be generated, if a Monte Carlo test is required.

- verbose
Logical flag indicating whether to print progress reports.

- interpolate
Logical flag indicating whether to interpolate between pixel values when codecovariate is a pixel image. See

*Details*.- fast
Logical flag. If

`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 orders of magnitude.- jitter
Logical flag. If

`TRUE`

, observed values of the covariate are perturbed by adding small random values, to avoid tied observations.

##### Details

This function is a method for the generic function
`cdf.test`

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, Cramer-von Mises or Anderson-Darling test of goodness-of-fit. These are exact tests if the model is Poisson; otherwise, for a Gibbs model, a Monte Carlo p-value is computed by generating simulated realisations of the model and applying the selected goodness-of-fit test to each simulation.

The argument `model`

should be a fitted point process model
fitted to multiple point patterns
(object of class `"mppm"`

).

The argument `covariate`

contains the values of a spatial
function. It can be

a

`function(x,y)`

a pixel image (object of class

`"im"`

a list of

`function(x,y)`

, one for each point patterna list of pixel images, one for each point pattern

a hyperframe (see

`hyperframe`

) of which the first column will be taken as containing the covariatea character string giving the name of one of the covariates in

`model`

one of the character strings

`"x"`

or`"y"`

, indicating the spatial coordinates.

If `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.
A goodness-of-fit test of the uniform distribution is applied
to these numbers using `ks.test`

,
`cvm.test`

or `ad.test`

.

The argument `interpolate`

determines
how pixel values will be handled when codecovariate 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.

If `model`

is a Poisson point process, then the
Kolmogorov-Smirnov,
Cramer-von Mises
and Anderson-Darling tests are theoretically exact.
This test was apparently first described (in the context of
spatial data, and for Kolmogorov-Smirnov) by Berman (1986).
See also Baddeley et al (2005).

If `model`

is not a Poisson point process, then the
Kolmogorov-Smirnov,
Cramer-von Mises
and Anderson-Darling tests are biased.
Instead they are used as the basis of a Monte Carlo test.
First `nsim`

simulated realisations of the model will be generated.
Each simulated realisation consists of a list of simulated point
patterns, one for each of the original data patterns. This
can take a very long time. The model is then re-fitted to each
simulation, and the refitted model is subjected to the goodness-of-fit
test described above. A Monte Carlo p-value is then computed by
comparing the p-value of the original test with the
p-values obtained from the simulations.

##### Value

An object of class `"cdftest"`

and `"htest"`

containing the results of the
test. See `cdf.test`

for details.

##### References

Baddeley, A., Rubak, E. and Turner, R. (2015)
*Spatial Point Patterns: Methodology and Applications with R*.
London: Chapman and Hall/CRC Press.

Baddeley, A., Turner, R., Moller, J. and Hazelton, M. (2005)
Residual analysis for spatial point processes.
*Journal of the Royal Statistical Society, Series B*
**67**, 617--666.

Berman, M. (1986)
Testing for spatial association between a point process
and another stochastic process.
*Applied Statistics* **35**, 54--62.

##### See Also

##### Examples

```
# NOT RUN {
# 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 wrong model
cdf.test(fit0, "x")
# test right model
cdf.test(fit1, "x")
# Gibbs model
fitGibbs <- update(fit0, interaction=Strauss(0.07))
ns <- if(interactive()) 19 else 3
cdf.test(fitGibbs, "x", nsim=ns)
# }
```

*Documentation reproduced from package spatstat, version 1.61-0, License: GPL (>= 2)*