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 ?
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