R: Kernel Density Estimation for Circular Data

density.circular {circular} | R Documentation

## Kernel Density Estimation for Circular Data

### Description

The function `density.circular` computes kernel density estimates with the given kernel and bandwidth for circular data.

### Usage

    ## S3 method for class 'circular'
    density(x, z=NULL, bw, adjust = 1, type = c("K", "L"),
      kernel = c("vonmises", "wrappednormal"), na.rm = FALSE,
      from = circular(0), to = circular(2 * pi), n = 512, K = NULL, min.k=10,
      control.circular=list(), ...)
    ## S3 method for class 'density.circular'
    print(x, digits = NULL, ...)

### Arguments

`x` | the data from which the estimate is to be computed. The object is coerced to class `circular`.
`z` | the points where the density is estimated. If `NULL` equally spaced points are used according to the parameters `from`, `to` and `n`.
`bw` | the smoothing bandwidth to be used. When the `kernel` is `vonmises` the bandwidth is equal to the concentration parameter.
`adjust` | the bandwidth used is actually `adjust*bw`. This makes it easy to specify values like “half the default bandwidth”.
`type` | Not Yet Used.
`kernel` | a character string giving the smoothing kernel to be used. This must be one of `"vonmises"` or `"wrappednormal"`, that are kernels of `type` `"K"`.
`na.rm` | logical; if `TRUE`, missing values are removed from `x`. If `FALSE` any missing values cause an error.
`from, to` | the left and right-most points of the grid at which the density is to be estimated. The objects are coerced to class `circular`.
`n` | the number of equally spaced points at which the density is to be estimated.
`K` | number of terms to be used in approximating the density.
`min.k` | minimum number of terms used in approximating the density.
`control.circular` | the attribute of the resulting objects (`x` component).
`digits` | integer indicating the precision to be used.
`...` | further arguments passed to or from other methods.

### Value

an object with class `"density.circular"` whose underlying structure is a list containing the following components.

`data` | original dataset.
`x` | the `n` coordinates of the points where the density is estimated. It is a circular objects with coordinate system setting using `control.circular`.
`y` | the estimated density values.
`bw` | the bandwidth used.
`N` | the sample size after elimination of missing values.
`call` | the call which produced the result.
`data.name` | the deparsed name of the `x` argument.
`has.na` | logical, for compatibility (always FALSE).

### Author(s)

Claudio Agostinelli

### References

Z.D. Bai and C.R. Rao and L.C. Zhao (1988). Kernel Estimators of Density Function of Directional Data, Journal of Multivariate Analysis, 27, 24-39.

J. Klemel\"a (2000). Estimation of densities and derivatives of densities with directioinal data, Journal of Multivariate Analysis, 73, 18-40.

V.R. Prayag and A.P. Gore (1990). Density Estimation for Randomly Distributed Circular Objects, Metrika, 1990, 37, 63-69.

P. Hall and G.S. Watson and J. Cabrera (1987). Kernel Density Estimation with Spherical Data, Biometrika, 74, 4, 751–762.

### See Also

`plot.density.circular` and `lines.density.circular`

### Examples

    x <- rvonmises(n=100, mu=circular(pi), kappa=2)
    res25 <- density(x, bw=25, control.circular=list(units="degrees"))
    circularp(res25$x)
    plot(res25, points.plot=TRUE, xlim=c(-1.6,1))
    res50 <- density(x, bw=25, adjust=2)
    lines(res50, col=2)
    lines(res50, col=3, shrink=0.9) #shrink the plot wrt the function :-)
    lines(res50, col=4, offset=0.5) #draw it with a reference circle of 0.5

[Package circular version 0.4-93 Index]