Compute a kernel estimate of intensity for a point pattern, and return the result as a function of spatial location.
densityfun(X, …)# S3 method for ppp
densityfun(X, sigma = NULL, …,
weights = NULL, edge = TRUE, diggle = FALSE)
Point pattern (object of class "ppp"
).
Smoothing bandwidth, or bandwidth selection function,
passed to density.ppp
.
Additional arguments passed to density.ppp
.
Optional vector of weights associated with the points of X
.
Logical arguments controlling the edge correction.
Arguments passed to density.ppp
.
A function
with arguments x,y,drop
.
The function also belongs to the class "densityfun"
which has
methods for print
and as.im
.
It also belongs to the class "funxy"
which has methods
for plot
, contour
and persp
.
If f <- densityfun(X)
, where X
is a two-dimensional
point pattern, the resulting object f
is a function
in the R language.
By calling this function, the user can evaluate the estimated intensity at any desired spatial locations.
Additionally f
belongs to other
classes which allow it to be printed and plotted easily.
The function f
has arguments x,y,drop
.
The arguments x,y
of f
specify the query locations. They can be numeric vectors
of coordinates. Alternatively x
can be a point pattern
(or data acceptable to as.ppp
) and y
is omitted.
The result of f(x,y)
is a numeric vector giving the values of
the intensity.
The argument drop
of f
specifies how to handle query locations
which are outside the window of the original data.
If drop=TRUE
(the default), such locations are ignored.
If drop=FALSE
, a value of NA
is returned
for each such location.
Note that the smoothing parameters, such as the bandwidth
sigma
, are assigned when densityfun
is executed.
Smoothing parameters are fixed inside the function f
and cannot be changed by arguments of f
.
The commands densityfun
and density
both perform kernel estimation of the intensity of a point pattern.
The difference is that density
returns a pixel image,
containing the estimated intensity values at a grid of locations, while
densityfun
returns a function(x,y)
which can be used
to compute the intensity estimate at any spatial locations
with coordinates x,y
.
For purposes such as model-fitting it is more accurate to
use densityfun
.
To interpolate values observed at the points, use Smoothfun
.
# NOT RUN {
f <- densityfun(swedishpines)
f
f(42, 60)
X <- runifpoint(2, Window(swedishpines))
f(X)
plot(f)
# }
Run the code above in your browser using DataLab