The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
CIPerm
:
Computationally-Efficient Confidence Intervals for Mean Shift from
Permutation MethodsThis R package implements computationally-efficient construction of confidence intervals from permutation tests or randomization tests for simple differences in means. In other words, if we set up a permutation or randomization test to evaluate \(H_0: \mu_A - \mu_B = 0\), then how can we use that same single set of permutations to cheaply construct a CI for the \((\mu_A - \mu_B)\) parameter?
The method is based on Minh D. Nguyen’s 2009 MS thesis paper,
“Nonparametric Inference using Randomization and Permutation Reference
Distribution and their Monte-Carlo Approximation,”
https://doi.org/10.15760/etd.7798. See the nguyen
vignette
for a brief summary of the method and for our replication of Nguyen’s
results.
Note that our R function arguments and outputs are structured differently than the similarly-named R functions in Nguyen (2009), but the results are equivalent.
A copy of our useR! 2022
conference poster about the package is in our GitHub repo, in the data-raw
folder.
Install a stable version of the package from CRAN:
install.packages("CIPerm")
Or, for the latest development version, install directly from GitHub:
# install.packages("remotes")
::install_github("ColbyStatSvyRsch/CIPerm", build_vignettes = TRUE) remotes
First use dset(x,y)
to tabulate summary statistics for
each permutation. Then pass the results into cint()
to
compute a confidence interval.
<- c(19, 22, 25, 26)
x <- c(23, 33, 40)
y <- dset(x, y)
demo cint(dset = demo, conf.level = .95, tail = "Two")
#> [1] -21 3
You can also pass the results of dset()
into
pval()
to calculate p-values for a difference in means
(value="m"
), a difference in medians
(value="d"
), or the Wilcoxon rank sum test
(value="w"
).
pval(dset = demo, tail = "Left", value = "m")
#> [1] 0.08571429
pval(dset = demo, tail = "Left", value = "d")
#> [1] 0.08571429
pval(dset = demo, tail = "Left", value = "w")
#> [1] 0.1142857
See also our naive
vignette for timing comparisons of
Nguyen’s one-pass method. In the “naive” approach, you would run many
separate permutation tests with different null values for \((\mu_A - \mu_B)\), and your CI would
consist of those values where the null hypothesis was not rejected. The
vignette shows that if you need to check more than a few null values and
your dataset isn’t trivially small, Nguyen’s method can be considerably
faster than the naive approach.
Ernst, M.D. (2004). “Permutation Methods: A Basis for Exact Inference,” Statistical Science, vol. 19, no. 4, 676-685, DOI:10.1214/088342304000000396.
Nguyen, M.D. (2009). “Nonparametric Inference using Randomization and Permutation Reference Distribution and their Monte-Carlo Approximation” [unpublished MS thesis; Mara Tableman, advisor], Portland State University. Dissertations and Theses. Paper 5927. DOI:10.15760/etd.7798.
Tupaj, E. and Wieczorek, J. (2022). “CIPerm
: An R
Package for Computationally Efficient Confidence Intervals from
Permutation Test,” poster presented at the useR! Conference, held
virtually, June 22, 2022.
https://user2022.r-project.org/program/posters/
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.