These low-level functions construct estimates of
the \(K\) function or pair correlation function,
or any similar functions, given only the matrix of pairwise
distances and optional weights associated with these distances.
These functions are useful for code development and for teaching,
because they perform a common task, and do the housekeeping required to
make an object of class "fv" that represents the estimated
function. However, they are not very efficient.
compileK calculates the weighted estimate
of the \(K\) function,
$$
\hat K(r) = (1/v(r)) \sum_i \sum_j 1\{ d_{ij} \le r\} w_{ij}
$$
and compilepcf calculates the weighted estimate of the
pair correlation function,
$$
\hat g(r) = (1/v(r)) \sum_i \sum_j \kappa( d_{ij} - r ) w_{ij}
$$
where \(d_{ij}\) is the distance between spatial points
\(i\) and \(j\), with corresponding weight \(w_{ij}\),
and \(v(r)\) is a specified denominator. Here \(\kappa\)
is a fixed-bandwidth smoothing kernel.
For a point pattern in two dimensions, the usual denominator \(v(r)\)
is constant for the \(K\) function, and proportional to \(r\)
for the pair correlation function. See the Examples.
The result is an object of class "fv" representing the
estimated function. This object has only one column of function
values. Additional columns (such as a column giving the theoretical
value) must be added by the user, with the aid of
bind.fv.
If ratio=TRUE, the result also belongs to class "rat"
and has attributes containing the numerator and denominator
of the function estimate.
(If samplesize is given, the numerator and denominator are
rescaled by a common factor so that the denominator is
equal to samplesize.)
This allows function estimates from
several datasets to be pooled using pool.