Plot point process residuals against a covariate, for a point process model on a linear network, or a point pattern on a linear network.
# S3 method for lppm
lurking(object, covariate,
type="raw",
...,
covname)The (invisible) return value is an object
belonging to the class "lurk", for which there
are methods for plot and print.
This object is a list containing two dataframes
empirical and theoretical.
The first dataframe empirical contains columns
covariate and value giving the coordinates of the
lurking variable plot. The second dataframe theoretical
contains columns covariate, mean and sd
giving the coordinates of the plot of the theoretical mean and standard deviation.
The fitted point process model on a linear network
(an object of class "lppm")
for which diagnostics should be produced. This object
is usually obtained from lppm.
Alternatively, object may be a point pattern
on a linear network (object of class "lpp").
The covariate against which residuals should be plotted.
Either a numeric vector, a pixel image, or an expression.
See Details below.
String indicating the type of residuals or weights to be computed.
Choices include "eem",
"raw", "inverse" and "pearson".
Further arguments passed to lurking.ppm
to control the computation and the plot behaviour.
A string name for the covariate, to be used in axis labels of plots.
Adrian Baddeley Adrian.Baddeley@curtin.edu.au, Rolf Turner rolfturner@posteo.net and Ege Rubak rubak@math.aau.dk.
This function generates a ‘lurking variable’ plot for a
fitted point process model on a linear network.
Residuals from the model represented by object
are plotted against the covariate specified by covariate.
This plot can be used to reveal departures from the fitted model,
in particular, to reveal that the point pattern depends on the covariate.
The function lurking is generic, with methods for
lppm and lpp documented here.
The argument object would usually be a fitted point process model
on a network, obtained from the model-fitting algorithm
lppm).
If object is a point pattern on a network
(object of class "lpp") then
the model is taken to be the uniform Poisson process on the network
(Complete Spatial Randomness on the Network).
First the residuals from the fitted model (Baddeley et al, 2004)
are computed at each pixel,
or alternatively the `exponential energy marks' (Stoyan and Grabarnik,
1991) are computed at each data point.
The argument type selects the type of
residual or weight. See diagnose.ppm for options
and explanation.
A lurking variable plot for point processes (Baddeley et al, 2004)
displays either the cumulative sum of residuals/weights
(if cumulative = TRUE) or a kernel-weighted average of the
residuals/weights (if cumulative = FALSE) plotted against
the covariate. The empirical plot (solid lines) is shown
together with its expected value assuming the model is true
(dashed lines) and optionally also the pointwise
two-standard-deviation limits (grey shading).
To be more precise, let \(Z(u)\) denote the value of the covariate at a spatial location \(u\) on the network.
If cumulative=TRUE then we plot \(H(z)\) against \(z\),
where \(H(z)\) is the sum of the residuals
over all quadrature points where the covariate takes
a value less than or equal to \(z\), or the sum of the
exponential energy weights over all data points where the covariate
takes a value less than or equal to \(z\).
If cumulative=FALSE then we plot \(h(z)\) against \(z\),
where \(h(z)\) is the derivative of \(H(z)\),
computed approximately by spline smoothing.
For the point process residuals \(E(H(z)) = 0\), while for the exponential energy weights \(E(H(z)) = \) length of the subset of the network satisfying \(Z(u) <= z\).
If the empirical and theoretical curves deviate substantially from one another, the interpretation is that the fitted model does not correctly account for dependence on the covariate. The correct form (of the spatial trend part of the model) may be suggested by the shape of the plot.
If plot.sd = TRUE, then superimposed on the lurking variable
plot are the pointwise
two-standard-deviation error limits for \(H(x)\) calculated for the
inhomogeneous Poisson process. The default is plot.sd = TRUE
for Poisson models and plot.sd = FALSE for non-Poisson
models.
By default, the two-standard-deviation limits are calculated
from the exact formula for the asymptotic variance
of the residuals under the asymptotic normal approximation,
equation (37) of Baddeley et al (2006).
However, for compatibility with the original paper
of Baddeley et al (2005), if oldstyle=TRUE,
the two-standard-deviation limits are calculated
using the innovation variance, an over-estimate of the true
variance of the residuals.
The argument covariate is either a numeric vector, a pixel
image, or an R language expression.
If it is a numeric vector, it is assumed to contain
the values of the covariate for each of the quadrature points
in the fitted model. The quadrature points can be extracted by
quad.ppm(object).
If covariate is a pixel image, it is assumed to contain the
values of the covariate at each location in the window. The values of
this image at the quadrature points will be extracted.
Alternatively, if covariate
is an expression, it will be evaluated in the same environment
as the model formula used in fitting the model object. It must
yield a vector of the same length as the number of quadrature points.
The expression may contain the terms x and y representing the
cartesian coordinates, and may also contain other variables that were
available when the model was fitted. Certain variable names are
reserved words; see lppm.
Baddeley, A., Turner, R., Moller, J. and Hazelton, M. (2005) Residual analysis for spatial point processes. Journal of the Royal Statistical Society, Series B 67, 617--666.
Baddeley, A., Moller, J. and Pakes, A.G. (2006) Properties of residuals for spatial point processes. Annals of the Institute of Statistical Mathematics 60, 627--649.
Stoyan, D. and Grabarnik, P. (1991) Second-order characteristics for stochastic structures connected with Gibbs point processes. Mathematische Nachrichten, 151:95--100.
lppm
fit <- lppm(spiders ~ y)
(b <- lurking(fit, expression(x), type="raw"))
lurking(fit, expression(x), type="raw", cumulative=FALSE)
Run the code above in your browser using DataLab