Learn R Programming

TDA (version 1.0)

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

Description

Given a point cloud X ($n$ points), this function 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 form point x to its $k$'th closest neighbor.

Usage

knnDE(X, Grid, k)

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.

Value

  • 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.

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