sm.density {sm}R Documentation

Nonparametric density estimation in one, two or three dimensions.


This function creates a density estimate from data in one, two or three dimensions. In two dimensions a variety of graphical displays can be selected, and in three dimensions a contour surface can be plotted. A number of other features of the construction of the estimate, and of its display, can be controlled.

If the rpanel package is available, an interactive panel can be activated to control various features of the plot.

If the rgl package is also available, rotatable plots are available for the two- and three-dimensional cases. (For three-dimensional data, the misc3d package is also required.)


sm.density(x, h, model = "none", weights = NA, group=NA, ...)



a vector, or a matrix with two or three columns, containing the data.


a vector of length one, two or three, defining the smoothing parameter. A normal kernel function is used and h is its standard deviation. If this parameter is omitted, a normal optimal smoothing parameter is used.


This argument applies only with one-dimensional data. Its default value is "none". If it is set to "Normal" (or indeed any value other than "none") then a reference band, indicating where a density estimate is likely to lie when the data are normally distributed, will be superimposed on any plot.


a vector of integers representing frequencies of individual observations. Use of this parameter is incompatible with binning; hence nbins must then be set to 0 or left at its default value NA.


a vector of groups indicators (numeric or character values) or a factor.


other optional parameters are passed to the sm.options function, through a mechanism which limits their effect only to this call of the function. Those specifically relevant for this function are the following: hmult, h.weights, band, add, lty, display, props, xlab, ylab, zlab, xlim, ylim, yht, nbins, ngrid, eval.points, panel, positive, delta, theta, phi; see the documentation of sm.options for their description.


see Chapters 1, 2 and 6 of the reference below. In the three-dimensional case, the contours of the density estimate are constructed by the contour3d function in the misc3d package of Feng & Tierney.


a list containing the values of the density estimate at the evaluation points, the smoothing parameter, the smoothing parameter weights and the kernel weights. For one- and two-dimensional data, the standard error of the estimate (on the square root scale, where the standard error is approximately constant) and the upper and lower ends of a variability band are also supplied. Less information is supplied when the smoothing parameter weights or kernel weights are not all 1, or when positive is set to TRUE.

Side Effects

a plot is produced, unless the option display="none" is set.


Bowman, A.W. and Azzalini, A. (1997). Applied Smoothing Techniques for Data Analysis: the Kernel Approach with S-Plus Illustrations. Oxford University Press, Oxford.

See Also, hnorm, hsj, hcv, nise, nmise, sm, sm.sphere, sm.regression, sm.options


#  A one-dimensional example
y <- rnorm(50)
sm.density(y, model = "Normal")
# sm.density(y, panel = TRUE)

#  A two-dimensional example
y <- cbind(rnorm(50), rnorm(50))
sm.density(y, display = "image")
# sm.density(y, panel = TRUE)

#  A three-dimensional example
# y <- cbind(rnorm(50), rnorm(50), rnorm(50))
# sm.density(y)

[Package sm version 2.2-5.6 Index]