# project.ppm

##### Force Point Process Model to be Valid

Ensures that a fitted point process model satisfies the integrability conditions for existence of the point process.

##### Usage

`project.ppm(object, fatal=FALSE)`

##### Arguments

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

). - fatal
- Logical. Whether to generate an error if the model cannot be projected to a valid model.

##### Details

The model-fitting function `ppm`

fits Gibbs point process models to point pattern data.
By default, the fitted model returned by `ppm`

may not
actually exist as a point process.

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 `project.ppm`

changes the coefficients
in the fitted model `object`

so that the model is valid.
Because the loglikelihood and log pseudolikelihood are concave,
this simply involves projecting the coefficients onto the boundary
of the parameter space.

Use the function `valid.ppm`

to check whether a fitted model
object specifies a well-defined point process.

##### Value

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

).

##### See Also

##### Examples

```
fit <- ppm(redwood, ~1, Strauss(0.1))
coef(fit)
fit2 <- project.ppm(fit)
coef(fit2)
```

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