Added direct optional gtsummary::tbl_regression() support for polyreg,
including event selection, reference rows and event-specific RR/OR/SHR
headings. tidy.polyreg() supports exponentiate and the standard logical
conf.int/numeric conf.level interface while retaining legacy numeric
conf.int. Stored intervals are retained when inference settings are unchanged.
Corrected survival-summary SE scaling and unstratified curve compatibility.
cifcurve() now returns a subclass of survfit; its summary and stratum-subsetting
methods keep saved inference aligned and prevent interval extrapolation past
positive-weight follow-up. Reporting adapters preserve the fitted statistical results.
Added reporting articles for CIF curves/tests and event-specific regression, with gtsummary formatting and Word/HTML export examples.
Fixed unweighted cifplot() calls being treated as weighted when NULL
weights were forwarded internally. Unweighted plots now honor error = "aalen"
and "delta", and retain the unweighted default variance choice. Actual
supplied weights retain the existing weighted-inference rules.
Added pointwise IF-t, FG-normal and FG-t intervals to cifcurve() for
independent observations with no weights or known fixed weights. Select
conf.dist = "t" for Student critical values, or error = "fay" for
the FG sandwich correction. Existing default method choices are retained.
IF-t supports df.method = "deletion" (FG-type allocation, default) or
"equal" (equal-allocation working Satterthwaite degrees of freedom).
FG-t uses deletion allocation. Results record time-specific degrees of
freedom, critical values and interval availability reasons. These are
approximations, not exact t distributions or uniform coverage guarantees.
Supplied weights, including externally estimated IPTW, are treated as fixed. Propensity-score estimation and its full IF contribution remain outside this API. IF/FG limits beyond positive-weight follow-up, or with invalid interior variance/df, are missing rather than silently replaced by a normal interval; valid boundary singletons are retained.
Corrected the C++ IF recursion to differentiate the actual KM/AJ product limit, including tied jumps. IF standard errors can consequently differ from earlier versions. FG contributions share that recursion. Also fixed zero cause-1 CIFs when only competing events are observed.
Added ciftest() for standard and weighted log-rank/Gray tests and
closed-form augmented competing-risk score tests with separately specified
censoring and competing-risk nuisance strata.
Redesigned the public ciftest() selector around test = "auto",
"logrank", "gray", "score", or "augmented"; "early" and "late"
select outcome-specific Fleming--Harrington presets. Survival outcomes now
default to log-rank and competing-risk outcomes to the augmented score.
Added "L", "LR", and "log-rank" aliases for log-rank, "G" for Gray,
and "A", "aug", and "augmentation" for the augmented score test.
Added a null robust score option, individual score-contribution matrices,
two-sided multigroup omnibus tests, and survdiff compatibility for the
ordinary unweighted log-rank result.
Renamed the public analysis-stratification argument from strata.event to
strata. strata.censor is formally available for the competing-risk null
score, while strata.competing.risk remains specific to augmentation.
Added prob.truncation for derivative-aware probability lower truncation
of censoring KM and working AJ survival denominators. Raw probabilities
continue to determine
structural positivity failures; raw and used minima and truncation counts
are returned in diagnostics.
Added ciftest_mdir() to combine user-selected unweighted, early, late, or
custom Fleming--Harrington directions in a Ditzhaus--Friedrich quadratic
score test with rank-adaptive asymptotic chi-square calibration. Classical
log-rank directions use a joint finite-population-corrected hypergeometric
covariance, while classical Gray directions use the bilinear extension of
Gray's event, competing-event, and censoring covariance. Consequently,
linearly dependent FH directions do not change the quadratic test.
ciftest(test = "multiple") and its "multi" and "m" aliases use the
linearly independent default directions (2, 0), (0, 2), and (0, 0);
the single-direction early and late presets remain (1, 0) and (0, 1).
Added analysis stratification to ciftest() independently of
strata.censor and strata.competing.risk. Log-rank and
Gray scores/covariances, Fine--Gray risk sets, and FH weight processes are
constructed within event strata and then summed. Closed-form augmentation
uses event-by-exposure-by-competing-risk-by-censoring computational cells;
positive fixed-point iterations remain restricted to pooled models. All
three strata arguments accept one or more column names; multiple columns
define their observed interaction and share one complete-case filter.
Added finite Scheike fixed-point refinement to ciftest(). The single
iteration argument selects the closed-form augmented score at zero and a
fixed number of iterated time-weighted Fine--Gray updates at positive
integers, with subject-level scores and residual diagnostics returned.
Appendix-E iteration now evaluates the working competing-risk ratio with
the coherent Aalen--Johansen survival and enforces positivity only where a
future cause-1 score contribution is active; censoring times beyond the last
cause-1 event are excluded from the correction map and reported in
diagnostics$iteration.support.
Anchored positive finite iterations and the internal direct fixed-point
reference at the closed-form augmented score using
closed-form + AIPWCC(value) - AIPWCC(seed). This preserves the zeroth-step
identity in each observed sample while retaining the raw AIPWCC(seed) as
a batch-only diagnostic. Anchoring discrepancies are returned under
diagnostics$iteration.anchor.
Added an internal batched ciftest engine for simulation studies. It reuses
censoring Kaplan--Meier and working Aalen--Johansen nuisance fits within one
data set, preserves scalar ciftest() result objects, and moves the nested
Fine--Gray score-IID and closed-form augmentation loops to Rcpp kernels.
Fixed Fleming--Harrington weights with a common nuisance specification are
evaluated together in a multiweight traversal.
Replaced the default Fine--Gray score-IID traversal with an internal
sort-plus-prefix/reverse-suffix C++ kernel. Risk moments, the base IID,
censoring derivative, and censoring-martingale IID are evaluated without the
former event-by-censoring-time-by-subject loop. The independent legacy
kernel remains available through
options(cifmodeling.ciftest.fg.engine = "legacy"); "check" evaluates
both kernels and stops if their numerical outputs differ beyond tolerance.
Added a cell-aggregated prefix C++ kernel for closed-form augmentation.
Reverse at-risk sums replace the censoring-time-by-subject centering loop,
and cell-specific censoring-hazard prefixes replace the subject-level
martingale traversal. The legacy implementation remains available through
options(cifmodeling.ciftest.augmentation.engine = "legacy"); "check"
evaluates both implementations and verifies all returned IID and diagnostic
quantities.
Added a batch-only direct Appendix-E fixed-point reference solver. It builds
the affine iteration operator, reuses one QR factorization across FH weights,
and reports residual, spectral-radius, and conditioning diagnostics. Finite
iteration and the public scalar ciftest() interface remain unchanged.
A direct solution is now marked converged only when its algebraic residual
meets tolerance and the empirical operator has spectral radius below one;
solving a non-contractive linear system is retained as a diagnostic result.
Added a batch-only Fine--Gray score-IID reference for simulation comparisons. It uses the Fine--Gray influence-function cross-product as its test variance and is kept separate from the public standard Gray test.
Added diagnostics$fh.weight.process to ciftest() results so the exact
event-time FH process and its pooled-AJ or native-Gray construction can be
audited and compared with independent implementations.
Third CRAN release.
Added cifflowchart() for lightweight flowchart summaries of exclusions, groups, and outcome status.
Added one-sided normal approximation tests in cifcurve() via time.point and null.hypothesis.
Improved handling of risk-set display and event coding options.
Updated documentation, examples, vignettes, and pkgdown site.
Fixed bugs and expanded test coverage.
n.risk.type to cifcurve() to optionally display weighted, unweighted,
or Kish ESS risk set sizes without changing estimates or SEs.cifplot() to display integer values.cloglog by unifying axis-application
logic, improving maintainability without changing user-facing results.-Wstringop-overread) triggered in calculateAJ_Rcpp (no change to user-facing results).Invalid DESCRIPTION file, software names were single quoted. Rebuilt and resubmitted.
Addressed CRAN feedback regarding file-system and environment management. Removed development-time scripts under tools/ that performed bulk renaming and wrote to the package directory or the current working directory. These files are no longer included in the source tarball. Eliminated the remaining use of .GlobalEnv in internal helpers. panel_as_formula_global() now evaluates formulas in the calling environment (parent.frame()) instead of .GlobalEnv, fully complying with the “no modification of the .GlobalEnv” CRAN policy. No user-visible changes; only internal cleanup for CRAN compliance.
10.21105/joss.00510) does not appear to be present
in the package source. Verified using recursive search and a freshly created
tarball. Rebuilt and resubmitted.Breaking change: cifplot() and cifpanel() now return structured objects
with explicit plot/list.plot and patchwork elements, metadata, and
printing handled via new S3 methods. Automatic printing is limited to
interactive sessions, and panel outputs store engine metadata in
print.info$engine.
Standardized outcome.type canonical values to lowercase; legacy uppercase and short aliases remain accepted. Internals now use tolower().
cifpanel() and panel mode of * cifplot() were developed.cifcurve(), cifplot() and polyreg() were developed.