Breaking changes

  • make_newdata() output no longer contains internal PED columns (tstart, intlen, interval, offset, ped_status). Output now contains tend + id + user covariates (plus cause/transition for competing risks / multi-state models). ped_info() output is unchanged.
  • intlen is now reconstructed on demand by downstream functions (add_cumu_hazard, add_surv_prob, add_cif, add_trans_prob) via the new internal helper reconstruct_intlen(), and dropped from user-facing output.
  • add_cif() now uses the exact closed-form integral of the cumulative incidence function under piecewise-exponential hazards ((h_j / Σh) · S(t_{i-1}) · (1 - exp(-Σh · Δt))) instead of the previous left-Riemann approximation. CIF estimates from existing user code will change numerically; results are now invariant to the time grid passed to make_newdata().

Enhancements

  • add_cif() now supports arbitrary time points in make_newdata() (parity with add_cumu_hazard()); missing breakpoints are inserted internally so CIF estimates are independent of the chosen prediction grid.
  • expand_df() preserves the cause column when make_newdata() is called with only tend and cause, fixing a competing-risks edge case.
  • predictSurvProb.pamm() now respects non-default id column names and works when trafo_args are not attached to the fitted object.

Deprecations

Documentation

  • Added derivation of the piecewise-exponential CIF integral to the competing-risks vignette.

Bug fixes

  • Fixed competing risks data transformation when status variable is a factor (#220, #216, #233)
  • Fixed CIF calculation to use factor levels from newdata instead of model attribute (#245)
  • Fixed cut point extraction for factor/character status variables
  • Fixed transition probability matrix initialization for states starting at 0 or 1
  • Fixed CRAN NOTE: added id to global variables for dplyr compatibility (#260)

Enhancements

  • Improved add_trans_prob: better documentation, proper examples, attribute attachment, and base R speedup
  • Added warning in pamm() when data does not contain an offset column
  • Added broom to Suggests

Documentation

  • Updated add_trans_prob help page with proper parameter descriptions and working example
  • Added simulations vignette
  • Fixed competing risks data trafo in case of more than 2 causes
  • Fixes issue 154: direction argument to geom_stepribbon
  • removed argument methods from pamm. Can be specified via .... Fixes #200
  • adapted warn_about_new_time_points when original data not stored in model object. Fixes #203
  • Fixed issue where not all ped attributes were retained when applying dplyr functions #202
  • added staph data with recurrent events
  • maintenance fix
  • fixes to URLs and DOIs
  • CRAN fix. Discrepancy between man page and code.
  • CRAN fix. Compliance with new dplyr version (1.0.0)
  • CRAN fix, removed plyr dependency (see issue #141)
  • as_ped.ped now also works for transformations with time-dependent covariates
  • Adds a new interface for model estimation called pamm, which is a thin wrapper around mgcv::gam with some arguments pre-set.
  • Adds S3 method predictSurvProb.pamm
  • Adds support and vignette for model evaluation using package pec
  • Fixed bug when CIs were calculated simulation based and model contained factor variables
  • Removed unnecessary dependencies in Imports/Suggests
  • Interface for specification of data transformation in as_ped changed. The vertical bar | is no longer necessary to indicate concurrent or cumulative effects
  • Support for new interface to tidyr
  • Functions get_hazard and add_hazard also gain reference argument. Allows to calculate (log-)hazard ratios.

  • Introduces breaking changes to add_term function. Argument relative is replaced by reference, makes calculation of relative (log-)hazards, i.e. hazard ratios, more flexible. Argument se.fit is replaced by ci.

bugs

  • fixes bug in dplyr reverse dependency (see #101)
  • fixes bug in tidiers for Aalen models (see #99)

documentation

  • Better documentation and functionality for make_newdata
  • Added new vignette linking to tutorial paper (online only)
  • maintenance update: fixes CRAN issues due to new RNG

documentation

  • Updates to cumulative effect vignette
  • Updates to time-dependent covariate vignette (+ data transformation)
  • Update citation information

Features

  • concurrent now has a lag = 0 argument, can be set to positive integer values
  • as_ped accepts multiple concurrent specials with different lag specifications

Bug/Issue fixes

  • Further improved support for cumulative effects
  • Added vignette on estimation and visualization of cumulative effect
  • Updated vignette on convenience functions (now “Workflow and convenience functions”)
  • Other (minor) upgrades/updates to documentation/vignettes
  • Updates homepage (via pkgdown)

Minor changes

  • Update documentation
  • More tests/improved coverage
  • Lag-lead column is adjusted in make-newdata.fped

Bug fixes

  • visualization functions gg_laglead and gg_partial_ll did not calculate the lag-lead-window correctly when applied to ped data

Features

  • Better support for cumulative effects
  • Lag-Lead matrix now contains quadrature weights
  • Better support for visualization of cumulative effects

Breaking changes

  • make_newdata loses arguments expand and n and gains ... where arbitrary covariate specifications can be placed, i.e. e.g. age=seq_range(age, n=20). Multiple such expression can be provided and a data frame with one row for each combination of the evaluated expressions will be returned. All variables not specified in will be set to respective mean or modus values. For data of class ped or fped make_newdata will try to specify time-dependent variables intelligently.

  • te_var argument in concurrent and cumulative was renamed to tz_var

  • te arguments have been replaced by tz (time points at which z was observed) in all functions to avoid confusion with mgcv::te (e.g., gg_laglead)

Updates and new features

  • Overall better support for cumulative effects

  • Added convenience functions for work with cumulative effects, namely

    • gg_partial and
    • gg_slice
  • Added helper functions to calculate and visualize Lag-lead windows

    • get_laglead
    • gg_laglead
  • Added convenience geoms for piece-wise constant hazards (see examples in ?geom_hazard, cumulative hazards and survival probabilities (usually aes(x=time, y = surv_prob), but data set doesn’t contain extra row for time = 0), thus

    • geom_stephazard adds row (x=0, y = y[1]) to the data before plotting
    • geom_hazard adds row (x = 0, y = 0) before plotting (can also be used for cumulative hazard)
    • geom_surv add row (x = 0, y = 1) before plotting
  • All data transformation is now handled using as_ped (see data transformation vignette)

  • Data transformation now handles

    • standard time-to-event data
    • time-to-event data with concurrent effects of time-dependent covariates
    • time-to-event data with cumulative effects of time-dependent covariates
  • Added functionality to flexibly simulate data from PEXP including cumulative effects, see ?sim_pexp

  • Added functionality to calculate Aalen-model style cumulative coefficients, see ?cumulative_coefficient

  • Breaking change in split_data (as_ped now main data trafo function):

    • removed max.end argument
    • added max_time argument to introduce administrative censoring at max_time when no custom interval split points are provided

pammtools 0.0.3.2

  • More tidyeval adaptations
  • consistent handling of “no visible global binding” NOTEs
  • Release used in
    A. Bender, Groll A., Scheipl F., “A generalized additive model approach to time-to-event analysis” (2017). Statistical Modelling (to appear)

pammtools 0.0.3.1

  • some adaptations to tidyeval
  • Minor bug fixes
  • Ported pamm package to pammtools due to naming conflicts with PAMM package on CRAN