🍐
quince
Code for Quantifying Ignorance in Individual-Level Causal-Effect Estimates under Hidden Confounding
🍐
Installation
$ git clone [email protected]:anndvision/quince.git
$ cd quince
$ conda env create -f environment.yml
$ conda activate quince
🍐
Example: Replicating IHDP results
Step 1: Hyperparameter Tuning (optional)
Find the best hyperparameters using the tune
function, on a dataset like ihdp
for an ensemble
model.
$ quince \
tune \
--job-dir ~/experiments/quince/tuning/ \
--max-samples 500 \
--gpu-per-trial 0.2 \
ihdp \
ensemble
Step 2: Train ensembles over a number of trials
Here, we use the train
function to fit an ensemble
of mixture density networks on 10 realizations of the ihdp
with hidden confounding dataset. For the full results change --num-trials 1000
$ quince \
train \
--job-dir ~/experiments/quince/ \
--num-trials 10 \
--gpu-per-trial 0.2 \
ihdp \
ensemble \
--dim-hidden 200 \
--num-components 5 \
--depth 4 \
--negative-slope 0.3 \
--dropout-rate 0.5 \
--spectral-norm 6.0 \
--learning-rate 5e-4 \
--batch-size 200 \
--epochs 500 \
--ensemble-size 10
Step 3: Evaluate
Plots will be written to the experiment-dir
$ quince \
evaluate \
--experiment-dir ~/experiments/quince/ihdp/hc-True_beta-None/ensemble/dh-200_nc-5_dp-4_ns-0.3_dr-0.5_sn-6.0_lr-0.0005_bs-200_ep-500/ \
compute-intervals \
--gpu-per-trial 0.2 \
compute-intervals-kernel \
--gpu-per-trial 0.2 \
plot-deferral \
plot-errorbars \
--trial 0
🍐
Replicating Other Results
Simulated Data
$ quince \
train \
--job-dir ~/experiments/quince/ \
--num-trials 50 \
--gpu-per-trial 0.2 \
synthetic \
--gamma-star 1.65 \
ensemble \
--dim-hidden 200 \
--num-components 5 \
--depth 4 \
--negative-slope 0.0 \
--dropout-rate 0.1 \
--spectral-norm 6.0 \
--learning-rate 1e-3 \
--batch-size 32 \
--epochs 500 \
--ensemble-size 10
$ quince \
evaluate \
--experiment-dir ~/experiments/quince/synthetic/ne-1000_gs-1.65_th-4.00_be-0.75_si-1.00_dl-2.00/ensemble/dh-200_nc-5_dp-4_ns-0.0_dr-0.1_sn-6.0_lr-0.001_bs-32_ep-500/ \
compute-intervals \
--gpu-per-trial 0.2 \
compute-intervals-kernel \
--gpu-per-trial 0.2 \
plot-ignorance \
print-summary \
print-summary-kernel \
paired-t-test
Repeat the above for --gamma-star 2.72
and --gamma-star 4.48
.
HCMNIST
$ quince \
train \
--job-dir ~/experiments/quince/ \
--num-trials 20 \
--gpu-per-trial 0.5 \
hcmnist \
--gamma-star 1.65 \
ensemble \
--dim-hidden 200 \
--num-components 5 \
--depth 2 \
--negative-slope 0.0 \
--dropout-rate 0.15 \
--spectral-norm 3.0 \
--learning-rate 5e-4 \
--batch-size 200 \
--epochs 500 \
--ensemble-size 5
$ quince \
evaluate \
--experiment-dir ~/experiments/quince/hcmnist/gs-1.65_th-4.00_be-0.75_si-1.00_dl-2.00/ensemble/dh-200_nc-5_dp-2_ns-0.0_dr-0.15_sn-3.0_lr-0.0005_bs-200_ep-500/ \
compute-intervals \
--gpu-per-trial 1.0 \
print-summary
Repeat the above for --gamma-star 2.72
and --gamma-star 4.48
.