# control

##### Control Variate Calculations

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 control variate.

- Keywords
- nonparametric

##### Usage

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

##### Arguments

- 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 output of

`boot.out$statistic`

.- t0
The observed value of the statistic of interest on the original data set

`boot.out$data`

. This argument is used only if`bias.adj`

is`FALSE`

. The input value is ignored if`t`

is not also supplied. 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$statistic`

is called once if`bias.adj`

is`TRUE`

, otherwise it may be called by`empinf`

for empirical influence calculations if`L`

is not supplied.

##### Details

If `bias.adj`

is `FALSE`

then the linear approximation to
the statistic is found and evaluated at each bootstrap 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 distribution of `t`

and
hence to estimate the bootstrap quantiles of `t`

.

##### Value

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

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

.

The linear approximations to the bootstrap replicates `t`

of
the statistic of interest.

The control estimate of bias using the linear approximation to
`t`

as a control variate.

The control estimate of variance using the linear approximation to
`t`

as a control variate.

The control estimate of the third cumulant using the linear
approximation to `t`

as a control variate.

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.

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`

.

##### References

Davison, A.C. and Hinkley, D.V. (1997)
*Bootstrap Methods 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.

##### See Also

`boot`

, `empinf`

, `k3.linear`

, `linear.approx`

, `saddle.distn`

, `smooth.spline`

, `var.linear`

##### Examples

```
# NOT RUN {
# 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)
}
air.boot <- boot(aircondit, mean.fun, R = 999)
control(air.boot, index = 2, bias.adj = TRUE)
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]))
# }
```

*Documentation reproduced from package boot, version 1.3-24, License: Unlimited*