

   CCoonnttrrooll VVaarriiaattee CCaallccuullaattiioonnss

        control(boot.out, L=NULL, distn=NULL, index=1, t0=NULL, t=NULL,
                bias.adj=F, alpha=NULL, ...)

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

   boot.out: A bootstrap output object returned from `boot'.
             The bootstrap replicates must have been generated
             using the usual nonparametric bootstrap.

          L: The empirical influence values for the statistic
             of interest.  If `L' is not supplied then `empinf'
             is called to calculate them from `boot.out'.

      distn: If present this must be the output from
             `smooth.spline' giving the distribution function
             of the linear approximation.  This is used only if
             `bias.adj' is `FALSE'.  Normally this would be
             found using a saddlepoint approximation.  If it is
             not supplied in that case then it is calculated by
             `saddle.distn'.

      index: The index of the variable of interest in the out-
             put of `boot.out$statistic'.

         t0: The observed value of the statistic of interest on
             the original data set `boot.out$data'.  This argu-
             ment is used only if `bias.adj' is `FALSE'. The
             input value is ignored if `t' is not also sup-
             plied.  The default value is is
             `boot.out$t0[index]'.

          t: The bootstrap replicate values of the statistic of
             interest.  This argument is used only if
             `bias.adj' is `FALSE'.  The input is ignored if
             `t0' is not supplied also.  The default value is
             `boot.out$t[,index]'.

   bias.adj: A logical variable which if `TRUE' specifies that
             the adjusted bias estimate using post-simulation
             balance is all that is required.  If `bias.adj' is
             `FALSE' (default) then the linear approximation to
             the statistic is calculated and used as a control
             variate in estimates of the bias, variance and
             third cumulant as well as quantiles.

      alpha: The alpha levels for the required quantiles if
             `bias.adj' is `FALSE'.

        ...: Any additional arguments that `boot.out$statistic'
             requires.  These are passed unchanged every time
             `boot.out$statistic' is called.  `boot.out$statis-
             tic' is called once if `bias.adj' is `TRUE', oth-
             erwise it may be called by `empinf' for empirical
             influence calculations if `L' is not supplied.

   DDeessccrriippttiioonn::

        This function will find control variate estimates from
        a bootstrap output object.  It can either find the
        adjusted bias estimate using post-simulation balancing
        or it can estimate the bias, variance, third cumulant
        and quantiles, using the linear approximation as a con-
        trol variate.

   DDeettaaiillss::

        If `bias.adj' is `FALSE' then the linear approximation
        to the statistic is found and evaluated at each boot-
        strap replicate.  Then using the equation
        T*=Tl*+(T*-Tl*), moment estimates can be found.  For
        quantile estimation the distribution of the linear
        approximation to `t' is approximated very accurately by
        saddlepoint methods, this is then combined with the
        bootstrap replicates to approximate the bootstrap dis-
        tribution of `t' and hence to estimate the bootstrap
        quantiles of `t'.

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

        If `bias.adj' is `TRUE' then the returned value is the
        adjusted bias estimate.

        If `bias.adj' is `FALSE' then the returned value is a
        list with the following components

          L: The empirical influence values used.  These are
             the input values if supplied, and otherwise they
             are the values calculated by `empinf'.

         tL: The linear approximations to the bootstrap repli-
             cates `t' of the statistic of interest.

       bias: The control estimate of bias using the linear
             approximation to `t' as a control variate.

        var: The control estimate of variance using the linear
             approximation to `t' as a control variate.

         k3: The control estimate of the third cumulant using
             the linear approximation to `t' as a control vari-
             ate.

   quantiles: A matrix with two columns; the first column are
             the alpha levels used for the quantiles and the
             second column gives the corresponding control
             estimates of the quantiles using the linear
             approximation to `t' as a control variate.

      distn: An output object from `smooth.spline' describing
             the saddlepoint approximation to the bootstrap
             distribution of the linear approximation to `t'.
             If `distn' was supplied on input then this is the
             same as the input otherwise it is calculated by a
             call to `saddle.distn'.

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

        Davison, A.C. and Hinkley, D.V. (1997) Bootstrap Meth-
        ods and Their Application. Cambridge University Press.

        Davison, A.C., Hinkley, D.V. and Schechtman, E. (1986)
        Efficient bootstrap simulation. Biometrika, 73,
        555-566.

        Efron, B. (1990) More efficient bootstrap computations.
        Journal of the American Statistical Association, 55,
        79-89.

   SSeeee AAllssoo::

        `boot', `empinf', `k3.linear', `linear.approx', `sad-
        dle.distn', `smooth.spline', `var.linear'

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

        # Use of control variates for the variance of the air-conditioning data
        mean.fun <- function(d, i)
        {    m <- mean(d$hours[i])
             n <- nrow(d)
             v <- (n-1)*var(d$hours[i])/n^2
             c(m, v)
        }
        data(aircondit)
        air.boot <- boot(aircondit, mean.fun, R=999)
        control(air.boot,index=2,bias.adj=T)
        air.cont <- control(air.boot, index=2)
        # Now let us try the variance on the log scale.
        air.cont1 <- control(air.boot, t0=log(air.boot$t0[2]), t=log(air.boot$t[,2]))

