Reputation: 694
I have written some R code which produces the limits of confidence intervals as well as the information if each confidence interval covers the true parameter. I'd like to visualize this but have no idea how.
confInt <- function(runs){
result<-NULL
vleft<-NULL
vright<-NULL
for (i in 1:runs) {
data<-rnorm(1000)
n<-length(data)
a<-mean(data)
s<-sd(data)
error <- qnorm(0.975)*s/sqrt(n)
left <- a-error
right <- a+error
result[i] = left<0 & 0<right
vleft[i] = left
vright[i] = right
}
data.frame(result,vleft,vright)
}
confInt(100)
EDIT: I have found a way using ggplot2
confInt <- function(runs){
x<-1:runs
mu<-NULL
sigma<-NULL
result<-NULL
vleft<-NULL
vright<-NULL
for (i in 1:runs) {
data<-rnorm(1000)
n<-length(data)
a<-mean(data)
mu[i]<-a
s<-sd(data)
sigma[i]<-s
error <- qnorm(0.975)*s/sqrt(n)
left <- a-error
right <- a+error
result[i] = left<0 & 0<right
vleft[i] = left
vright[i] = right
}
data.frame(x,mu,sigma,result,vleft,vright)
}
df<-confInt(100)
require(ggplot2)
myplot<-ggplot(df, aes(x = x, y = mu)) +
geom_point(size = 2) +
geom_errorbar(aes(ymax = vleft, ymin = vright,colour=result*3))
myplot + theme_bw()
summary(df)
Upvotes: 1
Views: 1168
Reputation: 3290
There are many ways to approach this. Below, I use mapply
to feed the the starting and ending points of each confidence interval to segments
.
ci <- confInt(100)
plot(y = c(0, 100), x = c(-.15,.15), type = 'n', ylab = "",
xlab = "", yaxt = 'n')
with(ci, mapply(segments, x0 = vleft, x1 = vright,
y0 = 1:100, y1 = 1:100, col = (!result) + 1))
abline(v = 0, col = 'purple')
Upvotes: 1