在ggplot2和R中为正态分布的散点图创建置信区域

And*_*ins 10 statistics graphing visualization r ggplot2

我有一些数据,说(实际上,我有大量的数据):

x   y
0.1 0.267
0.2 0.254
0.3 0.182
0.4 0.173
0.5 0.121
0.6 0.089
0.7 0.070
0.8 0.056
0.9 0.031
Run Code Online (Sandbox Code Playgroud)

这个数据大致遵循我用ggplot stat_smooth()绘制的趋势曲线.stat_smooth创建一个灰色区域,95%确信趋势线会落入其中.

我想要做的是在趋势线所在的周围创建一个灰色区域,假设围绕趋势线的正态分布,数据点将以95%的置信度创建一个灰色区域.

另一种说法是,我想要一个smooth_lines连接误差条的顶部和底部,并在ggplot中遮蔽.我应该怎么做呢?

谢谢.

Ram*_*ath 21

您正在寻找的内容基本上称为预测间隔.这是一种方法ggplot2

library(ggplot2)

# RUN REGRESSION AND APPEND PREDICTION INTERVALS
lm_fit  = lm(total_bill ~ tip, data = tips)
tips_with_pred = data.frame(tips, predict(lm_fit, interval = 'prediction'))

# PLOT WITH REGRESSION LINE, CONFIDENCE INTERVAL AND PREDICTION INTERVAL
p0 <- ggplot(tips_with_pred, aes(x = tip, y = total_bill)) + 
  geom_point() +
  geom_smooth(method = 'lm', aes(fill = 'confidence'), alpha = 0.5) +
  geom_ribbon(aes(y = fit, ymin = lwr, ymax = upr, fill = 'prediction'),
    alpha = 0.2) +
  scale_fill_manual('Interval', values = c('green', 'blue')) +
  opts(legend.position = c(0.20, 0.85))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 美丽.我认为这是最后说服我学习第三个`R`图形系统的帖子. (3认同)