[SciPy-User] What is the kernel in gaussian_kde?

Simon McGregor londonien@gmail....
Wed Sep 21 10:57:23 CDT 2011


Hi,

I'm about to try and implement a simple entropy estimator using
scipy.stats.kde. The estimator can be implemented for arbitrary
kernels (though it won't be particularly efficient).

gaussian_kde is all nicely set up to do density estimation,
integration and various other things - but the kernel itself is not
exposed!

The scipy / numpy matrix operators are still not completely intuitive
for me, so reverse-engineering the kernel from the code is proving a
bit tricky. The online tutorials I have read on Gaussian kde all use
one-dimensional examples, which obscure the meaning of the covariance
matrix in the multi-dimensional case. My linear algebra isn't too
strong, so again my intuitions aren't good here.

If anyone could just spell out what the kernel is, I would be
amazingly grateful.

It looks like it's something like

K(a-b) = exp ( (a-b) . M(a-b) / 2)

...where M is the inverse covariance matrix and . indicates the scalar
product of two vectors. Is this right?

Many thanks,


Simon


More information about the SciPy-User mailing list