bw.stoyan: Stoyan's and Fiksel's Rules of Thumb for Bandwidth for...

View source: R/bw.stoyan.R

bw.stoyanR Documentation

Stoyan's and Fiksel's Rules of Thumb for Bandwidth for Estimating Pair Correlation

Description

Computes a rough estimate of the appropriate bandwidth for kernel smoothing estimators of the pair correlation function.

Usage

bw.stoyan(X, co=0.15, extrapolate=FALSE, ...)
bw.fiksel(X, co=0.1, extrapolate=FALSE, ...)

Arguments

X

A point pattern (object of class "ppp").

co

Coefficient appearing in the rule of thumb. See Details.

extrapolate

Logical value specifying whether to use the extrapolated version of the rule. See Details.

...

Ignored.

Details

Estimation of the pair correlation function (and similar quantities) by smoothing methods requires a choice of the smoothing bandwidth. Stoyan and Stoyan (1995, equation (15.16), page 285) and Fiksel (1988, equation (3.6), page 70) proposed rules of thumb for choosing the smoothing bandwidth. These rules were originally developed by experimentation with the Epanechnikov kernel.

For the Epanechnikov kernel, the Stoyan rule of thumb is to set the kernel's half-width h to the value 0.15/\sqrt{\lambda} where \lambda is the estimated intensity of the point pattern, typically computed as the number of points of X divided by the area of the window containing X. (To ensure the bandwidth is finite, an empty point pattern is treated as if it contained 1 point.)

Conventionally in R the smoothing bandwidth is specified by the standard deviation of the kernel, rather than the half-width. Stoyan's rule is equivalent to making the standard deviation of the Epanechnikov kernel equal to \sigma = 0.15/\sqrt{5\lambda}. For a general kernel, the corresponding Stoyan rule is to set the standard deviation of the kernel to \sigma = 0.15/\sqrt{5\lambda}. This is the value returned by bw.stoyan.

The coefficient 0.15 can be tweaked using the argument co.

The Fiksel rule of thumb is to set the standard deviation of the kernel to \sigma = 0.1/\sqrt{\lambda} for any kernel. This value is returned by bw.fiksel. Similarly the coefficient 0.1 can be tweaked using the argument co.

The Fiksel and Stoyan rules are obviously related: bw.fiksel(X, a) = bw.stoyan(X, a * sqrt(5)) However, it is convenient in experiments and data analysis to use the names Fiksel and Stoyan as a shorthand for these rules, with the default values of the coefficients. The default bandwidth calculated by Fiksel's rule is 50% larger than the default bandwidth by Stoyan's rule: bw.fiksel(X) = d * bw.stoyan(X) where d = sqrt(5) * 0.1/0.15 = 1.49.

Value

A finite positive numerical value giving the selected bandwidth (the standard deviation of the smoothing kernel).

Extrapolation

The original version of Stoyan's rule, stated above, was developed by experience with patterns of 30 to 100 points. For patterns with larger numbers of points, the bandwidth should be smaller: the theoretically optimal bandwidth decreases in proportion to n^{-1/5} where n is the number of points in the pattern. In the ‘extrapolated’ version of Stoyan's rule proposed by \smoothpcfpapercite, the value \sigma calculated above is multiplied by (100/n)^{1/5}. The extrapolated rule is applied if extrapolate=TRUE.

Author(s)

\adrian

, \rolf, \tilman, \martinH and \yamei.

References

\smoothpcfpaper

Fiksel, T. (1988) Edge-corrected density estimators for point processes. Statistics 19 (1988) 1, 77–86.

Stoyan, D. and Stoyan, H. (1995) Fractals, random shapes and point fields: methods of geometrical statistics. John Wiley and Sons.

See Also

pcf, bw.relrisk

Examples

  bw.stoyan(shapley)
  bw.stoyan(shapley, extrapolate=TRUE)

spatstat.explore documentation built on May 24, 2026, 9:07 a.m.