Using the ksdensity function in matlab returns a density estimation in the form of 2 vectors *f* and *xi*. Where *f* are the density values and xi the corresponding points for the density values.

How do I calculate the hellinger distance between 2 density estimations based on their *f* and *xi* ?

**Contents**hide

#### Best Answer

If you are using Gaussian kernels, then your KDE is a Gaussian mixture model. You can calculate the approximation of the Hellinger divergence by the unscented transform directly on your KDE (without first tabulating to f). There is a pretty fast Matlab code for doing that: http://www.mathworks.com/matlabcentral/fileexchange/36164-unscented-hellinger-distance-between-gmms

This might be a better option, since your f might not be evaluated over the same range of xi values. However if it is, then the just use the simple formula. Lets say that $f = {f_i}_i$ and $g={g_i}_i$ are the two tabulated densities over the same range of $x_i$ values. The Hellinger distance is $H = sumlimits_i(sqrt{f_i}-sqrt{g_i})^2$ .

### Similar Posts:

- Solved – The sum of the kernel density values is not 1
- Solved – The sum of the kernel density values is not 1
- Solved – Manually fitting a mixture distribution in matlab
- Solved – Manually fitting a mixture distribution in matlab
- Solved – Best practices for density estimation of discrete & continuous random variables