如何基于R基础绘图函数实现校准图概率分布针状图?附示例代码
用R基础绘图函数实现带针状图的校准图
一、在校准线上下展示概率分布的针状图
可以用基础绘图的segments()函数绘制针状短线段,结合模拟的预测概率与校准线实现需求。示例代码如下:
# 模拟数据:100个样本的预测概率 set.seed(123) pred_prob <- rbeta(100, shape1 = 2, shape2 = 3) # 模拟带偏移的校准线(模拟实际校准情况,理想校准线为y=x) calib_x <- seq(0, 1, length.out = 100) calib_y <- calib_x + rnorm(100, mean = 0, sd = 0.05) # 初始化绘图区域 plot(calib_x, calib_y, type = "l", lwd = 2, col = "darkblue", xlab = "预测概率", ylab = "实际概率", xlim = c(0,1), ylim = c(-0.1,1.1)) abline(a=0, b=1, lty=2, col="gray50") # 绘制理想校准线 # 绘制针状图:随机分配针的上下方向 direction <- sample(c(-1,1), 100, replace = TRUE) segments(x0 = pred_prob, y0 = calib_y[match(pred_prob, calib_x)] + direction*0.02, x1 = pred_prob, y1 = calib_y[match(pred_prob, calib_x)], col = "red", lwd = 1.5)
关键说明:
segments()通过指定线段的起点与终点绘制针状,以校准线对应点为一端,向上下固定偏移量延伸形成针状效果。- 可通过调整
0.02控制针的长度,direction变量控制针的上下方向。
二、按二分类结局分组展示概率分布的针状图
针对二分类结局(0/1),可将两组预测概率用不同颜色的针状图分开展示,同时叠加校准线。示例代码如下:
# 模拟二分类数据 set.seed(456) n <- 150 pred_prob <- rbeta(n, shape1 = 3, shape2 = 2) # 生成结局:预测概率越高,结局为1的概率越高 outcome <- rbinom(n, size = 1, prob = pred_prob + rnorm(n, 0, 0.1)) # 初始化空绘图区域 plot(pred_prob, outcome, type = "n", xlab = "预测概率", ylab = "实际结局", xlim = c(0,1), ylim = c(-0.2,1.2)) # 绘制理想校准线 abline(a=0, b=1, lty=2, col="gray50") # 拟合并绘制实际校准曲线 calib_fit <- loess(outcome ~ pred_prob) calib_x_seq <- seq(0,1,length.out=100) calib_y_seq <- predict(calib_fit, newdata = data.frame(pred_prob = calib_x_seq)) lines(calib_x_seq, calib_y_seq, lwd=2, col="darkblue") # 按结局分组绘制针状图 # 结局为0:针状向下延伸 segments(x0 = pred_prob[outcome==0], y0 = 0, x1 = pred_prob[outcome==0], y1 = -0.15, col = "darkgreen", lwd=1.5) # 结局为1:针状向上延伸 segments(x0 = pred_prob[outcome==1], y0 = 1, x1 = pred_prob[outcome==1], y1 = 1.15, col = "darkred", lwd=1.5) # 添加图例 legend("topleft", legend = c("理想校准线", "实际校准曲线", "结局=0", "结局=1"), col = c("gray50", "darkblue", "darkgreen", "darkred"), lty = c(2,1,1,1), lwd=c(1,2,1.5,1.5))
关键说明:
- 用
type="n"初始化空绘图,避免直接绘制散点干扰针状图展示。 - 用
loess()拟合实际校准曲线,模拟真实模型的校准效果。 - 针对两组结局分别固定针状的起始端点(0和1),通过偏移量控制针的长度,实现分组展示。
内容的提问来源于stack exchange,提问作者Yellow Bridge
相关产品推荐
相关产品推荐

