2011-11-01 11 views
10

ho alcuni dati, dico (in realtà, ho una grande quantità di dati):creazione di un'area di fiducia per dispersione normalmente distribuito in ggplot2 e 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 

Questi dati segue approssimativamente una curva tendenza che ho tracciare con ggplot stat_smooth(). stat_smooth crea un'area grigia che è al 95% sicuro che la linea di tendenza cadrà dentro.

Quello che desidero fare invece è creare un'area grigia intorno a dove sarà la linea di tendenza è creare un'area grigia intorno a cui i punti dati scenderanno con una confidenza del 95% assumendo una distribuzione normale attorno alla linea di tendenza.

Un altro modo di dirlo è che voglio una linea_leggi che collega le parti superiori e inferiore delle barre di errore e ombreggia tra loro in ggplot. Come dovrei andare a fare questo?

Grazie.

risposta

20

Quello che stai cercando è essenzialmente chiamato un intervallo di previsione. Ecco un modo per farlo in 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

dati interessanti ... Ci sono molte persone generose. Ho pensato, però, che l'asse xey fosse invertito, no? – yosukesabai

+0

si. ho semplicemente accartocciato qualcosa in fretta per illustrare la costruzione dei due intervalli. – Ramnath

+3

Bello. Penso che questo sia il post che mi ha finalmente convinto ad allinearmi e ad imparare un terzo sistema grafico 'R'. –

Problemi correlati