The boot.ci documentation in R says there are five different types of confidence interval that boot.ci will return:

  • norm (normal approximation)
  • basic
  • stud (studentized)
  • perc (percentile)
  • bca (bias-corrected, accelerated)

BCa looked pretty good, but it seems really slow for my data.

How should I choose which one to use?

  • 5
    $\begingroup$ From what I've read, BCa and percentile are considered the technically superior. I have found percentile to be reasonably well behaved in difficult situations (e.g. small sample size or discontinuous data). The following article is helpful: tau.ac.il/~saharon/Boot/ $\endgroup$ Commented Jul 20, 2017 at 22:49
  • $\begingroup$ There are actually more than 5. There is BC which does not include the use of an acceleration constant, two percentile methods (Efron's and Hall's) and iterated bootstrap. $\endgroup$ Commented Jul 20, 2017 at 23:08
  • $\begingroup$ @MichaelChernick I meant that boot.ci will return. Clarified in the question. $\endgroup$
    – dfrankow
    Commented Jul 23, 2017 at 14:37
  • $\begingroup$ So the procedure will give you only those 5 choices. But percentile method is ambiguous. Is it Efron's or Hall's percentile method? $\endgroup$ Commented Jul 23, 2017 at 15:16
  • $\begingroup$ The documentation for boot.ci says, "The formulae on which the calculations are based can be found in Chapter 5 of Davison and Hinkley (1997)." Dunno if that's helpful. $\endgroup$ Commented Jul 23, 2017 at 22:47

2 Answers 2


If your replicates are not normally distributed, do not choose $normal$.

$Basic$ can give you intervals that are out of the range of your replicated data; e.g. your bootstrapped replicates range between 2-200 but your lower confidence interval is -5.

For $student's$ CI, you need to pass a variance alongside whatever statistics (e.g. mean, median) you are dealing with. I would prefer this over $bca$ if you cannot generate a large number of replicates that can satisfy $bca$. If the number of replicates are small, the $bca$ intervals become unstable. One way of checking the stability is to generate many sets of replicates and identify corresponding confidence limits - most likely you will notice that the range of confidence limits based on $bca$ is wider than the rest.

I don't even know why they have the $percentile$ method, the most confusing of all five.

  • 1
    $\begingroup$ A cliched question: "If the number of replicates are small" -- how small is "small"? $\endgroup$
    – Rafs
    Commented Nov 13, 2020 at 13:20
  • $\begingroup$ I appreciate your answer. Ironically, while you find percentile the most confusing, I see it recommended in a lot of places, because it's conceptually simple (just take 2.5 and 97.5 percentile). I don't know whether it's good. I thought I read in a paper by Efron et al. that it can be biased, hence the BCa. $\endgroup$
    – dfrankow
    Commented Aug 15, 2022 at 18:07

I found https://arxiv.org/abs/1411.5279 to be one of the clearest and easiest-to-read reference.

In contrast to other sources the author recommends to avoid the basic confidence interval and rather use the easy percentile or some t-test based one. I'm not sure whether it touches upon BCA.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.