【问题标题】:Scipy Guassian_kde NomalisationScipy Guassian_kde 规范化
【发布时间】:2013-04-11 21:50:12
【问题描述】:

我一直在使用 scipy.stats.gausian_kde,但对其输出有一些疑问。我在同一张图上绘制了归一化直方图和 gaussian_kde 图。为什么 y 值差异如此之大?我的理解是 gaussian_kde 图应该大致触及直方图的尖端。使用 scipy.integrate.quad 函数,我确定图表下方的面积为 0.7,而不是 1.0,这是我的预期。

实际上我真正想要的是 gaussian_kde 来表示非标准化直方图,有谁知道我该怎么做?

【问题讨论】:

    标签: statistics scipy kernel-density statsmodels


    【解决方案1】:

    您的期望有点偏离。每个 KDE 峰下的面积应大致等于其相应条形中的面积。在我看来,这似乎成立。具有全局带宽估计的非自适应 KDE(如 scipy.stats.gaussian_kde)往往会拓宽具有尖峰的多峰分布。

    至于对 KDE 下总面积的低估,我不能说没有你用来进行集成的数据和代码。

    为了使 KDE 近似于未归一化的直方图,您需要乘以 (bin_width*N),其中 N 是数据点的总数。

    【讨论】:

    • 您好罗伯特,感谢您的回答。 KDE 的 bin-width 是多少?和带宽一样吗?至于积分,我只是做了: ecdf = stats.gaussian_kde(array) 后跟 scipy.integrate.quad(ecdf, min(array), max(array))
    • 不,我的意思是您要匹配的直方图的bin_width。不同的直方图会有不同的归一化因子。不要使用数据的最小值和最大值作为集成界限。 KDE 对数据进行平滑处理,因此它们的支持超出了数据范围。有了这样的病理数据,这个额外的范围是相当大的。
    猜你喜欢
    • 2018-08-18
    • 2012-05-22
    • 1970-01-01
    • 2013-08-21
    • 2016-05-13
    • 2018-06-06
    • 2010-12-29
    • 1970-01-01
    相关资源
    最近更新 更多