【问题标题】:creating confidence area for normally distributed scatterplot in ggplot2 and R在ggplot2和R中为正态分布的散点图创建置信区域
【发布时间】:2011-12-19 04:45:19
【问题描述】:

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

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

这个数据大致遵循我用 ggplot stat_smooth() 绘制的趋势曲线。 stat_smooth 创建了一个灰色区域,它有 95% 的把握认为趋势线将落入其中。

我希望做的是在趋势线所在的位置周围创建一个灰色区域,在假设趋势线周围呈正态分布的情况下,在数据点将下降的位置周围创建一个灰色区域,置信度为 95%。

另一种说法是,我想要一条平滑线连接误差线的顶部和底部,并在 ggplot 之间进行遮蔽。我该怎么做呢?

谢谢。

【问题讨论】:

    标签: r statistics ggplot2 visualization graphing


    【解决方案1】:

    您要查找的内容本质上称为预测区间。这是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))
    

    【讨论】:

    • 有趣的数据...有很多慷慨的人。不过,我认为 x 和 y 轴应该颠倒,不是吗?
    • 是的。我只是快速拼凑出一些东西来说明这两个区间的构造。
    • 美丽。我认为这篇文章最终让我相信,我要好好学习第三个R 图形系统。
    猜你喜欢
    • 2022-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 2018-04-04
    相关资源
    最近更新 更多