2011-11-01 17 views
10

tengo algunos datos, digo (en realidad, tengo una gran cantidad de datos):creación de área de la confianza de dispersión distribuida normalmente en ggplot2 y 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 

Estos datos sigue aproximadamente una curva de tendencia que me trazo con ggplot stat_smooth(). stat_smooth crea un área gris con un 95% de confianza de que la línea de tendencia caerá dentro.

Lo que deseo hacer es crear un área gris alrededor de la línea de tendencia creando un área gris alrededor de donde los puntos de datos caerán con un 95% de confianza asumiendo una distribución normal alrededor de la línea de tendencia.

Otra forma de decirlo, es que quiero un smooth_lines conectando las partes superiores e inferiores de las barras de error y sombrear entremedias en ggplot. ¿Cómo debo hacer esto?

Gracias.

Respuesta

20

Lo que está buscando se llama esencialmente un intervalo de predicción. Aquí es una manera de hacerlo en 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

datos interesantes ... Hay muchas personas generosas. Pensé, sin embargo, que los ejes x e y deberían invertirse, ¿no? – yosukesabai

+0

sí. Acabo de improvisar algo rápidamente para ilustrar la construcción de los dos intervalos. – Ramnath

+3

Hermoso. Creo que esta es la publicación que finalmente me convenció para abrocharme y aprender un tercer sistema gráfico 'R'. –

Cuestiones relacionadas