Rev 5788 | Rev 5793 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\name{plot.boot}\alias{plot.boot}\title{Plots of the Output of a Bootstrap Simulation}\description{This takes a bootstrap object and produces plots for the bootstrapreplicates of the variable of interest.}\usage{\method{plot}{boot}(x, index = 1, t0 = NULL, t = NULL, jack = FALSE,qdist = "norm", nclass = NULL, df, \dots)}\arguments{\item{x}{An object of class \code{"boot"} returned from one of the bootstrapgeneration functions.}\item{index}{The index of the variable of interest within the output of\code{boot.out}. This is ignored if \code{t} and \code{t0} aresupplied.}\item{t0}{The original value of the statistic. This defaults to\code{boot.out$t0[index]} unless \code{t} is supplied when itdefaults to \code{NULL}. In that case no vertical line is drawn onthe histogram.}\item{t}{The bootstrap replicates of the statistic. Usually this will takeon its default value of \code{boot.out$t[,index]}, however it may beuseful sometimes to supply a different set of values which are afunction of \code{boot.out$t}.}\item{jack}{A logical value indicating whether a jackknife-after-bootstrap plot isrequired. The default is not to produce such a plot.}\item{qdist}{The distribution against which the Q-Q plot should be drawn. Atpresent \code{"norm"} (normal distribution - the default) and\code{"chisq"} (chi-squared distribution) are the only possiblevalues.}\item{nclass}{An integer giving the number of classes to be used in the bootstraphistogram. The default is the integer between 10 and 100 closest to\code{ceiling(length(t)/25)}.}\item{df}{If \code{qdist} is \code{"chisq"} then this is the degrees offreedom for the chi-squared distribution to be used. It is arequired argument in that case.}\item{...}{When \code{jack} is \code{TRUE} additional parameters to\code{jack.after.boot} can be supplied. See the help file for\code{jack.after.boot} for details of the possible parameters.}}\value{\code{boot.out} is returned invisibly.}\section{Side Effects}{All screens are closed and cleared and a number of plots are producedon the current graphics device. Screens are closed but not cleared attermination of this function.}\details{This function will generally produce two side-by-side plots. The leftplot will be a histogram of the bootstrap replicates. Usually thebreaks of the histogram will be chosen so that \code{t0} is at abreakpoint and all intervals are of equal length. A vertical dottedline indicates the position of \code{t0}. This cannot be done if\code{t} is supplied but \code{t0} is not and so, in that case, thebreakpoints are computed by \code{hist} using the \code{nclass}argument and no vertical line is drawn.The second plot is a Q-Q plot of the bootstrap replicates. The orderstatistics of the replicates can be plotted against normal orchi-squared quantiles. In either case the expected line is alsoplotted. For the normal, this will have intercept \code{mean(t)} andslope \code{sqrt(var(t))} while for the chi-squared it has intercept 0and slope 1.If \code{jack} is \code{TRUE} a third plot is produced beneath thesetwo. That plot is the jackknife-after-bootstrap plot. This plot mayonly be requested when nonparametric simulation has been used. See\code{jack.after.boot} for further details of this plot.}\seealso{\code{\link{boot}}, \code{\link{jack.after.boot}}, \code{\link{print.boot}}}\examples{# We fit an exponential model to the air-conditioning data and use# that for a parametric bootstrap. Then we look at plots of the# resampled means.air.rg <- function(data, mle) rexp(length(data), 1/mle)air.boot <- boot(aircondit$hours, mean, R = 999, sim = "parametric",ran.gen = air.rg, mle = mean(aircondit$hours))plot(air.boot)# In the difference of means example for the last two series of the# gravity datagrav1 <- gravity[as.numeric(gravity[, 2]) >= 7, ]grav.fun <- function(dat, w){ strata <- tapply(dat[, 2], as.numeric(dat[, 2]))d <- dat[, 1]ns <- tabulate(strata)w <- w/tapply(w, strata, sum)[strata]mns <- tapply(d * w, strata, sum)mn2 <- tapply(d * d * w, strata, sum)s2hat <- sum((mn2 - mns^2)/ns)c(mns[2]-mns[1], s2hat)}grav.boot <- boot(grav1, grav.fun, R = 499, stype = "w", strata = grav1[, 2])plot(grav.boot)# now suppose we want to look at the studentized differences.grav.z <- (grav.boot$t[, 1]-grav.boot$t0[1])/sqrt(grav.boot$t[, 2])plot(grav.boot, t = grav.z, t0 = 0)# In this example we look at the one of the partial correlations for the# head dimensions in the dataset frets.pcorr <- function( x ){# Function to find the correlations and partial correlations between# the four measurements.v <- cor(x);v.d <- diag(var(x));iv <- solve(v);iv.d <- sqrt(diag(iv));iv <- - diag(1/iv.d) \%*\% iv \%*\% diag(1/iv.d);q <- NULL;n <- nrow(v);for (i in 1:(n-1))q <- rbind( q, c(v[i, 1:i], iv[i, (i+1):n]) );q <- rbind( q, v[n,] );diag(q) <- round(diag(q));q}frets.fun <- function(data, i) {d <- data[i,];v <- pcorr( d );c(v[1, ], v[2, ], v[3, ], v[4, ])}frets.boot <- boot(log(as.matrix(frets)), frets.fun, R = 999)plot(frets.boot, index = 7, jack = TRUE, stinf = FALSE, useJ = FALSE)}\keyword{hplot}\keyword{nonparametric}