Skip to content

Instantly share code, notes, and snippets.

@richarddmorey
Created November 14, 2015 14:31
Show Gist options
  • Save richarddmorey/d45cbeacafdbfb228806 to your computer and use it in GitHub Desktop.
Save richarddmorey/d45cbeacafdbfb228806 to your computer and use it in GitHub Desktop.
set.seed(6)
pdf(file="CI_Bayes_poster.pdf",width=8,height=4,ver="1.4")
layout(matrix(c(1,1,2,3),2,2))
par(mar=c(4,4.5,0,1),cex.lab=2,mgp=c(3,1,0))
ci.cols = c(rgb(1,0,0,1),rgb(0,0,0,1))
M = 30
N = 10
alpha = .05
mns = rnorm(M,0,1/sqrt(N))
sds = sqrt(rchisq(M,N-1)/(N-1))
cis = mns + t(qt(1-alpha/2,N-1)*outer(c(-1,1),sds))/sqrt(N)
inc = cis[,1]<0 & cis[,2]>0
perc.inc = mean(inc)
par(las=1)
plot(0,0,ylim=c(0,(M+1)),xlim=c(-1,1)*max(abs(cis)),ty='n',axes=FALSE,ylab="Simulation number",xlab="X")
box()
abline(v=0,lwd=1,lty=2,col="gray")
axis(1, at = 0, lab=expression(mu),cex.axis=1.5)
axis(2,cex.axis=1.5)
points(mns,1:M,pch=19,cex=.5,col=ci.cols[inc+1])
arrows(cis[,1],1:M,cis[,2],1:M,col=ci.cols[inc+1],lwd=2,code=3,angle=90,length = .02)
#segments(cis[,1],1:M,cis[,2],1:M,col=ci.cols[inc+1],lwd=2)
par(mar=c(3,4,0,0),mgp=c(1,0,0))
samp.num = 1
xx = seq(-3.5,3.5,len=200)
plot(xx,dnorm(xx,0,1),ty='l',ylim = c(0,dnorm(0,0,sds[samp.num]/sqrt(N)))*1.1,ylab="Prior",xlab=expression(mu),axes=FALSE,lwd=2,col="blue")
abline(h=0,col="gray")
box()
par(mar=c(3,4,0,0),mgp=c(1,0,0))
plot(xx,dnorm(xx,mns[samp.num],sds[samp.num]/sqrt(N)),ty='l',ylab="Posterior",xlab=expression(mu),
ylim = c(0,dnorm(0,0,sds[samp.num]/sqrt(N)))*1.1,axes=FALSE,lwd=2,col="purple"
)
arrows(cis[samp.num,1],dnorm(0,0,sds[samp.num]/sqrt(N))*1.05,cis[samp.num,2],dnorm(0,0,sds[samp.num]/sqrt(N))*1.05,col=ci.cols[inc+1][samp.num],lwd=2,code=3,angle=90,length = .02)
abline(h=0,col="gray")
box()
xx2 = seq(cis[samp.num,1],cis[samp.num,2],len=100)
polygon(c(xx2,rev(xx2)),c(0*xx2,dnorm(xx2,mns[samp.num],sds[samp.num]/sqrt(N))),col=rgb(1,0,1,.5))
dev.off()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment