小编UBH*_*NNX的帖子

为什么stat_density(R; ggplot2)和gaussian_kde(Python; scipy)不同?

我试图对一系列可能不会正态分布的分布产生基于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)

R的例子

我的python代码是:

kde = stats.gaussian_kde(data.ravel())
kde.set_bandwidth(bw_method='silverman')
Run Code Online (Sandbox Code Playgroud)

python示例

统计显示文档这里是nrd0是西尔弗曼方法为体重调整。

基于上面的代码,我使用的是相同的内核(高斯)和带宽方法(Silverman)。

谁能解释为什么结果如此不同?

python kde r scipy ggplot2

1
推荐指数
1
解决办法
162
查看次数

标签 统计

ggplot2 ×1

kde ×1

python ×1

r ×1

scipy ×1