# MBonf.p.adjust: The adjusted p-values for Modified Bonferroni single-step... In MHTdiscrete: Multiple Hypotheses Testing for Discrete Data

## Description

The function for calculating the adjusted p-values based on original available p-values and all attaianble p-values

## Usage

 `1` ```MBonf.p.adjust(p, p.set, alpha, make.decision) ```

## Arguments

 `p` numeric vector of p-values (possibly with `NA`s). Any other R is coerced by `as.numeric`. Same as in `p.adjust`. `p.set` a list of numeric vectors, where each vector is the vector of all attainable p-values containing the available p-value for the corresponding hypothesis. `alpha` significant level used to compare with adjusted p-values to make decisions, the default value is 0.05. `make.decision` logical; if `TRUE`, then the output include the decision rules compared adjusted p-values with significant level α

## Value

A numeric vector of the adjusted p-values (of the same length as `p`) if `make.decision = FALSE`, or a list including original p-values, adjusted p-values and decision rules if `make.decision = TRUE`.

## Note

The attainable p-value refers to the element of domain set of p-value for the corresponding hypothesis. For continuous test statistics, the p-value under true null are uniform distributed in (0,1), thus the p-values are attainable everywhere between 0 and 1. But for discrete test statistics, the p-value can only take finite values bewtween 0 and 1, that is the attainable p-values for discrete case are finite and countable, so we can assign them in a finite list `p.set`.

Yalin Zhu

## References

Zhu, Y., & Guo, W. (2017). Familywise error rate controlling procedures for discrete data arXiv preprint arXiv:1711.08147.

`Tarone.p.adjust`, `MixBonf.p.adjust`, `p.adjust`.
 ```1 2 3 4 5 6 7``` ```p <- c(pbinom(1,8,0.5),pbinom(1,5,0.75),pbinom(1,6,0.6)) p.set <-list(pbinom(0:8,8,0.5),pbinom(0:5,5,0.75),pbinom(0:6,6,0.6)) MBonf.p.adjust(p,p.set) ## Compare with the traditional Bonferroni adjustment p.adjust(p,method = "bonferroni") ## Compare with the Tarone adjustment Tarone.p.adjust(p,p.set) ```