ZEpid Versions Save

Epidemiology analysis package

latest-version

1 year ago

Release of v0.9.1

v0.9.0

3 years ago

v0.9.0

The 0.9.x series drops support of Python 3.5.x. Only Python 3.6+ are now supported. Support has also been added for Python 3.8

Cross-fit estimators have been implemented for better causal inference with machine learning. Cross-fit estimators include SingleCrossfitAIPTW, DoubleCrossfitAIPTW, SingleCrossfitTMLE, and DoubleCrossfitTMLE. Currently functionality is limited to treatment and outcome nuisance models only (i.e. no model for missing data). These estimators also do not accept weighted data (since most of sklearn does not support weights)

Super-learner functionality has been added via SuperLearner. Additions also include emprical mean (EmpiricalMeanSL), generalized linear model (GLMSL), and step-wise backward/forward selection via AIC (StepwiseSL). These new estimators are wrappers that are compatible with SuperLearner and mimic some of the R superlearner functionality.

Directed Acyclic Graphs have been added via DirectedAcyclicGraph. These analyze the graph for sufficient adjustment sets, and can be used to display the graph. These rely on an optional NetworkX dependency.

AIPTW now supports the custom_model optional argument for user-input models. This is the same as TMLE now.

zipper_plot function for creating zipper plots has been added.

Housekeeping: bound has been updated to new procedure, updated how print_results displays to be uniform, created function to check missingness of input data in causal estimators, added warning regarding ATT and ATU variance for IPTW, and added back observation IDs for MonteCarloGFormula

Future plans: TimeFixedGFormula will be deprecated in favor of two estimators with different labels. This will more clearly delineate ATE versus stochastic effects. The replacement estimators are to be added

v0.8.2

3 years ago

v0.8.1

4 years ago

Added support for pygam's LogisticGAM for TMLE with custom models (Thanks darrenreger!)

Removed warning for TMLE with custom models following updates to Issue #109 I plan on creating a smarter warning system that flags non-Donsker class machine learning algorithms and warns the user. I still need to think through how to do this.

v0.8.0

4 years ago

v0.8.0

Major changes to IPTW. IPTW now supports calculation of a marginal structural model directly.

Greater support for censored data in IPTW, AIPTW, and GEstimationSNM

Addition of s-values

v0.7.2

4 years ago

Allows access to estimated standard errors for TMLE and AIPTW

Fixed label for RiskDifference summary

v0.7.1

5 years ago

Addition of StochasticIPTW class

v0.7.0

5 years ago

v0.6.0

5 years ago

MonteCarloGFormula now includes a separate censoring_model() function for informative censoring. Additionally, I added a low memory option to reduce the memory burden during the Monte-Carlo procedure

IterativeCondGFormula has been refactored to accept only data in a wide format. This allows for me to handle more complex treatment assignments and specify models correctly. Additional tests have been added comparing to R's ltmle

There is a new branch in zepid.causal. This is the generalize branch. It contains various tools for generalizing or transporting estimates from a biased sample to the target population of interest. Options available are inverse probability of sampling weights for generalizability (IPSW), inverse odds of sampling weights for transportability (IPSW), the g-transport formula (GTransportFormula), and doubly-robust augmented inverse probability of sampling weights (AIPSW)

RiskDifference now calculates the Frechet probability bounds

TMLE now allows for specified bounds on the Q-model predictions. Additionally, avoids error when predicted continuous values are outside the bounded values.

AIPTW now has confidence intervals for the risk difference based on influence curves

spline now uses numpy.percentile to allow for older versions of NumPy. Additionally, new function create_spline_transform returns a general function for splines, which can be used within other functions

Lots of documentation updates for all functions. Additionally, summary() functions are starting to be updated. Currently, only stylistic changes

v0.5.0

5 years ago