自适应带宽内核密度估计

Bal*_*sar 5 python kernel-density

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

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

Gab*_*iel 9

我在Python中搜索变量/自适应核密度估计包时遇到了这个问题。我意识到 OP 可能早已转移,但无论如何,这就是我发现的:

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

    该软件包实现了由 Hideaki Shimazaki 开发的一维信号的自适应核密度估计算法。这使得能够生成平滑直方图,在多个尺度上保留重要的密度特征,而不是简单的单带宽核密度方法,该方法可以超过或低于平滑密度估计。

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

    内核带宽是在本地选择的,以考虑数据密度的变化。密度大的区域得到的内核较小,反之亦然。这可以平滑尾部并在高统计区域中获得高分辨率。

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

最后一个没有自适应方法,但包含非常适合多峰分布的算法。

  • KDEpyPython 中的核密度估计

    这个 Python 3.5+ 包实现了各种内核密度估计器 (KDE)。三种算法通过相同的 API 实现:NaiveKDE、TreeKDE 和 FFTKDE。FFTKDE 类优于其他流行的实现,请参阅比较页面