Methods for `confint`

to compute confidence intervals
on numerical vectors and numerical components of data frames.

```
# S3 method for numeric
confint(
object,
parm,
level = 0.95,
...,
method = "percentile",
margin.of.error = "stderr" %in% method == "stderr"
)
# S3 method for do.tbl_df
confint(
object,
parm,
level = 0.95,
...,
method = "percentile",
margin.of.error = "stderr" %in% method,
df = NULL
)
# S3 method for do.data.frame
confint(
object,
parm,
level = 0.95,
...,
method = "percentile",
margin.of.error = "stderr" %in% method,
df = NULL
)
# S3 method for data.frame
confint(object, parm, level = 0.95, ...)
# S3 method for summary.lm
confint(object, parm, level = 0.95, ...)
```

- object
and R object

- parm
a vector of parameters

- level
a confidence level

- ...
additional arguments

- method
a character vector of methods to use for creating confidence intervals. Choices are "percentile" (or "quantile") which is the default, "stderr" (or "se"), "bootstrap-t", and "reverse" (or "basic"))

- margin.of.error
if true, report intervals as a center and margin of error.

- df
degrees for freedom. This is required when

`object`

was produced using`link{do}`

when using the standard error to compute the confidence interval since typically this information is not recorded in these objects. The default (`Inf`

) uses a normal critical value rather than a one derived from a t-distribution.

When applied to a data frame, returns a data frame giving the
confidence interval for each variable in the data frame using
`t.test`

or `binom.test`

, unless the data frame was produced using `do`

, in which case
it is assumed that each variable contains resampled statistics that serve as an estimated sampling
distribution from which a confidence interval can be computed using either a central proportion
of this distribution or using the standard error as estimated by the standard deviation of the
estimated sampling distribution. For the standard error method, the user must supply the correct
degrees of freedom for the t distribution since this information is typically not available in
the output of `do()`

.

When applied to a numerical vector, returns a vector.

The methods of producing confidence intervals from bootstrap distributions are currently quite naive. In particular, when using the standard error, assistance may be required with the degrees of freedom, and it may not be possible to provide a correct value in all situations. None of the methods include explicit bias correction. Let \(q_a\) be the \(a\) quantile of the bootstrap distribution, let \(t_a, df\) be the \(a\) quantile of the t distribution with \(df\) degrees of freedom, let \(SE_b\) be the standard deviation of the bootstrap distribution, and let \(\hat{\theta}\) be the estimate computed from the original data. Then the confidence intervals with confidence level \(1 - 2a\) are

- quantile
\((q_a, q_{1-a}) \)

- reverse
\(( 2 \hat{\theta} - q_{1-a}, 2\hat{\theta} - q_{a} )\)

- stderr
\((\hat{\theta} - t_{1-a,df} SE_b, \hat{\theta} + t_{1-a,df} SE_b) \). When

`df`

is not provided, at attempt is made to determine an appropriate value, but this should be double checked. In particular, missing data an lead to unreliable results.
The bootstrap-t confidence interval is computed much like the reverse confidence interval
but the bootstrap t distribution is used in place of a theoretical t distribution.
This interval has much better properties than the reverse (or basic) method, which
is here for comparison purposes only and is not recommended. The t-statistic
is computed from a mean, a standard deviation, a sample size which much be named
"mean", "sd", and "n" as they are when using favstats().

Tim C. Hesterberg (2015): What Teachers Should Know about the Bootstrap: Resampling in the Undergraduate Statistics Curriculum, The American Statistician, https://www.tandfonline.com/doi/full/10.1080/00031305.2015.1089789.

```
if (require(mosaicData)) {
bootstrap <- do(500) * diffmean( age ~ sex, data = resample(HELPrct) )
confint(bootstrap)
confint(bootstrap, method = "percentile")
confint(bootstrap, method = "boot")
confint(bootstrap, method = "se", df = nrow(HELPrct) - 1)
confint(bootstrap, margin.of.error = FALSE)
confint(bootstrap, margin.of.error = TRUE, level = 0.99,
method = c("se", "perc") )
# bootstrap t method requires both mean and sd
bootstrap2 <- do(500) * favstats(resample(1:10))
confint(bootstrap2, method = "boot")
}
#> Using parallel package.
#> * Set seed with set.rseed().
#> * Disable this message with options(`mosaic:parallelMessage` = FALSE)
#> Warning: confint: Unable to compute any of the desired CIs
#> Using parallel package.
#> * Set seed with set.rseed().
#> * Disable this message with options(`mosaic:parallelMessage` = FALSE)
#> name lower upper level method estimate
#> 1 mean 3.578157 7.565012 0.95 bootstrap-t 5.5
lm(width ~ length * sex, data = KidsFeet) %>%
summary() %>%
confint()
#> 2.5 % 97.5 %
#> (Intercept) 0.09816469 7.6059964
#> length 0.06326171 0.3619858
#> sexG -5.70117633 4.4534183
#> length:sexG -0.18914537 0.2207867
```