pzivich / zEpid

Epidemiology analysis package
http://zepid.readthedocs.org
MIT License
141 stars 33 forks source link

Add interference #14

Closed pzivich closed 5 years ago

pzivich commented 6 years ago

Later addition, but since statsmodels 0.9.0 has GLIMMIX, I would like to add something to deal with interference for the causal branch. I don't have any part of this worked out, so I will need to take some time to really learn what is happening in these papers

References: https://www.ncbi.nlm.nih.gov/pubmed/21068053 https://onlinelibrary.wiley.com/doi/abs/10.1111/biom.12184 https://github.com/bsaul/inferference

Branch plan:

---causal
      |
      -interference

Verification: inferference the R package has some datasets that I can compare results with

Other: Will need to update requirements to need statsmodels 0.9.0

pzivich commented 6 years ago

There are two formulations. One that averages households vs one that averages individuals. Perez-Heydrich et al is the household, and Liu et al is the individual. Differences are described in Basse and Feller 2018 (JASA). Both option should be implemented. During the class initialization, should have some option like inference_level='household' and inference_level='individual' with an explanation in the documentation that this is only important if the group sizes are different.

Ultimately, the choice should be guided by what you want to infer from the data

pzivich commented 6 years ago

Household version: https://github.com/bsaul/inferference/blob/master/R/integrands.R Individual version: https://github.com/BarkleyBG/stabilizedinterference

pzivich commented 6 years ago

Also will add Network-TMLE to this branch. Need to decide on a name. Should have influence curve and parametric bootstrap options for CI (parametric CI seems to perform a little better in this paper).

Ideally, this class would be fed a network and extract the relevant information from the network by itself. I have some other functions in some simulations that can already do this. Will have to name the options (probably a list of options). Also need to allow custom specifications (like custom measures of centrality or the like).

https://arxiv.org/abs/1705.08527

Now part of Issue #29

pzivich commented 6 years ago

For integration, will be zepid.causal.interference. Within branch, will have structured and general for the two distinct formulations of interference.

pzivich commented 5 years ago

Due to various other requirements (statsmodels 0.10.0) and the less broad use-case for interference methods, this will become its own library. This applies to all interference causal inference methods