

   KKeerrnneell DDeennssiittyy EEssttiimmaattiioonn

        density(x, n=512, kernel="gaussian", bw, adjust=1, width,
                from, to, cut=3)

        bw.ucv(x, samples=100)
        bw.bcv(x, samples=100)
        bw.sj(x, samples=100)

        print(dobj)
        plot(dobj, ...)

   AArrgguummeennttss::

          x: the values for which the estimate is to be com-
             puted.

          n: the number of equally spaced points at which the
             density is to be estimated.  This is rounded up to
             the next power of 2, with a minimum value of 512.

     kernel: a character string giving the smoothing kernel to
             be used.  This must be one of `"gaussian"',
             `"rectangular"', `"triangular"', or `"cosine"',
             and may be abbrevited to a single letter.

         bw: the smoothing bandwith to be used.  This is the
             standard deviation of the smoothing kernel.  It
             defaults to 1.06 times the minimum of the standard
             deviation and the interquartile range divided by
             1.34 times the sample size to the negative one
             fifth power.  The specified value of `bw' is mul-
             tiplied by `adjust'.

     adjust: the bandwith used is actually `adjust*bw'.  This
             makes it easy to specify values like ``half the
             default'' bandwidth.

      width: this exists for compatibility with S.

    from,to: the left and right-most points of the grid at
             which the density is to be estimated.

        cut: by default, the values of `left' and `right' are
             `cut' bandwiths beyond the extremes of the data.

    samples: the sample size to take in the bandwidth selection
             functions. If `samples' is non-positive, the
             entire data set is used.

       dobj: a ``density'' object.

        ...: plotting parameters.

   DDeessccrriippttiioonn::

        The function `density' computes kernel density esti-
        mates with the given kernel and bandwidth (which is the
        standard deviation of the kernel).

        The functions `bw.ucv', `bw.bcv' and `bw.sj' provide
        automated ways of selecting a bandwith for density
        estimates (assuming a Gaussian kernel).  The techniques
        used are as follows; `bw.ucv' uses unbiased cross-vali-
        dation, `bw.bcv' uses biased cross-validation and
        `bw.sj' uses the technique of Sheather and Jones.
        These cross-validation techniques are based on code
        from the Venables and Ripley MASS package.

        The generic functions `plot' and `print' have methods
        for density objects.

        The algorithm used in `density' disperses the mass of
        the empirical distribution function over a regular grid
        and then uses the fast Fourier transform to convolve
        this approximation with a discretized version of the
        kernel.

   VVaalluuee::

        An object with class ``density''.  The underlying
        structure is a list containing the following compo-
        nents.

          x: the coordinates of the points where the density is
             estimated.

          y: the estimated density values.

         bw: the bandwidth used.

          n: the sample size `length(x)'.

       call: the call which produced the result.

   data.name: the deparsed name of the `x' argument.

   RReeffeerreenncceess::

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

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

        Scott, D. W. (1992).  Multivariate Density Estimation.
        Theory, Practice and Visualization.  New York: Wiley.

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

   SSeeee AAllssoo::

        `convolve', `hist'.

   EExxaammpplleess::

        # The Old Faithful geyser data
        data(faithful)
        d <- density(faithful$eruptions, bw=0.15)
        d
        plot(d)

        plot(d, type="n")
        polygon(d, col="wheat")

