我试图在一系列可能不是正态分布的分布上生成基于 KDE 的 PDF 估计。
我喜欢 R 中 ggplot 的 stat_density 似乎可以识别频率中每个增量颠簸的方式,但无法通过 Python 的 scipy-stats-gaussian_kde 方法复制这一点,这似乎过于平滑。
我已经按如下方式设置了我的 R 代码:
ggplot(test, aes(x=Val, color = as.factor(Class), group=as.factor(Class))) +
stat_density(geom='line',kernel='gaussian',bw='nrd0'
#nrd0='Silverman'
,size=1,position='identity')
我的python代码是:
kde = stats.gaussian_kde(data.ravel())
kde.set_bandwidth(bw_method='silverman')
统计文档在这里显示 nrd0 是用于 bw 调整的silverman 方法。
基于上面的代码,我使用相同的内核(高斯)和带宽方法(西尔弗曼)。
谁能解释为什么结果如此不同?
慕工程0101907
相关分类