]> code.communitydata.science - ml_measurement_error_public.git/blobdiff - simulations/Makefile
Unstash work on misclassification models
[ml_measurement_error_public.git] / simulations / Makefile
index feeeaa54dbc1f311152a9f44c026e3fca49c54d7..821280b52ddccd919787bc38b2ca385dc5a48917 100644 (file)
@@ -1,4 +1,4 @@
-
+.ONESHELL:
 SHELL=bash
 
 Ns=[1000, 5000, 10000]
 SHELL=bash
 
 Ns=[1000, 5000, 10000]
@@ -6,8 +6,9 @@ ms=[100, 200, 400]
 seeds=[$(shell seq -s, 1 500)]
 explained_variances=[0.1]
 
 seeds=[$(shell seq -s, 1 500)]
 explained_variances=[0.1]
 
-all:remembr.RDS remember_irr.RDS
-supplement: remember_robustness_misspec.RDS
+all:main supplement
+main:remembr.RDS 
+supplement:robustness_1.RDS robustness_1_dv.RDS robustness_2.RDS robustness_2_dv.RDS robustness_3.RDS robustness_3_dv.RDS robustness_3_proflik.RDS robustness_3_dv_proflik.RDS robustness_4.RDS robustness_4_dv.RDS 
 
 srun=sbatch --wait --verbose run_job.sbatch
 
 
 srun=sbatch --wait --verbose run_job.sbatch
 
@@ -24,26 +25,26 @@ joblists:example_1_jobs example_2_jobs example_3_jobs
 
 
 example_1_jobs: 01_two_covariates.R simulation_base.R grid_sweep.py pl_methods.R
 
 
 example_1_jobs: 01_two_covariates.R simulation_base.R grid_sweep.py pl_methods.R
-       sbatch --wait --verbose run_job.sbatch grid_sweep.py --command "Rscript 01_two_covariates.R" --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["example_1.feather"], "y_explained_variance":${explained_variances}, "Bzx":[1]}' --outfile example_1_jobs
+       ${srun} grid_sweep.py --command "Rscript 01_two_covariates.R" --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["example_1.feather"], "y_explained_variance":${explained_variances}, "Bzx":[1]}' --outfile example_1_jobs
 
 example_1.feather: example_1_jobs 
        rm -f example_1.feather
        sbatch --wait --verbose --array=1-1000  run_simulation.sbatch 0 example_1_jobs
 
 example_1.feather: example_1_jobs 
        rm -f example_1.feather
        sbatch --wait --verbose --array=1-1000  run_simulation.sbatch 0 example_1_jobs
-       sbatch --wait --verbose --array=1001-2000  run_simulation.sbatch 0 example_1_jobs
+       sbatch --wait --verbose --array=1001-2000 run_simulation.sbatch 0 example_1_jobs
        sbatch --wait --verbose --array=2001-3000  run_simulation.sbatch 0 example_1_jobs
        sbatch --wait --verbose --array=3001-4000  run_simulation.sbatch 0 example_1_jobs
        sbatch --wait --verbose --array=4001-$(shell cat example_1_jobs | wc -l)  run_simulation.sbatch 0 example_1_jobs
 
 example_2_jobs: 02_indep_differential.R simulation_base.R grid_sweep.py pl_methods.R
        sbatch --wait --verbose --array=2001-3000  run_simulation.sbatch 0 example_1_jobs
        sbatch --wait --verbose --array=3001-4000  run_simulation.sbatch 0 example_1_jobs
        sbatch --wait --verbose --array=4001-$(shell cat example_1_jobs | wc -l)  run_simulation.sbatch 0 example_1_jobs
 
 example_2_jobs: 02_indep_differential.R simulation_base.R grid_sweep.py pl_methods.R
-       sbatch --wait --verbose run_job.sbatch grid_sweep.py --command "Rscript 02_indep_differential.R" --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["example_2.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y*z*x"]}' --outfile example_2_jobs
+       sbatch --wait --verbose run_job.sbatch grid_sweep.py --command "Rscript 02_indep_differential.R" --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["example_2.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+z+x"]}' --outfile example_2_jobs
 
 example_2.feather: example_2_jobs 
        rm -f example_2.feather
        sbatch --wait --verbose --array=1-1000  run_simulation.sbatch 0 example_2_jobs
 
 example_2.feather: example_2_jobs 
        rm -f example_2.feather
        sbatch --wait --verbose --array=1-1000  run_simulation.sbatch 0 example_2_jobs
-       sbatch --wait --verbose --array=1001-2000  run_simulation.sbatch 0 example_2_jobs
+       sbatch --wait --verbose --array=1001-2000 run_simulation.sbatch 0 example_2_jobs
        sbatch --wait --verbose --array=2001-3000  run_simulation.sbatch 0 example_2_jobs
        sbatch --wait --verbose --array=3001-4000  run_simulation.sbatch 0 example_2_jobs
        sbatch --wait --verbose --array=2001-3000  run_simulation.sbatch 0 example_2_jobs
        sbatch --wait --verbose --array=3001-4000  run_simulation.sbatch 0 example_2_jobs
-       sbatch --wait --verbose --array=4001-$(shell cat example_2_jobs | wc -l)  run_simulation.sbatch 0 example_2_jobs
+       sbatch --wait --verbose --array=4001-$(shell cat example_2_jobs | wc -l)
 
 
 # example_2_B_jobs: example_2_B.R
 
 
 # example_2_B_jobs: example_2_B.R
@@ -54,23 +55,24 @@ example_2.feather: example_2_jobs
 #      sbatch --wait --verbose --array=1-3000 run_simulation.sbatch 0 example_2_B_jobs
 
 example_3_jobs: 03_depvar.R simulation_base.R grid_sweep.py pl_methods.R
 #      sbatch --wait --verbose --array=1-3000 run_simulation.sbatch 0 example_2_B_jobs
 
 example_3_jobs: 03_depvar.R simulation_base.R grid_sweep.py pl_methods.R
-       sbatch --wait --verbose run_job.sbatch grid_sweep.py --command "Rscript 03_depvar.R" --arg_dict '{"N":${Ns},"m":${ms}, "Bxy":[0.7],"Bzy":[-0.7],"seed":${seeds}, "outfile":["example_3.feather"], "y_explained_variance":${explained_variances}}' --outfile example_3_jobs
+       sbatch --wait --verbose run_job.sbatch grid_sweep.py --command "Rscript 03_depvar.R" --arg_dict '{"N":${Ns},"m":${ms}, "Bxy":[0.7],"Bzy":[-0.7],"Bzx":[1],"seed":${seeds}, "outfile":["example_3.feather"], "y_explained_variance":${explained_variances}}' --outfile example_3_jobs
 
 example_3.feather: example_3_jobs
        rm -f example_3.feather 
        sbatch --wait --verbose --array=1-1000  run_simulation.sbatch 0 example_3_jobs
 
 example_3.feather: example_3_jobs
        rm -f example_3.feather 
        sbatch --wait --verbose --array=1-1000  run_simulation.sbatch 0 example_3_jobs
-       sbatch --wait --verbose --array=1001-2000  run_simulation.sbatch 0 example_3_jobs
-       sbatch --wait --verbose --array=2001-3000  run_simulation.sbatch 0 example_3_jobs
+       sbatch --wait --verbose --array=1001-2000 run_simulation.sbatch 0 example_3_jobs
+        sbatch --wait --verbose --array=2001-3000  run_simulation.sbatch 0 example_3_jobs
        sbatch --wait --verbose --array=3001-4000  run_simulation.sbatch 0 example_3_jobs
        sbatch --wait --verbose --array=4001-$(shell cat example_3_jobs | wc -l)  run_simulation.sbatch 0 example_3_jobs
 
 example_4_jobs: 04_depvar_differential.R simulation_base.R grid_sweep.py pl_methods.R
        sbatch --wait --verbose --array=3001-4000  run_simulation.sbatch 0 example_3_jobs
        sbatch --wait --verbose --array=4001-$(shell cat example_3_jobs | wc -l)  run_simulation.sbatch 0 example_3_jobs
 
 example_4_jobs: 04_depvar_differential.R simulation_base.R grid_sweep.py pl_methods.R
-       sbatch --wait --verbose run_job.sbatch grid_sweep.py --command "Rscript 04_depvar_differential.R" --arg_dict '{"N":${Ns},"Bxy":[0.7],"Bzy":[-0.7],"m":${ms}, "seed":${seeds}, "outfile":["example_4.feather"], "z_bias":[0.5]}' --outfile example_4_jobs
+       sbatch --wait --verbose run_job.sbatch grid_sweep.py --command "Rscript 04_depvar_differential.R" --arg_dict '{"N":${Ns},"Bxy":[0.7],"Bzy":[-0.7],"Bzx":[1], "m":${ms}, "seed":${seeds}, "outfile":["example_4.feather"], "z_bias":[-0.5], "prediction_accuracy":[0.73]}' --outfile example_4_jobs
 
 example_4.feather: example_4_jobs
 
 example_4.feather: example_4_jobs
-       rm -f example_4.feather 
+       rm -f example_4.feather
        sbatch --wait --verbose --array=1-1000  run_simulation.sbatch 0 example_4_jobs
        sbatch --wait --verbose --array=1001-2000  run_simulation.sbatch 0 example_4_jobs
        sbatch --wait --verbose --array=1-1000  run_simulation.sbatch 0 example_4_jobs
        sbatch --wait --verbose --array=1001-2000  run_simulation.sbatch 0 example_4_jobs
+       sbatch --wait --verbose --array=2001-3001 run_simulation.sbatch 0 example_4_jobs
        sbatch --wait --verbose --array=2001-3000  run_simulation.sbatch 0 example_4_jobs
        sbatch --wait --verbose --array=3001-4000  run_simulation.sbatch 0 example_4_jobs
        sbatch --wait --verbose --array=4001-$(shell cat example_4_jobs | wc -l)  run_simulation.sbatch 0 example_4_jobs
        sbatch --wait --verbose --array=2001-3000  run_simulation.sbatch 0 example_4_jobs
        sbatch --wait --verbose --array=3001-4000  run_simulation.sbatch 0 example_4_jobs
        sbatch --wait --verbose --array=4001-$(shell cat example_4_jobs | wc -l)  run_simulation.sbatch 0 example_4_jobs
@@ -85,273 +87,313 @@ remembr.RDS:example_1.feather example_2.feather example_3.feather example_4.feat
        ${srun} Rscript plot_dv_example.R --infile example_4.feather --name "plot.df.example.4"
 
 
        ${srun} Rscript plot_dv_example.R --infile example_4.feather --name "plot.df.example.4"
 
 
-irr_Ns = [1000]
-irr_ms = [150,300,600]
-irr_seeds=${seeds}
-irr_explained_variances=${explained_variances}
-irr_coder_accuracy=[0.80]
-
-example_5_jobs: 05_irr_indep.R irr_simulation_base.R grid_sweep.py pl_methods.R measerr_methods.R
-       sbatch --wait --verbose run_job.sbatch grid_sweep.py --command "Rscript 05_irr_indep.R" --arg_dict '{"N":${irr_Ns},"m":${irr_ms}, "seed":${irr_seeds}, "outfile":["example_5.feather"], "y_explained_variance":${irr_explained_variances}, "coder_accuracy":${irr_coder_accuracy}}' --outfile example_5_jobs
-
-example_5.feather:example_5_jobs
-       rm -f example_5.feather
-       sbatch --wait --verbose --array=1-1000  run_simulation.sbatch 0 example_5_jobs
-       sbatch --wait --verbose --array=1001-$(shell cat example_5_jobs | wc -l)  run_simulation.sbatch 1000 example_5_jobs
-       # sbatch --wait --verbose --array=2001-3000  run_simulation.sbatch 2000 example_5_jobs
-       # sbatch --wait --verbose --array=3001-4000  run_simulation.sbatch 3000 example_5_jobs
-       # sbatch --wait --verbose --array=2001-$(shell cat example_5_jobs | wc -l)  run_simulation.sbatch 4000 example_5_jobs
-
-
-
-# example_6_jobs: 06_irr_dv.R irr_dv_simulation_base.R grid_sweep.py pl_methods.R
-#      sbatch --wait --verbose run_job.sbatch grid_sweep.py --command "Rscript 06_irr_dv.R" --arg_dict '{"N":${irr_Ns},"m":${irr_ms}, "seed":${irr_seeds}, "outfile":["example_6.feather"], "y_explained_variance":${irr_explained_variances},"coder_accuracy":${irr_coder_accuracy}}' --outfile example_6_jobs
-
-# example_6.feather:example_6_jobs
-#      rm -f example_6.feather
-#      sbatch --wait --verbose --array=1-1000  run_simulation.sbatch 0 example_6_jobs
-#      sbatch --wait --verbose --array=1001-2000  run_simulation.sbatch 1000 example_6_jobs
-#      sbatch --wait --verbose --array=2001-$(shell cat example_6_jobs | wc -l)  run_simulation.sbatch 2000 example_6_jobs
-
+START=0
+STEP=1000
+ONE=1
 
 
-remember_irr.RDS: example_5.feather plot_irr_example.R plot_irr_dv_example.R summarize_estimator.R
-       rm -f remember_irr.RDS
-       sbatch --wait --verbose run_job.sbatch Rscript plot_irr_example.R --infile example_5.feather --name "plot.df.example.5"
-#      sbatch --wait --verbose run_job.sbatch Rscript plot_irr_dv_example.R --infile example_6.feather --name "plot.df.example.6"
+robustness_Ns=[1000,5000]
+robustness_robustness_ms=[100,200]
 
 
+#in robustness 1 / example 2 misclassification is correlated with Y.
+robustness_1_jobs_p1: 02_indep_differential.R simulation_base.R grid_sweep.py
+       sbatch --wait --verbose run_job.sbatch grid_sweep.py --command "Rscript 02_indep_differential.R" --arg_dict '{"N":[1000],"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_1.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3,0],"Bxy":[0.3],"Bzx":[1,0], "outcome_formula":["y~x+z"], "z_bias":[0, 0.5], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~1"]}' --outfile robustness_1_jobs_p1
 
 
-robustness_1_jobs: 02_indep_differential.R simulation_base.R grid_sweep.py
-       sbatch --wait --verbose run_job.sbatch grid_sweep.py --command "Rscript 02_indep_differential.R" --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_1.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~1"]}' --outfile robustness_1_jobs
+robustness_1_jobs_p2: 02_indep_differential.R simulation_base.R grid_sweep.py
+       sbatch --wait --verbose run_job.sbatch grid_sweep.py --command "Rscript 02_indep_differential.R" --arg_dict '{"N":[5000],"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_1.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3,0],"Bxy":[0.3],"Bzx":[1,0], "outcome_formula":["y~x+z"], "z_bias":[0, 0.5], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~1"]}' --outfile robustness_1_jobs_p2
 
 
+robustness_1.feather: robustness_1_jobs_p1 robustness_1_jobs_p2
+       rm -f $@
+       $(eval END_1!=cat robustness_1_jobs_p1 | wc -l)
+       $(eval ITEROBUSTNESS_MS_1!=seq $(START) $(STEP) $(END_1))
+       $(eval END_2!=cat robustness_1_jobs_p2 | wc -l)
+       $(eval ITEROBUSTNESS_MS_2!=seq $(START) $(STEP) $(END_2))
 
 
-robustness_1.feather: robustness_1_jobs
-       rm -f robustness_1.feather
-       sbatch --wait --verbose --array=1-1000  run_simulation.sbatch 0 robustness_1_jobs
-       sbatch --wait --verbose --array=1001-2000  run_simulation.sbatch 0 robustness_1_jobs
-       sbatch --wait --verbose --array=2001-3000  run_simulation.sbatch 0 robustness_1_jobs
-       sbatch --wait --verbose --array=3001-4000  run_simulation.sbatch 0 robustness_1_jobs
-       sbatch --wait --verbose --array=4001-$(shell cat robustness_1_jobs | wc -l)  run_simulation.sbatch 0 robustness_1_jobs
+       $(foreach item,$(ITEMS_1),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_1_jobs_p1;)
+       $(foreach item,$(ITEMS_2),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_1_jobs_p2;)
 
 
-robustness_1.RDS: robustness_1.feather
+robustness_1.RDS: robustness_1.feather summarize_estimator.R
        rm -f robustness_1.RDS
        ${srun} Rscript plot_example.R --infile $< --name "robustness_1" --remember-file $@
 
        rm -f robustness_1.RDS
        ${srun} Rscript plot_example.R --infile $< --name "robustness_1" --remember-file $@
 
-robustness_1_dv_jobs: simulation_base.R 04_depvar_differential.R grid_sweep.py
-       ${srun} bash -c "source ~/.bashrc && grid_sweep.py --command 'Rscript 04_depvar_differential.R' --arg_dict \"{'N':${Ns},'m':${ms}, 'seed':${seeds}, 'outfile':['robustness_1_dv.feather'], 'y_explained_variance':${explained_variances}, 'proxy_formula':['w_pred~y']}\" --outfile robustness_1_dv_jobs"
-
-
-robustness_1_dv.feather: robustness_1_dv_jobs
-       rm -f robustness_1_dv.feather
-       sbatch --wait --verbose --array=1-$(shell cat example_3_jobs | wc -l)  run_simulation.sbatch 0 robustness_1_dv_jobs
+# when Bzy is 0 and zbias is not zero, we have the case where P(W|Y,X,Z) has an omitted variable that is conditionanlly independent from Y.  Note that X and Z are independent in this scenario.
+robustness_1_dv_jobs_p1: simulation_base.R 04_depvar_differential.R grid_sweep.py
+       ${srun} grid_sweep.py --command 'Rscript 04_depvar_differential.R' --arg_dict '{"N":[1000],"Bzx":[1], "Bxy":[0.7,0],"Bzy":[-0.7,0],"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_1_dv.feather"], "proxy_formula":["w_pred~y"],"z_bias":[-0.5]}' --outfile robustness_1_dv_jobs_p1
 
 
+robustness_1_dv_jobs_p2: simulation_base.R 04_depvar_differential.R grid_sweep.py
+       ${srun} grid_sweep.py --command 'Rscript 04_depvar_differential.R' --arg_dict '{"N":[5000],"Bzx":[1], "Bxy":[0.7,0],"Bzy":[-0.7,0],"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_1_dv.feather"], "proxy_formula":["w_pred~y"],"z_bias":[-0.5]}' --outfile robustness_1_dv_jobs_p2
 
 
-robustness_1_dv.RDS: robustness_1_dv.feather
+robustness_1_dv.feather: robustness_1_dv_jobs_p1 robustness_1_dv_jobs_p2
        rm -f $@
        rm -f $@
-       ${srun} Rscript plot_dv_example.R --infile $< --name "robustness_1_dv" --outfile $@
+       $(eval END_1!=cat robustness_1_dv_jobs_p1 | wc -l)
+       $(eval ITEMS_1!=seq $(START) $(STEP) $(END_1))
+       $(eval END_2!=cat robustness_1_dv_jobs_p2 | wc -l)
+       $(eval ITEMS_2!=seq $(START) $(STEP) $(END_1))
+       $(foreach item,$(ITEMS_1),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_1_dv_jobs_p1;)
+       $(foreach item,$(ITEMS_2),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_1_dv_jobs_p2;)
+
+robustness_1_dv.RDS: robustness_1_dv.feather summarize_estimator.R
+       rm -f $@
+       ${srun} Rscript plot_dv_example.R --infile $< --name "robustness_1_dv" --remember-file $@
 
 
 robustness_2_jobs_p1: grid_sweep.py 01_two_covariates.R simulation_base.R grid_sweep.py
        rm -f $@
 
 
 robustness_2_jobs_p1: grid_sweep.py 01_two_covariates.R simulation_base.R grid_sweep.py
        rm -f $@
-       ${srun} $< --command 'Rscript 01_two_covariates.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_2.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.60,0.65]}' --outfile $@
+       ${srun} $< --command 'Rscript 01_two_covariates.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_2.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.60,0.65]}' --outfile $@
 
 robustness_2_jobs_p2: grid_sweep.py 01_two_covariates.R simulation_base.R grid_sweep.py
        rm -f $@
 
 robustness_2_jobs_p2: grid_sweep.py 01_two_covariates.R simulation_base.R grid_sweep.py
        rm -f $@
-       ${srun} $< --command 'Rscript 01_two_covariates.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_2.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.70,0.75]}' --outfile $@
+       ${srun} $< --command 'Rscript 01_two_covariates.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_2.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.70,0.75]}' --outfile $@
 
 robustness_2_jobs_p3: grid_sweep.py 01_two_covariates.R simulation_base.R grid_sweep.py
        rm -f $@
 
 robustness_2_jobs_p3: grid_sweep.py 01_two_covariates.R simulation_base.R grid_sweep.py
        rm -f $@
-       ${srun} $< --command 'Rscript 01_two_covariates.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_2.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.80,0.85]}' --outfile $@
+       ${srun} $< --command 'Rscript 01_two_covariates.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_2.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.80,0.85]}' --outfile $@
 
 robustness_2_jobs_p4: grid_sweep.py 01_two_covariates.R simulation_base.R grid_sweep.py
        rm -f $@
 
 robustness_2_jobs_p4: grid_sweep.py 01_two_covariates.R simulation_base.R grid_sweep.py
        rm -f $@
-       ${srun} $< --command 'Rscript 01_two_covariates.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_2.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.90,0.95]}' --outfile $@
-
-START=0
-END_1=$(shell cat robustness_2_jobs_p1 | wc -l)
-END_2=$(shell cat robustness_2_jobs_p2 | wc -l)
-END_3=$(shell cat robustness_2_jobs_p3 | wc -l)
-END_4=$(shell cat robustness_2_jobs_p4 | wc -l)
-STEP=1000
-ONE=1
-ITEMS_1=$(shell seq $(START) $(STEP) $(END_1))
-ITEMS_2=$(shell seq $(START) $(STEP) $(END_2))
-ITEMS_3=$(shell seq $(START) $(STEP) $(END_3))
-ITEMS_4=$(shell seq $(START) $(STEP) $(END_4))
+       ${srun} $< --command 'Rscript 01_two_covariates.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_2.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.90,0.95]}' --outfile $@
 
 robustness_2.feather: robustness_2_jobs_p1 robustness_2_jobs_p2 robustness_2_jobs_p3 robustness_2_jobs_p4
 
 robustness_2.feather: robustness_2_jobs_p1 robustness_2_jobs_p2 robustness_2_jobs_p3 robustness_2_jobs_p4
-       $(foreach item,$(ITEMS_1),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_2_jobs_p1)
+       rm $@
+       $(eval END_1!=cat robustness_2_jobs_p1 | wc -l)
+       $(eval ITEMS_1!=seq $(START) $(STEP) $(END_1))
+       $(eval END_2!=cat robustness_2_jobs_p2 | wc -l)
+       $(eval ITEMS_2!=seq $(START) $(STEP) $(END_2))
+       $(eval END_3!=cat robustness_2_jobs_p3 | wc -l)
+       $(eval ITEMS_3!=seq $(START) $(STEP) $(END_3))
+       $(eval END_4!=cat robustness_2_jobs_p4 | wc -l)
+       $(eval ITEMS_4!=seq $(START) $(STEP) $(END_4))
+
+       $(foreach item,$(ITEMS_1),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_2_jobs_p1;)
        $(foreach item,$(ITEMS_2),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_2_jobs_p2;)
        $(foreach item,$(ITEMS_3),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_2_jobs_p3;)
        $(foreach item,$(ITEMS_4),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_2_jobs_p4;)
 
        $(foreach item,$(ITEMS_2),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_2_jobs_p2;)
        $(foreach item,$(ITEMS_3),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_2_jobs_p3;)
        $(foreach item,$(ITEMS_4),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_2_jobs_p4;)
 
+robustness_2.RDS: plot_example.R robustness_2.feather summarize_estimator.R
+       rm -f $@
+       ${srun} Rscript $< --infile $(word 2, $^) --name "robustness_2" --remember-file $@
 
 robustness_2_dv_jobs_p1: grid_sweep.py 03_depvar.R simulation_base.R grid_sweep.py
        rm -f $@
 
 robustness_2_dv_jobs_p1: grid_sweep.py 03_depvar.R simulation_base.R grid_sweep.py
        rm -f $@
-       ${srun} $< --command 'Rscript 03_depvar.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_2.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3], "outcome_formula":["y~x+z"], "prediction_accuracy":[0.60,0.65]}' --outfile $@
+       ${srun} $< --command 'Rscript 03_depvar.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_2_dv.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1], "outcome_formula":["y~x+z"], "prediction_accuracy":[0.60,0.65]}' --outfile $@
 
 robustness_2_dv_jobs_p2: grid_sweep.py 03_depvar.R simulation_base.R grid_sweep.py
        rm -f $@
 
 robustness_2_dv_jobs_p2: grid_sweep.py 03_depvar.R simulation_base.R grid_sweep.py
        rm -f $@
-       ${srun} $< --command 'Rscript 03_depvar.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_2.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3], "outcome_formula":["y~x+z"], "prediction_accuracy":[0.70,0.75]}' --outfile $@
+       ${srun} $< --command 'Rscript 03_depvar.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_2_dv.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1], "outcome_formula":["y~x+z"], "prediction_accuracy":[0.70,0.75]}' --outfile $@
 
 robustness_2_dv_jobs_p3: grid_sweep.py 03_depvar.R simulation_base.R grid_sweep.py
        rm -f $@
 
 robustness_2_dv_jobs_p3: grid_sweep.py 03_depvar.R simulation_base.R grid_sweep.py
        rm -f $@
-       ${srun} $< --command 'Rscript 03_depvar.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_2.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3], "outcome_formula":["y~x+z"], "prediction_accuracy":[0.80,0.85]}' --outfile $@
+       ${srun} $< --command 'Rscript 03_depvar.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_2_dv.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1], "outcome_formula":["y~x+z"], "prediction_accuracy":[0.80,0.85]}' --outfile $@
 
 robustness_2_dv_jobs_p4: grid_sweep.py 03_depvar.R simulation_base.R grid_sweep.py
        rm -f $@
 
 robustness_2_dv_jobs_p4: grid_sweep.py 03_depvar.R simulation_base.R grid_sweep.py
        rm -f $@
-       ${srun} $< --command 'Rscript 01_two_covariates.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_2.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3], "outcome_formula":["y~x+z"], "prediction_accuracy":[0.90,0.95]}' --outfile $@
-
-START=0
-END_1=$(shell cat robustness_2_dv_jobs_p1 | wc -l)
-END_2=$(shell cat robustness_2_dv_jobs_p2 | wc -l)
-END_3=$(shell cat robustness_2_dv_jobs_p3 | wc -l)
-END_4=$(shell cat robustness_2_dv_jobs_p4 | wc -l)
-STEP=1000
-ONE=1
-ITEMS_1=$(shell seq $(START) $(STEP) $(END_1))
-ITEMS_2=$(shell seq $(START) $(STEP) $(END_2))
-ITEMS_3=$(shell seq $(START) $(STEP) $(END_3))
-ITEMS_4=$(shell seq $(START) $(STEP) $(END_4))
+       ${srun} $< --command 'Rscript 03_depvar.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_2_dv.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1], "outcome_formula":["y~x+z"], "prediction_accuracy":[0.90,0.95]}' --outfile $@
 
 robustness_2_dv.feather: robustness_2_dv_jobs_p1 robustness_2_dv_jobs_p2 robustness_2_dv_jobs_p3 robustness_2_dv_jobs_p4
 
 robustness_2_dv.feather: robustness_2_dv_jobs_p1 robustness_2_dv_jobs_p2 robustness_2_dv_jobs_p3 robustness_2_dv_jobs_p4
-       $(foreach item,$(ITEMS_1),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_2_dv_jobs_p1)
+       rm -f $@
+       $(eval END_1!=cat robustness_2_dv_jobs_p1 | wc -l)
+       $(eval ITEMS_1!=seq $(START) $(STEP) $(END_1))
+       $(eval END_2!=cat robustness_2_dv_jobs_p2 | wc -l)
+       $(eval ITEMS_2!=seq $(START) $(STEP) $(END_2))
+       $(eval END_3!=cat robustness_2_dv_jobs_p3 | wc -l)
+       $(eval ITEMS_3!=seq $(START) $(STEP) $(END_3))
+       $(eval END_4!=cat robustness_2_dv_jobs_p4 | wc -l)
+       $(eval ITEMS_4!=seq $(START) $(STEP) $(END_4))
+
+       $(foreach item,$(ITEMS_1),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_2_dv_jobs_p1;)
        $(foreach item,$(ITEMS_2),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_2_dv_jobs_p2;)
        $(foreach item,$(ITEMS_3),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_2_dv_jobs_p3;)
        $(foreach item,$(ITEMS_4),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_2_dv_jobs_p4;)
 
        $(foreach item,$(ITEMS_2),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_2_dv_jobs_p2;)
        $(foreach item,$(ITEMS_3),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_2_dv_jobs_p3;)
        $(foreach item,$(ITEMS_4),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_2_dv_jobs_p4;)
 
+robustness_2_dv.RDS: plot_dv_example.R robustness_2_dv.feather summarize_estimator.R
+       rm -f $@
+       ${srun} Rscript $< --infile $(word 2, $^) --name "robustness_2_dv" --remember-file $@
+
+
+robustness_3_proflik_jobs: grid_sweep.py 01_two_covariates.R simulation_base.R grid_sweep.py
+       rm -f $@
+       ${srun} $< --command 'Rscript 01_two_covariates.R'  --arg_dict '{"N":[1000],"m":[100], "seed":${seeds}, "outfile":["robustness_3_proflik.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1],"Px":[0.5,0.6,0.7,0.8,0.9,0.95], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.85], "confint_method":['spline']}' --outfile $@
+
+robustness_3_proflik.feather: robustness_3_proflik_jobs
+       rm -f $@
+       $(eval END_1!=cat robustness_3_proflik_jobs | wc -l)
+       $(eval ITEMS_1!=seq $(START) $(STEP) $(END_1))
+       $(foreach item,$(ITEMS_1),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_3_proflik_jobs;)
+
+robustness_3_proflik.RDS: plot_example.R robustness_3_proflik.feather summarize_estimator.R
+       rm -f $@
+       ${srun} Rscript $< --infile $(word 2, $^) --name "robustness_3_proflik" --remember-file $@
 
 
 robustness_3_jobs_p1: grid_sweep.py 01_two_covariates.R simulation_base.R grid_sweep.py
        rm -f $@
 
 
 robustness_3_jobs_p1: grid_sweep.py 01_two_covariates.R simulation_base.R grid_sweep.py
        rm -f $@
-       ${srun} $< --command 'Rscript 01_two_covariates.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_3.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3],"Px":[0.5,0.6], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.85]}' --outfile $@
+       ${srun} $< --command 'Rscript 01_two_covariates.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_3.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1],"Px":[0.5,0.6], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.85]}' --outfile $@
 
 robustness_3_jobs_p2: grid_sweep.py 01_two_covariates.R simulation_base.R grid_sweep.py
        rm -f $@
 
 robustness_3_jobs_p2: grid_sweep.py 01_two_covariates.R simulation_base.R grid_sweep.py
        rm -f $@
-       ${srun} $< --command 'Rscript 01_two_covariates.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_3.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3],"Px":[0.7,0.8], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.85]}' --outfile $@
+       ${srun} $< --command 'Rscript 01_two_covariates.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_3.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1],"Px":[0.7,0.8], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.85]}' --outfile $@
 
 robustness_3_jobs_p3: grid_sweep.py 01_two_covariates.R simulation_base.R grid_sweep.py
        rm -f $@
 
 robustness_3_jobs_p3: grid_sweep.py 01_two_covariates.R simulation_base.R grid_sweep.py
        rm -f $@
-       ${srun} $< --command 'Rscript 01_two_covariates.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_3.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3],"Px":[0.9,0.95], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.85]}' --outfile $@
-
-START=0
-END_1=$(shell cat robustness_3_jobs_p1 | wc -l)
-END_2=$(shell cat robustness_3_jobs_p2 | wc -l)
-END_3=$(shell cat robustness_3_jobs_p3 | wc -l)
-
-STEP=1000
-ONE=1
-ITEMS_1=$(shell seq $(START) $(STEP) $(END_1))
-ITEMS_2=$(shell seq $(START) $(STEP) $(END_2))
-ITEMS_3=$(shell seq $(START) $(STEP) $(END_3))
+       ${srun} $< --command 'Rscript 01_two_covariates.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_3.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1],"Px":[0.9,0.95], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.85]}' --outfile $@
 
 robustness_3.feather: robustness_3_jobs_p1 robustness_3_jobs_p2 robustness_3_jobs_p3
 
 robustness_3.feather: robustness_3_jobs_p1 robustness_3_jobs_p2 robustness_3_jobs_p3
-       $(foreach item,$(ITEMS_1),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_3_jobs_p1)
+       rm -f $@
+       $(eval END_1!=cat robustness_3_jobs_p1 | wc -l)
+       $(eval ITEMS_1!=seq $(START) $(STEP) $(END_1))
+       $(eval END_2!=cat robustness_3_jobs_p2 | wc -l)
+       $(eval ITEMS_2!=seq $(START) $(STEP) $(END_2))
+       $(eval END_3!=cat robustness_3_jobs_p3 | wc -l)
+       $(eval ITEMS_3!=seq $(START) $(STEP) $(END_3))
+
+       $(foreach item,$(ITEMS_1),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_3_jobs_p1;)
        $(foreach item,$(ITEMS_2),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_3_jobs_p2;)
        $(foreach item,$(ITEMS_3),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_3_jobs_p3;)
 
        $(foreach item,$(ITEMS_2),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_3_jobs_p2;)
        $(foreach item,$(ITEMS_3),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_3_jobs_p3;)
 
+robustness_3.RDS: plot_example.R robustness_3.feather summarize_estimator.R
+       rm -f $@
+       ${srun} Rscript $< --infile $(word 2, $^) --name "robustness_3" --remember-file $@
 
 
-robustness_3_dv_jobs_p1: grid_sweep.py 03_depvar.R simulation_base.R grid_sweep.py
+robustness_3_dv_proflik_jobs: grid_sweep.py 03_depvar.R simulation_base.R grid_sweep.py
        rm -f $@
        rm -f $@
-       ${srun} $< --command 'Rscript 03_depvar.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_3.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3],"B0":[0.5,0.6], "outcome_formula":["y~x+z"], "prediction_accuracy":[0.85]}' --outfile $@
+       ${srun} $< --command 'Rscript 03_depvar.R'  --arg_dict '{"N":[1000],"m":[100], "seed":${seeds}, "outfile":["robustness_3_dv_proflik.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1],"B0":[0,0.405,0.846,1.386,2.197,2.944], "outcome_formula":["y~x+z"], "prediction_accuracy":[0.85],"confint_method":['spline']}' --outfile $@
 
 
-robustness_3_dv_jobs_p2: grid_sweep.py 03_depvar.R simulation_base.R grid_sweep.py
+robustness_3_dv_proflik.feather: robustness_3_dv_proflik_jobs
        rm -f $@
        rm -f $@
-       ${srun} $< --command 'Rscript 03_depvar.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_3.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3],"B0":[0.7,0.8], "outcome_formula":["y~x+z"], "prediction_accuracy":[0.85]}' --outfile $@
+       $(eval END_1!=cat robustness_3_dv_proflik_jobs | wc -l)
+       $(eval ITEMS_1!=seq $(START) $(STEP) $(END_1))
+       $(foreach item,$(ITEMS_1),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_3_dv_proflik_jobs;)
 
 
-robustness_3_dv_jobs_p3: grid_sweep.py 03_depvar.R simulation_base.R grid_sweep.py
+robustness_3_dv_proflik.RDS: plot_dv_example.R robustness_3_dv_proflik.feather summarize_estimator.R
        rm -f $@
        rm -f $@
-       ${srun} $< --command 'Rscript 03_depvar.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_3.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3], "B0":[0.9,0.95], "outcome_formula":["y~x+z"], "prediction_accuracy":[0.85]}' --outfile $@
+       ${srun} Rscript $< --infile $(word 2, $^) --name "robustness_3_dv_proflik" --remember-file $@
 
 
-START=0
-END_1=$(shell cat robustness_3_dv_jobs_p1 | wc -l)
-END_2=$(shell cat robustness_3_dv_jobs_p2 | wc -l)
-END_3=$(shell cat robustness_3_dv_jobs_p3 | wc -l)
 
 
-STEP=1000
-ONE=1
-ITEMS_1=$(shell seq $(START) $(STEP) $(END_1))
-ITEMS_2=$(shell seq $(START) $(STEP) $(END_2))
-ITEMS_3=$(shell seq $(START) $(STEP) $(END_3))
+ robustness_3_dv_jobs_p1: grid_sweep.py 03_depvar.R simulation_base.R grid_sweep.py
+       rm -f $@
+       ${srun} $< --command 'Rscript 03_depvar.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_3_dv.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1],"B0":[0,0.405], "outcome_formula":["y~x+z"], "prediction_accuracy":[0.85]}' --outfile $@
+
+
+
+robustness_3_dv_jobs_p2: grid_sweep.py 03_depvar.R simulation_base.R grid_sweep.py
+       rm -f $@
+       ${srun} $< --command 'Rscript 03_depvar.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_3_dv.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1],"B0":[0.847,1.386], "outcome_formula":["y~x+z"], "prediction_accuracy":[0.85]}' --outfile $@
+
+
+robustness_3_dv_jobs_p3: grid_sweep.py 03_depvar.R simulation_base.R grid_sweep.py
+       rm -f $@
+       ${srun} $< --command 'Rscript 03_depvar.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_3_dv.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1], "B0":[2.197,2.944], "outcome_formula":["y~x+z"], "prediction_accuracy":[0.85]}' --outfile $@
 
 robustness_3_dv.feather: robustness_3_dv_jobs_p1 robustness_3_dv_jobs_p2 robustness_3_dv_jobs_p3
 
 robustness_3_dv.feather: robustness_3_dv_jobs_p1 robustness_3_dv_jobs_p2 robustness_3_dv_jobs_p3
-       $(foreach item,$(ITEMS_1),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_3_dv_jobs_p1)
+       rm -f $@
+       $(eval END_1!=cat robustness_3_dv_jobs_p1 | wc -l)
+       $(eval ITEMS_1!=seq $(START) $(STEP) $(END_1))
+       $(eval END_2!=cat robustness_3_dv_jobs_p2 | wc -l)
+       $(eval ITEMS_2!=seq $(START) $(STEP) $(END_2))
+       $(eval END_3!=cat robustness_3_dv_jobs_p3 | wc -l)
+       $(eval ITEMS_3!=seq $(START) $(STEP) $(END_3))
+
+       $(foreach item,$(ITEMS_1),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_3_dv_jobs_p1;)
        $(foreach item,$(ITEMS_2),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_3_dv_jobs_p2;)
        $(foreach item,$(ITEMS_2),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_3_dv_jobs_p2;)
-       $(foreach item,$(ITEMS_3),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_3_dv_jobs_p3;)
+        $(foreach item,$(ITEMS_3),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_3_dv_jobs_p3;)
+
+
+robustness_3_dv.RDS: plot_dv_example.R robustness_3_dv.feather summarize_estimator.R
+       rm -f $@
+       ${srun} Rscript $< --infile $(word 2, $^) --name "robustness_3_dv" --remember-file $@
 
 
 
 robustness_4_jobs_p1: grid_sweep.py 02_indep_differential.R simulation_base.R grid_sweep.py
        rm -f $@
 
 
 
 robustness_4_jobs_p1: grid_sweep.py 02_indep_differential.R simulation_base.R grid_sweep.py
        rm -f $@
-       ${srun} $< --command 'Rscript 02_indep_differential.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_4.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.85],y_bias=[-1,-0.85]}' --outfile $@
+       ${srun} $< --command 'Rscript 02_indep_differential.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_4.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.85],"y_bias":[-2.944,-2.197]}' --outfile $@
 
 robustness_4_jobs_p2: grid_sweep.py 02_indep_differential.R simulation_base.R grid_sweep.py
        rm -f $@
 
 robustness_4_jobs_p2: grid_sweep.py 02_indep_differential.R simulation_base.R grid_sweep.py
        rm -f $@
-       ${srun} $< --command 'Rscript 02_indep_differential.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_4.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.85], y_bias=[-0.70,-0.55]}' --outfile $@
+       ${srun} $< --command 'Rscript 02_indep_differential.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_4.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.85], "y_bias":[-1.386,-0.846]}' --outfile $@
 
 robustness_4_jobs_p3: grid_sweep.py 02_indep_differential.R simulation_base.R grid_sweep.py
        rm -f $@
 
 robustness_4_jobs_p3: grid_sweep.py 02_indep_differential.R simulation_base.R grid_sweep.py
        rm -f $@
-       ${srun} $< --command 'Rscript 02_indep_differential.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_4.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.85],y_bias=[-0.4,-0.25]}' --outfile $@
-
-robustness_4_jobs_p4: grid_sweep.py 02_indep_differential.R simulation_base.R grid_sweep.py
-       rm -f $@
-       ${srun} $< --command 'Rscript 02_indep_differential.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_4.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.85],y_bias=[-0.1,0]}' --outfile $@
-
-START=0
-END_1=$(shell cat robustness_4_jobs_p1 | wc -l)
-END_2=$(shell cat robustness_4_jobs_p2 | wc -l)
-END_3=$(shell cat robustness_4_jobs_p3 | wc -l)
-END_4=$(shell cat robustness_4_jobs_p3 | wc -l)
-
-STEP=1000
-ONE=1
-ITEMS_1=$(shell seq $(START) $(STEP) $(END_1))
-ITEMS_2=$(shell seq $(START) $(STEP) $(END_2))
-ITEMS_3=$(shell seq $(START) $(STEP) $(END_3))
-ITEMS_4=$(shell seq $(START) $(STEP) $(END_4))
+       ${srun} $< --command 'Rscript 02_indep_differential.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_4.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[1], "outcome_formula":["y~x+z"], "proxy_formula":["w_pred~y+x"], "truth_formula":["x~z"], "prediction_accuracy":[0.85],"y_bias":[-0.405,-0.25]}' --outfile $@
 
 robustness_4.feather: robustness_4_jobs_p1 robustness_4_jobs_p2 robustness_4_jobs_p3
 
 robustness_4.feather: robustness_4_jobs_p1 robustness_4_jobs_p2 robustness_4_jobs_p3
-       $(foreach item,$(ITEMS_1),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_4_jobs_p1)
+       rm -f $@
+       $(eval END_1!=cat robustness_4_jobs_p1 | wc -l)
+       $(eval ITEMS_1!=seq $(START) $(STEP) $(END_1))
+       $(eval END_2!=cat robustness_4_jobs_p2 | wc -l)
+       $(eval ITEMS_2!=seq $(START) $(STEP) $(END_2))
+       $(eval END_3!=cat robustness_4_jobs_p3 | wc -l)
+       $(eval ITEMS_3!=seq $(START) $(STEP) $(END_3))
+
+       $(foreach item,$(ITEMS_1),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_4_jobs_p1;)
        $(foreach item,$(ITEMS_2),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_4_jobs_p2;)
        $(foreach item,$(ITEMS_3),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_4_jobs_p3;)
 
        $(foreach item,$(ITEMS_2),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_4_jobs_p2;)
        $(foreach item,$(ITEMS_3),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_4_jobs_p3;)
 
-
-robustness_4_dv_jobs_p1: grid_sweep.py 03_depvar.R simulation_base.R grid_sweep.py
+robustness_4.RDS: plot_example.R robustness_4.feather summarize_estimator.R
        rm -f $@
        rm -f $@
-       ${srun} $< --command 'Rscript 03_depvar.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_4.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3],"B0":[0.5] "outcome_formula":["y~x+z"], "prediction_accuracy":[0.85],z_bias=[0,0.1]}' --outfile $@
+       ${srun} Rscript $< --infile $(word 2, $^) --name "robustness_4" --remember-file $@
 
 
-robustness_4_dv_jobs_p2: grid_sweep.py 03_depvar.R simulation_base.R grid_sweep.py
+
+# '{"N":${robustness_Ns},"Bxy":[0.7],"Bzy":[-0.7],"m":${ms}, "seed":${seeds}, "outfile":["example_4.feather"], "z_bias":[0.5]}' --example_4_jobs
+
+robustness_4_dv_jobs_p1: grid_sweep.py 04_depvar_differential.R simulation_base.R grid_sweep.py
        rm -f $@
        rm -f $@
-       ${srun} $< --command 'Rscript 03_depvar.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_4.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3],"B0":[0.5] "outcome_formula":["y~x+z"], "prediction_accuracy":[0.85],z_bias=[0.25,0.4]}' --outfile $@
+       ${srun} $< --command 'Rscript 04_depvar_differential.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_4_dv.feather"], "Bzy":[-0.7],"Bxy":[0.7],"Bzx":[1], "outcome_formula":["y~x+z"], "prediction_accuracy":[0.85],"z_bias":[0,0.1]}' --outfile $@
 
 
-robustness_4_dv_jobs_p3: grid_sweep.py 03_depvar.R simulation_base.R grid_sweep.py
+robustness_4_dv_jobs_p2: grid_sweep.py 04_depvar_differential.R simulation_base.R grid_sweep.py
        rm -f $@
        rm -f $@
-       ${srun} $< --command 'Rscript 03_depvar.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_4.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3], "B0":[0.5], "outcome_formula":["y~x+z"], "prediction_accuracy":[0.85],z_bias=[0.55,0.7]}' --outfile $@
-robustness_4_dv_jobs_p4: grid_sweep.py 03_depvar.R simulation_base.R grid_sweep.py
+       ${srun} $< --command 'Rscript 04_depvar_differential.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_4_dv.feather"], "Bzy":[-0.7],"Bxy":[0.7],"Bzx":[1], "outcome_formula":["y~x+z"], "prediction_accuracy":[0.85],"z_bias":[0.25,0.405]}' --outfile $@
+
+robustness_4_dv_jobs_p3: grid_sweep.py 04_depvar_differential.R simulation_base.R grid_sweep.py
        rm -f $@
        rm -f $@
-       ${srun} $< --command 'Rscript 03_depvar.R'  --arg_dict '{"N":${Ns},"m":${ms}, "seed":${seeds}, "outfile":["robustness_4.feather"],"y_explained_variance":${explained_variances},  "Bzy":[-0.3],"Bxy":[0.3],"Bzx":[0.3], "B0":[0.5], "outcome_formula":["y~x+z"], "prediction_accuracy":[0.85],z_bias=[0.85,1]}' --outfile $@
+       ${srun} $< --command 'Rscript 04_depvar_differential.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_4_dv.feather"], "Bzy":[-0.7],"Bxy":[0.7],"Bzx":[1],"outcome_formula":["y~x+z"], "prediction_accuracy":[0.85],"z_bias":[0.846,1.386]}' --outfile $@
 
 
+robustness_4_dv_jobs_p4: grid_sweep.py 04_depvar_differential.R simulation_base.R grid_sweep.py
+       rm -f $@
+       ${srun} $< --command 'Rscript 04_depvar_differential.R'  --arg_dict '{"N":${robustness_Ns},"m":${robustness_ms}, "seed":${seeds}, "outfile":["robustness_4_dv.feather"],"Bzy":[-0.7],"Bxy":[0.7],"Bzx":[1], "outcome_formula":["y~x+z"], "prediction_accuracy":[0.85],"z_bias":[2.197,2.944]}' --outfile $@
 
 
-START=0
-END_1=$(shell cat robustness_4_dv_jobs_p1 | wc -l)
-END_2=$(shell cat robustness_4_dv_jobs_p2 | wc -l)
-END_3=$(shell cat robustness_4_dv_jobs_p3 | wc -l)
+robustness_4_dv.feather: robustness_4_dv_jobs_p1 robustness_4_dv_jobs_p2 robustness_4_dv_jobs_p3 robustness_4_dv_jobs_p4
+       rm -f $@
+       $(eval END_1!=cat robustness_4_dv_jobs_p1 | wc -l)
+       $(eval ITEMS_1!=seq $(START) $(STEP) $(END_1))
+       $(eval END_2!=cat robustness_4_dv_p2 | wc -l)
+       $(eval ITEMS_2!=seq $(START) $(STEP) $(END_2))
+       $(eval END_3!=cat robustness_4_dv_p3 | wc -l)
+       $(eval ITEMS_3!=seq $(START) $(STEP) $(END_3))
+       $(eval END_3!=cat robustness_4_dv_p4 | wc -l)
+       $(eval ITEMS_3!=seq $(START) $(STEP) $(END_3))
 
 
-STEP=1000
-ONE=1
-ITEMS_1=$(shell seq $(START) $(STEP) $(END_1))
-ITEMS_2=$(shell seq $(START) $(STEP) $(END_2))
-ITEMS_3=$(shell seq $(START) $(STEP) $(END_3))
 
 
-robustness_4_dv.feather: robustness_4_dv_jobs_p1 robustness_4_dv_jobs_p2 robustness_4_dv_jobs_p3
-       $(foreach item,$(ITEMS_1),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_4_dv_jobs_p1)
+       $(foreach item,$(ITEMS_1),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_4_dv_jobs_p1;)
        $(foreach item,$(ITEMS_2),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_4_dv_jobs_p2;)
        $(foreach item,$(ITEMS_3),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_4_dv_jobs_p3;)
        $(foreach item,$(ITEMS_2),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_4_dv_jobs_p2;)
        $(foreach item,$(ITEMS_3),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_4_dv_jobs_p3;)
+       $(foreach item,$(ITEMS_4),sbatch --wait --verbose --array=$(shell expr $(item) + $(ONE))-$(shell expr $(item) + $(STEP)) run_simulation.sbatch 0 robustness_4_dv_jobs_p4;)
+
+
+robustness_4_dv.RDS: plot_dv_example.R robustness_4_dv.feather summarize_estimator.R
+       rm -f $@
+       ${srun} Rscript $< --infile $(word 2, $^) --name "robustness_4" --remember-file $@
+
+
+clean_main:
+       rm -f remembr.RDS
+       rm -f example_1_jobs
+       rm -f example_2_jobs
+       rm -f example_3_jobs
+       rm -f example_4_jobs
+       rm -f example_1.feather
+       rm -f example_2.feather
+       rm -f example_3.feather
+       rm -f example_4.feather
+
 
 #      
 
 #      
-clean:
+clean_all:
        rm *.feather
        rm -f remembr.RDS
        rm *.feather
        rm -f remembr.RDS
+       rm -f remembr*.RDS
+       rm -f robustness*.RDS
        rm -f example_*_jobs
        rm -f example_*_jobs
+       rm -f robustness_*_jobs_*
 #      sbatch --wait --verbose --array=3001-6001 run_simulation.sbatch 0 example_2_B_jobs
 
 # example_2_B_mecor_jobs:
 #      sbatch --wait --verbose --array=3001-6001 run_simulation.sbatch 0 example_2_B_jobs
 
 # example_2_B_mecor_jobs:
@@ -363,5 +405,4 @@ clean:
 #      sbatch --wait --verbose --array=3001-6001 run_simulation.sbatch 0 example_2_B_mecor_jobs
 
 
 #      sbatch --wait --verbose --array=3001-6001 run_simulation.sbatch 0 example_2_B_mecor_jobs
 
 
-
 .PHONY: supplement
 .PHONY: supplement

Community Data Science Collective || Want to submit a patch?