最近,我遇到了R-package beanplot,并提供了在一个绘图中绘制两个子组的分布的可能性(特殊非对称beanplot)。您可以在Journal of Statistical Softwarecran.r-project.org上找到该软件包的描述。

我使用以下代码生成了不对称beanplot:

library(psych)
library(beanplot)

var1 <-c(20,33,NA,39,NA,40,34,33,NA,38,NA,8,7,NA,NA,40,34,24,25,36,40,37,34,NA,35)
var2 <- c(1,0,1,1,1,0,1,0,1,NA,1,0,0,0,0,1,1,0,1,0,1,1,NA,0,1)
mydata<-data.frame(var1,var2)
table(mydata)

par(lend = 1, mai = c(0.8, 0.8, 0.5, 0.5))
beanplot(var1 ~ var2, data= mydata,  side = "both",log="",
what=c(1,1,1,0), border = NA, col = list("black", c("grey", "white")))
legend("bottomleft", fill =c("black", "grey"), legend = c("no", "yes"))


生成的图很好地显示了两个子组分布的不同形状。



问题

因变量的测量范围为7到40。但是,y轴似乎从-1到+55。

谁能解释比例是如何修改的,即此处实际绘制的内容,那就太好了。有没有办法使用原始比例绘制分布图?

非常感谢!

最佳答案

beanplot使用density。估计的密度可以使质量超出观察数据范围。您可以尝试一下以了解密度的作用-plot(density(1:2)),并且应该看到它只是取以数据点为中心的高斯密度平均值(请注意,您可以使用其他内核,因为beanplot允许您使用以指定内核参数)。如何选择高斯方差取决于您,但是默认情况下,它看起来像beanplot使用bw.SJ和“ dpi”方法来选择带宽。

您可以使用cutmin和cutmax来控制beanplot实际绘制的范围,但这实际上并不会改变密度估计值。

08-25 02:05