ggplot2 vs sm封装密度图输出(和统计分析)

时间:2018-08-27 01:56:44

标签: r ggplot2

请考虑以下数据框示例

library('ggplot2')
library('sm')

    original<-c(1:100,1)
    a<-sample(original,100)
    b<-rep(1:4,25)
    lala<-data.frame(a,b)

我的目标是根据lala $ b中定义的每个组(1,2,3,4),为lala $ a中的值生成密度图。

要在ggplot2中这样做,我可以执行以下操作

plotDensityggplot<-ggplot()+
  geom_density(data = lala, aes(a, colour=factor(b)))+
  theme_classic()
print(plotDensityggplot)

产生这个:

enter image description here

但是,当我使用“ sm”包绘制相同的数据以使用以下代码对密度进行形式比较时:

sm.density.compare(lala$a,as.numeric(lala$b),model = "equal")

尽管lala $ a中没有低于零的值,但密度曲线在X轴上延伸超过零。

enter image description here

这是怎么回事? -请注意,这会影响沿y轴报告的密度。

从sm.density.compare获得的相等性置换检验的p值是否可靠? -谢谢!

1 个答案:

答案 0 :(得分:3)

对于它的价值,您可以(通过使用基数R的sm预先计算密度(或多或少)来复制ggplot中的density输出(我对{ {1}},但我想sm也会在某个时刻调用基数R的sm.density

density

enter image description here

我不确定library(tidyverse) lala %>% group_by(b) %>% summarise(tmp = list(map_dfc(c("x", "y"), ~density(a)[.x]))) %>% unnest() %>% ggplot(aes(x, y, colour = as.factor(b))) + geom_line() (或geom_density)如何调整内核密度估计参数,但与基本R的stat_density相比,您似乎对它们的控制较少。