Learn R Programming

spatstat.core (version 2.3-1)

rmhmodel.ppm: Interpret Fitted Model for Metropolis-Hastings Simulation.

Description

Converts a fitted point process model into a format that can be used to simulate the model by the Metropolis-Hastings algorithm.

Usage

# S3 method for ppm
rmhmodel(model, w, ..., verbose=TRUE, project=TRUE,
                         control=rmhcontrol(),
                         new.coef=NULL)

Arguments

model

Fitted point process model (object of class "ppm").

w

Optional. Window in which the simulations should be generated.

Ignored.

verbose

Logical flag indicating whether to print progress reports while the model is being converted.

project

Logical flag indicating what to do if the fitted model does not correspond to a valid point process. See Details.

control

Parameters determining the iterative behaviour of the simulation algorithm. Passed to rmhcontrol.

new.coef

New values for the canonical parameters of the model. A numeric vector of the same length as coef(model).

Value

An object of class "rmhmodel", which is essentially a list of parameter values for the model.

There is a print method for this class, which prints a sensible description of the model chosen.

Details

The generic function rmhmodel takes a description of a point process model in some format, and converts it into an object of class "rmhmodel" so that simulations of the model can be generated using the Metropolis-Hastings algorithm rmh.

This function rmhmodel.ppm is the method for the class "ppm" of fitted point process models.

The argument model should be a fitted point process model (object of class "ppm") typically obtained from the model-fitting function ppm. This will be converted into an object of class "rmhmodel".

The optional argument w specifies the window in which the pattern is to be generated. If specified, it must be in a form which can be coerced to an object of class owin by as.owin.

Not all fitted point process models obtained from ppm can be simulated. We have not yet implemented simulation code for the LennardJones and OrdThresh models.

It is also possible that a fitted point process model obtained from ppm may not correspond to a valid point process. For example a fitted model with the Strauss interpoint interaction may have any value of the interaction parameter \(\gamma\); however the Strauss process is not well-defined for \(\gamma > 1\) (Kelly and Ripley, 1976).

The argument project determines what to do in such cases. If project=FALSE, a fatal error will occur. If project=TRUE, the fitted model parameters will be adjusted to the nearest values which do correspond to a valid point process. For example a Strauss process with \(\gamma > 1\) will be projected to a Strauss process with \(\gamma = 1\), equivalent to a Poisson process.

References

Diggle, P. J. (2003) Statistical Analysis of Spatial Point Patterns (2nd ed.) Arnold, London.

Diggle, P.J. and Gratton, R.J. (1984) Monte Carlo methods of inference for implicit statistical models. Journal of the Royal Statistical Society, series B 46, 193 -- 212.

Geyer, C.J. (1999) Likelihood Inference for Spatial Point Processes. Chapter 3 in O.E. Barndorff-Nielsen, W.S. Kendall and M.N.M. Van Lieshout (eds) Stochastic Geometry: Likelihood and Computation, Chapman and Hall / CRC, Monographs on Statistics and Applied Probability, number 80. Pages 79--140.

Kelly, F.P. and Ripley, B.D. (1976) On Strauss's model for clustering. Biometrika 63, 357--360.

See Also

rmhmodel, rmhmodel.list, rmhmodel.default, rmh, rmhcontrol, rmhstart, ppm, AreaInter, BadGey, DiggleGatesStibbard, DiggleGratton, Fiksel, Geyer, Hardcore, Hybrid, LennardJones, MultiStrauss, MultiStraussHard, PairPiece, Penttinen, Poisson, Softcore, Strauss, StraussHard and Triplets.

Examples

Run this code
# NOT RUN {
  fit1 <- ppm(cells ~1, Strauss(0.07))
  mod1 <- rmhmodel(fit1)

  fit2 <- ppm(cells ~x, Geyer(0.07, 2))
  mod2 <- rmhmodel(fit2)

  fit3 <- ppm(cells ~x, Hardcore(0.07))
  mod3 <- rmhmodel(fit3)

  # Then rmh(mod1), etc
# }

Run the code above in your browser using DataLab