Releases: CausalInference/SEQTaRget
Releases · CausalInference/SEQTaRget
SEQTaRget 1.4.1
- Strip row-level vectors from fastglm objects to reduce weight.statistics memory usage and use a new internal function to print the coefficient table.
- Strip row-level vectors from outcome models before storing in @outcome.model
- Fix clean_fastglm to strip row-level vectors from nested multinomial weight models
- No longer store survival.curve ggplot object; regenerate on demand via
km_curve() - Removed several
local()wrappers and made several code optimizations. - Improved documentation of the datasets in the package.
- Implement check for perfect separation when fitting logistic regression models.
- Fixed a bug in and make some improvements to
internal.weights(). - Removed three unused slots in
SEQopts(). - Add alt text to figures in vignettes.
- Fixed
SEQuential()time.colvalidation detecting and repairing non-zero-indexed time. - Add validation for
eligible.colvalues - Add Paul Madley-Dowd as a co-author
- Add check for overlapping
time_varying.colsandfixed.cols - Add bounds validation for numeric and integer options in
SEQopts() - Add check for duplicate id/time combinations in input data
- Add check that
treat.levelvalues exist in the treatment column - Add validation for
excused.colsflags - Add validation for
followup.min/maxordering - Add binary check for outcome.col in non-hazard analyses
- Add
treat.levellength validation for multinomial and non-multinomial analyses - Add binary validation for
cense.eligibleandweight.eligible_cols - Remove additional eligibility rows if not needed
- Amend defaults for
followup.minandweight.lowerfrom-Infto0 - Fix bootstrapping for risk difference and risk ratio estimates to use paired per-iteration estimates
- Optimizations to use less RAM
- Fix duplicate scale_color_manual warning and plot.subtitle label bug in
internal.plot() - Run doseresponse and ITT vignette chunks on GitHub Actions
- Fix
km_curve()returning list instead of ggplot for non-subgroup case - Fix
km_curve()subtitle condition - Fix
risk.comparison()CIs beingNAwith competing events - Move selection.random before expansion to reduce peak memory usage
- Replace
cbind()with:=in expansion chain to avoid intermediate copy - Replace
merge()with data.table native join in expansion data_list combine step - Replace rbind weight construction with copy+in-place to reduce peak memory
- Drop wt and tmp columns immediately after weight is computed in all code paths
- Remove redundant setDF calls in fast_model_matrix
- Free WDT before bootstrap loop when data.return is
FALSE - Use
match(TRUE, ...)instead ofwhich(...)[1]to find first switch/event per group - Replace
sapplyloop with single matrix multiply in multinomial prediction - Vectorise survival curve predictions into a single inline.pred call per treatment level
- Free result list after extraction in internal_survival.R to reduce peak memory during bootstrap
- Free analytic list after subgroup loop in SEQuential.R to reduce peak memory during survival curve computation
- Avoid
copy()in data_all construction and free data list in internal_survival.R to reduce peak memory during bootstrap - Filter to
followup==0before adding trialID in internal.survival to avoid copying entire expanded dataset - Trim base_DT to only prediction-needed columns before replication in internal.survival to reduce peak memory
- Remove unnecessary copy(weight) for model.data in internal.weights since it is never modified in-place
- Free baseDT after bootstrap loop in internal.survival to reduce peak memory during survival curve computation
- Fix multinomial.summary: replace vcov() with fastglm $se field and add missing Coefficient column to prevent rbind mismatch
- Add test_coverage.R with tests targeting uncovered code paths to increase coverage
- Remove some no longer used variables and dead code
- Further memory reduction optimizations
v1.4.1
- Strip row-level vectors from fastglm objects to reduce weight.statistics memory usage and use a new internal function to print the coefficient table.
- Strip row-level vectors from outcome models before storing in @outcome.model
- Fix clean_fastglm to strip row-level vectors from nested multinomial weight models
- No longer store survival.curve ggplot object; regenerate on demand via
km_curve()
v1.4.0
- Removed several local() wrappers and made several code optimizations.
- Improved documentation of the datasets in the package.
- Implement check for perfect separation when fitting logistic regression models.
- Fixed a bug in and make some improvements to internal.weights().
- Removed three unused slots in SEQopts().
- Add alt text to figures in vignettes.
- Fixed SEQuential() time.col validation detecting and repairing non-zero-indexed time.
- Add validation for eligible.col values
- Add Paul Madley-Dowd as a co-author
- Add check for overlapping time_varying.cols and fixed.cols
- Add bounds validation for numeric and integer options in SEQopts()
- Add check for duplicate id/time combinations in input data
- Add check that treat.level values exist in the treatment column
- Add validation for excused.cols flags
- Add validation for followup.min/max ordering
- Add binary check for outcome.col in non-hazard analyses
- Add treat.level length validation for multinomial and non-multinomial analyses
- Add binary validation for cense.eligible and weight.eligible_cols
- Remove additional eligibility rows if not needed
- Amend defaults for followup.min and weight.lower from -Inf to 0
- Fix bootstrapping for risk difference and risk ratio estimates to use paired per-iteration estimates
- Optimizations to use less RAM
- Fix duplicate scale_color_manual warning and plot.subtitle label bug in internal.plot()
- Run doseresponse and ITT vignette chunks on GitHub Actions
- Fix km_curve() returning list instead of ggplot for non-subgroup case
- Fix km_curve() subtitle condition
- Fix risk.comparison() CIs being NA with competing events
- Move selection.random before expansion to reduce peak memory usage
- Replace cbind() with := in expansion chain to avoid intermediate copy
- Replace merge() with data.table native join in expansion data_list combine step
- Replace rbind weight construction with copy+in-place to reduce peak memory
- Drop wt and tmp columns immediately after weight is computed in all code paths
- Remove redundant setDF calls in fast_model_matrix
- Free WDT before bootstrap loop when data.return is FALSE
- Use match(TRUE, ...) instead of which(...)[1] to find first switch/event per group
- Replace sapply loop with single matrix multiply in multinomial prediction
- Vectorise survival curve predictions into a single inline.pred call per treatment level
- Free result list after extraction in internal_survival.R to reduce peak memory during bootstrap
- Free analytic list after subgroup loop in SEQuential.R to reduce peak memory during survival curve computation
- Avoid copy() in data_all construction and free data list in internal_survival.R to reduce peak memory during bootstrap
- Filter to followup==0 before adding trialID in internal.survival to avoid copying entire expanded dataset
- Trim base_DT to only prediction-needed columns before replication in internal.survival to reduce peak memory
- Remove unnecessary copy(weight) for model.data in internal.weights since it is never modified in-place
- Free baseDT after bootstrap loop in internal.survival to reduce peak memory during survival curve computation
- Fix multinomial.summary: replace vcov() with fastglm $se field and add missing Coefficient column to prevent rbind mismatch
- Add test_coverage.R with tests targeting uncovered code paths to increase coverage
- Remove some no longer used variables and dead code
- Further memory reduction optimizations
SEQTaRget 1.3.6
- Added a
set.seed()call ininternal.hazard()to make main estimate reproducible. And also implement fix to ensure the bootstrapping, including both standard error and percentiles, is deterministic given the seed.
SEQTaRget 1.3.6
- Added a
set.seed()call ininternal.hazard()to make main estimate reproducible. And also implement fix to ensure the bootstrapping, including both standard error and percentiles, is deterministic given the seed.
SEQTaRget 1.3.5
- The
hazard_ratio()function now correctly desscribes the estimate as "Hazard ratio" - The bootstrapping now collects the log hazard ratio instead of the hazard ratio because the log hazard ratio has better normality properties.
- The
covariates()function now returns more nicely formatted output (with spaces around~and+symbols in the model formulae)
SEQTaRget 1.3.5 pre-release
- The
hazard_ratio()function now correctly desscribes the estimate as "Hazard ratio" - The bootstrapping now collects the log hazard ratio instead of the hazard ratio because the log hazard ratio has better normality properties.
- The
covariates()function now returns more nicely formatted output (with spaces around~and+symbols in the model formulae)
SEQTaRget 1.3.4
Implemented some code optimizations:
- Replace a
table()call with data.table's.N - Remove all
gc()calls - Use a keyed index in bootstrapping
- Remove some uses of
copy()
SEQTaRget 1.3.4 pre-release
- Implemented some code optimizations
- Replace a
table()call with data.table's.N - Remove all
gc()calls - Use a keyed index in bootstrapping
- Remove some uses of
copy()
- Replace a