Description
Run Permutation Tests and Construct Associated Confidence Intervals.
Description
Implements permutation tests for any test statistic and randomization scheme and constructs associated confidence intervals as described in Glazer and Stark (2024) <doi:10.48550/arXiv.2405.05238>.
README.md
permutest
The goal of permutest is to allow users to run permutation tests and construct associated confidence intervals for any test statistic and any set of permutations.
Installation
You can install the development version of permutest from GitHub with:
# install.packages("devtools")
devtools::install_github("akglazer/permutest")
Example
This is a basic example which shows you how to use the permutation test function with a difference in means test statistic:
library(permutest)
data <- data.frame(group = c(rep(1, 10), rep(2, 10)),
outcome = c(rep(1, 10), rep(1, 10)))
output <- permutation_test(df = data, group_col = "group", outcome_col = "outcome",
test_stat = "diff_in_means", perm_func = permute_group,
alternative = "greater", shift = 0, reps = 10,
return_perm_dist = F, return_test_dist = T, seed = 42)
Alternatively, for the two-sample problem with difference in means test statistic, you can use the function two_sample()
(and for the one-sample problem you can use one_sample()
):
output <- two_sample(x = c(10, 9, 11), y = c(12, 11, 13), alternative = "less", seed = 42)
The following is an example of how to construct a confidence interval for a shift parameter in the two-sample problem:
x <- c(35.3, 35.9, 37.2, 33.0, 31.9, 33.7, 36.0, 35.0,
33.3, 33.6, 37.9, 35.6, 29.0, 33.7, 35.7)
y <- c(32.5, 34.0, 34.4, 31.8, 35.0, 34.6, 33.5, 33.6,
31.5, 33.8, 34.6)
df <- data.frame(outcome = c(x, y), group = c(rep(1, length(x)), rep(0, length(y))))
output <- permutation_test_ci(df, "group", "outcome", strata_col = NULL,
test_stat = "diff_in_means",
perm_func = permute_group,
upper_bracket = NULL,
lower_bracket = NULL,
cl = 0.95,
e = 0.01,
reps = 100000,
seed = 42)