Changelog
manytestsr 0.0.4.1003
New features
New exported function
pPolyRank()tests Fisher’s sharp null of no effects using multiple polynomial rank score functions simultaneously viacoin::independence_test(). Computes within-block polynomial scores at multiple r values (default r = 2, 6, 10) and passes them as a multivariate response, providing adaptive sensitivity to treatment effects without pre-committing to a single rank scoring.New exported function
pCombStephenson()provides a formula-based wrapper aroundCMRSS::pval_comb_block(), the combined Stephenson rank test of Kim, Li, and Bowers. Tests quantile-of-effects hypotheses (whether the k-th largest individual effect exceeds a threshold); defaults to k = n, c = 0 for the sharp null. CMRSS is a Suggests dependency installed from GitHub (bowers-illinois-edu/CMRSS).
Dependency changes
Moved 8 packages from Imports to Suggests:
stringi,tidygraph,ggraph,digest,ggplot2,Ckmeans.1d.dp,onlineFDR,hommel. Core test statistic functions (pIndepDist,pTestTwice,pCombCauchyDist,pOneway,pWilcox) now install without pulling in heavy tree-testing and visualization libraries. Functions that need the moved packages check withrequireNamespace()and give a clear error message if the package is missing.Removed
ClusterRfrom Imports (unused; the code that called it was already commented out).Replaced
dataPreparationdependency with an internalwhich_are_constant()helper (a one-liner that checks for columns with fewer than 2 unique values).dataPreparationremains in Suggests for cross-validation testing only.Added
CMRSSto Suggests (GitHub-only:bowers-illinois-edu/CMRSS).
manytestsr 0.0.4.1002
New features
New exported factory function
alpha_adaptive_tree_pruned()creates a branch-pruning adaptive alpha system for use withfind_blocks(). Unlikealpha_adaptive_tree(), which pre-computes a fixed schedule, this version can recompute the schedule on the surviving subtree after each depth — giving more alpha to surviving branches when dead branches are removed. Returns a list with three components:$alphafn(standard closure),$update(recompute on pruned tree), and$reset(restore full tree).find_blocks()now supports list-valuedalphafnparameters. Whenalphafnis a list (as returned byalpha_adaptive_tree_pruned()),find_blocksextracts the$alphafn,$update, and$resetcomponents, callsresetat the start of each run, and callsupdateafter each depth’s testable decisions. Plain functionalphafnvalues continue to work unchanged.New internal helper
.get_all_descendants()performs BFS traversal on tree-structurednode_datto find all descendants of given nodes.
manytestsr 0.0.4.1001
New features
New exported function
compute_adaptive_alphas_tree()computes per-depth adjusted significance levels from an actual (possibly irregular) tree structure. Takesnode_datwith per-node sample sizes (as returned byfind_blocks()) instead of assuming a regular k-ary tree. The algorithm divides alpha at each depth by the sum of path powers — the expected number of tests conducted at that depth. For regular k-ary trees, this produces identical results to the parametriccompute_adaptive_alphas().New exported factory function
alpha_adaptive_tree()creates a closure for use withfind_blocks(alphafn = ...), using the tree-based alpha schedule fromcompute_adaptive_alphas_tree(). Drop-in replacement foralpha_adaptive()when the tree has irregular branching or unequal sample sizes across nodes.
manytestsr 0.0.4.1000
New features
- New exported function
compute_error_load()computes the error load at each tree level — the expected number of all-null sibling groups that the procedure tests. When the total error load is at most 1, the unadjusted procedure controls FWER via natural gating; when it exceeds 1, adaptive alpha adjustment is required. Supports both a parametric interface (regular k-ary trees with equal splits) and a tree interface (irregular trees with per-node sample sizes fromfind_blocks()).
Changes
compute_adaptive_alphas()now checks the error load before computing adjusted alphas. When the total error load is at most 1 (natural gating suffices), nominal alpha is returned at every level without adjustment. Thetauparameter has been removed; the error load check replaces it.compute_adaptive_alphas()gains an"error_load"attribute on its return value, so callers can inspect the error load diagnostics without a separate call tocompute_error_load().
manytestsr 0.0.4.0000
New features
- Added adaptive alpha adjustment for tree-structured hypothesis testing (
compute_adaptive_alphas()andalpha_adaptive()). This implements Algorithm 1 from the paper’s Appendix D, which adjusts significance levels at each tree depth based on estimated power decay. When cumulative power is high, alpha is tightened to account for the multiplicity of tests that power enables. When cumulative power drops below a threshold, natural gating suffices and nominal alpha is used. The procedure supports both constant and variable branching factors.
Interface changes
The
alphafninterface used byfind_blocks()now passes adepthparameter (integer vector of tree depths, 1 = root) to alpha adjustment functions. This enables alpha strategies that depend on tree structure rather than treating p-values as a flat stream.alpha_investing(),alpha_saffron(), andalpha_addis()now accept adepthargument for interface compatibility. They do not use it; their behavior is unchanged.
manytestsr 0.0.3.0000
- Initial tracked version with
find_blocks(), splitting functions (splitCluster,splitEqualApprox,splitLOO,splitSpecifiedFactor,splitSpecifiedFactorMulti), p-value functions (pOneway,pWilcox,pIndepDist,pCombCauchyDist,pTestTwice), online FDR alpha adjustment (alpha_investing,alpha_saffron,alpha_addis), local p-value adjustment (local_hommel_all_ps,local_simes,local_bh_all_ps), and reporting/visualization functions.