gaussian_kde与密度积分和之间的不一致性

时间:2015-06-22 15:02:43

标签: python numpy kernel-density

可以在估算核密度后解释原因

d = gaussian_kde(g[:,1])

计算积分和:

x = np.linspace(0, g[:,1].max(), 1500)
integral = np.trapz(d(x), x)

我得到的积分和与1完全不同:

print integral
Out: 0.55618

1 个答案:

答案 0 :(得分:2)

正如我的评论中所述,这是内核密度支持的问题。高斯内核具有无限的支持。即使适合具有特定范围的数据,高斯核的范围也将从负无穷大到正无穷大。也就是说,绝大多数密度将在拟合数据范围内合理地位于范围内。

如果你想在原始数据的范围内安装一个高斯内核,你可以通过截断内核并重新规范化截断的部分以整合到1来拟合截断的高斯内核,但我不确定这是不是你想要什么您也可以截断为具有类似逻辑的非负高斯内核。