Learn R Programming

mclust (version 2.1-14)

density: Kernel Density Estimation

Description

This is exactly the same function as in the stats package but for the method argument: if it is given and equals "mclust", the mclust density estimation is used. Optionally, the number of gaussians to be considered can be given as well (G).

Usage

density(..., method, G)

Arguments

...
Arguments to the density function in the base package.
method
If equal to "mclust", EMclust is used to estimate the density.
G
The number of gaussians to consider in the model-based density estimation. Default: 1:9. Ignored if method is not equal to "mclust".

Value

  • If give.Rkern is true, the number $R(K)$, otherwise an object with class "density" whose underlying structure is a list containing the following components.
  • xthe n coordinates of the points where the density is estimated.
  • ythe estimated density values.
  • bwthe bandwidth used.
  • Nthe sample size after elimination of missing values.
  • callthe call which produced the result.
  • data.namethe deparsed name of the x argument.
  • has.nalogical, for compatibility (always FALSE).

References

Fraley, C. and Raftery, A.E. (2002) MCLUST: software for model-based clustering, density estimation and discriminant analysis. Technical Report No. 415, Dept. of Statistics, University of Washington. Scott, D. W. (1992) Multivariate Density Estimation. Theory, Practice and Visualization. New York: Wiley.

Sheather, S. J. and Jones M. C. (1991) A reliable data-based bandwidth selection method for kernel density estimation. J. Roy. Statist. Soc. B, 683--690.

Silverman, B. W. (1986) Density Estimation. London: Chapman and Hall.

Venables, W. N. and Ripley, B. D. (1999) Modern Applied Statistics with S-PLUS. New York: Springer.

See Also

density (base package), bw.nrd, plot.density, hist.

Examples

Run this code
plot(density(c(-20,rep(0,98),20)), xlim = c(-4,4))# IQR = 0

# The Old Faithful geyser data
data(faithful)
d <- density(faithful$eruptions, bw = "sj")
d
plot(d)
dmc <- density(faithful$eruptions, method="mclust")
plot(dmc, type = "n")
polygon(dmc, col = "wheat")
lines(d, col="red")

## Missing values:
x <- xx <- faithful$eruptions
x[i.out <- sample(length(x), 10)] <- NA
doRmc <- density(x=x, method="mclust", na.rm = TRUE)
lines(doRmc, col="blue")
doR <- density(x, bw = 0.15, na.rm = TRUE)
lines(doR, col = "green")
rug(x)
points(xx[i.out], rep(0.01, 10))

(kernels <- eval(formals(stats:::density.default)$kernel))

## show the kernels in the R parametrization
plot (density(0, bw = 1), xlab = "",
      main="R's density() kernels with bw = 1")
for(i in 2:length(kernels))
   lines(density(0, bw = 1, kern =  kernels[i]), col = i)
legend(1.5,.4, legend = kernels, col = seq(kernels),
       lty = 1, cex = .8, y.int = 1)

data(precip)
bw <- bw.SJ(precip) ## sensible automatic choice
plot(density(precip, bw = bw, n = 2^13))
lines(density(precip, G=2:5, method="mclust"), col="red")
rug(precip)

Run the code above in your browser using DataLab