Learn R Programming

TDA (version 1.9.1)

knnDE: k Nearest Neighbors Density Estimator over a Grid of Points

Description

Given a point cloud X (\(n\) points), The function knnDE computes the k Nearest Neighbors Density Estimator over a grid of points. For each \(x \in R^d\), the knn Density Estimator is defined by $$ p_X(x)=\frac{k}{n \; v_d \; r_k^d(x)}, $$ where \(v_n\) is the volume of the Euclidean \(d\) dimensional unit ball and \(r_k^d(x)\) is the Euclidean distance from point x to its \(k\)'th closest neighbor.

Usage

knnDE(X, Grid, k)

Value

The function knnDE returns a vector of length \(m\) (the number of points in the grid) containing the value of the knn Density Estimator for each point in the grid.

Arguments

X

an \(n\) by \(d\) matrix of coordinates of points used in the density estimation process, where \(n\) is the number of points and \(d\) is the dimension.

Grid

an \(m\) by \(d\) matrix of coordinates, where \(m\) is the number of points in the grid.

k

number: the smoothing paramter of the k Nearest Neighbors Density Estimator.

Author

Fabrizio Lecci

See Also

kde, kernelDist, distFct, dtm

Examples

Run this code
## Generate Data from the unit circle
n <- 300
X <- circleUnif(n)

## Construct a grid of points over which we evaluate the function
by <- 0.065
Xseq <- seq(-1.6, 1.6, by = by)
Yseq <- seq(-1.7, 1.7, by = by)
Grid <- expand.grid(Xseq, Yseq)

## kernel density estimator
k <- 50
KNN <- knnDE(X, Grid, k)

Run the code above in your browser using DataLab