Kcross.inhom
Inhomogeneous Cross K Function
For a multitype point pattern, estimate the inhomogeneous version of the cross $K$ function, which counts the expected number of points of type $j$ within a given distance of a point of type $i$, adjusted for spatially varying intensity.
Usage
Kcross.inhom(X, i, j, lambdaI=NULL, lambdaJ=NULL, ..., r=NULL, breaks=NULL,
correction = c("border", "isotropic", "Ripley", "translate"),
sigma=NULL, varcov=NULL,
lambdaIJ=NULL)
Arguments
- X
- The observed point pattern, from which an estimate of the inhomogeneous cross type $K$ function $K_{ij}(r)$ will be computed. It must be a multitype point pattern (a marked point pattern whose marks are a factor). See under Details.
- i
- The type (mark value)
of the points in
X
from which distances are measured. A character string (or something that will be converted to a character string). Defaults to the first level ofmarks(X)
. - j
- The type (mark value)
of the points in
X
to which distances are measured. A character string (or something that will be converted to a character string). Defaults to the second level ofmarks(X)
. - lambdaI
- Optional.
Values of the the estimated intensity of the sub-process of
points of type
i
. Either a pixel image (object of class"im"
), a numeric vector containing the intensity values at each of the typei
- lambdaJ
- Optional.
Values of the the estimated intensity of the sub-process of
points of type
j
. Either a pixel image (object of class"im"
), a numeric vector containing the intensity values at each of the typej
- r
- Optional. Numeric vector giving the values of the argument $r$ at which the cross K function $K_{ij}(r)$ should be evaluated. There is a sensible default. First-time users are strongly advised not to specify this argument. Se
- breaks
- This argument is for advanced use only.
- correction
- A character vector containing any selection of the
options
"border"
,"bord.modif"
,"isotropic"
,"Ripley"
,"translate"
,"translation"
,"none"
or - ...
- Ignored.
- sigma
- Standard deviation of isotropic Gaussian smoothing kernel,
used in computing leave-one-out kernel estimates of
lambdaI
,lambdadot
if they are omitted. - varcov
- Variance-covariance matrix of anisotropic Gaussian kernel,
used in computing leave-one-out kernel estimates of
lambdaI
,lambdadot
if they are omitted. Incompatible withsigma
. - lambdaIJ
- Optional. A matrix containing estimates of the
product of the intensities
lambdaI
andlambdaJ
for each pair of points of typesi
andj
respectively.
Details
This is a generalisation of the function Kcross
to include an adjustment for spatially inhomogeneous intensity,
in a manner similar to the function Kinhom
.
The inhomogeneous cross-type $K$ function is described by
The argument X
must be a point pattern (object of class
"ppp"
) or any data that are acceptable to as.ppp
.
It must be a marked point pattern, and the mark vector
X$marks
must be a factor.
The arguments i
and j
will be interpreted as
levels of the factor X$marks
. (Warning: this means that
an integer value i=3
will be interpreted as the number 3,
not the 3rd smallest level).
If i
and j
are missing, they default to the first
and second level of the marks factor, respectively.
The argument lambdaI
supplies the values
of the intensity of the sub-process of points of type i
.
It may be either
[object Object],[object Object],[object Object],[object Object]
If lambdaI
is omitted, then it will be estimated using
a `leave-one-out' kernel smoother,
as described in Baddeley, lambdaI
for a given
point is computed by removing the point from the
point pattern, applying kernel smoothing to the remaining points using
density.ppp
, and evaluating the smoothed intensity
at the point in question. The smoothing kernel bandwidth is controlled
by the arguments sigma
and varcov
, which are passed to
density.ppp
along with any extra arguments.
Similarly lambdaJ
should contain
estimated values of the intensity of the sub-process of points of
type j
. It may be either a pixel image, a function,
a numeric vector, or omitted.
The optional argument lambdaIJ
is for advanced use only.
It is a matrix containing estimated
values of the products of these two intensities for each pair of
data points of types i
and j
respectively.
The argument r
is the vector of values for the
distance $r$ at which $K_{ij}(r)$ should be evaluated.
The values of $r$ must be increasing nonnegative numbers
and the maximum $r$ value must exceed the radius of the
largest disc contained in the window.
The argument correction
chooses the edge correction
as explained e.g. in Kest
.
The pair correlation function can also be applied to the
result of Kcross.inhom
; see pcf
.
}
i
and j
are always interpreted as
levels of the factor X$marks
. They are converted to character
strings if they are not already character strings.
The value i=1
does not
refer to the first level of the factor.
}
Kcross
,
Kinhom
,
Kdot.inhom
,
Kmulti.inhom
,
pcf
# method (1): estimate intensities by nonparametric smoothing lambdaM <- density.ppp(ma, sigma=0.15, at="points") lambdaW <- density.ppp(wh, sigma=0.15, at="points") K <- Kcross.inhom(lansing, "whiteoak", "maple", lambdaW, lambdaM)
# method (2): leave-one-out K <- Kcross.inhom(lansing, "whiteoak", "maple", sigma=0.15)
# method (3): fit parametric intensity model
fit <- ppm(lansing, ~marks * polynom(x,y,2))
# evaluate fitted intensities at data points
# (these are the intensities of the sub-processes of each type)
inten <- fitted(fit, dataonly=TRUE)
# split according to types of points
lambda <- split(inten, lansing$marks)
K <- Kcross.inhom(lansing, "whiteoak", "maple",
lambda$whiteoak, lambda$maple)
# synthetic example: type A points have intensity 50,
# type B points have intensity 100 * x
lamB <- as.im(function(x,y){50 + 100 * x}, owin())
X <- superimpose(A=runifpoispp(50), B=rpoispp(lamB))
K <- Kcross.inhom(X, "A", "B",
lambdaI=as.im(50, X$window), lambdaJ=lamB)
[object Object],[object Object],[object Object]
Value
- An object of class
"fv"
(seefv.object
).Essentially a data frame containing numeric columns
r the values of the argument $r$ at which the function $K_{ij}(r)$ has been estimated theo the theoretical value of $K_{ij}(r)$ for a marked Poisson process, namely $\pi r^2$ - together with a column or columns named
"border"
,"bord.modif"
,"iso"
and/or"trans"
, according to the selected edge corrections. These columns contain estimates of the function $K_{ij}(r)$ obtained by the edge corrections named.