Python的简单固定带宽1D高斯KDE实现

时间:2013-08-28 17:49:41

标签: python kde

我需要一个简单的核密度估计,固定带宽和高斯核。

唉,在scipy.stats.gaussian_kde我只看到了自动带宽选择。就我看来,set_bandwidth方法仅将自动选择的值与一些校正比率相乘。我只需要设置我想设置的带宽。

我不想将我手写的Python代码用于KDE:它的工作速度有点太慢了。

你不知道scipy.stats.gaussian_kde的任何替换吗?

4 个答案:

答案 0 :(得分:0)

scipy.stats.gaussian_kde中,您可以为bw_method选项提供标量。这将设置kde.factor变量。 kde.factor是协方差矩阵乘以的数字,因此它应与带宽相同。

答案 1 :(得分:0)

您可能对statsmodels中的KDE感兴趣。示例here

答案 2 :(得分:0)

您还可以在scikit-learn(sklearn)中尝试使用KDE: http://scikit-learn.org/stable/modules/density.html 它有各种不同的内核你可以尝试,并允许你直接设置带宽,但显然(!)没有自动带宽选择的方法。

答案 3 :(得分:0)

您可以在OpenTURNS中使用KernelSmoothing类。 Non parametric distribution fitting中提供了一个示例,理论是described here。有一个自动的多维带宽规则,但是带宽可以由用户设置。此外,该库还提供了Sheather和Jones的“等式求解”插件规则,该规则对于多峰分布和混合规则(比前者的CPU消耗少)有效。