# Calculating Hellinger Divergence from Results of Kernel Density Estimates in Matlab

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 ?

-

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 = \sum\limits_i(\sqrt{f_i}-\sqrt{g_i})^2$ .

-
It is true. Just codes in mathworks.com/matlabcentral/fileexchange/… do not work at all – user26270 May 29 '13 at 15:57