最近,我遇到了R-package beanplot,并提供了在一个绘图中绘制两个子组的分布的可能性(特殊非对称beanplot)。您可以在Journal of Statistical Software和cran.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实际绘制的范围,但这实际上并不会改变密度估计值。