Ensures that a fitted point process model satisfies the integrability conditions for existence of the point process.
project.ppm(object, …, fatal=FALSE, trace=FALSE)# S3 method for ppm
emend(object, …, fatal=FALSE, trace=FALSE)
Fitted point process model (object of class "ppm").
Ignored.
Logical value indicating whether to generate an error if the model cannot be projected to a valid model.
Logical value indicating whether to print a trace of the decision process.
Another point process model (object of class "ppm").
The functions emend.ppm and project.ppm are identical:
  emend.ppm is a method for the generic emend,
  while project.ppm is an older name for the same function.
The purpose of the function is to ensure that a fitted model is valid.
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.
First, some of the fitted coefficients of the model
  may be NA or infinite values. 
  This usually occurs when the data are insufficient to estimate
  all the parameters. The model is said to be
  unidentifiable or confounded.
Second, unlike a regression model, which is well-defined for any finite 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 emend.ppm or project.ppm
  modifies the model object
  so that the model is valid. It 
  identifies the terms in the model object
  that are associated with illegal parameter values (i.e. parameter
  values which are either NA, infinite, or outside their permitted
  range). It considers all possible sub-models of object
  obtained by deleting one or more
  of these terms. It identifies which of these submodels are valid,
  and chooses the valid submodel with the largest pseudolikelihood. The result
  of emend.ppm or project.ppm is the
  true maximum pseudolikelihood fit to the data.
For large datasets or complex models, the algorithm used in
  emend.ppm or 
  project.ppm may be time-consuming, because it takes time to
  compute all the sub-models. A faster, approximate
  algorithm can be applied by setting
  spatstat.options(project.fast=TRUE). This produces a
  valid submodel, which may not be the maximum pseudolikelihood submodel.
Use the function valid.ppm to check whether a fitted model
  object specifies a well-defined point process.
Use the expression all(is.finite(coef(object))) to determine
  whether all parameters are identifiable.
# NOT RUN {
   fit <- ppm(redwood ~1, Strauss(0.1))
   coef(fit)
   fit2 <- emend(fit)
   coef(fit2)
# }
Run the code above in your browser using DataLab