Casual Inference
Project description
Causal inference is an important component of the experiment evaluation. We highly recommend to have a look at the open-source book: Causal Inference for The Brave and True
Currently, azcausal provides two well-known and widely used causal inference methods: Difference-in-Difference (DID) and Synthetic Difference-in-Difference (SDID). Moreover, error estimates via Placebo, Boostrap, or JackKnife are available.
Installation
To install the current release, please execute:
pip install git+https://github.com/amazon-science/azcausal.git
Usage
from azcausal.core.error import JackKnife
from azcausal.core.panel import CausalPanel
from azcausal.data import CaliforniaProp99
from azcausal.estimators.panel.sdid import SDID
from azcausal.util import to_panels
# load an example data set with the columns Year, State, PacksPerCapita, treated.
df = CaliforniaProp99().df()
# create the panel data from the frame and define the causal types
data = to_panels(df, 'Year', 'State', ['PacksPerCapita', 'treated'])
ctypes = dict(outcome='PacksPerCapita', time='Year', unit='State', intervention='treated')
# initialize the panel
panel = CausalPanel(data).setup(**ctypes)
# initialize an estimator object, here synthetic difference in difference (sdid)
estimator = SDID()
# run the estimator
result = estimator.fit(panel)
# run the error validation method
estimator.error(result, JackKnife())
# plot the results
estimator.plot(result)
# print out information about the estimate
print(result.summary(title="CaliforniaProp99"))
╭──────────────────────────────────────────────────────────────────────────────╮
| CaliforniaProp99 |
├──────────────────────────────────────────────────────────────────────────────┤
| Panel |
| Time Periods: 31 (19/12) total (pre/post) |
| Units: 39 (38/1) total (contr/treat) |
├──────────────────────────────────────────────────────────────────────────────┤
| ATT |
| Effect (±SE): -15.60 (±2.9161) |
| Confidence Interval (95%): [-21.32 , -9.8884] (-) |
| Observed: 60.35 |
| Counter Factual: 75.95 |
├──────────────────────────────────────────────────────────────────────────────┤
| Percentage |
| Effect (±SE): -20.54 (±3.8393) |
| Confidence Interval (95%): [-28.07 , -13.02] (-) |
| Observed: 79.46 |
| Counter Factual: 100.00 |
├──────────────────────────────────────────────────────────────────────────────┤
| Cumulative |
| Effect (±SE): -187.25 (±34.99) |
| Confidence Interval (95%): [-255.83 , -118.66] (-) |
| Observed: 724.20 |
| Counter Factual: 911.45 |
╰──────────────────────────────────────────────────────────────────────────────╯
Estimators
Difference-in-Difference (DID): Simple implementation of the well-known Difference-in-Difference estimator.
Synthetic Difference-in-Difference (SDID): Arkhangelsky, Dmitry Athey, Susan Hirshberg, David A. Imbens, Guido W. Wager, Stefan Synthetic Difference-in-Differences American Economic Review 111 12 4088-4118 2021 10.1257/aer.20190159 https://www.aeaweb.org/articles?id=10.1257/aer.20190159. Implementation based on https://synth-inference.github.io/synthdid/
Contact
Feel free to contact me if you have any questions:
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file azcausal-0.2.1.tar.gz
.
File metadata
- Download URL: azcausal-0.2.1.tar.gz
- Upload date:
- Size: 245.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d85097fc64e9a4977ba0241bba18a3ee1cd287a554c62e959f27a2b09edf98f3 |
|
MD5 | f35c862441737e58bdbb383df8db5c4d |
|
BLAKE2b-256 | 1dda80b3d1240f166dbc762c27ffcad85e0cf80748281e3773ceee982d2f3174 |