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.

Title: FDR(BH) Boxplot and FWER(Holm) Boxplot
Version: 0.1.1
Description: Implements a framework for creating boxplots where the whisker lengths are determined by formal multiple testing procedures, making them adaptive to sample size and data characteristics. The function bh_boxplot() generates boxplots that control the False Discovery Rate (FDR) via the Benjamini-Hochberg procedure, and the function holm_boxplot() generates boxplots that control the Family-Wise Error Rate (FWER) via the Holm procedure. The methods are based on the framework in Gang, Lin, and Tong (2025) <doi:10.48550/arXiv.2510.20259>.
License: GPL (≥ 3)
Encoding: UTF-8
Depends: R (≥ 3.5.0)
RoxygenNote: 7.3.3
NeedsCompilation: no
Packaged: 2025-12-04 01:13:52 UTC; bowengang
Author: Bowen Gang [aut, cre], Hongmei Lin [aut], Tiejun Tong [aut]
Maintainer: Bowen Gang <gangbowen02@gmail.com>
Repository: CRAN
Date/Publication: 2025-12-09 16:30:34 UTC

False Discovery Rate (FDR) Boxplot

Description

Generates a boxplot where whisker lengths are determined by the Benjamini-Hochberg procedure to control the False Discovery Rate (FDR), making the outlier detection rule adaptive to sample size and data characteristics.

Usage

bh_boxplot(data, alpha = 0.01, group_col = NULL, value_col = NULL, ...)

Arguments

data

A numeric vector for a single boxplot, or a data frame for grouped boxplots.

alpha

The target FDR level. Defaults to 0.01.

group_col

A string specifying the name of the grouping column in 'data'.

value_col

A string specifying the name of the value column in 'data'.

...

Additional arguments passed to the base boxplot function.

Details

This function is a graphical implementation of the p-value pipeline proposed by Gang, Lin, and Tong (2025). It uses robust estimators for the mean and standard deviation based on quartiles to calculate p-values for each observation, then applies the Benjamini-Hochberg (BH) procedure to determine an adaptive p-value threshold for outlier detection. Outliers are points falling beyond the fences defined by this threshold.

Value

A plot is drawn on the current graphics device.

References

Gang, B., Lin, H., & Tong, T. (2025). Unifying Boxplots: A Multiple Testing Perspective.

See Also

holm_boxplot

Examples

# Single group example
set.seed(123)
data_single <- c(rnorm(50), 10, 12)
bh_boxplot(data_single, alpha = 0.05, main = "FDR Boxplot (Single Group)")

# Grouped data example
data_grouped <- data.frame(
  Category = rep(c("A", "B"), each = 100),
  Value = c(rnorm(100), rnorm(100, mean = 2, sd = 1.5))
)
bh_boxplot(data_grouped, group_col = "Category", value_col = "Value")

Family-Wise Error Rate (FWER) Boxplot

Description

Generates a boxplot where whisker lengths are determined by the Holm procedure to control the Family-Wise Error Rate (FWER), providing a conservative yet principled approach to outlier detection.

Usage

holm_boxplot(
  data,
  alpha = 0.05,
  kfwer = 1,
  group_col = NULL,
  value_col = NULL,
  ...
)

Arguments

data

A numeric vector for a single boxplot, or a data frame for grouped boxplots.

alpha

The target FWER level. Defaults to 0.05.

kfwer

The "k" in k-FWER control. Defaults to 1 for standard FWER.

group_col

A string specifying the name of the grouping column in 'data'.

value_col

A string specifying the name of the value column in 'data'.

...

Additional arguments passed to the base boxplot function.

Details

This function is a graphical implementation of the p-value pipeline proposed by Gang, Lin, and Tong (2025). It uses robust estimators for the mean and standard deviation based on quartiles to calculate p-values for each observation, then applies the Holm procedure to determine a p-value threshold that controls the FWER. This method is generally more conservative than the FDR boxplot.

Value

A plot is drawn on the current graphics device.

References

Gang, B., Lin, H., & Tong, T. (2025). Unifying Boxplots: A Multiple Testing Perspective.

See Also

bh_boxplot

Examples

# Single group example
set.seed(123)
data_single <- c(rnorm(50), 10, 12)
holm_boxplot(data_single, alpha = 0.05, main = "FWER Boxplot (Single Group)")

# Grouped data example
data_grouped <- data.frame(
  Category = rep(c("A", "B"), each = 100),
  Value = c(rnorm(100), rnorm(100, mean = 2, sd = 1.5))
)
holm_boxplot(data_grouped, group_col = "Category", value_col = "Value")

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.