> BinUpCI = function(X,n,alpha) { + U = numeric(3) + U[1] = (X + qnorm(1-alpha)*sqrt(X*(1-X/n)))/n + za2 = qnorm(1-alpha)^2 + U[2] = (X+za2/2 + sqrt((1-X/n)*X*za2+za2^2/4))/(n+za2) + U[3] = qbeta(1-alpha,X+1,n-X) + U } > TruCovr = function(p, n, alpha) { + Parr = array(0, c(n+1,3), dimnames=list(0:n, + c("Norm.appr","Norm.quad","Test.based"))) + for(i in 0:n) Parr[i+1,] = BinUpCI(i,n,alpha) + CovProb = array(0, c(length(p),3)) + for(j in 1: length(p)) { + Qarr = t(p[j] <= Parr) + CovProb[j,] = Qarr %*% dbinom(0:n,n,p[j]) } + list(parr = Parr, cover = CovProb) } > Covprobs = function(p, n, alpha) { + Covers = array(0, c(length(n),3), dimnames=list(n, + c("Norm.appr","Norm.quad","Test.based"))) + for(i in 1:length(n)) Covers[i,] = + TruCovr(p,n[i],alpha)$cover + Covers } > OutProbs77 = round(TruCovr(seq(.05,.44,by=.002),77,.05)$cover,4) plot(seq(.05,.44,by=.002), OutProbs77[,1], type="l", lty=2, col="blue", xlab="p parameter", ylim = c(.82,.99), ylab="Coverage Prob", main = "Coverage for 1-sided 95% Binomial CI's at n=77") lines(seq(.05,.44,by=.002), OutProbs77[,2], col="green", lty=3) lines(seq(.05,.44,by=.002), OutProbs77[,3], col="black", lty=4) legend(locator(), legend=c("Wald Interval", "Wilson CI", "Clopper-Pearson CI"), col=c("blue","green","black"),lty=2:4) ## saved as BinomialCvrg_n77.pdf > CovProbs.12 = Covprobs(.12, 32:76, 0.1) plot(32:76, CovProbs.12[,1], type="l", lty=2, col="blue", xlab="samp-size n", ylim = c(.70,.965), ylab="Coverage Prob", main = "Coverage for 1-sided 90% Binomial CI's at p=0.12") lines(32:76, CovProbs.12[,2], col="green", lty=3) lines(32:76, CovProbs.12[,3], col="black", lty=4) legend(locator(), legend=c("Wald Interval", "Wilson CI", "Clopper-Pearson CI"), col=c("blue","green","black"),lty=2:4) ## saved as BinomialCvrg_p.12.pdf