As of October 2023: * A new argument bound has been added to est_g_cens() to specify the lower tolerated limit of the censoring mechanism estimates. This is used to allow for stable inverse probability of censoring weights to be applied. This bound has been given a default value of 0.02. * The default value of bound in bound_propensity() has been changed from 0.005 to 0.01, as has the default value of gps_bound in txshift().

As of May 2023: * A new argument bound has been added to bound_propensity() to specify the lower tolerated limit of generalized propensity score estimates. Estimates are bounded to the higher of the specified or default value of bound and the inverse of the sample size, 1/n. * A new argument gps_bound has also been introduced to both txshift() and est_Hn() in order to accommodate passing in truncation bounds for the estimated generalized propensity score.

As of October 2021: * Minor updates to ensure compatibility with v0.4.1 of hal9001 and v0.2.1 of haldensify, both recently updated on CRAN. * Removal of the LazyData field from the DESCRIPTION, since no data directory is included with the package. * Minor tweaks to existing unit tests to remove rlang from the Suggests field of the DESCRIPTION. * Vignettes for the standard and IPCW-augmented estimation procedures have been combined to reduce redundancy and reduce build time per CRAN requests.

As of May 2021: * The use of hal9001::fit_hal() internally for evaluation of a conditional mean of the full-data EIF has been revised for compatibility with v0.4.0+ of the hal9001 package. * Defaults passed in through the argument g_exp_fit_args, and to the function est_g_exp(), have been updated for compatibility with v0.1.5+ of the haldensify package.

As of April 2021: * The print() methods have been updated to remove the use of cli functions, which, for simplicity, has been replaced by the use of message(). * Addition of a hidden slot .eif_mat to the txshift_msm class, supporting export of the matrix of EIF estimates for each shift in delta_grid.

As of February 2021: * Remove cross-linking to sl3 functions as per request from CRAN. This can be reversed once sl3 is available on CRAN.

As of January 2021: * Simulation experiments testing the performance of the procedures in the presence of loss to follow-up censoring indicate that the TML estimator outperforms the one-step for the EIF-based two-phase sampling correction. Generally, we recommend use of the TML estimator (the default) across all settings, though performance of the one-step estimator is much worse.

As of December 2020: * A delta slot has been added to the txshift class to record the shift. * Hidden slots have been similarly added to the txshift_msm class. * The summary method has been removed, with the functionality now supported by the print methods for the txshift and txshift_msm classes. * The plot method has been amended to support simultaneous confidence bands.

As of October 2020: * Changes all references to the argument C to C_samp for the indicator of inclusion in the second-stage sample. * Adds the new argument C_cens to denote censoring due to loss to follow-up, i.e., prior to the occurrence of the outcome. * Adds a nuisance regression for censoring C_cens and adjusts the estimation procedure so as to use inverse censoring weights in the full-data EIF procedure (NOTE: these are not updated in the two-phase sampling correction). * Renaming of arguments to internal functions and functions themselves: * From est_g to est_g_exp for the exposure mechanism density estimation * From est_ipcw to est_samp for the two-phase sampling mechanism * Add est_g_cens for the loss to follow-up censoring mechanism

As of September 2020: * Moved sl3 dependency to an Enhances designation for CRAN submission. * As above, removed sl3 from Remotes and added installation safety checks.

As of June 2020: * Add single-knot spline to MSM summarization (msm_vimshift). * Add class and plot method for MSM summarization (msm_vimshift). * Fix bug in msm_vimshift for computing CIs for binary outcomes by switching from manually computing CIs to internally using custom confint method. * Fix bug in msm_vimshift for building lm model objects through weighted regression; move models from plot method to msm_vimshift. * Finish drafting brief paper for Journal of Open Source Software.

As of April 2020: * Change export status of internal functions (e.g., no longer exporting onestep_txshift and tmle_txshift). * Finish adding Roxygen “details” and “return” slots throughout functions. * Add examples to main estimation functions (txshift, vimshift_msm). * Update argument names and add several assert_that checks. * Change fit_spec terminology to fit_ext for external fits. * Add unit tests for MSM functionality and nuisance parameter estimation.

As of March 2020: * Extensive documentation, including fixing estimation terminology (e.g., one-step instead of AIPW) and adding Roxygen “details” and “return” slots. * Begin adding examples to exported functions.

As of March 2020: * Corrections to dependencies in preparation for eventual CRAN release. * Change several previously exported functions to internal, including eif, est_Hn, est_Q, est_g, est_ipcw, fit_fluctuation, ipcw_eif_update). * Remove/reduce GitHub-only dependencies (now only sl3). * Change title partially (from “Targeted Learning” to “Efficient Estimation”). * Lock dependency versions (e.g., sl3 >= v1.3.7) * Extensive documentation updates.

As of December 2019: * Changes arguments of hal9001::fit_hal in pseudo-outcome regression for efficient estimation by explicitly including max_degree = NULL. * Change to TMLE convergence criterion: use a less strict criterion such that | Pn D | sigma / (sqrt(n) max(10, log(n))) instead of /n. Empirical studies suggest this curbs issues addressed by over-agressive updates from the targeting step. * Remove pinning of sl3 dependency to a specific tag (formerly v1.2.0). * Lock dependency version: sl3 >= v1.3.6 and hal9001 >= v0.2.5.

As of October 2019: * Change use of as.data.table to data.table in internal functions to catch up with changes in dependencies.

As of September 2019: * Remove errant intercept term and lower iterations for fluctuation models. * Change weighting scheme in marginal structural model summarization to weight all estimates identically rather than by inverse variance as a default. * Updates to documentation.

As of September 2019: * Add safety checks for convergence of fluctuation regressions based on those appearing in drtmle and/or survtmle. * Change default confidence interval type to use marginal CIs across multiple parameters instead of a simultaneous confidence band. * Switch internal parametric regressions to use sl3::Lrnr_glm instead of sl3::Lrnr_glm_fast.

As of July 2019: * Improve argument names for clarity and update documentation. * Addition of tighter unit tests for both one-step and TML estimators.

As of June 2019: * Pin sl3 dependency to version 1.2.0 of that package for stability.

As of June 2019: * Changes to arguments of hal9001::fit_hal for pseudo-outcome EIF regression. * Addition of clarifying notes to core internal functions. * Removal of outdated (and commented out) code in core internal functions. * Clarifying alterations to internal function and argument names. * Renaming internal function tx_shift to shift_additive.

As of June 2019: * Remove inverse weights from estimated efficient influence function necessary for pseudo-outcome regression for efficient IPCW-augmented estimators. * Reduce use of redundant variables across core functions, reorganize functions across files, clarify documentation. * Tweak arguments for fitting pseudo-outcome regression with HAL in order to diagnose performance issues revealed by simulation. * Fix how inverse weights are passed to full-data estimators. * Pare down arguments for the one-step estimation routine.

As of June 2019: * Introduce bound_propensity function to bound the propensity score away from zero by a factor 1/n, rather than to numerical precision.

As of April 2019: * Minor improvements to documentation and vignettes. * Fix a bug in the output of the IPCW one-step estimator. * Pare down packages listed in imports, moving several to suggests. * Introduce option to compute simultaneous confidence band for working MSMs. * Fix a bug introduced by newly added imputation functionality in sl3.

As of March 2019: * Introduce functionality for computing one-step estimators to complement the the available TMLEs. * Add initial functionality for summarizing estimated effects across a grid of shifts via working marginal structural models (MSMs).

As of February 2019: * Added helper functions and caught edge cases in auxiliary covariate for TMLE fluctuation models. * Fixed a bug in how the auxiliary covariate for TMLEs is computed by keeping track of an extra shift g(a+2delta|w). Revised inference machinery to create confidence intervals on the logit scale in the case of binary outcomes.

As of May 2018: * An initial public release of this package, version 0.2.0. * This version including complete functionality for both standard TML and IPCW-TML estimators.