Prediction from a Fitted Point Process Model
Given a fitted point process model obtained by
evaluate the spatial trend or the conditional intensity of the model
at new locations.
## 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, ..., new.coef=NULL, check=TRUE, repair=TRUE)
- A fitted point process model, typically obtained from
the model-fitting algorithm
ppm. An object of class
- 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
- Optional. Dimensions of a rectangular grid of locations
windowwhere 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.
- 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
y, or a binary imag
- Values of external covariates required by the model. Either a data frame or a list of images. See Details.
- Character string.
Indicates which property of the fitted model should be predicted.
"trend"for the spatial trend,
"lambda"for the conditional intensity,
- Logical value indicating whether to calculate standard errors as well.
- String (partially matched) indicating whether to produce
interval="none", the default) or a confidence interval (
interval="confidence") or a prediction interval (
- Coverage probability for the confidence or prediction interval.
- 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.
- Name of the edge correction to be used
in calculating the conditional intensity.
"none". Other options may include
- Numeric vector of parameter values to replace the
fitted model parameters
- Logical value indicating whether to check the internal format
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 compu
- Logical value indicating whether to repair the internal format
object, if it is found to be damaged.
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
returns an object of class
the fitted point process model (see
The parameter estimates in this fitted model can be read off
simply by printing the
The spatial trend, conditional intensity and intensity of the
fitted model are evaluated using this function
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.
type specifies the values that are desired:
[object Object],[object Object],[object Object],[object Object]
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.
the estimate is replaced by a confidence interval or prediction interval.
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)
- If the argument
ngridis present, then predictions are performed at a rectangular grid of locations in the window
window. The result of prediction will be a pixel image or images.
locationsis present, then predictions will be performed at the spatial locations given by this dataset. These may be an arbitrary list of spatial locations, or they may be a rectangular grid. The result of prediction will be either a numeric vector or a pixel image or images.
- If neither
locationsis given, then
ngridis assumed. The value of
spatstat.options("npixel"), which is initialised to 128 when
locationsmay 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
"mask") or a pixel image (object of class
"im") specifying (a subset of) a rectangular grid of locations.
locationsis a point pattern (object of class
"ppp"), then prediction will be performed at the points of the point pattern. The result of prediction will be a vector of predicted values, one value for each point. If the model is a marked point process, then
locationsshould be a marked point pattern, with marks of the same kind as the model; prediction will be performed at these marked points. The result of prediction will be a vector of predicted values, one value for each (marked) point.
locationsis a data frame or list, then it must contain vectors
locations$yspecifying the$x,y$coordinates of the prediction locations. Additionally, if the model is a marked point process, then
locationsmust also contain a factor
locations$marksspecifying the marks of the prediction locations. These vectors must have equal length. The result of prediction will be a vector of predicted values, of the same length.
locationsis a binary image mask, then prediction will be performed at each pixel in this binary image where the pixel value is
TRUE(in other words, at each pixel that is inside the window). If the fitted model is an unmarked point process, then the result of prediction will be an image. If the fitted model is a marked point process, then prediction will be performed for each possible value of the mark at each such location, and the result of prediction will be a list of images, one for each mark value.
locationsis a pixel image (object of class
"im"), then prediction will be performed at each pixel in this image where the pixel value is defined (i.e.\ where the pixel value is not
covariatesgives 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
covariatesis required. The format and use of
covariatesare analogous to those of the argument of the same name in
ppm. It is either a data frame or a list of images.
covariatesis a list of images, then the names of the entries should correspond to the names of covariates in the model formula
trend. Each entry in the list must be an image object (of class
im.object). The software will look up the pixel values of each image at the quadrature points.
covariatesis a data frame, then the
ith row of
covariatesis assumed to contain covariate data for the
ith location. When
locationsis a data frame, this just means that each row of
covariatescontains the covariate data for the location specified in the corresponding row of
locationsis a binary image mask, the row
covariates[i,]must correspond to the location
x = as.vector(raster.x(locations))and
y = as.vector(raster.y(locations)).
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.
totalis given: a numeric vector or matrix. If
locationsis given and is a data frame: a vector of predicted values for the spatial locations (and marks, if required) given in
ngridis given, or if
locationsis given and is a binary image mask or a pixel image: If
objectis an unmarked point process, the result is a pixel image object (of class
im.object) containing the predictions. If
objectis 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="lambda"), values of the intensity (if
type="intensity") or numbers of points (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.
The current implementation invokes
so that prediction is wrong if the trend formula in
object involves terms in
This is a weakness of
Error messages may be very opaque,
as they tend to come from deep in the workings of
If you are passing the
and the function crashes,
it is advisable to start by checking that all the conditions
listed above are satisfied.
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.
<testonly>op <- spatstat.options(npixel=32)</testonly> m <- ppm(cells ~ polynom(x,y,2), Strauss(0.05)) trend <- predict(m, type="trend") image(trend) points(cells) cif <- predict(m, type="cif") persp(cif) data(japanesepines) mj <- ppm(japanesepines ~ harmonic(x,y,2)) se <- predict(mj, se=TRUE) # prediction interval for total number of points predict(mj, 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") <testonly>spatstat.options(op)</testonly>