Estimates the inhomogeneous
Kinhom(X, lambda=NULL, …, r = NULL, breaks = NULL,
correction=c("border", "bord.modif", "isotropic", "translate"),
renormalise=TRUE,
normpower=1,
update=TRUE,
leaveoneout=TRUE,
nlarge = 1000,
lambda2=NULL, reciplambda=NULL, reciplambda2=NULL,
diagonal=TRUE,
sigma=NULL, varcov=NULL,
ratio=FALSE)
The observed data point pattern,
from which an estimate of the inhomogeneous "ppp"
or in a format recognised by as.ppp()
Optional.
Values of the estimated intensity function.
Either a vector giving the intensity values
at the points of the pattern X
,
a pixel image (object of class "im"
) giving the
intensity values at all locations, a fitted point process model
(object of class "ppm"
or "kppm"
)
or a function(x,y)
which
can be evaluated to give the intensity value at any location.
Extra arguments. Ignored if lambda
is present.
Passed to density.ppp
if lambda
is omitted.
vector of values for the argument
This argument is for internal use only.
A character vector containing any selection of the
options "border"
, "bord.modif"
,
"isotropic"
, "Ripley"
, "translate"
,
"translation"
,
"none"
or "best"
.
It specifies the edge correction(s) to be applied.
Alternatively correction="all"
selects all options.
Logical. Whether to renormalise the estimate. See Details.
Integer (usually either 1 or 2). Normalisation power. See Details.
Logical value indicating what to do when lambda
is a fitted model
(class "ppm"
, "kppm"
or "dppm"
).
If update=TRUE
(the default),
the model will first be refitted to the data X
(using update.ppm
or update.kppm
)
before the fitted intensity is computed.
If update=FALSE
, the fitted intensity of the
model will be computed without re-fitting it to X
.
Logical value (passed to density.ppp
or
fitted.ppm
) specifying whether to use a
leave-one-out rule when calculating the intensity.
Optional. Efficiency threshold.
If the number of points exceeds nlarge
, then only the
border correction will be computed, using a fast algorithm.
Advanced use only.
Matrix containing estimates of the products
Alternative to lambda
.
Values of the estimated reciprocal X
,
a pixel image (object of class "im"
) giving the
reciprocal intensity values at all locations,
or a function(x,y)
which can be evaluated to give the
reciprocal intensity value at any location.
Advanced use only. Alternative to lambda2
.
A matrix giving values of the estimated reciprocal products
Do not use this argument.
Optional arguments passed to density.ppp
to control the smoothing bandwidth, when lambda
is
estimated by kernel smoothing.
Logical.
If TRUE
, the numerator and denominator of
each edge-corrected estimate will also be saved,
for use in analysing replicated point patterns.
An object of class "fv"
(see fv.object
).
Essentially a data frame containing at least the following columns,
the vector of values of the argument
vector of values of
If ratio=TRUE then the return value also has two attributes called "numerator" and "denominator" which are "fv" objects containing the numerators and denominators of each estimate of K_{\mbox{\scriptsize\rm inhom}}(r)Kinhom(r).
This computes a generalisation of the
The ``ordinary'' Kest
. It is defined only
for stationary point processes.
The inhomogeneous
Given a point pattern dataset, the
inhomogeneous
This allows us to inspect a point pattern for evidence of
interpoint interactions after allowing for spatial inhomogeneity
of the pattern. Values
The argument lambda
should supply the
(estimated) values of the intensity function
containing the values
of the intensity function at the points of the pattern X
.
(object of class "im"
)
assumed to contain the values of the intensity function
at all locations in the window.
(object of class "ppm"
, "kppm"
or "dppm"
)
whose fitted trend can be used as the fitted intensity.
(If update=TRUE
the model will first be refitted to the
data X
before the trend is computed.)
which can be evaluated to give values of the intensity at any locations.
if lambda
is omitted, then it will be estimated using
a `leave-one-out' kernel smoother.
If lambda
is a numeric vector, then its length should
be equal to the number of points in the pattern X
.
The value lambda[i]
is assumed to be the
the (estimated) value of the intensity
NA
's are not allowed.
If lambda
is a pixel image, the domain of the image should
cover the entire window of the point pattern. If it does not (which
may occur near the boundary because of discretisation error),
then the missing pixel values
will be obtained by applying a Gaussian blur to lambda
using
blur
, then looking up the values of this blurred image
for the missing locations.
(A warning will be issued in this case.)
If lambda
is a function, then it will be evaluated in the
form lambda(x,y)
where x
and y
are vectors
of coordinates of the points of X
. It should return a numeric
vector with length equal to the number of points in X
.
If lambda
is omitted, then it will be estimated using
a `leave-one-out' kernel smoother,
as described in Baddeley, Moller
and Waagepetersen (2000). The estimate lambda[i]
for the
point X[i]
is computed by removing X[i]
from the
point pattern, applying kernel smoothing to the remaining points using
density.ppp
, and evaluating the smoothed intensity
at the point X[i]
. The smoothing kernel bandwidth is controlled
by the arguments sigma
and varcov
, which are passed to
density.ppp
along with any extra arguments.
Edge corrections are used to correct bias in the estimation
of A
is a constant denominator,
If renormalise=TRUE
(the default), then the estimates
described above
are multiplied by normpower
is 1 (for consistency with
previous versions of spatstat)
but the most sensible value is 2, which would correspond to rescaling
the lambda
values so that
If the point pattern X
contains more than about 1000 points,
the isotropic and translation edge corrections can be computationally
prohibitive. The computations for the border method are much faster,
and are statistically efficient when there are large numbers of
points. Accordingly, if the number of points in X
exceeds
the threshold nlarge
, then only the border correction will be
computed. Setting nlarge=Inf
or correction="best"
will prevent this from happening.
Setting nlarge=0
is equivalent to selecting only the border
correction with correction="border"
.
The pair correlation function can also be applied to the
result of Kinhom
; see pcf
.
Baddeley, A., Moller, J. and Waagepetersen, R. (2000) Non- and semiparametric estimation of interaction in inhomogeneous point patterns. Statistica Neerlandica 54, 329--350.
# NOT RUN {
# inhomogeneous pattern of maples
X <- unmark(split(lansing)$maple)
# }
# NOT RUN {
# (1) intensity function estimated by model-fitting
# Fit spatial trend: polynomial in x and y coordinates
fit <- ppm(X, ~ polynom(x,y,2), Poisson())
# (a) predict intensity values at points themselves,
# obtaining a vector of lambda values
lambda <- predict(fit, locations=X, type="trend")
# inhomogeneous K function
Ki <- Kinhom(X, lambda)
plot(Ki)
# (b) predict intensity at all locations,
# obtaining a pixel image
lambda <- predict(fit, type="trend")
Ki <- Kinhom(X, lambda)
plot(Ki)
# (2) intensity function estimated by heavy smoothing
Ki <- Kinhom(X, sigma=0.1)
plot(Ki)
# (3) simulated data: known intensity function
lamfun <- function(x,y) { 50 + 100 * x }
# inhomogeneous Poisson process
Y <- rpoispp(lamfun, 150, owin())
# inhomogeneous K function
Ki <- Kinhom(Y, lamfun)
plot(Ki)
# How to make simulation envelopes:
# Example shows method (2)
if(interactive()) {
smo <- density.ppp(X, sigma=0.1)
Ken <- envelope(X, Kinhom, nsim=99,
simulate=expression(rpoispp(smo)),
sigma=0.1, correction="trans")
plot(Ken)
}
# }
Run the code above in your browser using DataLab