如何针对连续变量绘制二进制(存在/不存在 - 1/0)数据
机器算法验证
数据可视化
二进制数据
散点图
2022-02-11 16:20:51
2个回答
如果我正确理解了这个问题 - 您可能想要使用“条件密度图”。
这样的图提供了分类变量如何在不同级别的连续数值变量中变化的平滑概览。
例子
对于一个真实世界的例子,这里是鸢尾花数据集中3 个不同物种的萼片宽度分布:
cdplot(Species ~ Sepal.Width, data=iris)
解释
这些图表示连续变量的各个级别内每个类别的平滑比例。为了解释它们,您应该查看 x 轴并查看每个类别的不同比例(由不同的颜色表示)如何随着数值变量的不同值而变化。
例如上图:很容易看出,当萼片宽度达到 3.5 或以上时,您最有可能处理的是 setosa 类型的花。在萼片宽度 2.0 时,杂色占主导地位。在 3.0 时,大约有 20% 的 setosa、35% 的 versicolor 和 45% 的 virginica(根据右侧 y 轴上的刻度用肉眼判断。)
有关此类图的解释的另一个讨论,请考虑阅读此问题中的答案:条件密度图的解释
你的情况
当然,在您的情况下,您将在 y 轴上有 2 个类别。所以最终的图片看起来更接近这个例子:
set.seed(14)
presence <- factor(rbinom(20, 1, 0.5))
presence
[1] 0 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1
Levels: 0 1
pressure <- runif(20, 1000, 1035)
pressure
[1] 1012.282 1014.687 1021.619 1024.159 1026.247 1021.663 1013.469
1018.317 1024.054 1002.747 1028.396 1004.806 1033.906 1022.898
1033.127 1004.378 1019.386 1016.432 1030.160 1021.567
cdplot(presence ~ pressure)
解释保持不变,除了您将处理二进制分类变量。在这种特殊情况下,该图表明存在(1,浅灰色区域)随着压力值(x 轴)的增加而增加。
更好地扭转你的情节:把存在放在水平轴上,把压力放在垂直轴上。然后将压力绘制为点图。如果过度绘图是一个问题,请水平抖动点。
如果您想强调分布和/或汇总统计数据,请叠加箱线图或豆图。
当然,如果您坚持,您也可以水平绘制这些图,但对于两组,一组通常会看到下面的垂直版本。
library(beanplot)
set.seed(1)
n_per_group <- 30
pressure <- data.frame(F=rnorm(n_per_group,1000,20),T=rnorm(n_per_group,1000,20))
boxplot(pressure,outline=FALSE,ylim=range(pressure),xaxt="n",col="gray",
xlab="Presence",ylab="Pressure (hPa)")
axis(1,c(1,2),c("FALSE","TRUE"))
points(as.vector(cbind(runif(n_per_group,.7,1.3),runif(n_per_group,1.7,2.3))),
unlist(pressure),pch=19)
beanplot(pressure,what=c(0,1,0,0),col="gray",xaxt="n",xlab="Presence",ylab="Pressure (hPa)")
axis(1,c(1,2),c("FALSE","TRUE"))
points(as.vector(cbind(runif(n_per_group,.7,1.3),runif(n_per_group,1.7,2.3))),
unlist(pressure),pch=19)
其它你可能感兴趣的问题