VarCI {DescTools} | R Documentation |
Confidence Intervals for the Variance
Description
Calculates confidence intervals for the variance. Available approachs are the classical one using the ChiSquare distribution, a more robust version proposed by Bonett and the bootstrap options available in the package boot
.
Usage
VarCI(x, method = c("classic", "bonett", "norm", "basic", "stud", "perc", "bca"),
conf.level = 0.95, sides = c("two.sided", "left", "right"),
na.rm = FALSE, R = 999)
Arguments
x |
a (non-empty) numeric vector of data values. |
method |
vector of character strings representing the type of intervals required. The value should be any subset of the values |
conf.level |
confidence level of the interval. |
sides |
a character string specifying the side of the confidence interval, must be one of |
na.rm |
logical. Should missing values be removed? Defaults to FALSE. |
R |
number of bootstrap replicates. Usually this will be a single positive integer. For importance resampling, some resamples may use one set of weights and others use a different set of weights. In this case R would be a vector of integers where each component gives the number of resamples from each of the rows of weights.
See |
Details
The confidence interval for the variance is very sensitive to non-normality in the data. Bonett (2006) has proposed an interval that is nearly exact when the data is normally distributed and provides good performance for moderately non-normal data. See the references for the details.
Value
a numeric vector with 3 elements:
var |
variance |
lwr.ci |
lower bound of the confidence interval |
upr.ci |
upper bound of the confidence interval |
Author(s)
Andri Signorell <andri@signorell.net>
References
Bonett (2006) Approximate Confidence Interval for Standard Deviation of Nonnormal Distributions, Computational Statistics and Data Analysis, Vol. 50, pp. 775 - 782.
https://www.itl.nist.gov/div898/software/dataplot/refman1/auxillar/sdconfli.htm (might be outdated)
See Also
MeanCI
, MedianCI
, VarTest
, Var
Examples
VarCI(d.pizza$price, na.rm=TRUE)
VarCI(d.pizza$price, conf.level=0.99, na.rm=TRUE)
x <- c(14.816, 14.863, 14.814, 14.998, 14.965, 14.824, 14.884, 14.838, 14.916,
15.021, 14.874, 14.856, 14.860, 14.772, 14.980, 14.919)
VarCI(x, conf.level=0.9)
# and for the standard deviation
sqrt(VarCI(x, conf.level=0.9))
# from Bonett's paper
# expected results:
# ------------------------------------
# conf.lvl sd lci uci
# ------------------------------------
# 90.0 0.5168 0.3592 0.9359
# 95.0 0.5168 0.3263 1.0841
# 99.0 0.5168 0.2607 1.5109
p <- c(15.83, 16.01, 16.24, 16.42, 15.33, 15.44, 16.88, 16.31)
sqrt(VarCI(p, method="bonett", conf.level=0.9))
sqrt(VarCI(p, method="bonett"))
sqrt(VarCI(p, method="bonett", conf.level=0.99))
# some bootstrap intervals
VarCI(x, method="norm")
VarCI(x, method="perc")
VarCI(x, method="bca")