!NPM versionnpm-imagenpm-url
!Build Statustravis-imagetravis-url
!Coverage Statuscoveralls-imagecoveralls-url
!Dependenciesdependencies-imagedependencies-url

Require as follows:

kernelSmooth

nonparametric kernel smoothing for JavaScript

## Installation

Via npm:`npm install kernel-smooth`

Require as follows:

`var kernel = require('kernel-smooth');`

## API

### .density(xs, kernel, bandwidth)

Given input data`xs`

, a kernel function and a bandwidth (if not supplied,
a default value of 0.5 is used), this function returns a basic kernel density
estimator: a function of one variable, `x`

, which when invoked returns the
kernel density estimate for `x`

. The returned function can also be called with a
vector supplied as an argument for `x`

. In this case, the density is evaluated
is for each element of the vector and the vector of density estimates
is returned.### .regression(xs, ys, kernel, bandwidth)

Given input predictors`xs`

and observed responses `ys`

, a kernel function
and a bandwidth (if not supplied, a default value of 0.5 is used),
this function returns the Nadaraya & Watson kernel regression estimator:
a function of one variable, `x`

, which when invoked returns the
estimate for `y`

. The returned function can also be called with a
vector supplied as an argument for `x`

. In this case, predictions are generated
for each element of the vector and the vector of predictions
is returned.### .mutipleRegression(Xs, ys, kernel, bandwidth)

Similar to .regression(), except that Xs should be a 2d array containing multiple predictors. Each element of`Xs`

should has to be an array of length `p`

, with `p`

denoting the number of predictors. The returned estimator generates a prediction for a new data point x = (x*1, ..., x*p). If a 2d array is supplied instead, predictions are generated for multiple data points at once, where each row (= element of the outer array) is assumed to be a datum x = (x*1, ..., x*p).### Choice of Kernel function

For the`kernel`

parameter in above functions, you should supply a univariate function `K(x)`

which satisfies K(x) >= 0, integrates to one, has zero mean and unit variance.
See the functions in the exported `.fun`

object for a list of already implemented kernel functions.### .fun

This object of the module holds the following kernel functions to be used for kernel smoothing:#### .gaussian(x)

Gaussian kernel, pdf of standard normal distribution.#### .boxcar(x)

Boxcar kernel, defined as 0.5 if |x| <= 1 and 0 otherwise.#### .epanechnikov(x)

Epanechnikov kernel. Equal to zero if |x| > 1. Otherwise defined as 0.75*(1 - x^2).*(1-|x|^3)^3.#### .tricube(x)

Tricube kernel function. Equal to zero if |x| > 1 and otherwise equal to (70/81)### .silverman(x)

For input vector x, calculate the optimal bandwidthe using Silverman's rule of thumb. This utility function can be used to calculate an appropriate bandwidth for the case in which a Gaussian kernel is used and one has reason to believe that the data points x*i are drawn from a normal distribution.*