Description Usage Arguments Author(s) Examples
Carries out bootstrapping on a kfunclm object to get confidence intervals.
1 2 |
lmmods |
List of linear models fitted to each distance. |
lincomb |
The model matrix used to multiply the coefficients to get predictions. |
nsim |
Number of bootstraps. |
alpha |
Confidence level. |
simple.method |
Whether to use a simple method based on just the quantiles of the predictions or to use an empirical t-distribution. Defaults to TRUE, but maybe changed in the future. |
mods |
The individual models used in the bootstrap. |
Robert Bagchi Maintainer: Robert Bagchi <robert.bagchi@uconn.edu>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | ##---- Should be DIRECTLY executable !! ----
##-- ==> Define data, use random,
##-- or do help(data=index) for the standard data sets.
## The function is currently defined as
function (lmmods, lincomb, nsim, alpha, simple.method = TRUE)
{
require(abind)
bsci <- replicate(nsim, lm.boot(lmmods, lincomb = lincomb),
simplify = FALSE)
obs.pred <- lapply(lmmods, function(mod) {
pred <- lincomb %*% coef(mod)
se.pred <- sqrt(diag(lincomb %*% vcov(mod) %*% t(lincomb)))
return(list(pred = pred, se.pred = se.pred))
})
if (simple.method) {
cis <- abind(lapply(bsci, function(iter) {
do.call("cbind", lapply(iter, function(kd) kd$pred))
}), along = 3)
cis <- apply(cis, c(2, 1), quantile, c(alpha/2, 1 - alpha/2))
lower <- cis[1, , ]
if (class(lower) != "matrix")
lower <- as.matrix(lower)
lower.CI <- split(lower, row(lower))
upper <- cis[2, , ]
if (class(upper) != "matrix")
upper <- as.matrix(upper)
upper.CI <- split(upper, row(upper))
}
else {
t.scores <- lapply(bsci, function(sim, obs) {
do.call("cbind", mapply(function(obs.t, sim.t) {
t.score.t <- (sim.t$pred - obs.t$pred)/sim.t$se.pred
t.score.t <- matrix(t.score.t, nc = 1)
return(t.score.t)
}, obs.t = obs, sim.t = sim, SIMPLIFY = F))
}, obs = obs.pred)
t.scores <- do.call("abind", args = list(t.scores, along = 3))
uci <- apply(t.scores, c(2, 1), quantile, alpha/2, na.rm = T)
lci <- apply(t.scores, c(2, 1), quantile, 1 - alpha/2,
na.rm = T)
uci <- split(uci, row(uci))
lci <- split(lci, row(lci))
CIs <- mapply(function(obs, ucl, lcl) {
lower.CI <- obs$pred - lcl * obs$se.pred
upper.CI <- obs$pred - ucl * obs$se.pred
return(list(LCL = lower.CI, UCL = upper.CI))
}, obs = obs.pred, ucl = uci, lcl = lci, SIMPLIFY = FALSE)
lower.CI <- lapply(CIs, function(x) x$LCL)
upper.CI <- lapply(CIs, function(x) x$UCL)
}
estimator <- lapply(obs.pred, function(x) x$pred)
return(list(lmK = lmmods, lmKpred = estimator, lower = lower.CI,
upper = upper.CI))
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.