# confidence intervals for the city data
data(city)
ratio <- function(d, w)
sum(d$x * w)/sum(d$u * w)
city.boot <- boot(city, ratio, R=999, stype="w",sim="ordinary")
boot.ci(city.boot, conf=c(0.90,0.95),
type=c("norm","basic","perc","bca"))
# studentized confidence interval for the two sample
# difference of means problem using the final two series
# of the gravity data.
data(gravity)
diff.means <- function(d, f)
{ n <- nrow(d)
gp1 <- 1:table(as.numeric(d$series))[1]
m1 <- sum(d[gp1,1] * f[gp1])/sum(f[gp1])
m2 <- sum(d[-gp1,1] * f[-gp1])/sum(f[-gp1])
ss1 <- sum(d[gp1,1]^2 * f[gp1]) -
(m1 * m1 * sum(f[gp1]))
ss2 <- sum(d[-gp1,1]^2 * f[-gp1]) -
(m2 * m2 * sum(f[-gp1]))
c(m1-m2, (ss1+ss2)/(sum(f)-2))
}
grav1 <- gravity[as.numeric(gravity[,2])>=7,]
grav1.boot <- boot(grav1, diff.means, R=999, stype="f", strata=grav1[,2])
boot.ci(grav1.boot, type=c("stud","norm"))
# Nonparametric confidence intervals for mean failure time
# of the air-conditioning data as in Example 5.4 of Davison
# and Hinkley (1997)
data(aircondit)
mean.fun <- function(d, i)
{ m <- mean(d$hours[i])
n <- length(i)
v <- (n-1)*var(d$hours[i])/n^2
c(m, v)
}
air.boot <- boot(aircondit, mean.fun, R=999)
boot.ci(air.boot, type=c("norm", "basic", "perc", "stud"))
# Now using the log transformation
# There are two ways of doing this and they both give the
# same intervals.
# Method 1
boot.ci(air.boot, type=c("norm", "basic", "perc", "stud"),
h=log, hdot=function(x) 1/x)
# Method 2
vt0<-air.boot$t0[2]/air.boot$t0[1]^2
vt <- air.boot$t[,2]/air.boot$t[,1]^2
boot.ci(air.boot, type=c("norm", "basic", "perc", "stud"),
t0=log(air.boot$t0[1]), t=log(air.boot$t[,1]),
var.t0=vt0, var.t=vt)
Run the code above in your browser using DataLab