`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/