predict.ppm {spatstat.model}R Documentation

Prediction from a Fitted Point Process Model

Description

Given a fitted point process model obtained by ppm, evaluate the spatial trend or the conditional intensity of the model at new locations.

Usage

   ## S3 method for class 'ppm'
predict(object, window=NULL, ngrid=NULL, locations=NULL,
   covariates=NULL,
   type=c("trend", "cif", "intensity", "count"),
   se=FALSE,
   interval=c("none", "confidence", "prediction"),
   level = 0.95, 
   X=data.ppm(object), correction, ignore.hardcore=FALSE,
   ...,
   dimyx=NULL, eps=NULL,
   rule.eps = c("adjust.eps", "grow.frame", "shrink.frame"),
   new.coef=NULL, check=TRUE, repair=TRUE)

Arguments

object

A fitted point process model, typically obtained from the model-fitting algorithm ppm. An object of class "ppm" (see ppm.object).

window

Optional. A window (object of class "owin") delimiting the locations where predictions should be computed. Defaults to the window of the original data used to fit the model object.

ngrid

Optional. Dimensions of a rectangular grid of locations inside window where the predictions should be computed. An integer, or an integer vector of length 2, specifying the number of grid points in the y and x directions. (Incompatible with locations. Equivalent to dimyx.)

locations

Optional. Data giving the exact x,y coordinates (and marks, if required) of locations at which predictions should be computed. Either a point pattern, or a data frame with columns named x and y, or a binary image mask, or a pixel image. (Incompatible with ngrid, dimyx and eps).

covariates

Values of external covariates required by the model. Either a data frame or a list of images. See Details.

type

Character string. Indicates which property of the fitted model should be predicted. Options are "trend" for the spatial trend, "cif" or "lambda" for the conditional intensity, "intensity" for the intensity, and "count" for the total number of points in window.

se

Logical value indicating whether to calculate standard errors as well.

interval

String (partially matched) indicating whether to produce estimates (interval="none", the default) or a confidence interval (interval="confidence") or a prediction interval (interval="prediction").

level

Coverage probability for the confidence or prediction interval.

X

Optional. A point pattern (object of class "ppp") to be taken as the data point pattern when calculating the conditional intensity. The default is to use the original data to which the model was fitted.

correction

Name of the edge correction to be used in calculating the conditional intensity. Options include "border" and "none". Other options may include "periodic", "isotropic" and "translate" depending on the model. The default correction is the one that was used to fit object.

ignore.hardcore

Advanced use only. Logical value specifying whether to compute only the finite part of the interaction potential (effectively removing any hard core interaction terms).

...

Ignored.

dimyx

Equivalent to ngrid.

eps

Width and height of pixels in the prediction grid. A numerical value, or numeric vector of length 2.

rule.eps

Argument passed to as.mask controlling the discretisation. See as.mask.

new.coef

Numeric vector of parameter values to replace the fitted model parameters coef(object).

check

Logical value indicating whether to check the internal format of object. If there is any possibility that this object has been restored from a dump file, or has otherwise lost track of the environment where it was originally computed, set check=TRUE.

repair

Logical value indicating whether to repair the internal format of object, if it is found to be damaged.

Details

This function computes properties of a fitted spatial point process model (object of class "ppm"). For a Poisson point process it can compute the fitted intensity function, or the expected number of points in a region. For a Gibbs point process it can compute the spatial trend (first order potential), conditional intensity, and approximate intensity of the process. Point estimates, standard errors, confidence intervals and prediction intervals are available.

Given a point pattern dataset, we may fit a point process model to the data using the model-fitting algorithm ppm. This returns an object of class "ppm" representing the fitted point process model (see ppm.object). The parameter estimates in this fitted model can be read off simply by printing the ppm object. The spatial trend, conditional intensity and intensity of the fitted model are evaluated using this function predict.ppm.

The default action is to create a rectangular grid of points in the observation window of the data point pattern, and evaluate the spatial trend at these locations.

The argument type specifies the values that are desired:

If type="trend":

the “spatial trend” of the fitted model is evaluated at each required spatial location u. See below.

If type="cif":

the conditional intensity \lambda(u, X) of the fitted model is evaluated at each required spatial location u, with respect to the data point pattern X.

If type="intensity":

the intensity \lambda(u) of the fitted model is evaluated at each required spatial location u.

If type="count":

the expected total number of points (or the expected number of points falling in window) is evaluated. If window is a tessellation, the expected number of points in each tile of the tessellation is evaluated.

The spatial trend, conditional intensity, and intensity are all equivalent if the fitted model is a Poisson point process. However, if the model is not a Poisson process, then they are all different. The “spatial trend” is the (exponentiated) first order potential, and not the intensity of the process. [For example if we fit the stationary Strauss process with parameters \beta and \gamma, then the spatial trend is constant and equal to \beta, while the intensity is a smaller value.]

The default is to compute an estimate of the desired quantity. If interval="confidence" or interval="prediction", the estimate is replaced by a confidence interval or prediction interval.

If se=TRUE, then a standard error is also calculated, and is returned together with the (point or interval) estimate.

The spatial locations where predictions are required, are determined by the (incompatible) arguments ngrid and locations.

The argument locations may be a point pattern, a data frame or a list specifying arbitrary locations; or it may be a binary image mask (an object of class "owin" with type "mask") or a pixel image (object of class "im") specifying (a subset of) a rectangular grid of locations.

The argument covariates gives the values of any spatial covariates at the prediction locations. If the trend formula in the fitted model involves spatial covariates (other than the Cartesian coordinates x, y) then covariates is required. The format and use of covariates are analogous to those of the argument of the same name in ppm. It is either a data frame or a list of images.

Note that if you only want to use prediction in order to generate a plot of the predicted values, it may be easier to use plot.ppm which calls this function and plots the results.

Value

If total is given: a numeric vector or matrix.

If locations is given and is a data frame: a vector of predicted values for the spatial locations (and marks, if required) given in locations.

If ngrid is given, or if locations is given and is a binary image mask or a pixel image: If object is an unmarked point process, the result is a pixel image object (of class "im", see im.object) containing the predictions. If object is a multitype point process, the result is a list of pixel images, containing the predictions for each type at the same grid of locations.

The “predicted values” are either values of the spatial trend (if type="trend"), values of the conditional intensity (if type="cif" or type="lambda"), values of the intensity (if type="intensity") or numbers of points (if type="count").

If se=TRUE, then the result is a list with two entries, the first being the predicted values in the format described above, and the second being the standard errors in the same format.

Warnings

The current implementation invokes predict.glm so that prediction is wrong if the trend formula in object involves terms in ns(), bs() or poly(). This is a weakness of predict.glm itself!

Error messages may be very opaque, as they tend to come from deep in the workings of predict.glm. If you are passing the covariates argument and the function crashes, it is advisable to start by checking that all the conditions listed above are satisfied.

Author(s)

Adrian Baddeley Adrian.Baddeley@curtin.edu.au and Rolf Turner rolfturner@posteo.net

References

Baddeley, A. and Turner, R. Practical maximum pseudolikelihood for spatial point patterns. Australian and New Zealand Journal of Statistics 42 (2000) 283–322.

Berman, M. and Turner, T.R. Approximating point process likelihoods with GLIM. Applied Statistics 41 (1992) 31–38.

See Also

ppm, ppm.object, plot.ppm, print.ppm, fitted.ppm, spatstat.options

Examples

  
  m <- ppm(cells ~ polynom(x,y,2), Strauss(0.05))
  trend <- predict(m, type="trend")
  if(human <- interactive()) {
  image(trend)
  points(cells)
  }
  cif <- predict(m, type="cif")
  if(human) {
  persp(cif)
  }
  mj <- ppm(japanesepines ~ harmonic(x,y,2))
  se <- predict(mj, se=TRUE) # image of standard error
  ci <- predict(mj, interval="c") # two images, confidence interval

  # prediction interval for total number of points
  predict(mj, type="count", interval="p")

  # prediction intervals for counts in tiles
  predict(mj, window=quadrats(japanesepines, 3), type="count", interval="p")

  # prediction at arbitrary locations
  predict(mj, locations=data.frame(x=0.3, y=0.4))

  X <- runifpoint(5, Window(japanesepines))
  predict(mj, locations=X, se=TRUE)

  # multitype
  rr <- matrix(0.06, 2, 2)
  ma <- ppm(amacrine ~ marks,  MultiStrauss(rr))
  Z <- predict(ma)
  Z <- predict(ma, type="cif")
  predict(ma, locations=data.frame(x=0.8, y=0.5,marks="on"), type="cif")

  

[Package spatstat.model version 3.2-11 Index]