# valid.ppm

##### Check Whether Point Process Model is Valid

Determines whether a fitted point process model satisfies the integrability conditions for existence of the point process.

##### Usage

`valid.ppm(object, na.value = TRUE)`

##### Arguments

- object
- Fitted point process model (object of class
`"ppm"`

). - na.value
- Result that should be returned if the fitted model coefficients
contain
`NA`

's.

##### Details

The model-fitting function `ppm`

fits Gibbs point process models to point pattern data.
By default, `ppm`

does not check whether the
fitted model actually exists as a point process. This checking
is done by `valid.ppm`

.

Unlike a regression model, which is well-defined for any values
of the fitted regression coefficients, a Gibbs point process model
is only well-defined if the fitted interaction parameters
satisfy some constraints.
A famous example is the Strauss process (see `Strauss`

)
which exists only when the interaction parameter $\gamma$
is less than or equal to 1. For values $\gamma > 1$,
the probability density is not integrable and the process does not
exist (and cannot be simulated).

By default, `ppm`

does not enforce the constraint that
a fitted Strauss process (for example) must satisfy
$\gamma \le 1$.
This is because a fitted parameter value of $\gamma > 1$
could be useful information for data analysis, as it indicates that
the Strauss model is not appropriate, and suggests a clustered model should be
fitted.

The function `valid.ppm`

checks whether the fitted model
`object`

specifies a well-defined point process. It returns
`TRUE`

if the model is well-defined.

Another possible reason for invalid models is that the data may not
be adequate for estimation of the model parameters. In this case,
some of the fitted coefficients could be `NA`

. If this happens
then `valid.ppm`

returns the value specified by `na.value`

.

Use the function `project.ppm`

to force the fitted model
to be valid.

##### Value

- Logical.

##### See Also

##### Examples

```
fit1 <- ppm(cells, ~1, Strauss(0.1))
valid.ppm(fit1)
fit2 <- ppm(redwood, ~1, Strauss(0.1))
valid.ppm(fit2)
```

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