我最近遇到了R-package beanplot ,并且可以在一个单独的图中绘制两个子组的分布(特殊的非对称beanplot )。您可以在Journal of Statistical Software和cran.r-project.org上找到该包的说明。
我使用以下 CODE :
生成了一个非对称beanplotlibrary(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。
如果有人能够解释比例是如何被修改的,那将是很好的,即这里实际绘制的是什么。有没有办法用原始比例绘制分布图?
非常感谢!
答案 0 :(得分:4)
beanplot
使用density
。估计的密度可以给出超过观察数据范围的区域的质量。您可以尝试这样来了解密度的作用 - plot(density(1:2))
,您应该看到它只是以数据点为中心的高斯密度的平均值(请注意,您可以使用不同的内核作为{{1}确实允许你指定一个内核参数)。它如何选择高斯的方差取决于你,但默认情况下看起来像beanplot使用beanplot
和“dpi”方法来选择带宽。
您可以使用cutmin和cutmax来控制beanplot实际绘制的范围,但这实际上并不会改变密度估计值。