Collection of several approaches to determine confidence intervals for the mean. Both, the classical way and bootstrap intervals are implemented for both, normal and trimmed means.
a (non-empty) numeric vector of data values.
the standard deviation of x. If provided it's interpreted as sd of
the population and the normal quantiles will be used for constructing the
confidence intervals. If left to NULL
(default) the sample
sd(x)
will be calculated and used in combination with the
t-distribution.
the fraction (0 to 0.5) of observations to be trimmed from each
end of x
before the mean is computed. Values of trim
outside
that range are taken as the nearest endpoint.
confidence level of the interval.
a character string specifying the side of the confidence
interval, must be one of "two.sided"
(default), "left"
or
"right"
. "left"
would be analogue to a hypothesis of
"greater"
in a t.test
. You can specify just the initial
letter.
A vector of character strings representing the type of
intervals required. The value should be any subset of the values
"classic"
, "boot"
. See boot.ci
.
a logical value indicating whether NA
values should be
stripped before the computation proceeds. Defaults to FALSE.
further arguments are passed to the boot
function.
Supported arguments are type
("norm"
, "basic"
,
"stud"
, "perc"
, "bca"
), parallel
and the number
of bootstrap replicates R
. If not defined those will be set to their
defaults, being "basic"
for type
, option
"boot.parallel"
(and if that is not set, "no"
) for
parallel
and 999
for R
.
a numeric vector with 3 elements:
mean
lower bound of the confidence interval
upper bound of the confidence interval
The confidence intervals for the trimmed means use winsorized variances as described in the references.
Wilcox, R. R., Keselman H. J. (2003) Modern robust data analysis methods: measures of central tendency Psychol Methods, 8(3):254-74
Wilcox, R. R. (2005) Introduction to robust estimation and hypothesis testing Elsevier Academic Press
x <- d.pizza$price[1:20]
MeanCI(x, na.rm=TRUE)
#> mean lwr.ci upr.ci
#> 48.03037 37.16348 58.89726
MeanCI(x, conf.level=0.99, na.rm=TRUE)
#> mean lwr.ci upr.ci
#> 48.03037 33.14181 62.91892
MeanCI(x, sides="left")
#> mean lwr.ci upr.ci
#> NA NA Inf
# same as:
t.test(x, alternative="greater")
#>
#> One Sample t-test
#>
#> data: x
#> t = 9.2858, df = 18, p-value = 0.00000001379
#> alternative hypothesis: true mean is greater than 0
#> 95 percent confidence interval:
#> 39.06103 Inf
#> sample estimates:
#> mean of x
#> 48.03037
#>
MeanCI(x, sd=25, na.rm=TRUE)
#> mean lwr.ci upr.ci
#> 48.03037 36.78920 59.27153
# the different types of bootstrap confints
MeanCI(x, method="boot", type="norm", na.rm=TRUE)
#> mean lwr.ci upr.ci
#> 48.03037 38.17212 57.94576
MeanCI(x, trim=0.1, method="boot", type="norm", na.rm=TRUE)
#> mean lwr.ci upr.ci
#> 47.71441 37.21396 58.11883
MeanCI(x, trim=0.1, method="boot", type="basic", na.rm=TRUE)
#> mean lwr.ci upr.ci
#> 47.71441 38.04312 57.84600
MeanCI(x, trim=0.1, method="boot", type="stud", na.rm=TRUE)
#> mean lwr.ci upr.ci
#> 47.71441 37.83765 58.30641
MeanCI(x, trim=0.1, method="boot", type="perc", na.rm=TRUE)
#> mean lwr.ci upr.ci
#> 47.71441 37.22735 58.51682
MeanCI(x, trim=0.1, method="boot", type="bca", na.rm=TRUE)
#> mean lwr.ci upr.ci
#> 47.71441 36.97180 58.87290
MeanCI(x, trim=0.1, method="boot", type="bca", R=1999, na.rm=TRUE)
#> mean lwr.ci upr.ci
#> 47.71441 37.34747 58.90979
# Getting the MeanCI for more than 1 column
round(t(sapply(d.pizza[, 1:4], MeanCI, na.rm=TRUE)), 3)
#> mean lwr.ci upr.ci
#> index 605.000 585.299 624.701
#> date 16145.260 16144.746 16145.774
#> week 11.403 11.327 11.479
#> weekday 4.441 4.325 4.556