我试图对一系列可能不会正态分布的分布产生基于KDE的PDF估计。
我喜欢ggplot在R中的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')
Run Code Online (Sandbox Code Playgroud)
我的python代码是:
kde = stats.gaussian_kde(data.ravel())
kde.set_bandwidth(bw_method='silverman')
Run Code Online (Sandbox Code Playgroud)
统计显示文档这里是nrd0是西尔弗曼方法为体重调整。
基于上面的代码,我使用的是相同的内核(高斯)和带宽方法(Silverman)。
谁能解释为什么结果如此不同?