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.