# anova.mppm

##### ANOVA for Fitted Point Process Models for Replicated Patterns

Performs analysis of deviance for one or more point process models fitted to replicated point pattern data.

##### Usage

```
# S3 method for mppm
anova(object, …,
test=NULL, adjust=TRUE,
fine=FALSE, warn=TRUE)
```

##### Arguments

- object
Object of class

`"mppm"`

representing a point process model that was fitted to replicated point patterns.- …
Optional. Additional objects of class

`"mppm"`

.- test
Type of hypothesis test to perform. A character string, partially matching one of

`"Chisq"`

,`"LRT"`

,`"Rao"`

,`"score"`

,`"F"`

or`"Cp"`

, or`NULL`

indicating that no test should be performed.- adjust
Logical value indicating whether to correct the pseudolikelihood ratio when some of the models are not Poisson processes.

- fine
Logical value passed to

`vcov.ppm`

indicating whether to use a quick estimate (`fine=FALSE`

, the default) or a slower, more accurate estimate (`fine=TRUE`

) of the variance of the fitted coefficients of each model. Relevant only when some of the models are not Poisson and`adjust=TRUE`

.- warn
Logical value indicating whether to issue warnings if problems arise.

##### Details

This is a method for `anova`

for comparing several
fitted point process models of class `"mppm"`

,
usually generated by the model-fitting function `mppm`

).

If the fitted models are all Poisson point processes,
then this function performs an Analysis of Deviance of
the fitted models. The output shows the deviance differences
(i.e. 2 times log likelihood ratio),
the difference in degrees of freedom, and (if `test="Chi"`

)
the two-sided p-values for the chi-squared tests. Their interpretation
is very similar to that in `anova.glm`

.

If some of the fitted models are *not* Poisson point processes,
the `deviance' differences in this table are
'pseudo-deviances' equal to 2 times the differences
in the maximised values of the log pseudolikelihood (see
`ppm`

). It is not valid to compare these
values to the chi-squared distribution. In this case,
if `adjust=TRUE`

(the default), the
pseudo-deviances will be adjusted using the method of Pace et al
(2011) and Baddeley, Turner and Rubak (2015)
so that the chi-squared test is valid.
It is strongly advisable to perform this adjustment.

The argument `test`

determines which hypothesis test, if any, will
be performed to compare the models. The argument `test`

should be a character string, partially matching one of
`"Chisq"`

, `"F"`

or `"Cp"`

,
or `NULL`

. The first option `"Chisq"`

gives
the likelihood ratio test based on the asymptotic chi-squared
distribution of the deviance difference.
The meaning of the other options is explained in
`anova.glm`

.
For random effects models, only `"Chisq"`

is
available, and again gives the likelihood ratio test.

##### Value

An object of class `"anova"`

, or `NULL`

.

##### Error messages

An error message that reports
*system is computationally singular* indicates that the
determinant of the Fisher information matrix of one of the models
was either too large or too small for reliable numerical calculation.
See `vcov.ppm`

for suggestions on how to handle this.

##### 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. and Rubak, E. (2015)
Adjusted composite likelihood ratio test for Gibbs point processes.
*Journal of Statistical Computation and Simulation*
**86** (5) 922--941.
DOI: 10.1080/00949655.2015.1044530.

Pace, L., Salvan, A. and Sartori, N. (2011)
Adjusting composite likelihood ratio statistics.
*Statistica Sinica* **21**, 129--148.

##### See Also

##### Examples

```
# NOT RUN {
H <- hyperframe(X=waterstriders)
#' test for loglinear trend in x coordinate
mod0 <- mppm(X~1, data=H, Poisson())
modx <- mppm(X~x, data=H, Poisson())
anova(mod0, modx, test="Chi")
# not significant
anova(modx, test="Chi")
# not significant
#' test for inhibition
mod0S <- mppm(X~1, data=H, Strauss(2))
anova(mod0, mod0S, test="Chi")
# significant!
#' test for trend after accounting for inhibition
modxS <- mppm(X~x, data=H, Strauss(2))
anova(mod0S, modxS, test="Chi")
# not significant
# }
```

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