VarCI.RdCalculates 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.
a (non-empty) numeric vector of data values.
vector of character strings representing the type of intervals required. The value should be any subset of the values "classic", "bonett", "norm", "basic", "stud", "perc", "bca".
See boot.ci.
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". You can specify just the initial letter. "left" would be analogue to a hypothesis of "greater" in a t.test.
logical. Should missing values be removed? Defaults to FALSE.
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 boot.
a numeric vector with 3 elements:
variance
lower bound of the confidence interval
upper bound of the confidence interval
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.
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)
VarCI(d.pizza$price, na.rm=TRUE)
#> var lwr.ci upr.ci
#> 468 433 508
VarCI(d.pizza$price, conf.level=0.99, na.rm=TRUE)
#> var lwr.ci upr.ci
#> 468 422 521
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)
#> var lwr.ci upr.ci
#> 0.00529 0.00317 0.01092
# and for the standard deviation
sqrt(VarCI(x, conf.level=0.9))
#> var lwr.ci upr.ci
#> 0.0727 0.0563 0.1045
# 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))
#> var lwr.ci upr.ci
#> 0.517 0.359 0.936
sqrt(VarCI(p, method="bonett"))
#> var lwr.ci upr.ci
#> 0.517 0.326 1.084
sqrt(VarCI(p, method="bonett", conf.level=0.99))
#> var lwr.ci upr.ci
#> 0.517 0.261 1.511
# some bootstrap intervals
VarCI(x, method="norm")
#> var lwr.ci upr.ci
#> 0.00529 0.00307 0.00825
VarCI(x, method="perc")
#> var lwr.ci upr.ci
#> 0.00529 0.00226 0.00792
VarCI(x, method="bca")
#> var lwr.ci upr.ci
#> 0.00529 0.00317 0.00886