project.ppm(object, fatal=FALSE)
"ppm"
)."ppm"
).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.
ppm
,
project.ppm
fit <- ppm(redwood, ~1, Strauss(0.1))
coef(fit)
fit2 <- project.ppm(fit)
coef(fit2)
Run the code above in your browser using DataCamp Workspace