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.
control(boot.out, L = NULL, distn = NULL, index = 1, t0 = NULL,
t = NULL, bias.adj = FALSE, alpha = NULL, ...)
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
.
A bootstrap output object returned from boot
. The bootstrap
replicates must have been generated using the usual nonparametric
bootstrap.
The empirical influence values for the statistic of interest. If
L
is not supplied then empinf
is called to calculate
them from boot.out
.
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
.
The index of the variable of interest in the output of
boot.out$statistic
.
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]
.
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]
.
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.
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.
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
.
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.
boot
, empinf
, k3.linear
, linear.approx
, saddle.distn
, smooth.spline
, var.linear
# 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]))
Run the code above in your browser using DataLab