Computes confidence intervals for one or more parameters in a fitted model. Package MASS adds methods for glm and nls fits.

# S3 method for glm
confint(object, parm, level = 0.95, trace = FALSE, ...)

# S3 method for nls
confint(object, parm, level = 0.95, ...)

Arguments

object

a fitted model object. Methods currently exist for the classes "glm", "nls" and for profile objects from these classes.

parm

a specification of which parameters are to be given confidence intervals, either a vector of numbers or a vector of names. If missing, all parameters are considered.

level

the confidence level required.

trace

logical. Should profiling be traced?

...

additional argument(s) for methods.

Value

A matrix (or vector) with columns giving lower and upper confidence limits for each parameter. These will be labelled as (1 - level)/2 and 1 - (1 - level)/2 in % (by default 2.5% and 97.5%).

Details

confint is a generic function in package stats.

These confint methods call the appropriate profile method, then find the confidence intervals by interpolation in the profile traces. If the profile object is already available it should be used as the main argument rather than the fitted model object itself.

References

Venables, W. N. and Ripley, B. D. (2002) Modern Applied Statistics with S. Fourth edition. Springer.

See also

confint (the generic and "lm" method), profile

Examples

expn1 <- deriv(y ~ b0 + b1 * 2^(-x/th), c("b0", "b1", "th"), function(b0, b1, th, x) {}) wtloss.gr <- nls(Weight ~ expn1(b0, b1, th, Days), data = wtloss, start = c(b0=90, b1=95, th=120)) expn2 <- deriv(~b0 + b1*((w0 - b0)/b1)^(x/d0), c("b0","b1","d0"), function(b0, b1, d0, x, w0) {}) wtloss.init <- function(obj, w0) { p <- coef(obj) d0 <- - log((w0 - p["b0"])/p["b1"])/log(2) * p["th"] c(p[c("b0", "b1")], d0 = as.vector(d0)) } out <- NULL w0s <- c(110, 100, 90) for(w0 in w0s) { fm <- nls(Weight ~ expn2(b0, b1, d0, Days, w0), wtloss, start = wtloss.init(wtloss.gr, w0)) out <- rbind(out, c(coef(fm)["d0"], confint(fm, "d0"))) }
#> Waiting for profiling to be done...
#> Waiting for profiling to be done...
#> Waiting for profiling to be done...
dimnames(out) <- list(paste(w0s, "kg:"), c("d0", "low", "high")) out
#> d0 low high #> 110 kg: 261.5132 256.2303 267.5009 #> 100 kg: 349.4979 334.7293 368.0151 #> 90 kg: 507.0941 457.2637 594.8745
ldose <- rep(0:5, 2) numdead <- c(1, 4, 9, 13, 18, 20, 0, 2, 6, 10, 12, 16) sex <- factor(rep(c("M", "F"), c(6, 6))) SF <- cbind(numdead, numalive = 20 - numdead) budworm.lg0 <- glm(SF ~ sex + ldose - 1, family = binomial) confint(budworm.lg0)
#> Waiting for profiling to be done...
#> 2.5 % 97.5 % #> sexF -4.4581438 -2.613610 #> sexM -3.1728745 -1.655117 #> ldose 0.8228708 1.339058
confint(budworm.lg0, "ldose")
#> Waiting for profiling to be done...
#> 2.5 % 97.5 % #> 0.8228708 1.3390581