I am trying to calculate the confidence interval in R. Due to some special reasons, I have to do it with the functions in \"bootstrap\" package.(which means I can\'t use th
You could do this by hand.
library(bootstrap)
data('law')
names(law) <- tolower(names(law))
set.seed(1)
theta <- function(ind) cor(law[ind, 1], law[ind, 2], method = "pearson")
law.boot <- bootstrap(1:15, 1000, theta)
ci1 <- qnorm(p=c(.025, .975),
mean=mean(law.boot$thetastar),
sd=sd(law.boot$thetastar))
Gives:
> ci1
[1] 0.5055894 1.0268053
Compared to bootstrap from the scratch:
set.seed(1)
FX <- function(x) with(x, cor(lsat, gpa))
boot <- replicate(1000, FX(law[sample(nrow(law), round(nrow(law)),
replace=TRUE), ]))
ci2 <- qnorm(p=c(.025, .975),
mean=mean(boot),
sd=sd(boot))
Gives:
> ci2
[1] 0.5065656 1.0298412
Thus ci1 and ci2 seem to be similar.
However, note: I've adapted the bootstrap to 1,000 repetitions. With just 100 repetitions the difference is naturally somewhat larger.
Note 2: My answer considers CIs as asked. However, probably it's more appropriate to use the percentiles. See the thothal's answer how to obtain them.