R: Highest Density Regions

hdr {hdrcde} | R Documentation

## Highest Density Regions

### Description

Calculates and plots highest density regions in one dimension including the HDR boxplot.

### Usage

    hdr(x = NULL, prob = c(50, 95, 99), den = NULL, h = hdrbw(BoxCox(x,
      lambda), mean(prob)), lambda = 1, nn = 5000, all.modes = FALSE)

    hdr.den(x, prob = c(50, 95, 99), den, h = hdrbw(BoxCox(x, lambda),
      mean(prob)), lambda = 1, xlab = NULL, ylab = "Density",
      ylim = NULL, plot.lines = TRUE, col = 2:8, bgcol = "gray",
      legend = FALSE, ...)

    hdr.boxplot(x, prob = c(99, 50), h = hdrbw(BoxCox(x, lambda),
      mean(prob)), lambda = 1, boxlabels = "", col = gray((9:1)/10),
      main = "", xlab = "", ylab = "", pch = 1, border = 1,
      outline = TRUE, space = 0.25, ...)

### Arguments

`x` | Numeric vector containing data. In `hdr` and `hdr.den`, if `x` is missing then `den` must be provided, and the HDR is computed from the given density. For `hdr.boxplot`, `x` can be a list containing several vectors.
`prob` | Probability coverage required for HDRs
`den` | Density of data as list with components `x` and `y`. If omitted, the density is estimated from `x` using `density`.
`h` | Optional bandwidth for calculation of density.
`lambda` | Box-Cox transformation parameter where `0 <= lambda <= 1`.
`nn` | Number of random numbers used in computing f-alpha quantiles.
`all.modes` | Return all local modes or just the global mode?
`xlab` | Label for x-axis.
`ylab` | Label for y-axis.
`ylim` | Limits for y-axis.
`plot.lines` | If `TRUE`, will show how the HDRs are determined using lines.
`col` | Colours for regions of each box.
`bgcol` | Colours for the background behind the boxes. Default `"gray"`, if `NULL` no box is drawn.
`legend` | If `TRUE` add a legend on the right of the boxes.
`...` | Other arguments passed to plot.
`boxlabels` | Label for each box plotted.
`main` | Overall title for the plot.
`pch` | Plotting character.
`border` | Width of border of box.
`outline` | If not <code>TRUE</code>, the outliers are not drawn.
`space` | The space between each box, between 0 and 0.5.

### Details

Either `x` or `den` must be provided. When `x` is provided, the density is estimated using kernel density estimation. A Box-Cox transformation is used if `lambda!=1`, as described in Wand, Marron and Ruppert (1991). This allows the density estimate to be non-zero only on the positive real line. The default kernel bandwidth `h` is selected using the algorithm of Samworth and Wand (2010).

Hyndman's (1996) density quantile algorithm is used for calculation. `hdr.den` plots the density with the HDRs superimposed. `hdr.boxplot` displays a boxplot based on HDRs.

### Value

`hdr.boxplot` retuns nothing. `hdr` and `hdr.den` return a list of three components:

`hdr` | The endpoints of each interval in each HDR
`mode` | The estimated mode of the density.
`falpha` | The value of the density at the boundaries of each HDR.

### Author(s)

Rob J Hyndman

### References

Hyndman, R.J. (1996) Computing and graphing highest density regions. American Statistician, 50, 120-126.

Samworth, R.J. and Wand, M.P. (2010). Asymptotics and optimal bandwidth selection for highest density region estimation. The Annals of Statistics, 38, 1767-1792.

Wand, M.P., Marron, J S., Ruppert, D. (1991) Transformations in density estimation. Journal of the American Statistical Association, 86, 343-353.

### See Also

`hdr.boxplot.2d`

### Examples

    # Old faithful eruption duration times
    hdr(faithful$eruptions)
    hdr.boxplot(faithful$eruptions)
    hdr.den(faithful$eruptions)

    # Simple bimodal example
    x <- c(rnorm(100,0,1), rnorm(100,5,1))
    par(mfrow=c(1,2))
    boxplot(x)
    hdr.boxplot(x)
    par(mfrow=c(1,1))
    hdr.den(x)

    # Highly skewed example
    x <- exp(rnorm(100,0,1))
    par(mfrow=c(1,2))
    boxplot(x)
    hdr.boxplot(x,lambda=0)

[Package hdrcde version 3.3 Index]