Confidence interval for median I have to find a 95% C.I. on the median and other percentiles. I don't know how to approach this. I mainly use R as a programming tool.
 A: And there are other approaches:
One is based on Wilcoxon Rank Sum test applied for one sample with continuity correction. In R this can be supplied as:
wilcox.test(x,conf.level=0.95,alternative="two.sided",correct=TRUE)

And there is the David Olive's CI for median discussed here:
CI for Median
A: Here is an illustration on a classical R dataset:
> x       = faithful$waiting
> bootmed = apply(matrix(sample(x, rep=TRUE, 10^4*length(x)), nrow=10^4), 1, median)
> quantile(bootmed, c(.025, 0.975))
2.5% 97.5% 
 73.5    77 

which gives a (73.5, 77) confidence interval on the median.
(Note: Corrected version, thanks to John. I used $10^3$ in the nrow earlier, which led to the confusion!)
A: Another approach is based on quantiles of the binomial distribution.
e.g.:
> x=faithful$waiting
> sort(x)[qbinom(c(.025,.975), length(x), 0.5)]
[1] 73 77

A: The result based on the qbinom approach isn't correct for small samples.  Suppose that x has 10 components.  Then qbinom(c(.025,.975),10,.5) gives 2 and 8.  The resulting interval doesn't treat order statistics at the lower tail symmetrically with those from the upper tail; you should get either 2 and 9, or 3 and 8.  The right answer is 2 and 9.  You can check against proc univariate in SAS.  Catch here is you need no more than .025 probability below and above; the lower quantile doesn't do this, as it gives at least .025 at or below.  You get saved on the bottom because the count that should be 1 should get mapped to the second order statistic, counting 0, and so the "off by one" cancels.  This fortuitous canceling does not happen on top, and so you get the wrong answer here.  The code sort(x)[qbinom(c(.025,.975),length(x),.5)+c(0,1)]
almost works, and .5 can be replaced by other quantile values to get confidence intervals for other quantiles, but it won't be right when there exists a such that P[X<=a]=.025.  See, for ex, Higgins, Nonparametric Statisitcs.
A: Check out bootstrap resampling.  Search R help for the boot function.  Depending on your data with resampling you can estimate confidence intervals for just about anything.
