自适应带宽核密度估计

9

对于标准的多元或单元核密度估计,存在大量信息和工具可用于实现。然而,我目前正在处理的离散地理数据非常稀疏,并且倾向于聚集在高人口密度的地区。

也就是说,我有一些地图上的点(经度和纬度),我想根据这些点来估计概率密度,但我需要以某种方式标准化人口密度。通过查看周围,似乎这种问题的适当方法是实施某种最近邻自适应带宽的核估计。然而,stats.gaussian_kde似乎不支持自适应带宽。有人知道我如何能够自己实现这个功能吗?或者是否有任何包可用于自适应带宽KDE?


我没有使用R的经验。不过,我会尝试暂时使用它并将其移植到Python中。尽管如此,我更希望看到基于Python的解决方案。 - Balthasar
1个回答

9
我在搜索Python中的可变/自适应核密度估计包时遇到了这个问题。我意识到OP可能已经很久没有关注了,但是这是我找到的东西:
- AdaptiveKDE(自适应核密度估计的Python模块)
该软件包实现了Hideaki Shimazaki开发的一维信号的自适应核密度估计算法。这使得可以生成保留多个尺度上重要密度特征的平滑直方图,而不是单带宽核密度方法,后者可能会过度或欠度估计密度。
- awkde(具有高斯核的自适应宽度KDE)
选择局部核带宽以考虑数据密度的变化。密度较大的区域获得较小的核,反之亦然。这样可以平滑尾部并在高统计区域获得高分辨率。
此软件使用了令人惊叹的pybind11软件包,使得创建C ++绑定非常方便。只有评估部分是用小型C ++片段编写的,以加快速度,其余部分是纯Python实现。

最后一个方法没有自适应方法,但包括一个适用于多模态分布的算法

  • KDEpy (Python中的核密度估计)

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


1
你有这方面的Python实现示例吗? - Maths12
谢谢你仍然发布它!这有助于其他人。 - four-eyes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接