[英]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.