[R] bootstrap: boot package

Frank E Harrell Jr fharrell at virginia.edu
Fri Jan 25 20:07:03 CET 2002


This doesn't answer Rob's general question but here is some code that is very fast for running the nonparametric bootstrap percentile method for a mean, in S-Plus.  If anyone knows the corresponding R internal function to sample.index (special case where "prob" argument not needed) I would appreciate knowing it.  Thanks -Frank Harrell

smean.cl.boot <- function(x, conf.int=.95, B=1000, na.rm=TRUE) {
  if(na.rm) x <- x[!is.na(x)]
  n <- length(x)
  xbar <- mean(x)
  if(n < 2) return(Mean=xbar, Lower=NA, Upper=NA)
  z <- unlist(lapply(1:B, function(i,x,N)
        sum(x[.Internal(sample.index(N, N, TRUE),
 			 "S_sample",TRUE,0)]), x=x, N=n)) / n
  quant <- quantile(z, c((1-conf.int)/2,(1+conf.int)/2))
  names(quant) <- NULL
  c(Mean=xbar, Lower=quant[1], Upper=quant[2])
}


On Fri, 25 Jan 2002 10:48:13 -0800
Rob Gould (local) <rgould at stat.ucla.edu> wrote:

> I'm teaching a class and using R for the first time.  We're talking 
> about the bootstrap, and I've been trying to get R to replicate some 
> simple bootstrap programs with no success.  I'd like to be able to use 
> the boot.ci function to produce confidence intervals (non-parametric) 
> for some simple statistics, and this requires first creating a "boot" 
> object.  The boot object, in turn, requires a statistic that takes two 
> inputs: the data and the second a vector of indices, frequencies, or 
> weights which "define" the bootstrap.  My question, I guess, is which 
> option do I choose to "define" an ordinary sample-with-replacement?  And 
> where does this vector come from?  Suppose I want to bootstrap a 
> confidence interval for the mean.  Do i have to write my own "mean" 
> function to provide for this defining vector of indices?
> 
> Just to clarify, I want to use the boot command to replicate this:
> bstraps <- c()
> for (i in 1:R){
> bstraps <- c(mean(sample(data,replace=T,n=length(data))), bstraps)}
> 
> thanks,
> Rob
> 
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._


-- 
Frank E Harrell Jr              Prof. of Biostatistics & Statistics
Div. of Biostatistics & Epidem. Dept. of Health Evaluation Sciences
U. Virginia School of Medicine  http://hesweb1.med.virginia.edu/biostat
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list