繁体   English   中英

从R中的机会实验绘制置信区间

[英]Plotting confidence intervals from a chance experiment in R

我正在尝试绘制一个说明性的图,以通过对机会实验的反复试验向学生们展示频繁主义者置信区间的含义和性质。 我从正态分布中采样并估计置信区间。

get.ci<-function(x,alpha=.05,n){
M<-mean(x)
se<-sd(x)/sqrt(n)
t<-qt(1-alpha/2,df=n-1)
ci<-c(M-se*t,M+se*t)
return(c(M,ci))
}

n=100
mu=100
sig=20
ci<-matrix(ncol=3,nrow=1000)
for(i in 1:1000){
  x<-rnorm(n,mu,sig)
  ci[i,]<-get.ci(x,n=n)
}

现在,我想在一行实验中绘制ci ,其中x轴表示ci行数,y轴表示点估计M ,上下限与一条线相连。 然后,我想添加一个abline并希望它在视觉上变得明显,一部分CI(即100 * alpha%)不能覆盖真实值,即

low.viol<-ci[,2]>100
up.viol<-ci[,3]<100
(sum(low.viol)+sum(up.viol))/1000

我应该如何在R中绘制该图?

我认为您需要命令它们使任何东西在“视觉上变得明显”。 相比:

# unordered
plot(range(1:nrow(ci)), range(ci), type = "n")
segments(x0 = 1:nrow(ci), x1 = 1:nrow(ci), y0 = ci[, 2], y1 = ci[, 3], col = "gray80")
points(1:nrow(ci), ci[, 1], pch = ".")

# ordered
ci.ordered <- ci[order(ci[, 1]), ]
plot(range(1:nrow(ci.ordered)), range(ci.ordered), type = "n")
segments(x0 = 1:nrow(ci.ordered), x1 = 1:nrow(ci.ordered),
         y0 = ci.ordered[, 2], y1 = ci.ordered[, 3], col = "gray80")
points(1:nrow(ci.ordered), ci.ordered[, 1], pch = ".")
abline(h = 100)

是否根据重叠而着色:

far.off <- ci.ordered[, 2] > 100 | ci.ordered[, 3] < 100
plot(range(1:nrow(ci.ordered)), range(ci.ordered), type = "n")
segments(x0 = 1:nrow(ci.ordered), x1 = 1:nrow(ci.ordered),
         y0 = ci.ordered[, 2], y1 = ci.ordered[, 3],
         col = c("gray80", "firebrick2")[far.off + 1])
points(1:nrow(ci.ordered), ci.ordered[, 1], pch = ".")
abline(h = 100)

如果我正确理解了这个问题,那么在标准R图形中,它将看起来像这样:

plot(ci[,1], type="n", ylim=c(89,110))
lines(ci[,2],col="red")
lines(ci[,3],col="blue")
abline(100,0)

但是,为了清楚地显示不包含亩的CI的比例,我不确定如何帮助您

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM