[R] Order statistic in wtd.quantile

Frank E Harrell Jr f.harrell at vanderbilt.edu
Tue Aug 4 15:46:37 CEST 2009


Michael Becher wrote:
> Dear Professor Harrell,
> 
> please allow me a brief question about the wtd.quantile() function in 
> your marvelous R package Hmisc that I was not able to answer using the 
> documentation or the web. For type="quantile", what is the exact 
> statistic that is estimated? The documentation says that the same 
> interpolated order statistic as in the quantile() function is used. As 
> far as I can tell, the quantile() function has 5 different interpolated 
> order statistics (types 4-9). The default for quantile() is type 7 - is 
> the same used in wtd.quantile? Or is it tpye 8, which is recommended by 
> Hyndman and Fan (1996), since it is median unbiased and distribution 
> free? Or something else?
> 
> Thanks a lot for your attention.
> 
> Respectfully,
> 
> Michael
> 
> 
> ---
> Michael Becher
> Princeton University
> Department of Politics
> mbecher at princeton.edu

Here is an empirical way to answer the question, for the case where the 
weights are all equal to 1.  Methods could be said to be identical when 
then maximum difference is < 1e-10.  You can see that the default for 
wtd.quantile equals the default for quantile.  -Frank

require(Hmisc)

set.seed(1)
u <-  eval(formals(wtd.quantile)$type)
v <- as.character(1:9)
r <- matrix(0, nrow=length(u), ncol=9, dimnames=list(u,v))

for(n in c(8, 13, 22, 29))
   {
     x <- rnorm(n)
     for(i in 1:5) {
       probs <- sort( runif(9))
       for(wtype in u) {
         wq <- wtd.quantile(x, type=wtype, weights=rep(1,length(x)), 
probs=probs)
         for(qtype in 1:9) {
           rq <- quantile(x, type=qtype, probs=probs)
           r[wtype, qtype] <- max(r[wtype,qtype], max(abs(wq-rq)))
         }
       }
     }
   }

r
                     1         2         3            4         5 
      6
quantile    0.5729927 0.5729927 0.7547948 5.022317e-01 0.3725233 
6.416295e-01
(i-1)/(n-1) 0.5729927 0.5729927 0.7547948 5.022317e-01 0.3725233 
6.416295e-01
i/(n+1)     0.7088892 0.7088892 0.8569561 7.195455e-01 0.3208148 
4.440892e-16
i/n         0.7774653 0.7774653 0.4093181 4.440892e-16 0.4284780 
7.195455e-01
                        7         8         9
quantile    0.000000e+00 0.4717554 0.4422707
(i-1)/(n-1) 8.881784e-16 0.4717554 0.4422707
i/(n+1)     6.416295e-01 0.2138765 0.2406111
i/n         5.022317e-01 0.5464169 0.5169322




-- 
Frank E Harrell Jr   Professor and Chair           School of Medicine
                      Department of Biostatistics   Vanderbilt University




More information about the R-help mailing list