| min_p_test | R Documentation |
Aggregates the same per-interval hypergeometric p-values as
higher_criticism_test by taking the minimum, reported as
-\log(\min_i p_i).
min_p_test(durations_A, ...)
## Default S3 method:
min_p_test(
durations_A,
durations_B,
event_observed_A = NULL,
event_observed_B = NULL,
alternative = c("both", "greater", "less"),
gamma = 0.2,
hc_version = c("dj2008", "dj2004", "beta", "star"),
t_0 = -1,
n_intervals_to_pool = NULL,
n_permutations = 0,
seed = NULL,
...
)
## S3 method for class 'formula'
min_p_test(formula, data, subset, na.action, ...)
durations_A, durations_B |
Numeric vectors of event or censoring times.
|
event_observed_A, event_observed_B |
Optional 0/1 vectors, 1 indicating an observed event and 0 a censored observation. Default: all events. |
alternative |
One of |
gamma |
Fraction of the smallest ordered p-values scanned, in (0, 1]. Default 0.2. |
hc_version |
Which Higher Criticism variant to use, matching the named
methods of the Python package |
t_0 |
Restrict the analysis to events at or before |
n_intervals_to_pool |
Number of equal-width intervals to pool event times
into. Strongly recommended for continuous survival data, where each distinct
time carries at most one event and the per-time hypergeometric p-values are too
coarse to be informative. Values between 50 and 200 usually work well.
|
n_permutations |
Number of label permutations used to calibrate the
p-value. |
seed |
Optional integer seed for the permutation test. When supplied, the caller's random seed is restored on exit. |
formula |
A two-sided formula |
data |
An optional data frame, list or environment holding the variables
named in |
subset |
An optional vector specifying a subset of observations to use. |
na.action |
A function describing what should happen when the data contain
|
... |
Further arguments. The formula method passes these on to the default method, which accepts none and signals an error if any are supplied, so that a misspelled argument name cannot be silently ignored. |
Two interfaces are available and return the same numbers. The default method
takes the two samples as vectors, mirroring the Python package
lifelines-hc. The formula method takes the usual survival formula
Surv(time, status) ~ group, which needs the survival package for
Surv itself; without it, cbind(time, status) ~ group and
time ~ group also work, the latter treating every observation as an
event.
The grouping variable must take exactly two values. Its first level is group A
and its second is group B, so alternative = "greater" tests for excess
hazard in the second level. Levels are taken in factor order for a factor, and
otherwise in the order sort(unique(.)) gives: numerically for numbers,
alphabetically for strings.
The two interfaces differ only in their treatment of missing values. The
default method rejects NA durations; the formula method applies
na.action, which by default drops incomplete rows.
An object of class "htest".
Kipnis, A., Galili, B. and Yakhini, Z. (2026). Higher criticism for rare and weak non-proportional hazard deviations in survival analysis. Biometrika 113(1), asaf075. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1093/biomet/asaf075")}
Kipnis, A., Galili, B. and Yakhini, Z. (2026). lifelines-hc: Higher
Criticism testing for sparse non-proportional hazard departures in Python.
\Sexpr[results=rd]{tools:::Rd_expr_doi("10.48550/arXiv.2610.07268")}
higher_criticism_test
set.seed(1)
min_p_test(rexp(200, 1 / 10), rexp(200, 1 / 10), n_intervals_to_pool = 50)
trial <- data.frame(time = rexp(400, 1 / 10), status = 1,
arm = rep(c("A", "B"), each = 200))
min_p_test(cbind(time, status) ~ arm, data = trial, n_intervals_to_pool = 50)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.