自适应带宽核密度估计

时间:2015-07-17 19:47:58

标签: python kernel-density

似乎有大量可用于实施标准多变量或单变量核密度估计的信息和工具。然而,我目前使用的离散地理数据特别稀疏,并且倾向于聚集在高人口密度的区域周围。

也就是说,我在地图上有许多点(经度和纬度),我想估计给定点的概率密度,但我需要以某种方式对人口密度进行标准化。从环顾四周看,这类问题的正确方法似乎是为内核估计实现某种最近邻自适应带宽。然而,似乎stats.gaussian_kde不支持自适应带宽。是否有人知道我自己如何能够实现这一点,或者是否有任何可用于自适应带宽的软件包KDE'

1 个答案:

答案 0 :(得分:1)

我遇到了这个问题,在Python中寻找变量/自适应内核密度估计软件包。我知道OP可能已经进行了很长时间,但是无论如何,这就是我发现的东西:

  • AdaptiveKDE用于自适应内核密度估计的Python模块
      

    此软件包为一维实现自适应内核密度估计算法   岛崎英明开发的信号。这样就可以生成平滑的直方图,该直方图可以在多个尺度上保留重要的密度特征,而与单纯的单带宽核密度方法相比,该方法可能会超出或低于平滑密度估计。

  • awkde具有高斯核的自适应宽度KDE
      

    局部选择内核带宽,以解决数据密度的变化。密度大的区域将获得较小的内核,反之亦然。这样可以在统计较高的区域平滑尾巴并获得高分辨率。

         

    这使用了很棒的pybind11软件包,它使创建C ++绑定变得非常方便。只有评估是用小型C ++代码段编写的以加快速度,其余都是纯python实现。

最后一个没有自适应方法,但包含一个非常适合多模式分布的algorithm

  • KDEpy Python中的内核密度估计
      

    此Python 3.5+软件包实现了各种内核密度估计器(KDE)。通过相同的API可以实现三种算法:NaiveKDE,TreeKDE和FFTKDE。 FFTKDE类的性能优于其他流行的实现,请参见comparison page