gaussian_kde与密度积分和不一致
Inconsistency between gaussian_kde and density integral sum
有人能解释一下为什么在核密度估计后
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 来拟合截断高斯核,但我不确定是否这就是你想要的。您也可以截断为具有类似逻辑的非负高斯内核。
有人能解释一下为什么在核密度估计后
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 来拟合截断高斯核,但我不确定是否这就是你想要的。您也可以截断为具有类似逻辑的非负高斯内核。