2016-03-11 16 views
6

Sanırım bir bayes basit doğrusal regresyon gerçekleştiriyorum. Sonuçların bir (intercept) ve b (eğim) posterior dağılımlarına dayalı çoklu regresyon çizgilerini çizerek görselleştirmek istiyorum. Sonuçların ısı haritası benzeri bir tarzda nasıl görüntüleneceğini merak ediyorum veya alternatif olarak örtüşmeyi önlemek için şeffaflığı kullanın. İşte basit bir ggplot yaklaşımı.Regresyon çizgilerinin ısı haritası

library(ggplot2) 
set.seed(123) 

N = 1000 
x = 1:80 
a = rnorm(N,10,3) 
b = rnorm(N,5,2) 

y = vector("list",length=N) 
for(i in 1:N) {y[[i]] = a[i]+b[i]*x} 


df = data.frame(x=rep(x,N),y=unlist(y)) 
df$f = rep(1:N,each=80) 

(plt <- ggplot(df, aes(x, y,group=f)) + 
    geom_jitter(alpha=1/30,width=5,col="blue") + theme_classic()) 

Bunu yapmak için daha iyi yollar var mı? Renk, örtüşen miktara bağlı olarak değişecektir (ısı haritalarında olduğu gibi).

+0

Ben bir yazım hatası olduğunu düşünüyorum (1: N, her = 80)' – csgillespie

+0

teşekkürler! – beginneR

cevap

5

posterior örnekleri ile bir çizgi arsa yapamaz Neden

g = ggplot(df, aes(x, y)) + 
    geom_line(alpha=1/50,col="grey",aes(group=f)) + 
    theme_classic() 

Daha sonra sonra

g + stat_summary(geom="line", fun.y=mean, color="black", lwd=1) 

vermek arka expection için daha koyu bir satır ekleyin

enter image description here

4

Bunu yapabileceğiniz başka bir yol da stat_density_2d, ggplot2 ile çalışır. Bunu yapmanın çeşitli yolları vardır.

ggplot(df, aes(x = x, y=y))+ 
    stat_density_2d(aes(fill = ..density..), geom = "raster", contour = FALSE)+ 
    scale_fill_gradient(low = "blue", high = "red")+ 
    stat_summary(geom="line", fun.y=mean, color = "white",lwd=1)+ 
    theme_classic() 

heatmap

Tersine sıcaklık haritası olarak sizin df ...

, siz de puan kullanabilirsiniz kullanma. `Df $ f = temsilcisi:

ggplot(df, aes(x = x, y=y))+ 
    stat_density_2d(aes(size = ..density..), geom = "point", contour = FALSE)+ 
    stat_summary(geom="line", fun.y=mean, color = "white",lwd=1)+ 
    theme_classic() 

point density

+0

yaratıcı ve güzel düzeltildi – giacomo