Determines whether a fitted point process model satisfies the integrability conditions for existence of the point process.
# S3 method for ppm
valid(object, warn=TRUE, …)
Fitted point process model (object of class "ppm"
).
Logical value indicating whether to issue a warning if the validity of the model cannot be checked (due to unavailability of the required code).
Ignored.
A logical value, or NA
.
This is a method for the generic function valid
for Poisson and Gibbs point process models (class "ppm"
).
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
or infinite
values. If this happens
then valid.ppm
returns FALSE
.
Use the function project.ppm
to force the fitted model
to be valid.
# NOT RUN {
fit1 <- ppm(cells, ~1, Strauss(0.1))
valid(fit1)
fit2 <- ppm(redwood, ~1, Strauss(0.1))
valid(fit2)
# }
Run the code above in your browser using DataLab