--- a +++ b/README.md @@ -0,0 +1,104 @@ +# OutcomeWeights - Extending Treatment Effect Estimation + +## Overview + +This repository contains the implementation of **Task 2** for the Causal Machine Learning group assignment. The focus is on extending the functionality of the `OutcomeWeights` package to support additional treatment effect estimators, including ATT, ATU, Overlap, and LATE. The project also includes replication of balancing checks and numerical equivalence tests for the new estimators. + +## Repository Structure + +``` +OutcomeWeights-Extensions/ +│ +├── README.md # Overview of the project (this file) +├── LICENSE # License for the project +├── .gitignore # Files and folders to exclude from version control +├── data/ # Placeholder for datasets or details on accessing them +│ └── README.md # Instructions for dataset usage +├── notebooks/ # R notebooks for replication and analysis +│ ├── Notebook_Average.Rmd +│ ├── Notebook_Heterogeneous.Rmd +│ └── README.md # Descriptions of the notebooks +├── scripts/ # R scripts for estimator implementation +│ ├── Task2_StartingPoint.R +│ └── OutcomeWeights_Extensions.R +├── slides/ # Presentation slides summarizing findings +│ └── Task2_Pitch.pdf +├── docs/ # Additional documentation and references +│ └── references.md # Links to related research and materials +``` + +## Installation + +1. Clone this repository using HTTPS: + + ```bash + git clone https://github.com/PulkitT01/CausalML-OutcomeWeights-Extensions.git + ``` + +2. Install required R packages: + + ```R + install.packages(c("grf", "hdm", "OutcomeWeights")) + ``` + +3. Open the R notebooks or scripts to explore and run the analysis. + +## Objectives + +1. Extend the `OutcomeWeights` package to implement the following treatment effect estimators: + - **ATT** (Average Treatment Effect on the Treated) + - **ATU** (Average Treatment Effect on the Untreated) + - **Overlap** (Average Treatment Effect in the Overlap Region) + - **LATE** (Local Average Treatment Effect) +2. Replicate balancing checks for the new estimators to validate numerical equivalence. +3. Document challenges faced and solutions implemented. + +## Usage + +- **Scripts**: + + - `Task2_StartingPoint.R`: Provides the initial script for implementing additional estimators. + - `OutcomeWeights_Extensions.R`: Contains the completed implementation for ATT, ATU, Overlap, and LATE estimators. + +- **Notebooks**: + + - `Notebook_Average.Rmd` and `Notebook_Heterogeneous.Rmd`: Contain replication of treatment effect estimations for numerical validation. + +## Results + +The results demonstrate the successful implementation and replication of: + +1. **ATT (Average Treatment Effect on the Treated):** + - Numerical equivalence validated. +2. **ATU (Average Treatment Effect on the Untreated):** + - Numerical equivalence validated. +3. **Overlap (Average Treatment Effect in the Overlap Region):** + - Numerical equivalence validated. +4. **LATE (Local Average Treatment Effect):** + - Numerical equivalence validated. + +## Challenges and Solutions + +- **Reverse-engineering package functionalities:** Required detailed exploration of the `grf` and `OutcomeWeights` implementations to extend compatibility. +- **Adapting balancing checks:** Implemented custom residual-on-residual regression for the Overlap estimator. +- **Numerical equivalence:** Validated results through comparisons with package outputs and manual calculations. + +## References + +- [OutcomeWeights GitHub Repository](https://github.com/MCKnaus/OutcomeWeights) +- [Generalized Random Forests (grf)](https://github.com/grf-labs/grf) +- [Research Paper: "Treatment Effects as Weighted Outcomes"](https://doi.org/10.48550/arXiv.2411.11559) + +## License + +This project is licensed under the MIT License - see the `LICENSE` file for details. + +## Contact + +For questions or feedback, please contact: + +- **Pulkit Thukral** (*[pulkit.thukral@student.uni-tuebingen.de](mailto:pulkit.thukral@student.uni-tuebingen.de)*) +- **Jiha Kim** (*[jiha.kim@student.uni-tuebingen.de](mailto:jiha.kim@student.uni-tuebingen.de)*) +- **Sumitrra Bala Subramaniam** (*[sumitrra.bala-subramaniam@student.uni-tuebingen.de](mailto:sumitrra.bala-subramaniam@student.uni-tuebingen.de)*) +- **Timothy Leske** (*[timothy.leske@student.uni-tuebingen.de](mailto:timothy.leske@student.uni-tuebingen.de)*) +