zEpid icon indicating copy to clipboard operation
zEpid copied to clipboard

IPMW for Non-monotone Missing Data

Open pzivich opened this issue 5 years ago • 2 comments

Similar to the resources in #55 it would be nice to have both potential options for IPMW implemented (this is the framework that something like AIPMW would use anyways).

For monotone, need a recursive process to estimate each probability. Then calculate the weights.

Tchetgen has the unconstrained version for nonmonotone data. See his paper referenced in #55 The real difficulty for implementation will be the Bayesian Constrained (BC) estimator. This estimation process uses Bayesian tools to constrain the weights. The rationale for the BC is that the unconstrained version does not converge well

Framework: IPMW(..., missing=['var1', 'var2'], monotone=True) For the list of missing variables, they would each have their respectively probability of observation calculated (in the monotone scenario). Their order is key for the monotonic missing data For nonmonotonic (monotone=False), the unconstrained log-likelihood would be maximized based on the calculated observed variable

To implement:

  1. Write montone detector (to check users entered the data correctly)

  2. start with monotone, since it is the easier case. Rely on loop through all the missing variables

  3. Create example data set with monotone missing data. Use to write tests compared to R

pzivich avatar Jan 12 '19 16:01 pzivich

I can't find an R package that calculates monotone IPMW currently. I will either need to write code by hand. However, in the example data I created (load_monotone_missing_data) returns approx the true value, unlike the naive approach

pzivich avatar Jan 27 '19 15:01 pzivich

Monotone will be part of 0.5.0

Nonmonotone to be added later

pzivich avatar Feb 02 '19 01:02 pzivich