Skip to contents

Tests every subset containing at least two datasets, separately for each model. For three datasets A, B, and C, reports A+B, A+C, B+C, and A+B+C. Singletons need no pooling test. Results describe candidate combinations; overlapping combinations are allowed and no final grouping is selected. These are exploratory, unadjusted tests. A passing test does not establish equivalence, and results with converged = FALSE may be unreliable.

Usage

poolability_combinations(
  datasets,
  models = c("exponential", "beta_poisson"),
  alpha = 0.05,
  max_datasets = 6L
)

Arguments

datasets

A named list of dose-response data frames (accepted by as_dose_response()) or already-standardized tibbles. Unnamed elements are named dataset_1, dataset_2, and so on.

models

Character vector of models, a subset of "exponential", "beta_poisson", and "exact_beta_poisson".

alpha

Significance level for the chi-squared test.

max_datasets

Maximum collection size, default six. The number of combinations grows exponentially (2^n - n - 1).

Value

A tibble with combination (a readable label), datasets (a list column of exact dataset names), and all columns from poolability_test(). Each row describes one combination under one model.

Details

A passing pair need not remain poolable after another dataset is added. Inspect the row for the complete combination you intend to pool. Check metadata compatibility before testing; it is not enforced here. Use group_datasets() to choose non-overlapping groups from these trials.

Examples

path <- system.file("extdata", "pooling-example.csv", package = "singlehit")
raw <- readr::read_csv(path, show_col_types = FALSE)
trials <- split(raw, raw$study_id)
report <- poolability_combinations(trials)
report[c("combination", "model", "p_value", "poolable", "converged")]
#> # A tibble: 8 × 5
#>   combination model         p_value poolable converged
#>   <chr>       <chr>           <dbl> <lgl>    <lgl>    
#> 1 A + B       exponential  9.40e- 1 TRUE     TRUE     
#> 2 A + B       beta_poisson 9.25e- 1 TRUE     TRUE     
#> 3 A + C       exponential  2.50e-66 FALSE    TRUE     
#> 4 A + C       beta_poisson 9.60e-62 FALSE    TRUE     
#> 5 B + C       exponential  4.06e-67 FALSE    TRUE     
#> 6 B + C       beta_poisson 4.31e-62 FALSE    TRUE     
#> 7 A + B + C   exponential  5.24e-87 FALSE    TRUE     
#> 8 A + B + C   beta_poisson 1.19e-79 FALSE    TRUE     
# A+B passes; A+C, B+C, and A+B+C fail under both models.
# Keep C separate when considering A and B for pooling.