Skip to contents

Slightly less conservative than Bonferroni under independence. Computes \(1 - (1 - p)^m\) directly (closed form); the mutoss package offers an equivalent step-down variant via mutoss::SidakSD.

Usage

sidak(p_values, alpha = 0.05, labels = NULL)

Arguments

p_values

Numeric vector of raw p-values.

alpha

Significance level.

labels

Optional character vector of test labels.

Value

An object of class "morie_multiple_testing_result".

Examples

p <- c(0.001, 0.008, 0.02, 0.04, 0.2, 0.5)

res <- sidak(p)
res$adjusted              # 1 - (1 - p)^m, slightly below Bonferroni
#> [1] 0.00598502 0.04705018 0.11415762 0.21724221 0.73785600 0.98437500
res$n_rejected
#> [1] 2

# Less conservative than Bonferroni under independence:
rbind(sidak      = sidak(p)$adjusted,
      bonferroni = bonferroni(p)$adjusted)
#>                  [,1]       [,2]      [,3]      [,4]     [,5]     [,6]
#> sidak      0.00598502 0.04705018 0.1141576 0.2172422 0.737856 0.984375
#> bonferroni 0.00600000 0.04800000 0.1200000 0.2400000 1.000000 1.000000

# alpha + labels behave as in bonferroni().
sidak(p, alpha = 0.01, labels = paste0("H", seq_along(p)))$rejected
#> [1]  TRUE FALSE FALSE FALSE FALSE FALSE