2011-11-01 37 views
10

Tôi có một số dữ liệu, nói (trên thực tế, tôi có một lượng lớn dữ liệu):tạo diện tích tự tin cho phân tán phân bố bình thường trong ggplot2 và R

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 

Những thông tin này khoảng sau một đường cong xu hướng mà tôi vẽ với ggplot stat_smooth(). Stat_smooth tạo ra một vùng màu xám là 95% tự tin rằng đường xu hướng sẽ rơi vào bên trong. Thay vào đó, điều tôi muốn làm là tạo vùng màu xám xung quanh nơi đường xu hướng sẽ tạo vùng màu xám xung quanh nơi các điểm dữ liệu sẽ giảm với độ tin cậy 95% giả định phân phối bình thường quanh đường xu hướng.

Một cách khác để nói nó, là tôi muốn một smooth_lines kết nối các đỉnh và đáy của các thanh lỗi và để tô bóng giữa các ggplot. Làm thế nào tôi nên đi về việc này?

Cảm ơn.

Trả lời

20

Điều bạn đang tìm kiếm về cơ bản được gọi là khoảng thời gian dự đoán. Dưới đây là một cách để làm điều đó trong 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)) 

enter image description here

+0

dữ liệu thú vị ... Có rất nhiều người hào phóng. Tôi nghĩ, mặc dù, x và trục y nên được đảo ngược, không? – yosukesabai

+0

có. tôi chỉ cobbled lên một cái gì đó một cách nhanh chóng để minh họa cho việc xây dựng hai khoảng thời gian. – Ramnath

+3

Đẹp. Tôi nghĩ rằng đây là bài viết cuối cùng đã thuyết phục tôi khóa xuống và học một hệ thống đồ họa thứ 3 'R'. –

Các vấn đề liên quan