

   BBoooottssttrraapp--tt CCoonnffiiddeennccee LLiimmiittss

        boott(x,theta, ..., sdfun=MISSING, nbootsd=25, nboott=200,
              VS=FALSE, v.nbootg=100, v.nbootsd=25, v.nboott=200,
              perc=c(.001,.01,.025,.05,.10,.50,.90,.95,.975,.99,.999))

   AArrgguummeennttss::

          x: a vector containing the data. Nonparametric boot-
             strap sampling is used. To bootstrap from more
             complex data structures (e.g.  bivariate data) see
             the last example below.

      theta: function to be bootstrapped. Takes `x' as an argu-
             ment, and may take additional arguments (see below
             and last example).

        ...: any additional arguments to be passed to `theta'

      sdfun: optional name of function for computing standard
             deviation of `theta' based on data `x'. Should be
             of the form: `sdmean <- func-
             tion(x,nbootsd,theta,...)' where `nbootsd' is a
             dummy argument that is not used. If `theta' is the
             mean, for example, `sdmean <- func-
             tion(x,nbootsd,theta,...)
             {sqrt(var(x)/length(x))}' .  If `sdfun' is miss-
             ing, then `boott' uses an inner bootstrap loop to
             estimate the standard deviation of `theta(x)'

    nbootsd: The number of bootstrap samples used to estimate
             the standard deviation of `theta(x)'

     nboott: The number of bootstrap samples used to estimate
             the distribution of the bootstrap T statistic.
             200 is a bare minimum and 1000 or more is needed
             for reliable  alpha % confidence points, alpha >
             .95 say.  Total number of bootstrap samples is
             `nboott*nbootsd'.

         VS: If `TRUE', a variance stabilizing transformation
             is estimated, and the interval is constructed on
             the transformed scale, and then is mapped back to
             the original theta scale.  This can improve both
             the statistical properties of the intervals and
             speed up the computation. See the reference Tib-
             shirani (1988) given below.  If `FALSE', variance
             stabilization is not performed.

   v.nbootg: The number of bootstrap samples used to estimate
             the variance stabilizing transformation g.  Only
             used if `VS=TRUE'.

   v.nbootsd: The number of bootstrap samples used to estimate
             the standard deviation of `theta(x)'.  Only used
             if `VS=TRUE'.

   v.nboott: The number of bootstrap samples used to estimate
             the distribution of the bootstrap T statistic.
             Only used if `VS=TRUE'. Total number of bootstrap
             samples is `v.nbootg*v.nbootsd + v.nboott'.

       perc: Confidence points desired.

   VVaalluuee::

        list with the following components:

   confpoints: Estimated confidence points

   theta, g: `theta' and `g' are only returned if `VS=TRUE' was
             specified. `(theta[i],g[i]),  i=1,length(theta)'
             represents the estimate of the variance stabiliz-
             ing transformation `g' at the points `theta[i]'.

   RReeffeerreenncceess::

        Tibshirani, R. (1988) "Variance stabilization and the
        bootstrap". Biometrika (1988) vol 75 no 3 pages 433-44.

        Hall, P. (1988) Theoretical comparison of bootstrap
        confidence intervals. Ann. Statisi. 16, 1-50.

        Efron, B. and Tibshirani, R. (1993) An Introduction to
        the Bootstrap.  Chapman and Hall, New York, London.

   EExxaammpplleess::

        #  estimated confidence points for the mean
        x <- rchisq(20,1)
        theta <- function(x){mean(x)}
        results <- boott(x,theta)
        # estimated confidence points for the mean,
        #  using variance-stabilization bootstrap-T method
        results <-  boott(x,theta,VS=T)
        results$confpoints          # gives confidence points
        # plot the estimated var stabilizing transformation
        plot(results$theta,results$g)
        # use standard formula for stand dev of mean
        # rather than an inner bootstrap loop
        sdmean <- function(x, ...)
            {sqrt(var(x)/length(x))}
        results <-  boott(x,theta,sdfun=sdmean)

        # To bootstrap functions of more  complex data structures,
        # write theta so that its argument x
        #  is the set of observation numbers
        #  and simply  pass as data to boot the vector 1,2,..n.
        # For example, to bootstrap
        # the correlation coefficient from a set of 15 data pairs:
        xdata <- matrix(rnorm(30),ncol=2)
        n <- 15
        theta <- function(x, xdata){ cor(xdata[x,1],xdata[x,2]) }
        results <- boott(1:n,theta, xdata)

