Skip to main content

Machine learning based causal inference/uplift in Python

Project description

  • Machine learning based causal inference/uplift in Python


PyPI Version Python Version GitHub

ApplicationIncluded Data and ExamplesContributeReferences

Installation

pip install causeinfer

Application

Causal inference algorithms:

1. Two Model Approach

  • Separate models for treatment and control groups are trained and combined to derive average treatment effects.
from causeinfer.standard_algorithms import TwoModel

two_model = TwoModel()
two_model.fit(X=X_train, y=y_train, w=w_train)

# Returns an array of predictions (treatment model, control model)
two_model_effects = two_model.predict(X=X_test)

2. Interaction Term Approach

  • An interaction term between treatment and covariates is added to the data to allow for a basic single model application (Lo, 2002).
from causeinfer.standard_algorithms import InteractionTerm

interaction_term = InteractionTerm()
interaction_term.fit(X=X_train, y=y_train, w=w_train)

# Returns an array of predictions (treatment interaction, control interaction)
interaction_term_effects = interaction_term.predict(X=X_test)

3. Class Transformation Approaches

  • Units are categorized into two or four classes to derive treatment effects from favorable class attributes (Lai, 2006; Kane, et al, 2014; Shaar, et al, 2016).
# Binary Class Transformation
from causeinfer.standard_algorithms import BinaryClassTransformation

bct = BinaryClassTransformation()
bct.fit(X=X_train, y=y_train, w=w_train)

# Returns an array of predictions (P(Affected Positive), P(Affected Negative))
bct_effects = bct.predict(X=X_test, regularize=True)
# Quaternary Class Transformation
from causeinfer.standard_algorithms import QuaternaryClassTransformation

qct = QuaternaryClassTransformation()
qct.fit(X=X_train, y=y_train, w=w_train)

# Returns an array of predictions (P(Affected Positive), P(Affected Negative))
qct_effects = qct.predict(X=X_test, regularize=True)

4. Generalized Random Forest (in progress)

  • A wrapper application of honest causalaity based splitting random forests - via the R/C++ grf (Athey, Tibshirani, and Wager, 2019).
# Example code in progress

Further Models to Consider

  • Under consideration for inclusion in CauseInfer:
    • Reflective and Pessimistic Uplift - Shaar, et al (2016)
    • The X-Learner - Kunzel, et al (2019)
    • The R-Learner - Nie and Wager (2017)
    • Double Machine Learning - Chernozhukov, et al (2018)
    • Information Theory Trees/Forests - Soltys, et al (2015)

Evaluation metrics:

1. Qini and AUUC Scores

Comparisons across stratefied, ordered treatment response groups are used to derive model efficiency.

2. GRF Confidence Intervals

Confidence intervals are created using GRF's honesty based, Gaussian assymptotic forest summations.

Included Data and Examples

Business Analytics

from causeinfer.data import hillstrom
hillstrom.download_hillstrom()
data_hillstrom = hillstrom.load_hillstrom(data_path="/datasets/hillstrom.csv",
                                          format_covariates=True, 
                                          normalize=True)

df = pd.DataFrame(data_hillstrom["dataset_full"], 
                  columns=data_hillstrom["dataset_full_names"])
  • Criterio Uplift
    • Download and formatting script in progress.
    • Example notebook to follow.

Medical Trials

from causeinfer.data import mayo_pbc
mayo_pbc.download_mayo_pbc()
data_mayo_pbc = mayo_pbc.load_mayo_pbc(data_path="/datasets/mayo_pbc.text",
                                       format_covariates=True, 
                                       normalize=True)

df = pd.DataFrame(data_mayo_pbc["dataset_full"], 
                  columns=data_mayo_pbc["dataset_full_names"])
  • Pintilie Tamoxifen
    • Accompanied the linked text, but is now unavailable. It is provided in the datasets directory for direct download.
    • Formatting script in progress.
    • Example notebook to follow.

Socio-economic Analysis

from causeinfer.data import cmf_micro
data_cmf_micro = cmf_micro.load_cmf_micro(data_path="/datasets/cmf_micro",
                                          format_covariates=True, 
                                          normalize=True)

df = pd.DataFrame(data_cmf_micro["dataset_full"], 
                  columns=data_cmf_micro["dataset_full_names"])

Simmulated Data

  • Work is currently being done to add a data generator, thus allowing for theoretical tests with known treatmet effects.
  • Example notebook to follow.

Contribute

  • Examples: share more applications
  • Issues: suggestions and improvements more than welcome!

Similar Packages

Similar packages/modules to CauseInfer

Python

Other Languages

References

Full list of theoretical references

Big Data and Machine Learning

  • Athey, S. (2017). Beyond prediction: Using big data for policy problems. Science, Vol. 355, No. 6324, February 3, 2017, pp. 483-485.
  • Athey, S. & Imbens, G. (2015). Machine Learning Methods for Estimating Heterogeneous Causal Effects. Draft version submitted April 5th, 2015, arXiv:1504.01132v1, pp. 1-25.
  • Athey, S. & Imbens, G. (2019). Machine Learning Methods That Economists Should Know About. Annual Review of Economics, Vol. 11, August 2019, pp. 685-725.
  • Chernozhukov, V. et al. (2018). Double/debiased machine learning for treatment and structural parameters. The Econometrics Journal, Vol. 21, No. 1, February 1, 2018, pp. C1–C68.
  • Mullainathan, S. & Spiess, J. (2017). Machine Learning: An Applied Econometric Approach. Journal of Economic Perspectives, Vol. 31, No. 2, Spring 2017, pp. 87-106.

Causal Inference

  • Athey, S. & Imbens, G. (2017). The State of Applied Econometrics: Causality and Policy Evaluation. Journal of Economic Perspectives, Vol. 31, No. 2, Spring 2017, pp. 3-32.
  • Athey, S., Tibshirani, J. & Wager, S. (2019) Generalized random forests. The Annals of Statistics, Vol. 47, No. 2 (2019), pp. 1148-1178.
  • Athey, S. & Wager, S. (2019). Efficient Policy Learning. Draft version submitted on 9 Feb 2017, last revised 16 Sep 2019, arXiv:1702.02896v5, pp. 1-10.
  • Banerjee, A, et al. (2015) The Miracle of Microfinance? Evidence from a Randomized Evaluation. American Economic Journal: Applied Economics, Vol. 7, No. 1, January 1, 2015, pp. 22-53.
  • Ding, P. & Li, F. (2018). Causal Inference: A Missing Data Perspective. Statistical Science, Vol. 33, No. 2, 2018, pp. 214-237.
  • Farrell, M., Liang, T. & Misra S. (2018). Deep Neural Networks for Estimation and Inference: Application to Causal Effects and Other Semiparametric Estimands. Draft version submitted December 2018, arXiv:1809.09953, pp. 1-54.
  • Gutierrez, P. & Gérardy, JY. (2016). Causal Inference and Uplift Modeling: A review of the literature. JMLR: Workshop and Conference Proceedings 67, 2016, pp. 1–14.
  • Hitsch, G J. & Misra, S. (2018). Heterogeneous Treatment Effects and Optimal Targeting Policy Evaluation. January 28, 2018, Available at SSRN: ssrn.com/abstract=3111957 or dx.doi.org/10.2139/ssrn.3111957, pp. 1-64.
  • Powers, S. et al. (2018). Some methods for heterogeneous treatment effect estimation in high dimensions. Statistics in Medicine, Vol. 37, No. 11, May 20, 2018, pp. 1767-1787.
  • Rosenbaum, P. & Rubin, D. (1983). The central role of the propensity score in observational studies for causal effects. Biometrika, Vol. 70, pp. 41-55.
  • Sekhon, J. (2007). The Neyman-Rubin Model of Causal Inference and Estimation via Matching Methods. The Oxford Handbook of Political Methodology, Winter 2017, pp. 1-46.
  • Wager, S. & Athey, S. (2018). Estimation and Inference of Heterogeneous Treatment Effects using Random Forests. Journal of the American Statistical Association, Vol. 113, 2018 - Issue 523, pp. 1228-1242.

Uplift

  • Devriendt, F. et al. (2018). A Literature Survey and Experimental Evaluation of the State-of-the-Art in Uplift Modeling: A Stepping Stone Toward the Development of Prescriptive Analytics. Big Data, Vol. 6, No. 1, March 1, 2018, pp. 1-29. Codes found at: data-lab.be/downloads.php.
  • Hansotia, B. & Rukstales, B. (2002). Incremental value modeling. Journal of Interactive Marketing, Vol. 16, No. 3, Summer 2002, pp. 35-46.
  • Haupt, J., Jacob, D., Gubela, R. & Lessmann, S. (2019). Affordable Uplift: Supervised Randomization in Controlled Experiments. Draft version submitted on October 1, 2019, arXiv:1910.00393v1, pp. 1-15.
  • Jaroszewicz, S. & Rzepakowski, P. (2014). Uplift modeling with survival data. Workshop on Health Informatics (HI-KDD) New York City, August 2014, pp. 1-8.
  • Jaśkowski, M. & Jaroszewicz, S. (2012). Uplift modeling for clinical trial data. In: ICML, 2012, Workshop on machine learning for clinical data analysis. Edinburgh, Scotland, June 2012, 1-8.
  • Kane, K., Lo, VSY. & Zheng, J. (2014). Mining for the truly responsive customers and prospects using true-lift modeling: Comparison of new and existing methods. Journal of Marketing Analytics, Vol. 2, No. 4, December 2014, pp 218–238.
  • Lai, L.Y.-T. (2006). Influential marketing: A new direct marketing strategy addressing the existence of voluntary buyers. Master of Science thesis, Simon Fraser University School of Computing Science, Burnaby, BC, Canada, pp. 1-68.
  • Lo, VSY. (2002). The true lift model: a novel data mining approach to response modeling in database marketing. SIGKDD Explor 4(2), pp. 78–86.
  • Lo, VSY. & Pachamanova, D. (2016). From predictive uplift modeling to prescriptive uplift analytics: A practical approach to treatment optimization while accounting for estimation risk. Journal of Marketing Analytics Vol. 3, No. 2, pp. 79–95.
  • Radcliffe N.J. & Surry, P.D. (1999). Differential response analysis: Modeling true response by isolating the effect of a single action. In Proceedings of Credit Scoring and Credit Control VI. Credit Research Centre, University of Edinburgh Management School.
  • Radcliffe N.J. & Surry, P.D. (2011). Real-World Uplift Modelling with Significance-Based Uplift Trees. Technical Report TR-2011-1, Stochastic Solutions, 2011, pp. 1-33.
  • Rzepakowski, P. & Jaroszewicz, S. (2012). Decision trees for uplift modeling with single and multiple treatments. Knowledge and Information Systems, Vol. 32, pp. 303–327.
  • Rzepakowski, P. & Jaroszewicz, S. (2012). Uplift modeling in direct marketing. Journal of Telecommunications and Information Technology, Vol. 2, 2012, pp. 43–50.
  • Rudaś, K. & Jaroszewicz, S. (2018). Linear regression for uplift modeling. Data Mining and Knowledge Discovery, Vol. 32, No. 5, September 2018, pp. 1275–1305.
  • Shaar, A., Abdessalem, T. and Segard, O (2016). “Pessimistic Uplift Modeling”. ACM SIGKDD, August 2016, San Francisco, California, USA.
  • Sołtys, M., Jaroszewicz, S. & Rzepakowski, P. (2015). Ensemble methods for uplift modeling. Data Mining and Knowledge Discovery, Vol. 29, No. 6, November 2015, pp. 1531–1559.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

causeinfer-0.0.4.3-py3-none-any.whl (166.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page