# [SciPy-User] R: Re: R: Re: Epanechnikov kernel

josef.pktd@gmai... josef.pktd@gmai...
Sat Jan 19 09:06:00 CST 2013

```On Sat, Jan 19, 2013 at 9:57 AM, francescoboccacci@libero.it
<francescoboccacci@libero.it> wrote:
> Hi,
> i would like to use a Epanechnikov kernel because i would  like replicate an R
> function that use Epanechnikov kernel.
> Reading in depth a documentation below documentation:
>
>
>
> i found that i can use normal kernel (i think guaussion kernel).
> Below i write a pieces of my code:
>
>
>                   xmin = min(xPoints)
>                   xmax = max(xPoints)
>                   ymin = min(yPoints)
>                   ymax = max(yPoints)
>                   X,Y = np.mgrid[xmin:xmax:40j, ymin:ymax:40j]
>                   positions = np.vstack([X.ravel(), Y.ravel()])
>                   values = np.vstack([xPoints,yPoints])
>                   # scipy.stats.kde.gaussian_kde --
>                   # Representation of a kernel-density estimate using Gaussian
> kernels.
>                   kernel = stats.kde.gaussian_kde(values)
>
>                   Z = np.reshape(kernel(positions).T, X.T.shape)
>
> If i understood in right way the missing part that i have to implement is the
> smoothing paramter h:
>
> h = Sigma*n^(-1/6)
>
> where
>
> Sigma = 0.5*(sd(x)+sd(y))
>
>
> My new question is:
>
> How can set smooting parameter in stats.kde.gaussian_kde function? is it
> possible?

In a recent scipy (since 0.10 IIRC) you can directly set the bandwidth
without subclassing

http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.gaussian_kde.html#scipy.stats.gaussian_kde
http://docs.scipy.org/doc/scipy/reference/tutorial/stats.html#kernel-density-estimation

Josef

>
> Thanks
>
> Francesco
>
>
>>----Messaggio originale----
>>Da: jsseabold@gmail.com
>>Data: 19/01/2013 15.21
>>A: "francescoboccacci@libero.it"<francescoboccacci@libero.it>, "SciPy Users
> List"<scipy-user@scipy.org>
>>Ogg: Re: [SciPy-User] R: Re: Epanechnikov kernel
>>
>>On Sat, Jan 19, 2013 at 8:48 AM, francescoboccacci@libero.it
>><francescoboccacci@libero.it> wrote:
>>> Hi,
>>> is there a possibility to multivariate  KDE using Epanechnikov kernel? my
>>> variables are X Y (point position)
>>>
>>
>>As Josef mentioned there is no way for the user to choose the kernel
>>at present. The functionality is there, but it needs to be hooked in
>>with a suitable API. I didn't keep up with these discussions, so I
>>don't know the current status. If it's something you're interested in
>>trying to help with, I'm sure people would be appreciative and you can
>>ping the statsmodels mailing list.
>>
>>Practically though, the reason this hasn't been done yet is that the
>>choice of the kernel is not all that important. Bandwidth selection is
>>the most important variable and other kernels perform similarly given
>>a good bandwidth. Is there any particular reason you want Epanechnikov
>>kernel in particular?
>>
>>Skipper
>>
>>> Thanks
>>>
>>> Francesco
>>>
>>>>----Messaggio originale----
>>>>Da: jsseabold@gmail.com
>>>>Data: 19/01/2013 14.32
>>>>A: "SciPy Users List"<scipy-user@scipy.org>
>>>>Ogg: Re: [SciPy-User] Epanechnikov kernel
>>>>
>>>>On Sat, Jan 19, 2013 at 7:49 AM,  <josef.pktd@gmail.com> wrote:
>>>>> On Sat, Jan 19, 2013 at 6:34 AM, francescoboccacci@libero.it
>>>>> <francescoboccacci@libero.it> wrote:
>>>>>> Hi all,
>>>>>>
>>>>>> I have a question for you. Is it possible in scipy using a Epanechnikov
>>>>>> kernel function?
>>>>>>
>>>>>> I checked on scipy documentation but i found that the only way to
>>> calculate
>>>>>> kernel-density estimate is possible only with using Gaussian kernels?
>>>>>>
>>>>>> Is it true?
>>>>>
>>>>> Yes, kde in scipy.stats only has gaussian_kde
>>>>>
>>>>> Also in statsmodels currently only gaussian is supported for
>>>>> continuous data
>>>>> http://statsmodels.sourceforge.net/devel/nonparametric.html
>>>>> (It was removed because in the references only the bandwidth selection
>>>>> made much difference in the estimation, but not the shape of the
>>>>> kernel. Other kernels for continuous variables will come back
>>>>> eventually.
>>>>
>>>>If you're interested in univariate KDE, then we do have the Epanechnikov
>>> kernel.
>>>>
>>>>http://statsmodels.sourceforge.net/devel/generated/statsmodels.
> nonparametric.
>>> kde.KDEUnivariate.fit.html#statsmodels.nonparametric.kde.KDEUnivariate.fit
>>>>
>>>>Skipper
>>>>_______________________________________________
>>>>SciPy-User mailing list
>>>>SciPy-User@scipy.org
>>>>http://mail.scipy.org/mailman/listinfo/scipy-user
>>>>
>>>
>>>
>>> _______________________________________________
>>> SciPy-User mailing list
>>> SciPy-User@scipy.org
>>> http://mail.scipy.org/mailman/listinfo/scipy-user
>>
>
>
> _______________________________________________
> SciPy-User mailing list
> SciPy-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
```