From 85bff0a36bb99b0c6c756ea5944eefec09ddd30a Mon Sep 17 00:00:00 2001 From: bbd5721 Date: Sun, 22 Jun 2025 20:18:22 +0200 Subject: [PATCH 01/38] Prepared logistic simulation --- .gitignore | 1 + monte-cover/src/montecover/plm/__init__.py | 2 + .../src/montecover/plm/logistic_ate.py | 124 ++++++++++++++++++ results/plm/logistic_ate_config.yml | 38 ++++++ results/plm/logistic_ate_metadata.csv | 2 + scripts/plm/logistic_ate.py | 13 ++ scripts/plm/logistic_ate_config.yml | 74 +++++++++++ 7 files changed, 254 insertions(+) create mode 100644 monte-cover/src/montecover/plm/logistic_ate.py create mode 100644 results/plm/logistic_ate_config.yml create mode 100644 results/plm/logistic_ate_metadata.csv create mode 100644 scripts/plm/logistic_ate.py create mode 100644 scripts/plm/logistic_ate_config.yml diff --git a/.gitignore b/.gitignore index 24f7c5cc..93d4dfaf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ __pycache__/ +.idea/ # Logs monte-cover/logs/ diff --git a/monte-cover/src/montecover/plm/__init__.py b/monte-cover/src/montecover/plm/__init__.py index 167b36d8..3707ee6f 100644 --- a/monte-cover/src/montecover/plm/__init__.py +++ b/monte-cover/src/montecover/plm/__init__.py @@ -5,6 +5,7 @@ from montecover.plm.plr_ate_sensitivity import PLRATESensitivityCoverageSimulation from montecover.plm.plr_cate import PLRCATECoverageSimulation from montecover.plm.plr_gate import PLRGATECoverageSimulation +from montecover.plm.logistic_ate import LogisticATECoverageSimulation __all__ = [ "PLRATECoverageSimulation", @@ -12,4 +13,5 @@ "PLRGATECoverageSimulation", "PLRCATECoverageSimulation", "PLRATESensitivityCoverageSimulation", + "LogisticATECoverageSimulation", ] diff --git a/monte-cover/src/montecover/plm/logistic_ate.py b/monte-cover/src/montecover/plm/logistic_ate.py new file mode 100644 index 00000000..bef474ed --- /dev/null +++ b/monte-cover/src/montecover/plm/logistic_ate.py @@ -0,0 +1,124 @@ +from typing import Any, Dict, Optional + +import doubleml as dml +from doubleml.datasets import make_logistic_LZZ2020 + +from montecover.base import BaseSimulation +from montecover.utils import create_learner_from_config + + +class LogisticATECoverageSimulation(BaseSimulation): + """Simulation class for coverage properties of DoubleMLPLR for ATE estimation.""" + + def __init__( + self, + config_file: str, + suppress_warnings: bool = True, + log_level: str = "INFO", + log_file: Optional[str] = None, + ): + super().__init__( + config_file=config_file, + suppress_warnings=suppress_warnings, + log_level=log_level, + log_file=log_file, + ) + + # Calculate oracle values + self._calculate_oracle_values() + + def _process_config_parameters(self): + """Process simulation-specific parameters from config""" + # Process ML models in parameter grid + assert "learners" in self.dml_parameters, "No learners specified in the config file" + + required_learners = ["ml_m", "ml_M", "ml_t"] + for learner in self.dml_parameters["learners"]: + for ml in required_learners: + assert ml in learner, f"No {ml} specified in the config file" + + def _calculate_oracle_values(self): + """Calculate oracle values for the simulation.""" + self.logger.info("Calculating oracle values") + + self.oracle_values = dict() + self.oracle_values["theta"] = self.dgp_parameters["theta"] + + def run_single_rep(self, dml_data, dml_params) -> Dict[str, Any]: + """Run a single repetition with the given parameters.""" + # Extract parameters + learner_config = dml_params["learners"] + learner_m_name, ml_m = create_learner_from_config(learner_config["ml_m"]) + learner_M_name, ml_M = create_learner_from_config(learner_config["ml_M"]) + learner_t_name, ml_t = create_learner_from_config(learner_config["ml_t"]) + score = dml_params["score"] + + # Model + dml_model = dml.DoubleMLLogit( + obj_dml_data=dml_data, + ml_m=ml_m, + ml_M=ml_M, + ml_t=ml_t, + score=score,) + + dml_model.fit() + + result = { + "coverage": [], + } + for level in self.confidence_parameters["level"]: + level_result = dict() + level_result["coverage"] = self._compute_coverage( + thetas=dml_model.coef, + oracle_thetas=self.oracle_values["theta"], + confint=dml_model.confint(level=level), + joint_confint=None, + ) + + # add parameters to the result + for res in level_result.values(): + res.update( + { + "Learner m": learner_m_name, + "Learner M": learner_M_name, + "Learner t": learner_t_name, + "Score": score, + "level": level, + } + ) + for key, res in level_result.items(): + result[key].append(res) + + return result + + def summarize_results(self): + """Summarize the simulation results.""" + self.logger.info("Summarizing simulation results") + + # Group by parameter combinations + groupby_cols = ["Learner m", "Learner M", "Learner T", "Score", "level"] + aggregation_dict = { + "Coverage": "mean", + "CI Length": "mean", + "Bias": "mean", + "repetition": "count", + } + + # Aggregate results (possibly multiple result dfs) + result_summary = dict() + for result_name, result_df in self.results.items(): + result_summary[result_name] = result_df.groupby(groupby_cols).agg(aggregation_dict).reset_index() + self.logger.debug(f"Summarized {result_name} results") + + return result_summary + + def _generate_dml_data(self, dgp_params) -> dml.DoubleMLData: + """Generate data for the simulation.""" + data = make_logistic_LZZ2020( + alpha=dgp_params["theta"], + n_obs=dgp_params["n_obs"], + dim_x=dgp_params["dim_x"], + return_type="DataFrame", + ) + dml_data = dml.DoubleMLData(data, "y", "d", "p") + return dml_data diff --git a/results/plm/logistic_ate_config.yml b/results/plm/logistic_ate_config.yml new file mode 100644 index 00000000..94cf9e1c --- /dev/null +++ b/results/plm/logistic_ate_config.yml @@ -0,0 +1,38 @@ +simulation_parameters: + repetitions: 1000 + max_runtime: 19800 + random_seed: 42 + n_jobs: -2 +dgp_parameters: + theta: + - 0.5 + n_obs: + - 500 + dim_x: + - 20 +learner_definitions: + lasso: + name: LassoCV + rf: &id001 + name: RF Regr. + params: + n_estimators: 200 + max_features: 10 + max_depth: 5 + min_samples_leaf: 20 + lgbm: + name: LGBM Regr. + params: + n_estimators: 500 + learning_rate: 0.01 +dml_parameters: + learners: + - ml_m: *id001 + ml_M: *id001 + ml_t: *id001 + score: + - nuisance_space +confidence_parameters: + level: + - 0.95 + - 0.9 diff --git a/results/plm/logistic_ate_metadata.csv b/results/plm/logistic_ate_metadata.csv new file mode 100644 index 00000000..99ae2900 --- /dev/null +++ b/results/plm/logistic_ate_metadata.csv @@ -0,0 +1,2 @@ +DoubleML Version,Script,Date,Total Runtime (minutes),Python Version,Config File +0.10.dev0,LogisticATECoverageSimulation,2025-06-22 18:53,0.22107456922531127,3.12.2,scripts/plm/logistic_ate_config.yml diff --git a/scripts/plm/logistic_ate.py b/scripts/plm/logistic_ate.py new file mode 100644 index 00000000..8c03556d --- /dev/null +++ b/scripts/plm/logistic_ate.py @@ -0,0 +1,13 @@ +from montecover.plm import LogisticATECoverageSimulation + +# Create and run simulation with config file +sim = LogisticATECoverageSimulation( + config_file="scripts/plm/logistic_ate_config.yml", + log_level="INFO", + log_file="logs/plm/logistic_ate_sim.log", +) +sim.run_simulation() +sim.save_results(output_path="results/plm/", file_prefix="logistic_ate") + +# Save config file for reproducibility +sim.save_config("results/plm/logistic_ate_config.yml") \ No newline at end of file diff --git a/scripts/plm/logistic_ate_config.yml b/scripts/plm/logistic_ate_config.yml new file mode 100644 index 00000000..5d14ce23 --- /dev/null +++ b/scripts/plm/logistic_ate_config.yml @@ -0,0 +1,74 @@ +# Simulation parameters for PLR ATE Coverage + +simulation_parameters: + repetitions: 1000 + max_runtime: 19800 # 5.5 hours in seconds + random_seed: 42 + n_jobs: -2 + +dgp_parameters: + theta: [0.5] # Treatment effect + n_obs: [500] # Sample size + dim_x: [20] # Number of covariates + +# Define reusable learner configurations +learner_definitions: + lasso: &lasso + name: "LassoCV" + + rf: &rf + name: "RF Regr." + params: + n_estimators: 200 + max_features: 10 + max_depth: 5 + min_samples_leaf: 20 + + rf-class: &rf-class + name: "RF Clas." + params: + n_estimators: 200 + max_features: 10 + max_depth: 5 + min_samples_leaf: 20 + + lgbm: &lgbm + name: "LGBM Regr." + params: + n_estimators: 500 + learning_rate: 0.01 + +dml_parameters: + learners: +# - ml_m: *lasso +# ml_M: *lasso +# ml_t: *lasso + - ml_m: *rf + ml_M: *rf-class + ml_t: *rf +# - ml_m: *lgbm +# ml_M: *lgbm +# ml_t: *lgbm +# - ml_m: *rf +# ml_M: *lgbm +# ml_t: *lgbm +# - ml_m: *lgbm +# ml_M: *rf +# ml_t: *lgbm +# - ml_m: *lgbm +# ml_M: *lgbm +# ml_t: *rf +# - ml_m: *lgbm +# ml_M: *rf +# ml_t: *rf +# - ml_m: *rf +# ml_M: *lgbm +# ml_t: *rf +# - ml_m: *rf +# ml_M: *rf +# ml_t: *lgbm + + score: ["nuisance_space"] + +confidence_parameters: + level: [0.95, 0.90] # Confidence levels From 6e5ac77f7b804614e3e2ac19a379f07ccd73a835 Mon Sep 17 00:00:00 2001 From: bbd5721 Date: Wed, 27 Aug 2025 10:25:35 +0200 Subject: [PATCH 02/38] Fixes to make coverage simulation work --- monte-cover/src/montecover/plm/logistic_ate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monte-cover/src/montecover/plm/logistic_ate.py b/monte-cover/src/montecover/plm/logistic_ate.py index bef474ed..10e51784 100644 --- a/monte-cover/src/montecover/plm/logistic_ate.py +++ b/monte-cover/src/montecover/plm/logistic_ate.py @@ -96,7 +96,7 @@ def summarize_results(self): self.logger.info("Summarizing simulation results") # Group by parameter combinations - groupby_cols = ["Learner m", "Learner M", "Learner T", "Score", "level"] + groupby_cols = ["Learner m", "Learner M", "Learner t", "Score", "level"] aggregation_dict = { "Coverage": "mean", "CI Length": "mean", From 605fb0afef8def8f3f9e585c41ae3c21b58fed20 Mon Sep 17 00:00:00 2001 From: Julius Herzig Date: Thu, 28 Aug 2025 11:07:42 +0200 Subject: [PATCH 03/38] Resolved dataset creation bug --- monte-cover/src/montecover/plm/logistic_ate.py | 5 ++--- results/plm/logistic_ate_config.yml | 10 ++++------ scripts/plm/logistic_ate_config.yml | 12 ++++-------- 3 files changed, 10 insertions(+), 17 deletions(-) diff --git a/monte-cover/src/montecover/plm/logistic_ate.py b/monte-cover/src/montecover/plm/logistic_ate.py index 10e51784..265ad790 100644 --- a/monte-cover/src/montecover/plm/logistic_ate.py +++ b/monte-cover/src/montecover/plm/logistic_ate.py @@ -114,11 +114,10 @@ def summarize_results(self): def _generate_dml_data(self, dgp_params) -> dml.DoubleMLData: """Generate data for the simulation.""" - data = make_logistic_LZZ2020( + dml_data = make_logistic_LZZ2020( alpha=dgp_params["theta"], n_obs=dgp_params["n_obs"], dim_x=dgp_params["dim_x"], - return_type="DataFrame", + return_type="DoubleMLData", ) - dml_data = dml.DoubleMLData(data, "y", "d", "p") return dml_data diff --git a/results/plm/logistic_ate_config.yml b/results/plm/logistic_ate_config.yml index 94cf9e1c..4b2b1693 100644 --- a/results/plm/logistic_ate_config.yml +++ b/results/plm/logistic_ate_config.yml @@ -15,11 +15,9 @@ learner_definitions: name: LassoCV rf: &id001 name: RF Regr. - params: - n_estimators: 200 - max_features: 10 - max_depth: 5 - min_samples_leaf: 20 + rf-class: &id002 + name: RF Clas. + params: null lgbm: name: LGBM Regr. params: @@ -28,7 +26,7 @@ learner_definitions: dml_parameters: learners: - ml_m: *id001 - ml_M: *id001 + ml_M: *id002 ml_t: *id001 score: - nuisance_space diff --git a/scripts/plm/logistic_ate_config.yml b/scripts/plm/logistic_ate_config.yml index 5d14ce23..8e73a4d7 100644 --- a/scripts/plm/logistic_ate_config.yml +++ b/scripts/plm/logistic_ate_config.yml @@ -19,18 +19,14 @@ learner_definitions: rf: &rf name: "RF Regr." params: - n_estimators: 200 - max_features: 10 - max_depth: 5 - min_samples_leaf: 20 + n_estimators: 100 + max_features: "sqrt" rf-class: &rf-class name: "RF Clas." params: - n_estimators: 200 - max_features: 10 - max_depth: 5 - min_samples_leaf: 20 + n_estimators: 100 + max_features: "sqrt" lgbm: &lgbm name: "LGBM Regr." From 056b07799497db968ebad61a0367c443d3aee952 Mon Sep 17 00:00:00 2001 From: Julius Herzig Date: Thu, 28 Aug 2025 14:50:28 +0200 Subject: [PATCH 04/38] Changed sim config to include lgbm and lasso, instrument score --- scripts/plm/logistic_ate_config.yml | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/scripts/plm/logistic_ate_config.yml b/scripts/plm/logistic_ate_config.yml index 8e73a4d7..83b299ec 100644 --- a/scripts/plm/logistic_ate_config.yml +++ b/scripts/plm/logistic_ate_config.yml @@ -34,17 +34,23 @@ learner_definitions: n_estimators: 500 learning_rate: 0.01 + lgbm: &lgbm-class + name: "LGBM Clas." + params: + n_estimators: 500 + learning_rate: 0.01 + dml_parameters: learners: -# - ml_m: *lasso -# ml_M: *lasso -# ml_t: *lasso + - ml_m: *lasso + ml_M: *lasso + ml_t: *lasso - ml_m: *rf ml_M: *rf-class ml_t: *rf -# - ml_m: *lgbm -# ml_M: *lgbm -# ml_t: *lgbm + - ml_m: *lgbm + ml_M: *lgbm-class + ml_t: *lgbm # - ml_m: *rf # ml_M: *lgbm # ml_t: *lgbm @@ -64,7 +70,7 @@ dml_parameters: # ml_M: *rf # ml_t: *lgbm - score: ["nuisance_space"] + score: ["nuisance_space", "instrument"] confidence_parameters: level: [0.95, 0.90] # Confidence levels From 56858978847ee8e4658ddd0ab4d984460133ff90 Mon Sep 17 00:00:00 2001 From: Julius Herzig Date: Thu, 28 Aug 2025 16:00:35 +0200 Subject: [PATCH 05/38] Changed sim config to include lgbm and lasso, instrument score --- scripts/plm/logistic_ate_config.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/scripts/plm/logistic_ate_config.yml b/scripts/plm/logistic_ate_config.yml index 83b299ec..a2785021 100644 --- a/scripts/plm/logistic_ate_config.yml +++ b/scripts/plm/logistic_ate_config.yml @@ -16,6 +16,9 @@ learner_definitions: lasso: &lasso name: "LassoCV" + logistic: &logistic + name: "Logistic" + rf: &rf name: "RF Regr." params: @@ -34,7 +37,7 @@ learner_definitions: n_estimators: 500 learning_rate: 0.01 - lgbm: &lgbm-class + lgbm-class: &lgbm-class name: "LGBM Clas." params: n_estimators: 500 @@ -43,7 +46,7 @@ learner_definitions: dml_parameters: learners: - ml_m: *lasso - ml_M: *lasso + ml_M: *logistic ml_t: *lasso - ml_m: *rf ml_M: *rf-class From 8fd390982f586513e16633d1000a2b2447f3400b Mon Sep 17 00:00:00 2001 From: Julius Herzig Date: Thu, 28 Aug 2025 22:12:58 +0200 Subject: [PATCH 06/38] Full combination of learners --- scripts/plm/logistic_ate_config.yml | 54 +++++++++++++++++++---------- 1 file changed, 36 insertions(+), 18 deletions(-) diff --git a/scripts/plm/logistic_ate_config.yml b/scripts/plm/logistic_ate_config.yml index a2785021..8cb08b0f 100644 --- a/scripts/plm/logistic_ate_config.yml +++ b/scripts/plm/logistic_ate_config.yml @@ -54,24 +54,42 @@ dml_parameters: - ml_m: *lgbm ml_M: *lgbm-class ml_t: *lgbm -# - ml_m: *rf -# ml_M: *lgbm -# ml_t: *lgbm -# - ml_m: *lgbm -# ml_M: *rf -# ml_t: *lgbm -# - ml_m: *lgbm -# ml_M: *lgbm -# ml_t: *rf -# - ml_m: *lgbm -# ml_M: *rf -# ml_t: *rf -# - ml_m: *rf -# ml_M: *lgbm -# ml_t: *rf -# - ml_m: *rf -# ml_M: *rf -# ml_t: *lgbm + - ml_m: *rf + ml_M: *lgbm + ml_t: *lgbm-class + - ml_m: *lgbm + ml_M: *rf-class + ml_t: *lgbm + - ml_m: *lgbm + ml_M: *lgbm-class + ml_t: *rf + - ml_m: *lgbm + ml_M: *rf-class + ml_t: *rf + - ml_m: *rf + ml_M: *lgbm-class + ml_t: *rf + - ml_m: *rf + ml_M: *rf-class + ml_t: *lgbm + - ml_m: *lasso + ml_M: *lgbm + ml_t: *lgbm-class + - ml_m: *lgbm + ml_M: *logistic + ml_t: *lgbm + - ml_m: *lgbm + ml_M: *lgbm-class + ml_t: *lasso + - ml_m: *lasso + ml_M: *rf-class + ml_t: *rf + - ml_m: *rf + ml_M: *logistic + ml_t: *rf + - ml_m: *rf + ml_M: *rf-class + ml_t: *lasso score: ["nuisance_space", "instrument"] From f99294aefb8cff3b80b6513141b94a8802fcd523 Mon Sep 17 00:00:00 2001 From: bbd5721 Date: Mon, 1 Sep 2025 14:58:45 +0200 Subject: [PATCH 07/38] Full combination of learners fixes --- scripts/plm/logistic_ate_config.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/plm/logistic_ate_config.yml b/scripts/plm/logistic_ate_config.yml index 8cb08b0f..aef09ff9 100644 --- a/scripts/plm/logistic_ate_config.yml +++ b/scripts/plm/logistic_ate_config.yml @@ -55,8 +55,8 @@ dml_parameters: ml_M: *lgbm-class ml_t: *lgbm - ml_m: *rf - ml_M: *lgbm - ml_t: *lgbm-class + ml_M: *lgbm-class + ml_t: *lgbm - ml_m: *lgbm ml_M: *rf-class ml_t: *lgbm @@ -73,8 +73,8 @@ dml_parameters: ml_M: *rf-class ml_t: *lgbm - ml_m: *lasso - ml_M: *lgbm - ml_t: *lgbm-class + ml_M: *lgbm-class + ml_t: *lgbm - ml_m: *lgbm ml_M: *logistic ml_t: *lgbm From 787402b2bb2c8f87b63bba176aa643f66c4bb201 Mon Sep 17 00:00:00 2001 From: bbd5721 Date: Wed, 3 Sep 2025 10:29:53 +0200 Subject: [PATCH 08/38] Catch convergence warnings --- monte-cover/src/montecover/plm/logistic_ate.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/monte-cover/src/montecover/plm/logistic_ate.py b/monte-cover/src/montecover/plm/logistic_ate.py index 265ad790..585234ca 100644 --- a/monte-cover/src/montecover/plm/logistic_ate.py +++ b/monte-cover/src/montecover/plm/logistic_ate.py @@ -1,3 +1,4 @@ +import warnings from typing import Any, Dict, Optional import doubleml as dml @@ -16,6 +17,7 @@ def __init__( suppress_warnings: bool = True, log_level: str = "INFO", log_file: Optional[str] = None, + use_failed_scores: bool = False, ): super().__init__( config_file=config_file, @@ -27,6 +29,8 @@ def __init__( # Calculate oracle values self._calculate_oracle_values() + self._use_failed_scores = use_failed_scores + def _process_config_parameters(self): """Process simulation-specific parameters from config""" # Process ML models in parameter grid @@ -61,7 +65,15 @@ def run_single_rep(self, dml_data, dml_params) -> Dict[str, Any]: ml_t=ml_t, score=score,) - dml_model.fit() + if self._use_failed_scores: + dml_model.fit() + else: + warnings.filterwarnings("error") + try: + dml_model.fit() + except Warning as w: + return None + warnings.resetwarnings() result = { "coverage": [], From 43fed25bba9e577a7fc007883f24da9e0a190b78 Mon Sep 17 00:00:00 2001 From: bbd5721 Date: Wed, 3 Sep 2025 10:39:01 +0200 Subject: [PATCH 09/38] Short config for test --- scripts/plm/logistic_ate_config.yml | 89 +++++++++++++++-------------- 1 file changed, 45 insertions(+), 44 deletions(-) diff --git a/scripts/plm/logistic_ate_config.yml b/scripts/plm/logistic_ate_config.yml index aef09ff9..cca3d122 100644 --- a/scripts/plm/logistic_ate_config.yml +++ b/scripts/plm/logistic_ate_config.yml @@ -2,7 +2,7 @@ simulation_parameters: repetitions: 1000 - max_runtime: 19800 # 5.5 hours in seconds + max_runtime: 86400 # 24 hours in seconds random_seed: 42 n_jobs: -2 @@ -48,50 +48,51 @@ dml_parameters: - ml_m: *lasso ml_M: *logistic ml_t: *lasso - - ml_m: *rf - ml_M: *rf-class - ml_t: *rf - - ml_m: *lgbm - ml_M: *lgbm-class - ml_t: *lgbm - - ml_m: *rf - ml_M: *lgbm-class - ml_t: *lgbm - - ml_m: *lgbm - ml_M: *rf-class - ml_t: *lgbm - - ml_m: *lgbm - ml_M: *lgbm-class - ml_t: *rf - - ml_m: *lgbm - ml_M: *rf-class - ml_t: *rf - - ml_m: *rf - ml_M: *lgbm-class - ml_t: *rf - - ml_m: *rf - ml_M: *rf-class - ml_t: *lgbm - - ml_m: *lasso - ml_M: *lgbm-class - ml_t: *lgbm - - ml_m: *lgbm - ml_M: *logistic - ml_t: *lgbm - - ml_m: *lgbm - ml_M: *lgbm-class - ml_t: *lasso - - ml_m: *lasso - ml_M: *rf-class - ml_t: *rf - - ml_m: *rf - ml_M: *logistic - ml_t: *rf - - ml_m: *rf - ml_M: *rf-class - ml_t: *lasso +# - ml_m: *rf +# ml_M: *rf-class +# ml_t: *rf +# - ml_m: *lgbm +# ml_M: *lgbm-class +# ml_t: *lgbm +# - ml_m: *rf +# ml_M: *lgbm-class +# ml_t: *lgbm +# - ml_m: *lgbm +# ml_M: *rf-class +# ml_t: *lgbm +# - ml_m: *lgbm +# ml_M: *lgbm-class +# ml_t: *rf +# - ml_m: *lgbm +# ml_M: *rf-class +# ml_t: *rf +# - ml_m: *rf +# ml_M: *lgbm-class +# ml_t: *rf +# - ml_m: *rf +# ml_M: *rf-class +# ml_t: *lgbm +# - ml_m: *lasso +# ml_M: *lgbm-class +# ml_t: *lgbm +# - ml_m: *lgbm +# ml_M: *logistic +# ml_t: *lgbm +# - ml_m: *lgbm +# ml_M: *lgbm-class +# ml_t: *lasso +# - ml_m: *lasso +# ml_M: *rf-class +# ml_t: *rf +# - ml_m: *rf +# ml_M: *logistic +# ml_t: *rf +# - ml_m: *rf +# ml_M: *rf-class +# ml_t: *lasso - score: ["nuisance_space", "instrument"] +# score: ["nuisance_space", "instrument"] + score: ["nuisance_space"] confidence_parameters: level: [0.95, 0.90] # Confidence levels From 03173bcfd1a0bc24ef47358e663f21c0909a03d5 Mon Sep 17 00:00:00 2001 From: bbd5721 Date: Wed, 3 Sep 2025 14:17:18 +0200 Subject: [PATCH 10/38] Short config for test update --- .../src/montecover/plm/logistic_ate.py | 1 + results/plm/logistic_ate_config.yml | 24 ++++++++++++++----- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/monte-cover/src/montecover/plm/logistic_ate.py b/monte-cover/src/montecover/plm/logistic_ate.py index 585234ca..14c33c85 100644 --- a/monte-cover/src/montecover/plm/logistic_ate.py +++ b/monte-cover/src/montecover/plm/logistic_ate.py @@ -72,6 +72,7 @@ def run_single_rep(self, dml_data, dml_params) -> Dict[str, Any]: try: dml_model.fit() except Warning as w: + self.logger.debug(f"Warning during fitting: {w}. Returning None for this repetition.") return None warnings.resetwarnings() diff --git a/results/plm/logistic_ate_config.yml b/results/plm/logistic_ate_config.yml index 4b2b1693..829567dd 100644 --- a/results/plm/logistic_ate_config.yml +++ b/results/plm/logistic_ate_config.yml @@ -1,6 +1,6 @@ simulation_parameters: - repetitions: 1000 - max_runtime: 19800 + repetitions: 10 + max_runtime: 86400 random_seed: 42 n_jobs: -2 dgp_parameters: @@ -11,18 +11,30 @@ dgp_parameters: dim_x: - 20 learner_definitions: - lasso: + lasso: &id001 name: LassoCV - rf: &id001 + logistic: &id002 + name: Logistic + rf: name: RF Regr. - rf-class: &id002 + params: + n_estimators: 100 + max_features: sqrt + rf-class: name: RF Clas. - params: null + params: + n_estimators: 100 + max_features: sqrt lgbm: name: LGBM Regr. params: n_estimators: 500 learning_rate: 0.01 + lgbm-class: + name: LGBM Clas. + params: + n_estimators: 500 + learning_rate: 0.01 dml_parameters: learners: - ml_m: *id001 From 61982ab96be141362d7c2e24b9d75eaf66e302ca Mon Sep 17 00:00:00 2001 From: bbd5721 Date: Wed, 3 Sep 2025 14:21:55 +0200 Subject: [PATCH 11/38] Added logging --- monte-cover/src/montecover/plm/logistic_ate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monte-cover/src/montecover/plm/logistic_ate.py b/monte-cover/src/montecover/plm/logistic_ate.py index 14c33c85..3de81a13 100644 --- a/monte-cover/src/montecover/plm/logistic_ate.py +++ b/monte-cover/src/montecover/plm/logistic_ate.py @@ -101,7 +101,7 @@ def run_single_rep(self, dml_data, dml_params) -> Dict[str, Any]: ) for key, res in level_result.items(): result[key].append(res) - + self.logger.info(result) return result def summarize_results(self): From 03abe6f41a6ff9d991b2a013d6148cf223ef4dfa Mon Sep 17 00:00:00 2001 From: bbd5721 Date: Wed, 3 Sep 2025 14:23:32 +0200 Subject: [PATCH 12/38] Added logging --- monte-cover/src/montecover/plm/logistic_ate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monte-cover/src/montecover/plm/logistic_ate.py b/monte-cover/src/montecover/plm/logistic_ate.py index 3de81a13..78fdedd6 100644 --- a/monte-cover/src/montecover/plm/logistic_ate.py +++ b/monte-cover/src/montecover/plm/logistic_ate.py @@ -101,7 +101,7 @@ def run_single_rep(self, dml_data, dml_params) -> Dict[str, Any]: ) for key, res in level_result.items(): result[key].append(res) - self.logger.info(result) + self.logger.info(f"Results for loop {result}") return result def summarize_results(self): From ea0fb3f5ae876e75c0053a9db43dfbeb8368659a Mon Sep 17 00:00:00 2001 From: bbd5721 Date: Wed, 3 Sep 2025 14:25:19 +0200 Subject: [PATCH 13/38] Added logging --- scripts/plm/logistic_ate_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/plm/logistic_ate_config.yml b/scripts/plm/logistic_ate_config.yml index cca3d122..c1226503 100644 --- a/scripts/plm/logistic_ate_config.yml +++ b/scripts/plm/logistic_ate_config.yml @@ -4,7 +4,7 @@ simulation_parameters: repetitions: 1000 max_runtime: 86400 # 24 hours in seconds random_seed: 42 - n_jobs: -2 + n_jobs: 1 #-2 dgp_parameters: theta: [0.5] # Treatment effect From c2da782fe0ed1ca89df7aed0059e8be64d70ce93 Mon Sep 17 00:00:00 2001 From: bbd5721 Date: Wed, 3 Sep 2025 14:32:23 +0200 Subject: [PATCH 14/38] Print statements --- monte-cover/src/montecover/plm/logistic_ate.py | 3 ++- scripts/plm/logistic_ate.py | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/monte-cover/src/montecover/plm/logistic_ate.py b/monte-cover/src/montecover/plm/logistic_ate.py index 78fdedd6..58b6355e 100644 --- a/monte-cover/src/montecover/plm/logistic_ate.py +++ b/monte-cover/src/montecover/plm/logistic_ate.py @@ -25,7 +25,7 @@ def __init__( log_level=log_level, log_file=log_file, ) - + print("In LogisticATECoverageSimulation init") # Calculate oracle values self._calculate_oracle_values() @@ -51,6 +51,7 @@ def _calculate_oracle_values(self): def run_single_rep(self, dml_data, dml_params) -> Dict[str, Any]: """Run a single repetition with the given parameters.""" # Extract parameters + print("Running single rep") learner_config = dml_params["learners"] learner_m_name, ml_m = create_learner_from_config(learner_config["ml_m"]) learner_M_name, ml_M = create_learner_from_config(learner_config["ml_M"]) diff --git a/scripts/plm/logistic_ate.py b/scripts/plm/logistic_ate.py index 8c03556d..5a668780 100644 --- a/scripts/plm/logistic_ate.py +++ b/scripts/plm/logistic_ate.py @@ -6,6 +6,7 @@ log_level="INFO", log_file="logs/plm/logistic_ate_sim.log", ) +print("Calling file") sim.run_simulation() sim.save_results(output_path="results/plm/", file_prefix="logistic_ate") From 64d8931f47a50c00e9c6d375f521eb377d7412d4 Mon Sep 17 00:00:00 2001 From: bbd5721 Date: Wed, 3 Sep 2025 14:36:28 +0200 Subject: [PATCH 15/38] Print statements --- monte-cover/src/montecover/plm/logistic_ate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monte-cover/src/montecover/plm/logistic_ate.py b/monte-cover/src/montecover/plm/logistic_ate.py index 58b6355e..be368a8f 100644 --- a/monte-cover/src/montecover/plm/logistic_ate.py +++ b/monte-cover/src/montecover/plm/logistic_ate.py @@ -102,7 +102,7 @@ def run_single_rep(self, dml_data, dml_params) -> Dict[str, Any]: ) for key, res in level_result.items(): result[key].append(res) - self.logger.info(f"Results for loop {result}") + print(f"Results for loop {result}") return result def summarize_results(self): From ce6c859d89381ae9d6f85f21f2bd9aa097448065 Mon Sep 17 00:00:00 2001 From: bbd5721 Date: Wed, 3 Sep 2025 14:36:54 +0200 Subject: [PATCH 16/38] Print statements --- monte-cover/src/montecover/plm/logistic_ate.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/monte-cover/src/montecover/plm/logistic_ate.py b/monte-cover/src/montecover/plm/logistic_ate.py index be368a8f..8d618a6a 100644 --- a/monte-cover/src/montecover/plm/logistic_ate.py +++ b/monte-cover/src/montecover/plm/logistic_ate.py @@ -73,7 +73,8 @@ def run_single_rep(self, dml_data, dml_params) -> Dict[str, Any]: try: dml_model.fit() except Warning as w: - self.logger.debug(f"Warning during fitting: {w}. Returning None for this repetition.") + self.logger.info(f"Warning during fitting: {w}. Returning None for this repetition.") + print("Fit warning") return None warnings.resetwarnings() From fd35542154792cb537d729ce1ef040cd84d23a4c Mon Sep 17 00:00:00 2001 From: bbd5721 Date: Wed, 3 Sep 2025 14:58:35 +0200 Subject: [PATCH 17/38] Updated handling of failed convergence --- .../src/montecover/plm/logistic_ate.py | 20 +++++++------------ scripts/plm/logistic_ate_config.yml | 2 +- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/monte-cover/src/montecover/plm/logistic_ate.py b/monte-cover/src/montecover/plm/logistic_ate.py index 8d618a6a..9b373fe5 100644 --- a/monte-cover/src/montecover/plm/logistic_ate.py +++ b/monte-cover/src/montecover/plm/logistic_ate.py @@ -25,7 +25,7 @@ def __init__( log_level=log_level, log_file=log_file, ) - print("In LogisticATECoverageSimulation init") + # Calculate oracle values self._calculate_oracle_values() @@ -51,7 +51,6 @@ def _calculate_oracle_values(self): def run_single_rep(self, dml_data, dml_params) -> Dict[str, Any]: """Run a single repetition with the given parameters.""" # Extract parameters - print("Running single rep") learner_config = dml_params["learners"] learner_m_name, ml_m = create_learner_from_config(learner_config["ml_m"]) learner_M_name, ml_M = create_learner_from_config(learner_config["ml_M"]) @@ -64,19 +63,14 @@ def run_single_rep(self, dml_data, dml_params) -> Dict[str, Any]: ml_m=ml_m, ml_M=ml_M, ml_t=ml_t, - score=score,) + score=score, + error_on_convergence_failure= not self._use_failed_scores,) - if self._use_failed_scores: + try: dml_model.fit() - else: - warnings.filterwarnings("error") - try: - dml_model.fit() - except Warning as w: - self.logger.info(f"Warning during fitting: {w}. Returning None for this repetition.") - print("Fit warning") - return None - warnings.resetwarnings() + except RuntimeError as e: + self.logger.info(f"Exception during fit: {e}") + return None result = { "coverage": [], diff --git a/scripts/plm/logistic_ate_config.yml b/scripts/plm/logistic_ate_config.yml index c1226503..cca3d122 100644 --- a/scripts/plm/logistic_ate_config.yml +++ b/scripts/plm/logistic_ate_config.yml @@ -4,7 +4,7 @@ simulation_parameters: repetitions: 1000 max_runtime: 86400 # 24 hours in seconds random_seed: 42 - n_jobs: 1 #-2 + n_jobs: -2 dgp_parameters: theta: [0.5] # Treatment effect From 1498d0ed3db7a5eef7b16bd1326eac0957d53bcd Mon Sep 17 00:00:00 2001 From: bbd5721 Date: Wed, 3 Sep 2025 15:03:15 +0200 Subject: [PATCH 18/38] Removed debug msg --- monte-cover/src/montecover/plm/logistic_ate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monte-cover/src/montecover/plm/logistic_ate.py b/monte-cover/src/montecover/plm/logistic_ate.py index 9b373fe5..dc660cfa 100644 --- a/monte-cover/src/montecover/plm/logistic_ate.py +++ b/monte-cover/src/montecover/plm/logistic_ate.py @@ -97,7 +97,7 @@ def run_single_rep(self, dml_data, dml_params) -> Dict[str, Any]: ) for key, res in level_result.items(): result[key].append(res) - print(f"Results for loop {result}") + return result def summarize_results(self): From 67fb397e57fa9d7e6f97119386e2bf3c8291a98e Mon Sep 17 00:00:00 2001 From: bbd5721 Date: Wed, 3 Sep 2025 15:05:49 +0200 Subject: [PATCH 19/38] Full config --- scripts/plm/logistic_ate_config.yml | 87 ++++++++++++++--------------- 1 file changed, 43 insertions(+), 44 deletions(-) diff --git a/scripts/plm/logistic_ate_config.yml b/scripts/plm/logistic_ate_config.yml index cca3d122..10b8fcef 100644 --- a/scripts/plm/logistic_ate_config.yml +++ b/scripts/plm/logistic_ate_config.yml @@ -48,51 +48,50 @@ dml_parameters: - ml_m: *lasso ml_M: *logistic ml_t: *lasso -# - ml_m: *rf -# ml_M: *rf-class -# ml_t: *rf -# - ml_m: *lgbm -# ml_M: *lgbm-class -# ml_t: *lgbm -# - ml_m: *rf -# ml_M: *lgbm-class -# ml_t: *lgbm -# - ml_m: *lgbm -# ml_M: *rf-class -# ml_t: *lgbm -# - ml_m: *lgbm -# ml_M: *lgbm-class -# ml_t: *rf -# - ml_m: *lgbm -# ml_M: *rf-class -# ml_t: *rf -# - ml_m: *rf -# ml_M: *lgbm-class -# ml_t: *rf -# - ml_m: *rf -# ml_M: *rf-class -# ml_t: *lgbm -# - ml_m: *lasso -# ml_M: *lgbm-class -# ml_t: *lgbm -# - ml_m: *lgbm -# ml_M: *logistic -# ml_t: *lgbm -# - ml_m: *lgbm -# ml_M: *lgbm-class -# ml_t: *lasso -# - ml_m: *lasso -# ml_M: *rf-class -# ml_t: *rf -# - ml_m: *rf -# ml_M: *logistic -# ml_t: *rf -# - ml_m: *rf -# ml_M: *rf-class -# ml_t: *lasso + - ml_m: *rf + ml_M: *rf-class + ml_t: *rf + - ml_m: *lgbm + ml_M: *lgbm-class + ml_t: *lgbm + - ml_m: *rf + ml_M: *lgbm-class + ml_t: *lgbm + - ml_m: *lgbm + ml_M: *rf-class + ml_t: *lgbm + - ml_m: *lgbm + ml_M: *lgbm-class + ml_t: *rf + - ml_m: *lgbm + ml_M: *rf-class + ml_t: *rf + - ml_m: *rf + ml_M: *lgbm-class + ml_t: *rf + - ml_m: *rf + ml_M: *rf-class + ml_t: *lgbm + - ml_m: *lasso + ml_M: *lgbm-class + ml_t: *lgbm + - ml_m: *lgbm + ml_M: *logistic + ml_t: *lgbm + - ml_m: *lgbm + ml_M: *lgbm-class + ml_t: *lasso + - ml_m: *lasso + ml_M: *rf-class + ml_t: *rf + - ml_m: *rf + ml_M: *logistic + ml_t: *rf + - ml_m: *rf + ml_M: *rf-class + ml_t: *lasso -# score: ["nuisance_space", "instrument"] - score: ["nuisance_space"] + score: ["nuisance_space", "instrument"] confidence_parameters: level: [0.95, 0.90] # Confidence levels From 4e78105ce509853b2bf85c90daa3527388700a6d Mon Sep 17 00:00:00 2001 From: Julius Herzig Date: Fri, 5 Sep 2025 01:42:13 +0200 Subject: [PATCH 20/38] Simulation results --- results/plm/logistic_ate_config.yml | 53 ++++++++++++++++++++--- results/plm/logistic_ate_coverage.csv | 61 +++++++++++++++++++++++++++ results/plm/logistic_ate_metadata.csv | 2 +- 3 files changed, 110 insertions(+), 6 deletions(-) create mode 100644 results/plm/logistic_ate_coverage.csv diff --git a/results/plm/logistic_ate_config.yml b/results/plm/logistic_ate_config.yml index 829567dd..b203b920 100644 --- a/results/plm/logistic_ate_config.yml +++ b/results/plm/logistic_ate_config.yml @@ -1,5 +1,5 @@ simulation_parameters: - repetitions: 10 + repetitions: 1000 max_runtime: 86400 random_seed: 42 n_jobs: -2 @@ -15,22 +15,22 @@ learner_definitions: name: LassoCV logistic: &id002 name: Logistic - rf: + rf: &id003 name: RF Regr. params: n_estimators: 100 max_features: sqrt - rf-class: + rf-class: &id004 name: RF Clas. params: n_estimators: 100 max_features: sqrt - lgbm: + lgbm: &id005 name: LGBM Regr. params: n_estimators: 500 learning_rate: 0.01 - lgbm-class: + lgbm-class: &id006 name: LGBM Clas. params: n_estimators: 500 @@ -40,8 +40,51 @@ dml_parameters: - ml_m: *id001 ml_M: *id002 ml_t: *id001 + - ml_m: *id003 + ml_M: *id004 + ml_t: *id003 + - ml_m: *id005 + ml_M: *id006 + ml_t: *id005 + - ml_m: *id003 + ml_M: *id006 + ml_t: *id005 + - ml_m: *id005 + ml_M: *id004 + ml_t: *id005 + - ml_m: *id005 + ml_M: *id006 + ml_t: *id003 + - ml_m: *id005 + ml_M: *id004 + ml_t: *id003 + - ml_m: *id003 + ml_M: *id006 + ml_t: *id003 + - ml_m: *id003 + ml_M: *id004 + ml_t: *id005 + - ml_m: *id001 + ml_M: *id006 + ml_t: *id005 + - ml_m: *id005 + ml_M: *id002 + ml_t: *id005 + - ml_m: *id005 + ml_M: *id006 + ml_t: *id001 + - ml_m: *id001 + ml_M: *id004 + ml_t: *id003 + - ml_m: *id003 + ml_M: *id002 + ml_t: *id003 + - ml_m: *id003 + ml_M: *id004 + ml_t: *id001 score: - nuisance_space + - instrument confidence_parameters: level: - 0.95 diff --git a/results/plm/logistic_ate_coverage.csv b/results/plm/logistic_ate_coverage.csv new file mode 100644 index 00000000..920c3cf8 --- /dev/null +++ b/results/plm/logistic_ate_coverage.csv @@ -0,0 +1,61 @@ +Learner m,Learner M,Learner t,Score,level,Coverage,CI Length,Bias,repetition +LGBM Regr.,LGBM Clas.,LGBM Regr.,instrument,0.9,0.8867735470941884,0.6783720219284418,0.17182702238154213,998 +LGBM Regr.,LGBM Clas.,LGBM Regr.,instrument,0.95,0.9458917835671342,0.8083301208774294,0.17182702238154213,998 +LGBM Regr.,LGBM Clas.,LGBM Regr.,nuisance_space,0.9,0.886,0.5883608609896965,0.1546569991698314,1000 +LGBM Regr.,LGBM Clas.,LGBM Regr.,nuisance_space,0.95,0.942,0.7010752072754521,0.1546569991698314,1000 +LGBM Regr.,LGBM Clas.,LassoCV,instrument,0.9,0.8856569709127382,0.687914636116578,0.17843968090261725,997 +LGBM Regr.,LGBM Clas.,LassoCV,instrument,0.95,0.9398194583751254,0.819700847014181,0.17843968090261725,997 +LGBM Regr.,LGBM Clas.,LassoCV,nuisance_space,0.9,0.853,0.613277414594929,0.17455974016950299,1000 +LGBM Regr.,LGBM Clas.,LassoCV,nuisance_space,0.95,0.922,0.7307651121307722,0.17455974016950299,1000 +LGBM Regr.,LGBM Clas.,RF Regr.,instrument,0.9,0.833,0.6645257584558233,0.1981803920481237,1000 +LGBM Regr.,LGBM Clas.,RF Regr.,instrument,0.95,0.913,0.7918312803227949,0.1981803920481237,1000 +LGBM Regr.,LGBM Clas.,RF Regr.,nuisance_space,0.9,0.749,0.6389887792744618,0.2310882489727634,1000 +LGBM Regr.,LGBM Clas.,RF Regr.,nuisance_space,0.95,0.847,0.7614020927955242,0.2310882489727634,1000 +LGBM Regr.,Logistic,LGBM Regr.,instrument,0.9,0.8808808808808809,0.6011544597174262,0.15730144394486342,999 +LGBM Regr.,Logistic,LGBM Regr.,instrument,0.95,0.9269269269269269,0.7163197204212697,0.15730144394486342,999 +LGBM Regr.,Logistic,LGBM Regr.,nuisance_space,0.9,0.802,0.533982278217265,0.1735015501567642,1000 +LGBM Regr.,Logistic,LGBM Regr.,nuisance_space,0.95,0.893,0.6362791293643562,0.1735015501567642,1000 +LGBM Regr.,RF Clas.,LGBM Regr.,instrument,0.9,0.8808808808808809,0.6117037321129385,0.14924058625395906,999 +LGBM Regr.,RF Clas.,LGBM Regr.,instrument,0.95,0.938938938938939,0.7288899537961552,0.14924058625395906,999 +LGBM Regr.,RF Clas.,LGBM Regr.,nuisance_space,0.9,0.887,0.5255256282131954,0.12946206156000842,1000 +LGBM Regr.,RF Clas.,LGBM Regr.,nuisance_space,0.95,0.948,0.6262024093655342,0.12946206156000842,1000 +LGBM Regr.,RF Clas.,RF Regr.,instrument,0.9,0.893,0.6133564813843166,0.15711608477124128,1000 +LGBM Regr.,RF Clas.,RF Regr.,instrument,0.95,0.943,0.7308593260213176,0.15711608477124128,1000 +LGBM Regr.,RF Clas.,RF Regr.,nuisance_space,0.9,0.86,0.5540472193413977,0.15675464483344737,1000 +LGBM Regr.,RF Clas.,RF Regr.,nuisance_space,0.95,0.935,0.6601879813806316,0.15675464483344737,1000 +LassoCV,LGBM Clas.,LGBM Regr.,instrument,0.9,0.8062563067608476,0.6448097763855765,0.19653637418785105,991 +LassoCV,LGBM Clas.,LGBM Regr.,instrument,0.95,0.8890010090817356,0.7683382386658661,0.19653637418785105,991 +LassoCV,LGBM Clas.,LGBM Regr.,nuisance_space,0.9,0.72165991902834,0.5619651019188039,0.19918381058581103,988 +LassoCV,LGBM Clas.,LGBM Regr.,nuisance_space,0.95,0.840080971659919,0.6696227203940329,0.19918381058581103,988 +LassoCV,Logistic,LassoCV,instrument,0.9,0.9126506024096386,0.6493687054509357,0.15965331285568357,996 +LassoCV,Logistic,LassoCV,instrument,0.95,0.9618473895582329,0.7737705377043753,0.15965331285568357,996 +LassoCV,Logistic,LassoCV,nuisance_space,0.9,0.8682092555331992,0.5768393638614188,0.1458288654760023,994 +LassoCV,Logistic,LassoCV,nuisance_space,0.95,0.9356136820925554,0.6873464966781094,0.1458288654760023,994 +LassoCV,RF Clas.,RF Regr.,instrument,0.9,0.8667334669338678,0.5890487369844828,0.14213629243588016,998 +LassoCV,RF Clas.,RF Regr.,instrument,0.95,0.93687374749499,0.7018948620784813,0.14213629243588016,998 +LassoCV,RF Clas.,RF Regr.,nuisance_space,0.9,0.8908908908908909,0.5583249926493753,0.13040987029805642,999 +LassoCV,RF Clas.,RF Regr.,nuisance_space,0.95,0.9369369369369369,0.6652852626707622,0.13040987029805642,999 +RF Regr.,LGBM Clas.,LGBM Regr.,instrument,0.9,0.883,0.4286586066458282,0.10700456800013383,1000 +RF Regr.,LGBM Clas.,LGBM Regr.,instrument,0.95,0.939,0.510778233955119,0.10700456800013383,1000 +RF Regr.,LGBM Clas.,LGBM Regr.,nuisance_space,0.9,0.798,0.3832967523848996,0.11829755780901112,1000 +RF Regr.,LGBM Clas.,LGBM Regr.,nuisance_space,0.95,0.871,0.45672625074725515,0.11829755780901112,1000 +RF Regr.,LGBM Clas.,RF Regr.,instrument,0.9,0.866,0.42225079909506574,0.11434483968291848,1000 +RF Regr.,LGBM Clas.,RF Regr.,instrument,0.95,0.919,0.5031428603184782,0.11434483968291848,1000 +RF Regr.,LGBM Clas.,RF Regr.,nuisance_space,0.9,0.881,0.41648308996281536,0.10985709399222088,1000 +RF Regr.,LGBM Clas.,RF Regr.,nuisance_space,0.95,0.938,0.49627021099133717,0.10985709399222088,1000 +RF Regr.,Logistic,RF Regr.,instrument,0.9,0.856,0.38502789712056834,0.10721182765222284,1000 +RF Regr.,Logistic,RF Regr.,instrument,0.95,0.92,0.45878903692977124,0.10721182765222284,1000 +RF Regr.,Logistic,RF Regr.,nuisance_space,0.9,0.824,0.3771933481281758,0.11331805384094351,1000 +RF Regr.,Logistic,RF Regr.,nuisance_space,0.95,0.9,0.4494535960074909,0.11331805384094351,1000 +RF Regr.,RF Clas.,LGBM Regr.,instrument,0.9,0.828,0.38946263148586363,0.11262093701887263,1000 +RF Regr.,RF Clas.,LGBM Regr.,instrument,0.95,0.884,0.46407334885550183,0.11262093701887263,1000 +RF Regr.,RF Clas.,LGBM Regr.,nuisance_space,0.9,0.804,0.36190660207697933,0.10722868220974552,1000 +RF Regr.,RF Clas.,LGBM Regr.,nuisance_space,0.95,0.867,0.4312383145926426,0.10722868220974552,1000 +RF Regr.,RF Clas.,LassoCV,instrument,0.9,0.859,0.39360445751539874,0.10201463510531926,1000 +RF Regr.,RF Clas.,LassoCV,instrument,0.95,0.922,0.4690086389719632,0.10201463510531926,1000 +RF Regr.,RF Clas.,LassoCV,nuisance_space,0.9,0.847,0.37185525976227807,0.097545400580116,1000 +RF Regr.,RF Clas.,LassoCV,nuisance_space,0.95,0.905,0.44309287139830933,0.097545400580116,1000 +RF Regr.,RF Clas.,RF Regr.,instrument,0.9,0.885,0.3931395611851874,0.09840536307939636,1000 +RF Regr.,RF Clas.,RF Regr.,instrument,0.95,0.94,0.4684546808270991,0.09840536307939636,1000 +RF Regr.,RF Clas.,RF Regr.,nuisance_space,0.9,0.877,0.3834497709276788,0.09720459767352349,1000 +RF Regr.,RF Clas.,RF Regr.,nuisance_space,0.95,0.934,0.4569085835870289,0.09720459767352349,1000 diff --git a/results/plm/logistic_ate_metadata.csv b/results/plm/logistic_ate_metadata.csv index 99ae2900..ef34e596 100644 --- a/results/plm/logistic_ate_metadata.csv +++ b/results/plm/logistic_ate_metadata.csv @@ -1,2 +1,2 @@ DoubleML Version,Script,Date,Total Runtime (minutes),Python Version,Config File -0.10.dev0,LogisticATECoverageSimulation,2025-06-22 18:53,0.22107456922531127,3.12.2,scripts/plm/logistic_ate_config.yml +0.10.dev0,LogisticATECoverageSimulation,2025-09-03 22:35,447.33407898743945,3.12.9,scripts/plm/logistic_ate_config.yml From 5207f6010363c2884172b1765352a4b5a6eac8cc Mon Sep 17 00:00:00 2001 From: bbd5721 Date: Fri, 5 Sep 2025 02:15:22 +0200 Subject: [PATCH 21/38] Settings for render --- doc/_quarto-dev.yml | 1 + doc/_website.yml | 1 + doc/plm/logistic.qmd | 114 ++++++++++++++++++++++++++ results/plm/logistic_ate_metadata.csv | 1 + 4 files changed, 117 insertions(+) create mode 100644 doc/plm/logistic.qmd diff --git a/doc/_quarto-dev.yml b/doc/_quarto-dev.yml index 5c3587ab..5e934fc6 100644 --- a/doc/_quarto-dev.yml +++ b/doc/_quarto-dev.yml @@ -21,6 +21,7 @@ website: - plm/plr_gate.qmd - plm/plr_cate.qmd - plm/pliv.qmd + - plm/logistic.qmd # DID - did/did_pa.qmd - did/did_cs.qmd diff --git a/doc/_website.yml b/doc/_website.yml index 4bf06b85..a713e257 100644 --- a/doc/_website.yml +++ b/doc/_website.yml @@ -25,6 +25,7 @@ website: - plm/plr_gate.qmd - plm/plr_cate.qmd - plm/pliv.qmd + - plm/logistic.qmd - text: "DID" menu: - did/did_pa_multi.qmd diff --git a/doc/plm/logistic.qmd b/doc/plm/logistic.qmd new file mode 100644 index 00000000..7e943119 --- /dev/null +++ b/doc/plm/logistic.qmd @@ -0,0 +1,114 @@ +--- +title: "Logistic Models" + +jupyter: python3 +--- + +```{python} +#| echo: false + +import numpy as np +import pandas as pd +from itables import init_notebook_mode +import os +import sys + +doc_dir = os.path.abspath(os.path.join(os.getcwd(), "..")) +if doc_dir not in sys.path: + sys.path.append(doc_dir) + +from utils.style_tables import generate_and_show_styled_table + +init_notebook_mode(all_interactive=True) +``` + +## ATE Coverage + +The simulations are based on the the [make_logistic_LZZ2020](https://docs.doubleml.org/stable/api/generated/doubleml.datasets.make_plr_CCDDHNR2018.html)-DGP with $500$ observations. + +::: {.callout-note title="Metadata" collapse="true"} + +```{python} +#| echo: false +metadata_file = '../../results/plm/logistic_ate_metadata.csv' +metadata_df = pd.read_csv(metadata_file) +print(metadata_df.T.to_string(header=False)) +``` + +::: + +```{python} +#| echo: false + +# set up data and rename columns +df_coverage = pd.read_csv("../../results/plm/logistic_ate_coverage.csv", index_col=None) + +if "repetition" in df_coverage.columns and df_coverage["repetition"].nunique() == 1: + n_rep_coverage = df_coverage["repetition"].unique()[0] +elif "n_rep" in df_coverage.columns and df_coverage["n_rep"].nunique() == 1: + n_rep_coverage = df_coverage["n_rep"].unique()[0] +else: + n_rep_coverage = "N/A" # Fallback if n_rep cannot be determined + +display_columns_coverage = ["Learner m", "Learner M", "Learner t", "Bias", "CI Length", "Coverage"] +``` + +### Partialling out + +```{python} +# | echo: false + +generate_and_show_styled_table( + main_df=df_coverage, + filters={"level": 0.95, "Score": "nuisance_space"}, + display_cols=display_columns_coverage, + n_rep=n_rep_coverage, + level_col="level", +# rename_map={"Learner g": "Learner l"}, + coverage_highlight_cols=["Coverage"] +) +``` + +```{python} +#| echo: false + +generate_and_show_styled_table( + main_df=df_coverage, + filters={"level": 0.9, "Score": "nuisance_space"}, + display_cols=display_columns_coverage, + n_rep=n_rep_coverage, + level_col="level", +# rename_map={"Learner g": "Learner l"}, + coverage_highlight_cols=["Coverage"] +) +``` + +### IV-type + +For the IV-type score, the learners `ml_l` and `ml_g` are both set to the same type of learner (here **Learner g**). + +```{python} +#| echo: false + +generate_and_show_styled_table( + main_df=df_coverage, + filters={"level": 0.95, "Score": "instrument"}, + display_cols=display_columns_coverage, + n_rep=n_rep_coverage, + level_col="level", + coverage_highlight_cols=["Coverage"] +) +``` + +```{python} +#| echo: false + +generate_and_show_styled_table( + main_df=df_coverage, + filters={"level": 0.9, "Score": "instrument"}, + display_cols=display_columns_coverage, + n_rep=n_rep_coverage, + level_col="level", + coverage_highlight_cols=["Coverage"] +) +``` \ No newline at end of file diff --git a/results/plm/logistic_ate_metadata.csv b/results/plm/logistic_ate_metadata.csv index ef34e596..eead6aa7 100644 --- a/results/plm/logistic_ate_metadata.csv +++ b/results/plm/logistic_ate_metadata.csv @@ -1,2 +1,3 @@ DoubleML Version,Script,Date,Total Runtime (minutes),Python Version,Config File 0.10.dev0,LogisticATECoverageSimulation,2025-09-03 22:35,447.33407898743945,3.12.9,scripts/plm/logistic_ate_config.yml +0.10.dev0,LogisticATECoverageSimulation,2025-09-03 14:16,0.4242911458015442,3.12.11,scripts/plm/logistic_ate_config.yml From b9c3f10a28b73846df012ab7b7256ce215178b04 Mon Sep 17 00:00:00 2001 From: bbd5721 Date: Mon, 29 Sep 2025 12:06:31 -0700 Subject: [PATCH 22/38] Heading fixed, added dgp param to sim --- doc/plm/logistic.qmd | 5 +- scripts/plm/logistic_ate_config.yml | 73 +++++++++++++++-------------- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/doc/plm/logistic.qmd b/doc/plm/logistic.qmd index 7e943119..4d3e4854 100644 --- a/doc/plm/logistic.qmd +++ b/doc/plm/logistic.qmd @@ -53,7 +53,7 @@ else: display_columns_coverage = ["Learner m", "Learner M", "Learner t", "Bias", "CI Length", "Coverage"] ``` -### Partialling out +### Nuisance space ```{python} # | echo: false @@ -83,9 +83,8 @@ generate_and_show_styled_table( ) ``` -### IV-type +### Instrument -For the IV-type score, the learners `ml_l` and `ml_g` are both set to the same type of learner (here **Learner g**). ```{python} #| echo: false diff --git a/scripts/plm/logistic_ate_config.yml b/scripts/plm/logistic_ate_config.yml index 10b8fcef..10aa1b91 100644 --- a/scripts/plm/logistic_ate_config.yml +++ b/scripts/plm/logistic_ate_config.yml @@ -10,6 +10,7 @@ dgp_parameters: theta: [0.5] # Treatment effect n_obs: [500] # Sample size dim_x: [20] # Number of covariates + balanced_r0: [False] # Whether to use balanced r0 function # Define reusable learner configurations learner_definitions: @@ -54,42 +55,42 @@ dml_parameters: - ml_m: *lgbm ml_M: *lgbm-class ml_t: *lgbm - - ml_m: *rf - ml_M: *lgbm-class - ml_t: *lgbm - - ml_m: *lgbm - ml_M: *rf-class - ml_t: *lgbm - - ml_m: *lgbm - ml_M: *lgbm-class - ml_t: *rf - - ml_m: *lgbm - ml_M: *rf-class - ml_t: *rf - - ml_m: *rf - ml_M: *lgbm-class - ml_t: *rf - - ml_m: *rf - ml_M: *rf-class - ml_t: *lgbm - - ml_m: *lasso - ml_M: *lgbm-class - ml_t: *lgbm - - ml_m: *lgbm - ml_M: *logistic - ml_t: *lgbm - - ml_m: *lgbm - ml_M: *lgbm-class - ml_t: *lasso - - ml_m: *lasso - ml_M: *rf-class - ml_t: *rf - - ml_m: *rf - ml_M: *logistic - ml_t: *rf - - ml_m: *rf - ml_M: *rf-class - ml_t: *lasso +# - ml_m: *rf +# ml_M: *lgbm-class +# ml_t: *lgbm +# - ml_m: *lgbm +# ml_M: *rf-class +# ml_t: *lgbm +# - ml_m: *lgbm +# ml_M: *lgbm-class +# ml_t: *rf +# - ml_m: *lgbm +# ml_M: *rf-class +# ml_t: *rf +# - ml_m: *rf +# ml_M: *lgbm-class +# ml_t: *rf +# - ml_m: *rf +# ml_M: *rf-class +# ml_t: *lgbm +# - ml_m: *lasso +# ml_M: *lgbm-class +# ml_t: *lgbm +# - ml_m: *lgbm +# ml_M: *logistic +# ml_t: *lgbm +# - ml_m: *lgbm +# ml_M: *lgbm-class +# ml_t: *lasso +# - ml_m: *lasso +# ml_M: *rf-class +# ml_t: *rf +# - ml_m: *rf +# ml_M: *logistic +# ml_t: *rf +# - ml_m: *rf +# ml_M: *rf-class +# ml_t: *lasso score: ["nuisance_space", "instrument"] From 3ba3dc24eb74ba596b0abe0aa67a8c3990a4896d Mon Sep 17 00:00:00 2001 From: Julius Herzig Date: Mon, 6 Oct 2025 10:21:20 -0700 Subject: [PATCH 23/38] DGP param pass fix --- monte-cover/src/montecover/plm/logistic_ate.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/monte-cover/src/montecover/plm/logistic_ate.py b/monte-cover/src/montecover/plm/logistic_ate.py index dc660cfa..4f43409c 100644 --- a/monte-cover/src/montecover/plm/logistic_ate.py +++ b/monte-cover/src/montecover/plm/logistic_ate.py @@ -123,10 +123,4 @@ def summarize_results(self): def _generate_dml_data(self, dgp_params) -> dml.DoubleMLData: """Generate data for the simulation.""" - dml_data = make_logistic_LZZ2020( - alpha=dgp_params["theta"], - n_obs=dgp_params["n_obs"], - dim_x=dgp_params["dim_x"], - return_type="DoubleMLData", - ) - return dml_data + return make_logistic_LZZ2020(**dgp_params) From 47252582c79327c97ee8f4d646d2a4b9806bc64e Mon Sep 17 00:00:00 2001 From: Julius Herzig Date: Mon, 27 Oct 2025 13:36:00 -0700 Subject: [PATCH 24/38] Renaming of Logistic to LPLR --- .../plm/{logistic_ate.py => lplr_ate.py} | 8 ++++---- scripts/plm/logistic_ate.py | 14 -------------- scripts/plm/lplr_ate.py | 14 ++++++++++++++ ...logistic_ate_config.yml => lplr_ate_config.yml} | 0 4 files changed, 18 insertions(+), 18 deletions(-) rename monte-cover/src/montecover/plm/{logistic_ate.py => lplr_ate.py} (95%) delete mode 100644 scripts/plm/logistic_ate.py create mode 100644 scripts/plm/lplr_ate.py rename scripts/plm/{logistic_ate_config.yml => lplr_ate_config.yml} (100%) diff --git a/monte-cover/src/montecover/plm/logistic_ate.py b/monte-cover/src/montecover/plm/lplr_ate.py similarity index 95% rename from monte-cover/src/montecover/plm/logistic_ate.py rename to monte-cover/src/montecover/plm/lplr_ate.py index 4f43409c..15b88e64 100644 --- a/monte-cover/src/montecover/plm/logistic_ate.py +++ b/monte-cover/src/montecover/plm/lplr_ate.py @@ -2,13 +2,13 @@ from typing import Any, Dict, Optional import doubleml as dml -from doubleml.datasets import make_logistic_LZZ2020 +from doubleml.plm.data import make_lplr_LZZ2020 from montecover.base import BaseSimulation from montecover.utils import create_learner_from_config -class LogisticATECoverageSimulation(BaseSimulation): +class LPLRATECoverageSimulation(BaseSimulation): """Simulation class for coverage properties of DoubleMLPLR for ATE estimation.""" def __init__( @@ -58,7 +58,7 @@ def run_single_rep(self, dml_data, dml_params) -> Dict[str, Any]: score = dml_params["score"] # Model - dml_model = dml.DoubleMLLogit( + dml_model = dml.DoubleMLLPLR( obj_dml_data=dml_data, ml_m=ml_m, ml_M=ml_M, @@ -123,4 +123,4 @@ def summarize_results(self): def _generate_dml_data(self, dgp_params) -> dml.DoubleMLData: """Generate data for the simulation.""" - return make_logistic_LZZ2020(**dgp_params) + return make_lplr_LZZ2020(**dgp_params) diff --git a/scripts/plm/logistic_ate.py b/scripts/plm/logistic_ate.py deleted file mode 100644 index 5a668780..00000000 --- a/scripts/plm/logistic_ate.py +++ /dev/null @@ -1,14 +0,0 @@ -from montecover.plm import LogisticATECoverageSimulation - -# Create and run simulation with config file -sim = LogisticATECoverageSimulation( - config_file="scripts/plm/logistic_ate_config.yml", - log_level="INFO", - log_file="logs/plm/logistic_ate_sim.log", -) -print("Calling file") -sim.run_simulation() -sim.save_results(output_path="results/plm/", file_prefix="logistic_ate") - -# Save config file for reproducibility -sim.save_config("results/plm/logistic_ate_config.yml") \ No newline at end of file diff --git a/scripts/plm/lplr_ate.py b/scripts/plm/lplr_ate.py new file mode 100644 index 00000000..a98b2d46 --- /dev/null +++ b/scripts/plm/lplr_ate.py @@ -0,0 +1,14 @@ +from montecover.plm import LPLRATECoverageSimulation + +# Create and run simulation with config file +sim = LPLRATECoverageSimulation( + config_file="scripts/plm/lplr_ate_config.yml", + log_level="INFO", + log_file="logs/plm/plr_ate_sim.log", +) +print("Calling file") +sim.run_simulation() +sim.save_results(output_path="results/plm/", file_prefix="lplr_ate") + +# Save config file for reproducibility +sim.save_config("results/plm/lplr_ate_config.yml") \ No newline at end of file diff --git a/scripts/plm/logistic_ate_config.yml b/scripts/plm/lplr_ate_config.yml similarity index 100% rename from scripts/plm/logistic_ate_config.yml rename to scripts/plm/lplr_ate_config.yml From ba948669608fb7583640e4971f3dd227c56f07cb Mon Sep 17 00:00:00 2001 From: Julius Herzig Date: Mon, 27 Oct 2025 13:38:25 -0700 Subject: [PATCH 25/38] Typo --- scripts/plm/lplr_ate_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/plm/lplr_ate_config.yml b/scripts/plm/lplr_ate_config.yml index 10aa1b91..da804ed9 100644 --- a/scripts/plm/lplr_ate_config.yml +++ b/scripts/plm/lplr_ate_config.yml @@ -1,4 +1,4 @@ -# Simulation parameters for PLR ATE Coverage +# Simulation parameters for LPLR ATE Coverage simulation_parameters: repetitions: 1000 From 251362345fce9dd9c49d6d22262166d8a0c7fb32 Mon Sep 17 00:00:00 2001 From: Julius Herzig Date: Mon, 27 Oct 2025 23:30:51 -0700 Subject: [PATCH 26/38] Renamings --- doc/_quarto-dev.yml | 2 +- doc/_website.yml | 2 +- doc/plm/{logistic.qmd => lplr.qmd} | 8 ++++---- monte-cover/src/montecover/plm/__init__.py | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) rename doc/plm/{logistic.qmd => lplr.qmd} (86%) diff --git a/doc/_quarto-dev.yml b/doc/_quarto-dev.yml index 5e934fc6..b73319b3 100644 --- a/doc/_quarto-dev.yml +++ b/doc/_quarto-dev.yml @@ -21,7 +21,7 @@ website: - plm/plr_gate.qmd - plm/plr_cate.qmd - plm/pliv.qmd - - plm/logistic.qmd + - plm/lplr.qmd # DID - did/did_pa.qmd - did/did_cs.qmd diff --git a/doc/_website.yml b/doc/_website.yml index a713e257..98c2a044 100644 --- a/doc/_website.yml +++ b/doc/_website.yml @@ -25,7 +25,7 @@ website: - plm/plr_gate.qmd - plm/plr_cate.qmd - plm/pliv.qmd - - plm/logistic.qmd + - plm/lplr.qmd - text: "DID" menu: - did/did_pa_multi.qmd diff --git a/doc/plm/logistic.qmd b/doc/plm/lplr.qmd similarity index 86% rename from doc/plm/logistic.qmd rename to doc/plm/lplr.qmd index 4d3e4854..200e5782 100644 --- a/doc/plm/logistic.qmd +++ b/doc/plm/lplr.qmd @@ -1,5 +1,5 @@ --- -title: "Logistic Models" +title: "Logistic Partial Linear Regression Models" jupyter: python3 --- @@ -24,13 +24,13 @@ init_notebook_mode(all_interactive=True) ## ATE Coverage -The simulations are based on the the [make_logistic_LZZ2020](https://docs.doubleml.org/stable/api/generated/doubleml.datasets.make_plr_CCDDHNR2018.html)-DGP with $500$ observations. +The simulations are based on the the [make_lplr_LZZ2020](https://docs.doubleml.org/stable/api/generated/doubleml.datasets.make_lplr_LZZ2020.html)-DGP with $500$ observations. ::: {.callout-note title="Metadata" collapse="true"} ```{python} #| echo: false -metadata_file = '../../results/plm/logistic_ate_metadata.csv' +metadata_file = '../../results/plm/lplr_ate_metadata.csv' metadata_df = pd.read_csv(metadata_file) print(metadata_df.T.to_string(header=False)) ``` @@ -41,7 +41,7 @@ print(metadata_df.T.to_string(header=False)) #| echo: false # set up data and rename columns -df_coverage = pd.read_csv("../../results/plm/logistic_ate_coverage.csv", index_col=None) +df_coverage = pd.read_csv("../../results/plm/lplr_ate_coverage.csv", index_col=None) if "repetition" in df_coverage.columns and df_coverage["repetition"].nunique() == 1: n_rep_coverage = df_coverage["repetition"].unique()[0] diff --git a/monte-cover/src/montecover/plm/__init__.py b/monte-cover/src/montecover/plm/__init__.py index 3707ee6f..5d995c92 100644 --- a/monte-cover/src/montecover/plm/__init__.py +++ b/monte-cover/src/montecover/plm/__init__.py @@ -5,7 +5,7 @@ from montecover.plm.plr_ate_sensitivity import PLRATESensitivityCoverageSimulation from montecover.plm.plr_cate import PLRCATECoverageSimulation from montecover.plm.plr_gate import PLRGATECoverageSimulation -from montecover.plm.logistic_ate import LogisticATECoverageSimulation +from montecover.plm.lplr_ate import LPLRATECoverageSimulation __all__ = [ "PLRATECoverageSimulation", @@ -13,5 +13,5 @@ "PLRGATECoverageSimulation", "PLRCATECoverageSimulation", "PLRATESensitivityCoverageSimulation", - "LogisticATECoverageSimulation", + "LPLRATECoverageSimulation", ] From bd264a35ac6d864564f89b2d8d0f6eb800d8658c Mon Sep 17 00:00:00 2001 From: Julius Herzig Date: Mon, 27 Oct 2025 23:42:38 -0700 Subject: [PATCH 27/38] Typo --- monte-cover/src/montecover/plm/lplr_ate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monte-cover/src/montecover/plm/lplr_ate.py b/monte-cover/src/montecover/plm/lplr_ate.py index 15b88e64..da962e32 100644 --- a/monte-cover/src/montecover/plm/lplr_ate.py +++ b/monte-cover/src/montecover/plm/lplr_ate.py @@ -2,7 +2,7 @@ from typing import Any, Dict, Optional import doubleml as dml -from doubleml.plm.data import make_lplr_LZZ2020 +from doubleml.plm.datasets import make_lplr_LZZ2020 from montecover.base import BaseSimulation from montecover.utils import create_learner_from_config From b7302a4c263236ee674e6806a267b8af653e3f4f Mon Sep 17 00:00:00 2001 From: SvenKlaassen Date: Fri, 14 Nov 2025 09:39:23 +0100 Subject: [PATCH 28/38] add lplr to workflow --- .github/workflows/plr_sim.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/plr_sim.yml b/.github/workflows/plr_sim.yml index 20c61bfd..128f66cc 100644 --- a/.github/workflows/plr_sim.yml +++ b/.github/workflows/plr_sim.yml @@ -21,6 +21,7 @@ jobs: 'scripts/plm/plr_ate_sensitivity.py', 'scripts/plm/plr_cate.py', 'scripts/plm/plr_gate.py', + 'scripts/plm/lplr_ate.py', ] steps: From 6e1d1a61f810850a2bd31e2a91f93b3481259bd6 Mon Sep 17 00:00:00 2001 From: SvenKlaassen Date: Fri, 14 Nov 2025 12:05:59 +0100 Subject: [PATCH 29/38] Update log file path and adjust max runtime in configuration --- scripts/plm/lplr_ate.py | 4 ++-- scripts/plm/lplr_ate_config.yml | 38 +-------------------------------- 2 files changed, 3 insertions(+), 39 deletions(-) diff --git a/scripts/plm/lplr_ate.py b/scripts/plm/lplr_ate.py index a98b2d46..7640c67e 100644 --- a/scripts/plm/lplr_ate.py +++ b/scripts/plm/lplr_ate.py @@ -4,11 +4,11 @@ sim = LPLRATECoverageSimulation( config_file="scripts/plm/lplr_ate_config.yml", log_level="INFO", - log_file="logs/plm/plr_ate_sim.log", + log_file="logs/plm/lplr_ate_sim.log", ) print("Calling file") sim.run_simulation() sim.save_results(output_path="results/plm/", file_prefix="lplr_ate") # Save config file for reproducibility -sim.save_config("results/plm/lplr_ate_config.yml") \ No newline at end of file +sim.save_config("results/plm/lplr_ate_config.yml") diff --git a/scripts/plm/lplr_ate_config.yml b/scripts/plm/lplr_ate_config.yml index da804ed9..4671641d 100644 --- a/scripts/plm/lplr_ate_config.yml +++ b/scripts/plm/lplr_ate_config.yml @@ -2,7 +2,7 @@ simulation_parameters: repetitions: 1000 - max_runtime: 86400 # 24 hours in seconds + max_runtime: 19800 # 5.5 hours in seconds random_seed: 42 n_jobs: -2 @@ -55,42 +55,6 @@ dml_parameters: - ml_m: *lgbm ml_M: *lgbm-class ml_t: *lgbm -# - ml_m: *rf -# ml_M: *lgbm-class -# ml_t: *lgbm -# - ml_m: *lgbm -# ml_M: *rf-class -# ml_t: *lgbm -# - ml_m: *lgbm -# ml_M: *lgbm-class -# ml_t: *rf -# - ml_m: *lgbm -# ml_M: *rf-class -# ml_t: *rf -# - ml_m: *rf -# ml_M: *lgbm-class -# ml_t: *rf -# - ml_m: *rf -# ml_M: *rf-class -# ml_t: *lgbm -# - ml_m: *lasso -# ml_M: *lgbm-class -# ml_t: *lgbm -# - ml_m: *lgbm -# ml_M: *logistic -# ml_t: *lgbm -# - ml_m: *lgbm -# ml_M: *lgbm-class -# ml_t: *lasso -# - ml_m: *lasso -# ml_M: *rf-class -# ml_t: *rf -# - ml_m: *rf -# ml_M: *logistic -# ml_t: *rf -# - ml_m: *rf -# ml_M: *rf-class -# ml_t: *lasso score: ["nuisance_space", "instrument"] From 87cdfe22a4256c0333cf2a83178e30524230a5b6 Mon Sep 17 00:00:00 2001 From: SvenKlaassen Date: Fri, 14 Nov 2025 13:27:03 +0100 Subject: [PATCH 30/38] rerun sim --- results/plm/lplr_ate_config.yml | 57 +++++++++++++++++++++++++++++++ results/plm/lplr_ate_coverage.csv | 13 +++++++ results/plm/lplr_ate_metadata.csv | 2 ++ scripts/plm/lplr_ate_config.yml | 2 +- 4 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 results/plm/lplr_ate_config.yml create mode 100644 results/plm/lplr_ate_coverage.csv create mode 100644 results/plm/lplr_ate_metadata.csv diff --git a/results/plm/lplr_ate_config.yml b/results/plm/lplr_ate_config.yml new file mode 100644 index 00000000..dd301b0f --- /dev/null +++ b/results/plm/lplr_ate_config.yml @@ -0,0 +1,57 @@ +simulation_parameters: + repetitions: 500 + max_runtime: 19800 + random_seed: 42 + n_jobs: -2 +dgp_parameters: + theta: + - 0.5 + n_obs: + - 500 + dim_x: + - 20 + balanced_r0: + - false +learner_definitions: + lasso: &id001 + name: LassoCV + logistic: &id002 + name: Logistic + rf: &id003 + name: RF Regr. + params: + n_estimators: 100 + max_features: sqrt + rf-class: &id004 + name: RF Clas. + params: + n_estimators: 100 + max_features: sqrt + lgbm: &id005 + name: LGBM Regr. + params: + n_estimators: 500 + learning_rate: 0.01 + lgbm-class: &id006 + name: LGBM Clas. + params: + n_estimators: 500 + learning_rate: 0.01 +dml_parameters: + learners: + - ml_m: *id001 + ml_M: *id002 + ml_t: *id001 + - ml_m: *id003 + ml_M: *id004 + ml_t: *id003 + - ml_m: *id005 + ml_M: *id006 + ml_t: *id005 + score: + - nuisance_space + - instrument +confidence_parameters: + level: + - 0.95 + - 0.9 diff --git a/results/plm/lplr_ate_coverage.csv b/results/plm/lplr_ate_coverage.csv new file mode 100644 index 00000000..522cb302 --- /dev/null +++ b/results/plm/lplr_ate_coverage.csv @@ -0,0 +1,13 @@ +Learner m,Learner M,Learner t,Score,level,Coverage,CI Length,Bias,repetition +LGBM Regr.,LGBM Clas.,LGBM Regr.,instrument,0.9,0.67,2.1390099112235337,0.7733541625882442,500 +LGBM Regr.,LGBM Clas.,LGBM Regr.,instrument,0.95,0.764,2.5487875151191384,0.7733541625882442,500 +LGBM Regr.,LGBM Clas.,LGBM Regr.,nuisance_space,0.9,0.984,1.9277279638621336,0.2466245115241902,500 +LGBM Regr.,LGBM Clas.,LGBM Regr.,nuisance_space,0.95,0.99,2.297029546734241,0.2466245115241902,500 +LassoCV,Logistic,LassoCV,instrument,0.9,0.86,1.0931286705325178,0.298255530442962,500 +LassoCV,Logistic,LassoCV,instrument,0.95,0.918,1.3025431501055353,0.298255530442962,500 +LassoCV,Logistic,LassoCV,nuisance_space,0.9,0.868,0.9404185531245673,0.24057237828123884,500 +LassoCV,Logistic,LassoCV,nuisance_space,0.95,0.912,1.1205778218293696,0.24057237828123884,500 +RF Regr.,RF Clas.,RF Regr.,instrument,0.9,0.62,1.046850766016744,0.45835891474591894,500 +RF Regr.,RF Clas.,RF Regr.,instrument,0.95,0.724,1.247399625694183,0.45835891474591894,500 +RF Regr.,RF Clas.,RF Regr.,nuisance_space,0.9,0.954,1.0685671491162505,0.19701203032568387,500 +RF Regr.,RF Clas.,RF Regr.,nuisance_space,0.95,0.972,1.273276292196352,0.19701203032568387,500 diff --git a/results/plm/lplr_ate_metadata.csv b/results/plm/lplr_ate_metadata.csv new file mode 100644 index 00000000..4e334e60 --- /dev/null +++ b/results/plm/lplr_ate_metadata.csv @@ -0,0 +1,2 @@ +DoubleML Version,Script,Date,Total Runtime (minutes),Python Version,Config File +0.11.dev0,LPLRATECoverageSimulation,2025-11-14 12:30,16.61991152763367,3.12.9,scripts/plm/lplr_ate_config.yml diff --git a/scripts/plm/lplr_ate_config.yml b/scripts/plm/lplr_ate_config.yml index 4671641d..1c776619 100644 --- a/scripts/plm/lplr_ate_config.yml +++ b/scripts/plm/lplr_ate_config.yml @@ -1,7 +1,7 @@ # Simulation parameters for LPLR ATE Coverage simulation_parameters: - repetitions: 1000 + repetitions: 500 max_runtime: 19800 # 5.5 hours in seconds random_seed: 42 n_jobs: -2 From 1a09e0225d5b43ef943f11067b1d6f3556d48183 Mon Sep 17 00:00:00 2001 From: SvenKlaassen Date: Mon, 17 Nov 2025 10:01:27 +0100 Subject: [PATCH 31/38] Update lplr.qmd title and adjust menu order in _website.yml --- doc/_website.yml | 2 +- doc/plm/lplr.qmd | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/_website.yml b/doc/_website.yml index 98c2a044..b497b601 100644 --- a/doc/_website.yml +++ b/doc/_website.yml @@ -24,8 +24,8 @@ website: - plm/plr.qmd - plm/plr_gate.qmd - plm/plr_cate.qmd - - plm/pliv.qmd - plm/lplr.qmd + - plm/pliv.qmd - text: "DID" menu: - did/did_pa_multi.qmd diff --git a/doc/plm/lplr.qmd b/doc/plm/lplr.qmd index 200e5782..c032ce09 100644 --- a/doc/plm/lplr.qmd +++ b/doc/plm/lplr.qmd @@ -1,5 +1,5 @@ --- -title: "Logistic Partial Linear Regression Models" +title: "Logistic PLR Models" jupyter: python3 --- From bb5098397194afc9c894793bf7be5a8ebfee8752 Mon Sep 17 00:00:00 2001 From: github-actions Date: Mon, 17 Nov 2025 11:05:34 +0000 Subject: [PATCH 32/38] Update results from script: scripts/plm/lplr_ate.py --- results/plm/lplr_ate_coverage.csv | 24 ++++++++++++------------ results/plm/lplr_ate_metadata.csv | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/results/plm/lplr_ate_coverage.csv b/results/plm/lplr_ate_coverage.csv index 522cb302..d70dd3c1 100644 --- a/results/plm/lplr_ate_coverage.csv +++ b/results/plm/lplr_ate_coverage.csv @@ -1,13 +1,13 @@ Learner m,Learner M,Learner t,Score,level,Coverage,CI Length,Bias,repetition -LGBM Regr.,LGBM Clas.,LGBM Regr.,instrument,0.9,0.67,2.1390099112235337,0.7733541625882442,500 -LGBM Regr.,LGBM Clas.,LGBM Regr.,instrument,0.95,0.764,2.5487875151191384,0.7733541625882442,500 -LGBM Regr.,LGBM Clas.,LGBM Regr.,nuisance_space,0.9,0.984,1.9277279638621336,0.2466245115241902,500 -LGBM Regr.,LGBM Clas.,LGBM Regr.,nuisance_space,0.95,0.99,2.297029546734241,0.2466245115241902,500 -LassoCV,Logistic,LassoCV,instrument,0.9,0.86,1.0931286705325178,0.298255530442962,500 -LassoCV,Logistic,LassoCV,instrument,0.95,0.918,1.3025431501055353,0.298255530442962,500 -LassoCV,Logistic,LassoCV,nuisance_space,0.9,0.868,0.9404185531245673,0.24057237828123884,500 -LassoCV,Logistic,LassoCV,nuisance_space,0.95,0.912,1.1205778218293696,0.24057237828123884,500 -RF Regr.,RF Clas.,RF Regr.,instrument,0.9,0.62,1.046850766016744,0.45835891474591894,500 -RF Regr.,RF Clas.,RF Regr.,instrument,0.95,0.724,1.247399625694183,0.45835891474591894,500 -RF Regr.,RF Clas.,RF Regr.,nuisance_space,0.9,0.954,1.0685671491162505,0.19701203032568387,500 -RF Regr.,RF Clas.,RF Regr.,nuisance_space,0.95,0.972,1.273276292196352,0.19701203032568387,500 +LGBM Regr.,LGBM Clas.,LGBM Regr.,instrument,0.9,0.634,2.132568969077688,0.8086721712178914,500 +LGBM Regr.,LGBM Clas.,LGBM Regr.,instrument,0.95,0.732,2.5411126591772386,0.8086721712178914,500 +LGBM Regr.,LGBM Clas.,LGBM Regr.,nuisance_space,0.9,0.99,1.9454977395479216,0.24795234910718517,500 +LGBM Regr.,LGBM Clas.,LGBM Regr.,nuisance_space,0.95,0.996,2.3182035404482284,0.24795234910718517,500 +LassoCV,Logistic,LassoCV,instrument,0.9,0.862,1.1086348225322677,0.30791966387256126,500 +LassoCV,Logistic,LassoCV,instrument,0.95,0.924,1.3210198698332598,0.30791966387256126,500 +LassoCV,Logistic,LassoCV,nuisance_space,0.9,0.882,0.9499848768071947,0.24286882983701666,500 +LassoCV,Logistic,LassoCV,nuisance_space,0.95,0.928,1.1319767995713301,0.24286882983701666,500 +RF Regr.,RF Clas.,RF Regr.,instrument,0.9,0.598,1.0627422718182507,0.48472206759927056,500 +RF Regr.,RF Clas.,RF Regr.,instrument,0.95,0.71,1.2663355227981636,0.48472206759927056,500 +RF Regr.,RF Clas.,RF Regr.,nuisance_space,0.9,0.95,1.0969635901105794,0.2038171758444602,500 +RF Regr.,RF Clas.,RF Regr.,nuisance_space,0.95,0.986,1.3071127386290677,0.2038171758444602,500 diff --git a/results/plm/lplr_ate_metadata.csv b/results/plm/lplr_ate_metadata.csv index 4e334e60..14311203 100644 --- a/results/plm/lplr_ate_metadata.csv +++ b/results/plm/lplr_ate_metadata.csv @@ -1,2 +1,2 @@ DoubleML Version,Script,Date,Total Runtime (minutes),Python Version,Config File -0.11.dev0,LPLRATECoverageSimulation,2025-11-14 12:30,16.61991152763367,3.12.9,scripts/plm/lplr_ate_config.yml +0.11.dev0,LPLRATECoverageSimulation,2025-11-17 11:05,142.97858368555706,3.12.3,scripts/plm/lplr_ate_config.yml From 4b47f9d9aef2ae7469008ba312bdfd681cc6aafa Mon Sep 17 00:00:00 2001 From: github-actions Date: Mon, 17 Nov 2025 11:47:51 +0000 Subject: [PATCH 33/38] Update results from script: scripts/plm/plr_cate.py --- results/plm/plr_cate_coverage.csv | 56 +++++++++++++++---------------- results/plm/plr_cate_metadata.csv | 2 +- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/results/plm/plr_cate_coverage.csv b/results/plm/plr_cate_coverage.csv index 48144c2e..c7c635f5 100644 --- a/results/plm/plr_cate_coverage.csv +++ b/results/plm/plr_cate_coverage.csv @@ -1,29 +1,29 @@ Learner g,Learner m,Score,level,Coverage,CI Length,Bias,Uniform Coverage,Uniform CI Length,repetition -LGBM Regr.,LGBM Regr.,IV-type,0.9,0.81768,0.34823828039948385,0.10387882894377355,0.98,0.877536279711683,1000 -LGBM Regr.,LGBM Regr.,IV-type,0.95,0.88452,0.41495150476467624,0.10387882894377355,0.978,0.8755885557745791,1000 -LGBM Regr.,LGBM Regr.,partialling out,0.9,0.74497,0.4554797344783618,0.15685530804089212,0.98,1.1478638491759583,1000 -LGBM Regr.,LGBM Regr.,partialling out,0.95,0.8289,0.5427375789783838,0.15685530804089212,0.975,1.1461134314143238,1000 -LGBM Regr.,LassoCV,IV-type,0.9,0.87676,0.3654066819193057,0.09298925250332173,0.996,0.918570960342981,1000 -LGBM Regr.,LassoCV,IV-type,0.95,0.9305,0.43540891696209993,0.09298925250332173,0.998,0.9146633243328387,1000 -LGBM Regr.,LassoCV,partialling out,0.9,0.85076,0.6443958775932414,0.17786339324035,0.995,1.619401982358085,1000 -LGBM Regr.,LassoCV,partialling out,0.95,0.9138999999999999,0.7678450478354303,0.17786339324035,0.995,1.6169505074092843,1000 -LassoCV,LGBM Regr.,IV-type,0.9,0.78798,0.3564411077318671,0.11330573847372374,0.981,0.8967708526498701,1000 -LassoCV,LGBM Regr.,IV-type,0.95,0.86123,0.42472577639556236,0.11330573847372374,0.979,0.8951556638983089,1000 -LassoCV,LGBM Regr.,partialling out,0.9,0.11785999999999999,0.5624549054410738,0.520981993530588,0.256,1.4155635446728412,1000 -LassoCV,LGBM Regr.,partialling out,0.95,0.17375,0.6702063572887813,0.520981993530588,0.24,1.4141490939664967,1000 -LassoCV,LassoCV,IV-type,0.9,0.8915599999999999,0.36218624440931035,0.08891034982525507,0.997,0.9143791468774882,1000 -LassoCV,LassoCV,IV-type,0.95,0.94252,0.4315715289838449,0.08891034982525507,0.999,0.9097650128507542,1000 -LassoCV,LassoCV,partialling out,0.9,0.8849199999999999,0.377579333278092,0.09415271292259303,1.0,0.9476231917862463,1000 -LassoCV,LassoCV,partialling out,0.95,0.93728,0.44991352568147963,0.09415271292259303,0.999,0.9502179674293983,1000 -LassoCV,RF Regr.,IV-type,0.9,0.8889,0.3598606578601841,0.0882100995962088,0.998,0.9050777977331306,1000 -LassoCV,RF Regr.,IV-type,0.95,0.93929,0.4288004216922703,0.0882100995962088,0.998,0.9069174628488212,1000 -LassoCV,RF Regr.,partialling out,0.9,0.7726799999999999,0.4313687781659662,0.13994748702556353,0.987,1.0840879654944249,1000 -LassoCV,RF Regr.,partialling out,0.95,0.8509099999999999,0.5140076025046119,0.13994748702556353,0.987,1.0858563731119826,1000 -RF Regr.,LassoCV,IV-type,0.9,0.87934,0.34754930114103977,0.08873103739147503,0.997,0.8735631483319488,1000 -RF Regr.,LassoCV,IV-type,0.95,0.9341900000000001,0.41413053534191474,0.08873103739147503,0.996,0.8744577440640638,1000 -RF Regr.,LassoCV,partialling out,0.9,0.86793,0.4437729101158724,0.11739481291738822,0.994,1.1156963101203323,1000 -RF Regr.,LassoCV,partialling out,0.95,0.92559,0.5287880373609081,0.11739481291738822,0.994,1.1160214264978439,1000 -RF Regr.,RF Regr.,IV-type,0.9,0.87642,0.3432087450555705,0.08816969817335361,0.997,0.8637829663181292,1000 -RF Regr.,RF Regr.,IV-type,0.95,0.93063,0.4089584437582015,0.08816969817335361,0.996,0.8617899864405818,1000 -RF Regr.,RF Regr.,partialling out,0.9,0.8794299999999999,0.3835286791736148,0.09806292631011773,0.998,0.9641686388193965,1000 -RF Regr.,RF Regr.,partialling out,0.95,0.93136,0.45700260856139946,0.09806292631011773,0.995,0.9640860543159346,1000 +LGBM Regr.,LGBM Regr.,IV-type,0.9,0.82905,0.34859934457061187,0.10269066968736434,0.986,0.8788694707117327,1000 +LGBM Regr.,LGBM Regr.,IV-type,0.95,0.89328,0.41538173926087907,0.10269066968736434,0.986,0.8765365613685849,1000 +LGBM Regr.,LGBM Regr.,partialling out,0.9,0.7487699999999999,0.4562033822396419,0.15530020302736622,0.973,1.1461116868127335,1000 +LGBM Regr.,LGBM Regr.,partialling out,0.95,0.8297899999999999,0.5435998584702256,0.15530020302736622,0.971,1.1476869846192674,1000 +LGBM Regr.,LassoCV,IV-type,0.9,0.88228,0.3665735738309043,0.09237124180359486,0.998,0.9203983723665325,1000 +LGBM Regr.,LassoCV,IV-type,0.95,0.93635,0.436799354435143,0.09237124180359486,0.997,0.9195555991848416,1000 +LGBM Regr.,LassoCV,partialling out,0.9,0.84415,0.6446703702300751,0.18063600645569744,0.993,1.6102346810221977,1000 +LGBM Regr.,LassoCV,partialling out,0.95,0.9068200000000001,0.7681721259859722,0.18063600645569744,0.991,1.6197708088395464,1000 +LassoCV,LGBM Regr.,IV-type,0.9,0.78462,0.35820003669569267,0.11367456664699994,0.977,0.9022806080230871,1000 +LassoCV,LGBM Regr.,IV-type,0.95,0.86042,0.42682166952792083,0.11367456664699994,0.983,0.9028292164077011,1000 +LassoCV,LGBM Regr.,partialling out,0.9,0.11332,0.5635001570275089,0.5253287834841598,0.257,1.4151506337590742,1000 +LassoCV,LGBM Regr.,partialling out,0.95,0.16911,0.6714518513744726,0.5253287834841598,0.246,1.4217510537602984,1000 +LassoCV,LassoCV,IV-type,0.9,0.89467,0.3638287468934425,0.088964144313276,0.999,0.9149966883358348,1000 +LassoCV,LassoCV,IV-type,0.95,0.9472999999999999,0.4335286914089192,0.088964144313276,0.998,0.9154935052029363,1000 +LassoCV,LassoCV,partialling out,0.9,0.88946,0.3783305434334964,0.0937660325206101,0.998,0.9527467197251451,1000 +LassoCV,LassoCV,partialling out,0.95,0.94586,0.4508086477916106,0.0937660325206101,0.999,0.9523664378421313,1000 +LassoCV,RF Regr.,IV-type,0.9,0.89402,0.36133940754837507,0.08742978566108492,0.998,0.9102557308429199,1000 +LassoCV,RF Regr.,IV-type,0.95,0.9471499999999999,0.4305624606260176,0.08742978566108492,0.997,0.9103412832643125,1000 +LassoCV,RF Regr.,partialling out,0.9,0.76742,0.4333802817413689,0.14145970305557048,0.989,1.0911406471440919,1000 +LassoCV,RF Regr.,partialling out,0.95,0.8513,0.5164044568495605,0.14145970305557048,0.984,1.090270069893263,1000 +RF Regr.,LassoCV,IV-type,0.9,0.8809199999999999,0.3488601215296179,0.08868809382454168,0.996,0.8712649919759498,1000 +RF Regr.,LassoCV,IV-type,0.95,0.9355399999999999,0.41569247417325955,0.08868809382454168,0.998,0.87648182402068,1000 +RF Regr.,LassoCV,partialling out,0.9,0.8620399999999999,0.4453600356514868,0.11971854257293388,0.993,1.1194369351513875,1000 +RF Regr.,LassoCV,partialling out,0.95,0.92079,0.5306792140819111,0.11971854257293388,0.994,1.1126580820916288,1000 +RF Regr.,RF Regr.,IV-type,0.9,0.8773500000000001,0.34471572299390735,0.08798679363788052,0.996,0.8651769659880062,1000 +RF Regr.,RF Regr.,IV-type,0.95,0.93284,0.41075411872662454,0.08798679363788052,0.996,0.8664637796214006,1000 +RF Regr.,RF Regr.,partialling out,0.9,0.8784500000000001,0.3846648443860267,0.09849944709058014,0.996,0.9691346097579039,1000 +RF Regr.,RF Regr.,partialling out,0.95,0.93471,0.45835643291411227,0.09849944709058014,0.999,0.9675297074982309,1000 diff --git a/results/plm/plr_cate_metadata.csv b/results/plm/plr_cate_metadata.csv index 7d45473c..3527c916 100644 --- a/results/plm/plr_cate_metadata.csv +++ b/results/plm/plr_cate_metadata.csv @@ -1,2 +1,2 @@ DoubleML Version,Script,Date,Total Runtime (minutes),Python Version,Config File -0.11.dev0,PLRCATECoverageSimulation,2025-09-08 09:40,182.2720296104749,3.12.3,scripts/plm/plr_cate_config.yml +0.11.dev0,PLRCATECoverageSimulation,2025-11-17 11:47,185.29402711788813,3.12.3,scripts/plm/plr_cate_config.yml From cc6412048bf2d073d760c5680886ce5b60b90581 Mon Sep 17 00:00:00 2001 From: github-actions Date: Mon, 17 Nov 2025 11:46:38 +0000 Subject: [PATCH 34/38] Update results from script: scripts/plm/plr_gate.py --- results/plm/plr_gate_coverage.csv | 56 +++++++++++++++---------------- results/plm/plr_gate_metadata.csv | 2 +- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/results/plm/plr_gate_coverage.csv b/results/plm/plr_gate_coverage.csv index a67c5963..a32ab6dd 100644 --- a/results/plm/plr_gate_coverage.csv +++ b/results/plm/plr_gate_coverage.csv @@ -1,29 +1,29 @@ Learner g,Learner m,Score,level,Coverage,CI Length,Bias,Uniform Coverage,Uniform CI Length,repetition -LGBM Regr.,LGBM Regr.,IV-type,0.9,0.794,0.34039097989929323,0.10996244021435428,0.992,0.7985363445318471,1000 -LGBM Regr.,LGBM Regr.,IV-type,0.95,0.8646666666666666,0.40560086948368634,0.10996244021435428,0.988,0.7989497121363136,1000 -LGBM Regr.,LGBM Regr.,partialling out,0.9,0.7403333333333333,0.4121990949361976,0.14000136984606248,0.98,0.9732951637644821,1000 -LGBM Regr.,LGBM Regr.,partialling out,0.95,0.8226666666666667,0.49116551606618364,0.14000136984606248,0.979,0.970490906555309,1000 -LGBM Regr.,LassoCV,IV-type,0.9,0.875,0.35821915738907717,0.0926838853161814,1.0,0.8415239536002534,1000 -LGBM Regr.,LassoCV,IV-type,0.95,0.9343333333333333,0.42684445323935816,0.0926838853161814,0.998,0.8396643304710062,1000 -LGBM Regr.,LassoCV,partialling out,0.9,0.8573333333333334,0.5544776734850916,0.15109645763906593,1.0,1.3029617117268792,1000 -LGBM Regr.,LassoCV,partialling out,0.95,0.9206666666666666,0.6607008991289419,0.15109645763906593,0.997,1.2998315248240804,1000 -LassoCV,LGBM Regr.,IV-type,0.9,0.7163333333333333,0.353651976819609,0.12795329417339824,0.986,0.8307718361994854,1000 -LassoCV,LGBM Regr.,IV-type,0.95,0.812,0.4214023219272613,0.12795329417339824,0.986,0.8299509093514186,1000 -LassoCV,LGBM Regr.,partialling out,0.9,0.153,0.48227061524945375,0.47705751440082,0.186,1.1293996780513653,1000 -LassoCV,LGBM Regr.,partialling out,0.95,0.19666666666666666,0.5746608824049421,0.47705751440082,0.2,1.1331501847151988,1000 -LassoCV,LassoCV,IV-type,0.9,0.894,0.3567909805774525,0.08720030959955781,1.0,0.8379481107440971,1000 -LassoCV,LassoCV,IV-type,0.95,0.9443333333333334,0.425142675604878,0.08720030959955781,0.999,0.8372526073211394,1000 -LassoCV,LassoCV,partialling out,0.9,0.8903333333333334,0.36794475532392246,0.09196794783532097,1.0,0.8651972935534187,1000 -LassoCV,LassoCV,partialling out,0.95,0.943,0.4384332179586496,0.09196794783532097,0.999,0.8653275873310468,1000 -LassoCV,RF Regr.,IV-type,0.9,0.888,0.35565076241770976,0.08801288004439413,0.999,0.836428639272237,1000 -LassoCV,RF Regr.,IV-type,0.95,0.9436666666666667,0.42378402186755043,0.08801288004439413,0.999,0.8380334103705674,1000 -LassoCV,RF Regr.,partialling out,0.9,0.755,0.40437308174199216,0.13257587113478758,0.984,0.9528722463750902,1000 -LassoCV,RF Regr.,partialling out,0.95,0.84,0.4818402461747792,0.13257587113478758,0.987,0.9530223996886317,1000 -RF Regr.,LassoCV,IV-type,0.9,0.8786666666666666,0.34683779869312964,0.08863943282865501,0.999,0.8129069985927083,1000 -RF Regr.,LassoCV,IV-type,0.95,0.9363333333333334,0.4132827278835693,0.08863943282865501,0.999,0.8106200280369072,1000 -RF Regr.,LassoCV,partialling out,0.9,0.876,0.41229188635555847,0.1063156469979095,0.998,0.9697196791996823,1000 -RF Regr.,LassoCV,partialling out,0.95,0.9336666666666666,0.4912760838620298,0.1063156469979095,1.0,0.9678399719243883,1000 -RF Regr.,RF Regr.,IV-type,0.9,0.879,0.34379508384897806,0.08882882234430942,0.997,0.8077113920377728,1000 -RF Regr.,RF Regr.,IV-type,0.95,0.932,0.40965710952334156,0.08882882234430942,0.998,0.8115195081784735,1000 -RF Regr.,RF Regr.,partialling out,0.9,0.885,0.3683217729276454,0.0915713260351349,1.0,0.8652487630115112,1000 -RF Regr.,RF Regr.,partialling out,0.95,0.9386666666666666,0.438882462142282,0.0915713260351349,1.0,0.8665925848261755,1000 +LGBM Regr.,LGBM Regr.,IV-type,0.9,0.8053333333333333,0.3409114324357686,0.10830011848130718,0.991,0.8017592987199822,1000 +LGBM Regr.,LGBM Regr.,IV-type,0.95,0.875,0.4062210269314008,0.10830011848130718,0.988,0.799796307936306,1000 +LGBM Regr.,LGBM Regr.,partialling out,0.9,0.7383333333333334,0.4124415095407824,0.1366399549532388,0.984,0.9697388963048222,1000 +LGBM Regr.,LGBM Regr.,partialling out,0.95,0.8283333333333334,0.49145437088373556,0.1366399549532388,0.984,0.9665687910235732,1000 +LGBM Regr.,LassoCV,IV-type,0.9,0.8936666666666666,0.35821185324988614,0.08767343268627296,0.999,0.8442099807695619,1000 +LGBM Regr.,LassoCV,IV-type,0.95,0.9493333333333334,0.4268357498206965,0.08767343268627296,0.999,0.8418490502463957,1000 +LGBM Regr.,LassoCV,partialling out,0.9,0.8396666666666667,0.5553838841615836,0.15655208513456628,0.995,1.3020013862133748,1000 +LGBM Regr.,LassoCV,partialling out,0.95,0.9026666666666666,0.6617807157516657,0.15655208513456628,0.996,1.3068899330904447,1000 +LassoCV,LGBM Regr.,IV-type,0.9,0.7393333333333334,0.35377029877119814,0.1253820270670297,0.986,0.8278870895082657,1000 +LassoCV,LGBM Regr.,IV-type,0.95,0.8236666666666667,0.42154331122861627,0.1253820270670297,0.983,0.8318320743030287,1000 +LassoCV,LGBM Regr.,partialling out,0.9,0.144,0.48091195717862995,0.4806335238545862,0.154,1.1322758027985098,1000 +LassoCV,LGBM Regr.,partialling out,0.95,0.191,0.5730419414593854,0.4806335238545862,0.156,1.1291510461071579,1000 +LassoCV,LassoCV,IV-type,0.9,0.9043333333333333,0.3571755626965762,0.0846962632601286,1.0,0.8373681252041506,1000 +LassoCV,LassoCV,IV-type,0.95,0.951,0.4256009334645622,0.0846962632601286,0.999,0.842347593014819,1000 +LassoCV,LassoCV,partialling out,0.9,0.8886666666666666,0.36826827935260703,0.08969215106833642,0.997,0.8647058876249634,1000 +LassoCV,LassoCV,partialling out,0.95,0.944,0.43881872061612937,0.08969215106833642,0.997,0.8654820471522434,1000 +LassoCV,RF Regr.,IV-type,0.9,0.8986666666666666,0.35592501324799986,0.08510323311217904,0.999,0.8366218670463145,1000 +LassoCV,RF Regr.,IV-type,0.95,0.9483333333333334,0.42411081188782424,0.08510323311217904,0.999,0.8366949606336201,1000 +LassoCV,RF Regr.,partialling out,0.9,0.7383333333333334,0.4030595445326118,0.13187581900072584,0.99,0.9493412021611323,1000 +LassoCV,RF Regr.,partialling out,0.95,0.833,0.48027507005177655,0.13187581900072584,0.991,0.9490391291628868,1000 +RF Regr.,LassoCV,IV-type,0.9,0.8883333333333334,0.3469399138393356,0.08520954380177768,1.0,0.8161804056188466,1000 +RF Regr.,LassoCV,IV-type,0.95,0.9433333333333334,0.413404405585196,0.08520954380177768,0.998,0.8113422076955483,1000 +RF Regr.,LassoCV,partialling out,0.9,0.867,0.41304588013208265,0.10868702662568211,0.998,0.9703778734057933,1000 +RF Regr.,LassoCV,partialling out,0.95,0.926,0.4921745228613064,0.10868702662568211,0.998,0.9699783780272438,1000 +RF Regr.,RF Regr.,IV-type,0.9,0.8883333333333334,0.34434350122208923,0.08569474479321623,0.998,0.808725225751662,1000 +RF Regr.,RF Regr.,IV-type,0.95,0.9463333333333334,0.410310589129175,0.08569474479321623,0.997,0.8079739610497064,1000 +RF Regr.,RF Regr.,partialling out,0.9,0.8866666666666666,0.36881414918104743,0.09303338687448989,0.999,0.8697573903122439,1000 +RF Regr.,RF Regr.,partialling out,0.95,0.9396666666666667,0.4394691646352566,0.09303338687448989,0.998,0.8652094967951268,1000 diff --git a/results/plm/plr_gate_metadata.csv b/results/plm/plr_gate_metadata.csv index 7f003424..44ab86c4 100644 --- a/results/plm/plr_gate_metadata.csv +++ b/results/plm/plr_gate_metadata.csv @@ -1,2 +1,2 @@ DoubleML Version,Script,Date,Total Runtime (minutes),Python Version,Config File -0.11.dev0,PLRGATECoverageSimulation,2025-09-08 09:41,182.90292783578238,3.12.3,scripts/plm/plr_gate_config.yml +0.11.dev0,PLRGATECoverageSimulation,2025-11-17 11:46,184.07251759767533,3.12.3,scripts/plm/plr_gate_config.yml From 6763a4ca22ef6196905de7c7e32bcbc1546f826c Mon Sep 17 00:00:00 2001 From: github-actions Date: Mon, 17 Nov 2025 11:56:34 +0000 Subject: [PATCH 35/38] Update results from script: scripts/plm/plr_ate.py --- results/plm/plr_ate_coverage.csv | 56 ++++++++++++++++---------------- results/plm/plr_ate_metadata.csv | 2 +- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/results/plm/plr_ate_coverage.csv b/results/plm/plr_ate_coverage.csv index 3c1b8166..3472d852 100644 --- a/results/plm/plr_ate_coverage.csv +++ b/results/plm/plr_ate_coverage.csv @@ -1,29 +1,29 @@ Learner g,Learner m,Score,level,Coverage,CI Length,Bias,repetition -LGBM Regr.,LGBM Regr.,IV-type,0.9,0.901,0.1600886964717691,0.03825459741300921,1000 -LGBM Regr.,LGBM Regr.,IV-type,0.95,0.954,0.1907574475171759,0.03825459741300921,1000 -LGBM Regr.,LGBM Regr.,partialling out,0.9,0.852,0.1472338725724203,0.04033882206093188,1000 -LGBM Regr.,LGBM Regr.,partialling out,0.95,0.907,0.17543998007964826,0.04033882206093188,1000 -LGBM Regr.,LassoCV,IV-type,0.9,0.897,0.14893931259851462,0.03581322542672391,1000 -LGBM Regr.,LassoCV,IV-type,0.95,0.944,0.17747213721154637,0.03581322542672391,1000 -LGBM Regr.,LassoCV,partialling out,0.9,0.919,0.15954274114692812,0.036771169423404644,1000 -LGBM Regr.,LassoCV,partialling out,0.95,0.965,0.1901069016228039,0.036771169423404644,1000 -LassoCV,LGBM Regr.,IV-type,0.9,0.909,0.15087501797235597,0.03579426387662549,1000 -LassoCV,LGBM Regr.,IV-type,0.95,0.962,0.17977867242856824,0.03579426387662549,1000 -LassoCV,LGBM Regr.,partialling out,0.9,0.5,0.13938134605639943,0.0716306212080508,1000 -LassoCV,LGBM Regr.,partialling out,0.95,0.637,0.16608311761671207,0.0716306212080508,1000 -LassoCV,LassoCV,IV-type,0.9,0.903,0.14017731757203095,0.03335306344342395,1000 -LassoCV,LassoCV,IV-type,0.95,0.949,0.16703157617727646,0.03335306344342395,1000 -LassoCV,LassoCV,partialling out,0.9,0.913,0.1470503863434512,0.03311342390288956,1000 -LassoCV,LassoCV,partialling out,0.95,0.962,0.1752213427525658,0.03311342390288956,1000 -LassoCV,RF Regr.,IV-type,0.9,0.872,0.13067781887808327,0.03371461104404601,1000 -LassoCV,RF Regr.,IV-type,0.95,0.929,0.15571222532061083,0.03371461104404601,1000 -LassoCV,RF Regr.,partialling out,0.9,0.779,0.1433760406549323,0.04587343436600307,1000 -LassoCV,RF Regr.,partialling out,0.95,0.879,0.17084308981975366,0.04587343436600307,1000 -RF Regr.,LassoCV,IV-type,0.9,0.906,0.1414322610744008,0.03340307522412499,1000 -RF Regr.,LassoCV,IV-type,0.95,0.95,0.16852693359204907,0.03340307522412499,1000 -RF Regr.,LassoCV,partialling out,0.9,0.91,0.15082186132541758,0.03461629259435052,1000 -RF Regr.,LassoCV,partialling out,0.95,0.963,0.17971533237700918,0.03461629259435052,1000 -RF Regr.,RF Regr.,IV-type,0.9,0.87,0.13172986702290923,0.03443723399705047,1000 -RF Regr.,RF Regr.,IV-type,0.95,0.931,0.15696581800513595,0.03443723399705047,1000 -RF Regr.,RF Regr.,partialling out,0.9,0.917,0.1427041207685971,0.03381092461795716,1000 -RF Regr.,RF Regr.,partialling out,0.95,0.955,0.1700424478926333,0.03381092461795716,1000 +LGBM Regr.,LGBM Regr.,IV-type,0.9,0.863,0.1596875004155196,0.04190692285022562,1000 +LGBM Regr.,LGBM Regr.,IV-type,0.95,0.927,0.19027939293036994,0.04190692285022562,1000 +LGBM Regr.,LGBM Regr.,partialling out,0.9,0.82,0.14673790477408832,0.04274003558423509,1000 +LGBM Regr.,LGBM Regr.,partialling out,0.95,0.882,0.1748489979969301,0.04274003558423509,1000 +LGBM Regr.,LassoCV,IV-type,0.9,0.864,0.14850767996959235,0.039302736245328145,1000 +LGBM Regr.,LassoCV,IV-type,0.95,0.927,0.176957815211474,0.039302736245328145,1000 +LGBM Regr.,LassoCV,partialling out,0.9,0.882,0.15900684464932308,0.04075159325722853,1000 +LGBM Regr.,LassoCV,partialling out,0.95,0.932,0.189468341560354,0.04075159325722853,1000 +LassoCV,LGBM Regr.,IV-type,0.9,0.868,0.15035462431781724,0.03885008673020529,1000 +LassoCV,LGBM Regr.,IV-type,0.95,0.937,0.17915858514300867,0.03885008673020529,1000 +LassoCV,LGBM Regr.,partialling out,0.9,0.492,0.13884592445719834,0.0709498471401035,1000 +LassoCV,LGBM Regr.,partialling out,0.95,0.612,0.16544512343061302,0.0709498471401035,1000 +LassoCV,LassoCV,IV-type,0.9,0.869,0.13981178087085014,0.03694061273543505,1000 +LassoCV,LassoCV,IV-type,0.95,0.93,0.16659601233280855,0.03694061273543505,1000 +LassoCV,LassoCV,partialling out,0.9,0.883,0.14670738716893747,0.03669884399866198,1000 +LassoCV,LassoCV,partialling out,0.95,0.944,0.17481263402751057,0.03669884399866198,1000 +LassoCV,RF Regr.,IV-type,0.9,0.835,0.1302896143924338,0.03725192920475538,1000 +LassoCV,RF Regr.,IV-type,0.95,0.904,0.15524965114498646,0.03725192920475538,1000 +LassoCV,RF Regr.,partialling out,0.9,0.777,0.14256373927301522,0.046784627261935774,1000 +LassoCV,RF Regr.,partialling out,0.95,0.862,0.1698751730233513,0.046784627261935774,1000 +RF Regr.,LassoCV,IV-type,0.9,0.871,0.14106017506402294,0.036864349901817875,1000 +RF Regr.,LassoCV,IV-type,0.95,0.938,0.1680835657643333,0.036864349901817875,1000 +RF Regr.,LassoCV,partialling out,0.9,0.884,0.15071292176789794,0.03856536256116802,1000 +RF Regr.,LassoCV,partialling out,0.95,0.934,0.1795855228877442,0.03856536256116802,1000 +RF Regr.,RF Regr.,IV-type,0.9,0.83,0.13156454943211618,0.037590451309181865,1000 +RF Regr.,RF Regr.,IV-type,0.95,0.902,0.15676882994573899,0.037590451309181865,1000 +RF Regr.,RF Regr.,partialling out,0.9,0.875,0.14232152273160326,0.037118739561801554,1000 +RF Regr.,RF Regr.,partialling out,0.95,0.934,0.1695865542126264,0.037118739561801554,1000 diff --git a/results/plm/plr_ate_metadata.csv b/results/plm/plr_ate_metadata.csv index 5e6a9eab..50efb048 100644 --- a/results/plm/plr_ate_metadata.csv +++ b/results/plm/plr_ate_metadata.csv @@ -1,2 +1,2 @@ DoubleML Version,Script,Date,Total Runtime (minutes),Python Version,Config File -0.11.dev0,PLRATECoverageSimulation,2025-09-08 09:49,191.29596571127573,3.12.3,scripts/plm/plr_ate_config.yml +0.11.dev0,PLRATECoverageSimulation,2025-11-17 11:56,194.01051502227784,3.12.3,scripts/plm/plr_ate_config.yml From e991cfd496a91673486e7d9b06bfa49d81751974 Mon Sep 17 00:00:00 2001 From: github-actions Date: Mon, 17 Nov 2025 12:27:07 +0000 Subject: [PATCH 36/38] Update results from script: scripts/plm/plr_ate_sensitivity.py --- results/plm/plr_ate_sensitivity_coverage.csv | 56 ++++++++++---------- results/plm/plr_ate_sensitivity_metadata.csv | 2 +- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/results/plm/plr_ate_sensitivity_coverage.csv b/results/plm/plr_ate_sensitivity_coverage.csv index 43da6710..e37ff825 100644 --- a/results/plm/plr_ate_sensitivity_coverage.csv +++ b/results/plm/plr_ate_sensitivity_coverage.csv @@ -1,29 +1,29 @@ Learner g,Learner m,Score,level,Coverage,CI Length,Bias,Coverage (Lower),Coverage (Upper),RV,RVa,Bias (Lower),Bias (Upper),repetition -LGBM Regr.,LGBM Regr.,IV-type,0.9,0.368,1.4130276149295062,0.7776955695629277,1.0,0.982,0.10569278411287723,0.03437123296145821,1.4768525799432917,0.2832048367486087,1000 -LGBM Regr.,LGBM Regr.,IV-type,0.95,0.563,1.6837262532321802,0.7776955695629277,1.0,0.998,0.10569278411287723,0.019957945209223452,1.4768525799432917,0.2832048367486087,1000 -LGBM Regr.,LGBM Regr.,partialling out,0.9,0.197,1.1036170641107683,0.7533205172861593,1.0,0.958,0.10286020512445486,0.04477468564587913,1.4517378970695347,0.2701072971745142,1000 -LGBM Regr.,LGBM Regr.,partialling out,0.95,0.328,1.3150408418953825,0.7533205172861593,1.0,0.99,0.10286020512445486,0.03092531289089865,1.4517378970695347,0.2701072971745142,1000 -LGBM Regr.,LassoCV,IV-type,0.9,0.014,1.5210602294429545,1.4722376739129348,1.0,0.342,0.187052732232324,0.11154145891103627,2.206841524080496,0.739838040136095,1000 -LGBM Regr.,LassoCV,IV-type,0.95,0.04,1.8124550532497785,1.4722376739129348,1.0,0.575,0.187052732232324,0.09125786643830988,2.206841524080496,0.739838040136095,1000 -LGBM Regr.,LassoCV,partialling out,0.9,0.034,1.5172192685496437,1.3331950868658557,1.0,0.531,0.17262748934729075,0.09662159553237581,2.0626429964650645,0.6088611336020913,1000 -LGBM Regr.,LassoCV,partialling out,0.95,0.078,1.8078782660551218,1.3331950868658557,1.0,0.762,0.17262748934729075,0.07659278737534501,2.0626429964650645,0.6088611336020913,1000 -LassoCV,LGBM Regr.,IV-type,0.9,0.727,2.5003353511715347,1.0260691972678968,1.0,1.0,0.06857830803361809,0.011046690191865164,2.5350733610969094,0.5855739867516375,1000 -LassoCV,LGBM Regr.,IV-type,0.95,0.914,2.979333332322765,1.0260691972678968,1.0,1.0,0.06857830803361809,0.0035042749813071943,2.5350733610969094,0.5855739867516375,1000 -LassoCV,LGBM Regr.,partialling out,0.9,0.615,1.973225997239198,0.9037599801630222,1.0,1.0,0.06019148976457814,0.012246879030501567,2.4255092285847315,0.6577299295472866,1000 -LassoCV,LGBM Regr.,partialling out,0.95,0.843,2.3512437973674243,0.9037599801630222,1.0,1.0,0.06019148976457814,0.004551378899486863,2.4255092285847315,0.6577299295472866,1000 -LassoCV,LassoCV,IV-type,0.9,0.0,2.5820016214137116,4.838779530934393,1.0,0.0,0.28187825138701833,0.22320708072953266,6.368225438871106,3.30933362299768,1000 -LassoCV,LassoCV,IV-type,0.95,0.0,3.0766446953545254,4.838779530934393,1.0,0.003,0.28187825138701833,0.206643225402766,6.368225438871106,3.30933362299768,1000 -LassoCV,LassoCV,partialling out,0.9,0.0,2.5944192749771635,4.839449418123379,1.0,0.0,0.28195693686484097,0.22305576047709652,6.368580044140921,3.310318792105836,1000 -LassoCV,LassoCV,partialling out,0.95,0.0,3.0914412422071287,4.839449418123379,1.0,0.002,0.28195693686484097,0.20641944500724754,6.368580044140921,3.310318792105836,1000 -LassoCV,RF Regr.,IV-type,0.9,0.034,2.2222779007979443,1.7226837360974696,1.0,0.995,0.10364150401296536,0.05138172074220209,3.374968636682733,0.32715566226404,1000 -LassoCV,RF Regr.,IV-type,0.95,0.103,2.64800744445314,1.7226837360974696,1.0,1.0,0.10364150401296536,0.037132422693584015,3.374968636682733,0.32715566226404,1000 -LassoCV,RF Regr.,partialling out,0.9,0.035,2.2533857956321035,1.6792356777739657,1.0,1.0,0.09954267183056487,0.047435746708649605,3.3588540806778853,0.30700691066074626,1000 -LassoCV,RF Regr.,partialling out,0.95,0.11,2.6850747874135052,1.6792356777739657,1.0,1.0,0.09954267183056487,0.0333052565732053,3.3588540806778853,0.30700691066074626,1000 -RF Regr.,LassoCV,IV-type,0.9,0.0,1.9800532348609368,2.5041605666150644,1.0,0.144,0.18842514397775142,0.13205735930879128,3.7588870533546057,1.2494340798755232,1000 -RF Regr.,LassoCV,IV-type,0.95,0.005,2.3593789527595215,2.5041605666150644,1.0,0.294,0.18842514397775142,0.11595339829359219,3.7588870533546057,1.2494340798755232,1000 -RF Regr.,LassoCV,partialling out,0.9,0.005,1.9561724875919793,2.209385831886938,1.0,0.325,0.16805094604382914,0.11184890983268013,3.467500132832606,0.9528194804323791,1000 -RF Regr.,LassoCV,partialling out,0.95,0.015,2.330923287280151,2.209385831886938,1.0,0.522,0.16805094604382914,0.09578872123641222,3.467500132832606,0.9528194804323791,1000 -RF Regr.,RF Regr.,IV-type,0.9,0.018,1.7756936336340403,1.638643743950897,1.0,0.895,0.1205058848458396,0.07010915091220656,2.969811795319561,0.4176089431455293,1000 -RF Regr.,RF Regr.,IV-type,0.95,0.051,2.115869468549653,1.638643743950897,1.0,0.975,0.1205058848458396,0.05597430765776451,2.969811795319561,0.4176089431455293,1000 -RF Regr.,RF Regr.,partialling out,0.9,0.021,1.7681560091268151,1.6030275360920991,1.0,0.928,0.11767370266913284,0.06767629996605996,2.93989420524225,0.37430263781731266,1000 -RF Regr.,RF Regr.,partialling out,0.95,0.061,2.106887834973826,1.6030275360920991,1.0,0.984,0.11767370266913284,0.05366553030606561,2.93989420524225,0.37430263781731266,1000 +LGBM Regr.,LGBM Regr.,IV-type,0.9,0.359,1.3755861250755959,0.7533817675308617,1.0,0.983,0.10444003719792545,0.03319588065777179,1.4454211498085776,0.26049409728823314,1000 +LGBM Regr.,LGBM Regr.,IV-type,0.95,0.566,1.6391119663201015,0.7533817675308617,1.0,0.999,0.10444003719792545,0.018658743299259112,1.4454211498085776,0.26049409728823314,1000 +LGBM Regr.,LGBM Regr.,partialling out,0.9,0.197,1.0680881308927423,0.7347354428810158,1.0,0.964,0.10198131802798086,0.0443414010278968,1.4282242316249965,0.25229952777929987,1000 +LGBM Regr.,LGBM Regr.,partialling out,0.95,0.324,1.2727055067777409,0.7347354428810158,1.0,0.992,0.10198131802798086,0.030840462791778402,1.4282242316249965,0.25229952777929987,1000 +LGBM Regr.,LassoCV,IV-type,0.9,0.015,1.4891617522492961,1.4488819159319037,1.0,0.378,0.18561743623652635,0.11029731701869455,2.1807608786019643,0.7221920339148978,1000 +LGBM Regr.,LassoCV,IV-type,0.95,0.042,1.7744456733044545,1.4488819159319037,1.0,0.601,0.18561743623652635,0.090030878628444,2.1807608786019643,0.7221920339148978,1000 +LGBM Regr.,LassoCV,partialling out,0.9,0.024,1.4917502052656801,1.3221204315783734,1.0,0.541,0.17228087019571867,0.09619454723796686,2.049489609674191,0.5997556153052517,1000 +LGBM Regr.,LassoCV,partialling out,0.95,0.073,1.7775300053110592,1.3221204315783734,1.0,0.761,0.17228087019571867,0.07583850420764672,2.049489609674191,0.5997556153052517,1000 +LassoCV,LGBM Regr.,IV-type,0.9,0.73,2.479560595815695,1.0346426864763705,1.0,1.0,0.06920738865206702,0.011540810801436563,2.5443047864136346,0.5569471732424347,1000 +LassoCV,LGBM Regr.,IV-type,0.95,0.893,2.954578684481825,1.0346426864763705,1.0,1.0,0.06920738865206702,0.0038983537654415056,2.5443047864136346,0.5569471732424347,1000 +LassoCV,LGBM Regr.,partialling out,0.9,0.632,1.9605167535420611,0.8992111659887163,1.0,1.0,0.05998295861547946,0.012000973566668068,2.4210030177077586,0.6440835936658005,1000 +LassoCV,LGBM Regr.,partialling out,0.95,0.835,2.336099799440206,0.8992111659887163,1.0,1.0,0.05998295861547946,0.004434166638410146,2.4210030177077586,0.6440835936658005,1000 +LassoCV,LassoCV,IV-type,0.9,0.0,2.5703372661953776,4.865260754822335,1.0,0.0,0.2830286662624298,0.22439945551293977,6.395774925585079,3.334746584059591,1000 +LassoCV,LassoCV,IV-type,0.95,0.0,3.062745758843568,4.865260754822335,1.0,0.0,0.2830286662624298,0.2078827373214068,6.395774925585079,3.334746584059591,1000 +LassoCV,LassoCV,partialling out,0.9,0.0,2.58639958016462,4.867314618361354,1.0,0.0,0.28309171431147057,0.22417951908385741,6.398064076377938,3.336565160344769,1000 +LassoCV,LassoCV,partialling out,0.95,0.0,3.0818851864329013,4.867314618361354,1.0,0.0,0.28309171431147057,0.2075756117099462,6.398064076377938,3.336565160344769,1000 +LassoCV,RF Regr.,IV-type,0.9,0.03,2.201968880538331,1.7117879345092915,1.0,0.994,0.10304348206977468,0.05118734638448726,3.365492564732171,0.3138790534461325,1000 +LassoCV,RF Regr.,IV-type,0.95,0.099,2.623807754208416,1.7117879345092915,1.0,1.0,0.10304348206977468,0.0369081382284807,3.365492564732171,0.3138790534461325,1000 +LassoCV,RF Regr.,partialling out,0.9,0.033,2.2330906910397963,1.656734265754782,1.0,0.998,0.0982817284966058,0.04650603557240649,3.3380373315922904,0.30299233007013754,1000 +LassoCV,RF Regr.,partialling out,0.95,0.13,2.6608916787091044,1.656734265754782,1.0,0.999,0.0982817284966058,0.032237308880055986,3.3380373315922904,0.30299233007013754,1000 +RF Regr.,LassoCV,IV-type,0.9,0.001,1.951602488934002,2.496369543889771,1.0,0.149,0.1882495178000821,0.13226664609458022,3.749193574131233,1.2443559351590099,1000 +RF Regr.,LassoCV,IV-type,0.95,0.004,2.325477798008481,2.496369543889771,1.0,0.283,0.1882495178000821,0.11629352945863138,3.749193574131233,1.2443559351590099,1000 +RF Regr.,LassoCV,partialling out,0.9,0.002,1.9227923312991766,2.18289621236076,1.0,0.321,0.16667394665087393,0.11098639679899193,3.4384927296936114,0.928664433523872,1000 +RF Regr.,LassoCV,partialling out,0.95,0.01,2.291148377792633,2.18289621236076,1.0,0.566,0.16667394665087393,0.09505438614556037,3.4384927296936114,0.928664433523872,1000 +RF Regr.,RF Regr.,IV-type,0.9,0.015,1.7421619533890125,1.6093123421586957,1.0,0.903,0.1189984467466679,0.06912583869905706,2.9380563428464184,0.3931839897902748,1000 +RF Regr.,RF Regr.,IV-type,0.95,0.051,2.0759140071368507,1.6093123421586957,1.0,0.967,0.1189984467466679,0.05511967656630338,2.9380563428464184,0.3931839897902748,1000 +RF Regr.,RF Regr.,partialling out,0.9,0.013,1.7368870337302156,1.5939873207774409,1.0,0.931,0.1174689960814369,0.06795129356233286,2.9287971865967988,0.37330009521026997,1000 +RF Regr.,RF Regr.,partialling out,0.95,0.047,2.0696285526847444,1.5939873207774409,1.0,0.976,0.1174689960814369,0.05405509596164712,2.9287971865967988,0.37330009521026997,1000 diff --git a/results/plm/plr_ate_sensitivity_metadata.csv b/results/plm/plr_ate_sensitivity_metadata.csv index 64f7e15d..ba728b1b 100644 --- a/results/plm/plr_ate_sensitivity_metadata.csv +++ b/results/plm/plr_ate_sensitivity_metadata.csv @@ -1,2 +1,2 @@ DoubleML Version,Script,Date,Total Runtime (minutes),Python Version,Config File -0.11.dev0,PLRATESensitivityCoverageSimulation,2025-09-08 10:23,225.26507600943248,3.12.3,scripts/plm/plr_ate_sensitivity_config.yml +0.11.dev0,PLRATESensitivityCoverageSimulation,2025-11-17 12:27,224.5860997915268,3.12.3,scripts/plm/plr_ate_sensitivity_config.yml From 957713589ff8897f2c6eb6975b96d4897ec3adc2 Mon Sep 17 00:00:00 2001 From: Julius Herzig Date: Tue, 18 Nov 2025 03:57:58 +0100 Subject: [PATCH 37/38] Updated simulation, removed old files --- results/plm/logistic_ate_config.yml | 91 --------------------------- results/plm/logistic_ate_coverage.csv | 61 ------------------ results/plm/logistic_ate_metadata.csv | 3 - results/plm/lplr_ate_config.yml | 2 - results/plm/lplr_ate_coverage.csv | 24 +++---- results/plm/lplr_ate_metadata.csv | 2 +- scripts/plm/lplr_ate_config.yml | 1 - 7 files changed, 13 insertions(+), 171 deletions(-) delete mode 100644 results/plm/logistic_ate_config.yml delete mode 100644 results/plm/logistic_ate_coverage.csv delete mode 100644 results/plm/logistic_ate_metadata.csv diff --git a/results/plm/logistic_ate_config.yml b/results/plm/logistic_ate_config.yml deleted file mode 100644 index b203b920..00000000 --- a/results/plm/logistic_ate_config.yml +++ /dev/null @@ -1,91 +0,0 @@ -simulation_parameters: - repetitions: 1000 - max_runtime: 86400 - random_seed: 42 - n_jobs: -2 -dgp_parameters: - theta: - - 0.5 - n_obs: - - 500 - dim_x: - - 20 -learner_definitions: - lasso: &id001 - name: LassoCV - logistic: &id002 - name: Logistic - rf: &id003 - name: RF Regr. - params: - n_estimators: 100 - max_features: sqrt - rf-class: &id004 - name: RF Clas. - params: - n_estimators: 100 - max_features: sqrt - lgbm: &id005 - name: LGBM Regr. - params: - n_estimators: 500 - learning_rate: 0.01 - lgbm-class: &id006 - name: LGBM Clas. - params: - n_estimators: 500 - learning_rate: 0.01 -dml_parameters: - learners: - - ml_m: *id001 - ml_M: *id002 - ml_t: *id001 - - ml_m: *id003 - ml_M: *id004 - ml_t: *id003 - - ml_m: *id005 - ml_M: *id006 - ml_t: *id005 - - ml_m: *id003 - ml_M: *id006 - ml_t: *id005 - - ml_m: *id005 - ml_M: *id004 - ml_t: *id005 - - ml_m: *id005 - ml_M: *id006 - ml_t: *id003 - - ml_m: *id005 - ml_M: *id004 - ml_t: *id003 - - ml_m: *id003 - ml_M: *id006 - ml_t: *id003 - - ml_m: *id003 - ml_M: *id004 - ml_t: *id005 - - ml_m: *id001 - ml_M: *id006 - ml_t: *id005 - - ml_m: *id005 - ml_M: *id002 - ml_t: *id005 - - ml_m: *id005 - ml_M: *id006 - ml_t: *id001 - - ml_m: *id001 - ml_M: *id004 - ml_t: *id003 - - ml_m: *id003 - ml_M: *id002 - ml_t: *id003 - - ml_m: *id003 - ml_M: *id004 - ml_t: *id001 - score: - - nuisance_space - - instrument -confidence_parameters: - level: - - 0.95 - - 0.9 diff --git a/results/plm/logistic_ate_coverage.csv b/results/plm/logistic_ate_coverage.csv deleted file mode 100644 index 920c3cf8..00000000 --- a/results/plm/logistic_ate_coverage.csv +++ /dev/null @@ -1,61 +0,0 @@ -Learner m,Learner M,Learner t,Score,level,Coverage,CI Length,Bias,repetition -LGBM Regr.,LGBM Clas.,LGBM Regr.,instrument,0.9,0.8867735470941884,0.6783720219284418,0.17182702238154213,998 -LGBM Regr.,LGBM Clas.,LGBM Regr.,instrument,0.95,0.9458917835671342,0.8083301208774294,0.17182702238154213,998 -LGBM Regr.,LGBM Clas.,LGBM Regr.,nuisance_space,0.9,0.886,0.5883608609896965,0.1546569991698314,1000 -LGBM Regr.,LGBM Clas.,LGBM Regr.,nuisance_space,0.95,0.942,0.7010752072754521,0.1546569991698314,1000 -LGBM Regr.,LGBM Clas.,LassoCV,instrument,0.9,0.8856569709127382,0.687914636116578,0.17843968090261725,997 -LGBM Regr.,LGBM Clas.,LassoCV,instrument,0.95,0.9398194583751254,0.819700847014181,0.17843968090261725,997 -LGBM Regr.,LGBM Clas.,LassoCV,nuisance_space,0.9,0.853,0.613277414594929,0.17455974016950299,1000 -LGBM Regr.,LGBM Clas.,LassoCV,nuisance_space,0.95,0.922,0.7307651121307722,0.17455974016950299,1000 -LGBM Regr.,LGBM Clas.,RF Regr.,instrument,0.9,0.833,0.6645257584558233,0.1981803920481237,1000 -LGBM Regr.,LGBM Clas.,RF Regr.,instrument,0.95,0.913,0.7918312803227949,0.1981803920481237,1000 -LGBM Regr.,LGBM Clas.,RF Regr.,nuisance_space,0.9,0.749,0.6389887792744618,0.2310882489727634,1000 -LGBM Regr.,LGBM Clas.,RF Regr.,nuisance_space,0.95,0.847,0.7614020927955242,0.2310882489727634,1000 -LGBM Regr.,Logistic,LGBM Regr.,instrument,0.9,0.8808808808808809,0.6011544597174262,0.15730144394486342,999 -LGBM Regr.,Logistic,LGBM Regr.,instrument,0.95,0.9269269269269269,0.7163197204212697,0.15730144394486342,999 -LGBM Regr.,Logistic,LGBM Regr.,nuisance_space,0.9,0.802,0.533982278217265,0.1735015501567642,1000 -LGBM Regr.,Logistic,LGBM Regr.,nuisance_space,0.95,0.893,0.6362791293643562,0.1735015501567642,1000 -LGBM Regr.,RF Clas.,LGBM Regr.,instrument,0.9,0.8808808808808809,0.6117037321129385,0.14924058625395906,999 -LGBM Regr.,RF Clas.,LGBM Regr.,instrument,0.95,0.938938938938939,0.7288899537961552,0.14924058625395906,999 -LGBM Regr.,RF Clas.,LGBM Regr.,nuisance_space,0.9,0.887,0.5255256282131954,0.12946206156000842,1000 -LGBM Regr.,RF Clas.,LGBM Regr.,nuisance_space,0.95,0.948,0.6262024093655342,0.12946206156000842,1000 -LGBM Regr.,RF Clas.,RF Regr.,instrument,0.9,0.893,0.6133564813843166,0.15711608477124128,1000 -LGBM Regr.,RF Clas.,RF Regr.,instrument,0.95,0.943,0.7308593260213176,0.15711608477124128,1000 -LGBM Regr.,RF Clas.,RF Regr.,nuisance_space,0.9,0.86,0.5540472193413977,0.15675464483344737,1000 -LGBM Regr.,RF Clas.,RF Regr.,nuisance_space,0.95,0.935,0.6601879813806316,0.15675464483344737,1000 -LassoCV,LGBM Clas.,LGBM Regr.,instrument,0.9,0.8062563067608476,0.6448097763855765,0.19653637418785105,991 -LassoCV,LGBM Clas.,LGBM Regr.,instrument,0.95,0.8890010090817356,0.7683382386658661,0.19653637418785105,991 -LassoCV,LGBM Clas.,LGBM Regr.,nuisance_space,0.9,0.72165991902834,0.5619651019188039,0.19918381058581103,988 -LassoCV,LGBM Clas.,LGBM Regr.,nuisance_space,0.95,0.840080971659919,0.6696227203940329,0.19918381058581103,988 -LassoCV,Logistic,LassoCV,instrument,0.9,0.9126506024096386,0.6493687054509357,0.15965331285568357,996 -LassoCV,Logistic,LassoCV,instrument,0.95,0.9618473895582329,0.7737705377043753,0.15965331285568357,996 -LassoCV,Logistic,LassoCV,nuisance_space,0.9,0.8682092555331992,0.5768393638614188,0.1458288654760023,994 -LassoCV,Logistic,LassoCV,nuisance_space,0.95,0.9356136820925554,0.6873464966781094,0.1458288654760023,994 -LassoCV,RF Clas.,RF Regr.,instrument,0.9,0.8667334669338678,0.5890487369844828,0.14213629243588016,998 -LassoCV,RF Clas.,RF Regr.,instrument,0.95,0.93687374749499,0.7018948620784813,0.14213629243588016,998 -LassoCV,RF Clas.,RF Regr.,nuisance_space,0.9,0.8908908908908909,0.5583249926493753,0.13040987029805642,999 -LassoCV,RF Clas.,RF Regr.,nuisance_space,0.95,0.9369369369369369,0.6652852626707622,0.13040987029805642,999 -RF Regr.,LGBM Clas.,LGBM Regr.,instrument,0.9,0.883,0.4286586066458282,0.10700456800013383,1000 -RF Regr.,LGBM Clas.,LGBM Regr.,instrument,0.95,0.939,0.510778233955119,0.10700456800013383,1000 -RF Regr.,LGBM Clas.,LGBM Regr.,nuisance_space,0.9,0.798,0.3832967523848996,0.11829755780901112,1000 -RF Regr.,LGBM Clas.,LGBM Regr.,nuisance_space,0.95,0.871,0.45672625074725515,0.11829755780901112,1000 -RF Regr.,LGBM Clas.,RF Regr.,instrument,0.9,0.866,0.42225079909506574,0.11434483968291848,1000 -RF Regr.,LGBM Clas.,RF Regr.,instrument,0.95,0.919,0.5031428603184782,0.11434483968291848,1000 -RF Regr.,LGBM Clas.,RF Regr.,nuisance_space,0.9,0.881,0.41648308996281536,0.10985709399222088,1000 -RF Regr.,LGBM Clas.,RF Regr.,nuisance_space,0.95,0.938,0.49627021099133717,0.10985709399222088,1000 -RF Regr.,Logistic,RF Regr.,instrument,0.9,0.856,0.38502789712056834,0.10721182765222284,1000 -RF Regr.,Logistic,RF Regr.,instrument,0.95,0.92,0.45878903692977124,0.10721182765222284,1000 -RF Regr.,Logistic,RF Regr.,nuisance_space,0.9,0.824,0.3771933481281758,0.11331805384094351,1000 -RF Regr.,Logistic,RF Regr.,nuisance_space,0.95,0.9,0.4494535960074909,0.11331805384094351,1000 -RF Regr.,RF Clas.,LGBM Regr.,instrument,0.9,0.828,0.38946263148586363,0.11262093701887263,1000 -RF Regr.,RF Clas.,LGBM Regr.,instrument,0.95,0.884,0.46407334885550183,0.11262093701887263,1000 -RF Regr.,RF Clas.,LGBM Regr.,nuisance_space,0.9,0.804,0.36190660207697933,0.10722868220974552,1000 -RF Regr.,RF Clas.,LGBM Regr.,nuisance_space,0.95,0.867,0.4312383145926426,0.10722868220974552,1000 -RF Regr.,RF Clas.,LassoCV,instrument,0.9,0.859,0.39360445751539874,0.10201463510531926,1000 -RF Regr.,RF Clas.,LassoCV,instrument,0.95,0.922,0.4690086389719632,0.10201463510531926,1000 -RF Regr.,RF Clas.,LassoCV,nuisance_space,0.9,0.847,0.37185525976227807,0.097545400580116,1000 -RF Regr.,RF Clas.,LassoCV,nuisance_space,0.95,0.905,0.44309287139830933,0.097545400580116,1000 -RF Regr.,RF Clas.,RF Regr.,instrument,0.9,0.885,0.3931395611851874,0.09840536307939636,1000 -RF Regr.,RF Clas.,RF Regr.,instrument,0.95,0.94,0.4684546808270991,0.09840536307939636,1000 -RF Regr.,RF Clas.,RF Regr.,nuisance_space,0.9,0.877,0.3834497709276788,0.09720459767352349,1000 -RF Regr.,RF Clas.,RF Regr.,nuisance_space,0.95,0.934,0.4569085835870289,0.09720459767352349,1000 diff --git a/results/plm/logistic_ate_metadata.csv b/results/plm/logistic_ate_metadata.csv deleted file mode 100644 index eead6aa7..00000000 --- a/results/plm/logistic_ate_metadata.csv +++ /dev/null @@ -1,3 +0,0 @@ -DoubleML Version,Script,Date,Total Runtime (minutes),Python Version,Config File -0.10.dev0,LogisticATECoverageSimulation,2025-09-03 22:35,447.33407898743945,3.12.9,scripts/plm/logistic_ate_config.yml -0.10.dev0,LogisticATECoverageSimulation,2025-09-03 14:16,0.4242911458015442,3.12.11,scripts/plm/logistic_ate_config.yml diff --git a/results/plm/lplr_ate_config.yml b/results/plm/lplr_ate_config.yml index dd301b0f..c7cf40d2 100644 --- a/results/plm/lplr_ate_config.yml +++ b/results/plm/lplr_ate_config.yml @@ -10,8 +10,6 @@ dgp_parameters: - 500 dim_x: - 20 - balanced_r0: - - false learner_definitions: lasso: &id001 name: LassoCV diff --git a/results/plm/lplr_ate_coverage.csv b/results/plm/lplr_ate_coverage.csv index d70dd3c1..29c3a423 100644 --- a/results/plm/lplr_ate_coverage.csv +++ b/results/plm/lplr_ate_coverage.csv @@ -1,13 +1,13 @@ Learner m,Learner M,Learner t,Score,level,Coverage,CI Length,Bias,repetition -LGBM Regr.,LGBM Clas.,LGBM Regr.,instrument,0.9,0.634,2.132568969077688,0.8086721712178914,500 -LGBM Regr.,LGBM Clas.,LGBM Regr.,instrument,0.95,0.732,2.5411126591772386,0.8086721712178914,500 -LGBM Regr.,LGBM Clas.,LGBM Regr.,nuisance_space,0.9,0.99,1.9454977395479216,0.24795234910718517,500 -LGBM Regr.,LGBM Clas.,LGBM Regr.,nuisance_space,0.95,0.996,2.3182035404482284,0.24795234910718517,500 -LassoCV,Logistic,LassoCV,instrument,0.9,0.862,1.1086348225322677,0.30791966387256126,500 -LassoCV,Logistic,LassoCV,instrument,0.95,0.924,1.3210198698332598,0.30791966387256126,500 -LassoCV,Logistic,LassoCV,nuisance_space,0.9,0.882,0.9499848768071947,0.24286882983701666,500 -LassoCV,Logistic,LassoCV,nuisance_space,0.95,0.928,1.1319767995713301,0.24286882983701666,500 -RF Regr.,RF Clas.,RF Regr.,instrument,0.9,0.598,1.0627422718182507,0.48472206759927056,500 -RF Regr.,RF Clas.,RF Regr.,instrument,0.95,0.71,1.2663355227981636,0.48472206759927056,500 -RF Regr.,RF Clas.,RF Regr.,nuisance_space,0.9,0.95,1.0969635901105794,0.2038171758444602,500 -RF Regr.,RF Clas.,RF Regr.,nuisance_space,0.95,0.986,1.3071127386290677,0.2038171758444602,500 +LGBM Regr.,LGBM Clas.,LGBM Regr.,instrument,0.9,0.872,0.6540916267945179,0.17501445022837125,500 +LGBM Regr.,LGBM Clas.,LGBM Regr.,instrument,0.95,0.928,0.7793982455949509,0.17501445022837125,500 +LGBM Regr.,LGBM Clas.,LGBM Regr.,nuisance_space,0.9,0.88,0.598241346108922,0.15586913796966942,500 +LGBM Regr.,LGBM Clas.,LGBM Regr.,nuisance_space,0.95,0.946,0.7128485314583201,0.15586913796966942,500 +LassoCV,Logistic,LassoCV,instrument,0.9,0.856,0.5890452894815547,0.16482024691605957,500 +LassoCV,Logistic,LassoCV,instrument,0.95,0.924,0.7018907541253692,0.16482024691605957,500 +LassoCV,Logistic,LassoCV,nuisance_space,0.9,0.868,0.5820699058557912,0.1507959338822808,500 +LassoCV,Logistic,LassoCV,nuisance_space,0.95,0.93,0.6935790718815301,0.1507959338822808,500 +RF Regr.,RF Clas.,RF Regr.,instrument,0.9,0.884,0.39484117997902796,0.09883032061915417,500 +RF Regr.,RF Clas.,RF Regr.,instrument,0.95,0.95,0.4704822846799266,0.09883032061915417,500 +RF Regr.,RF Clas.,RF Regr.,nuisance_space,0.9,0.886,0.38499391911236014,0.09772003875711463,500 +RF Regr.,RF Clas.,RF Regr.,nuisance_space,0.95,0.94,0.45874854963578754,0.09772003875711463,500 diff --git a/results/plm/lplr_ate_metadata.csv b/results/plm/lplr_ate_metadata.csv index 14311203..52735907 100644 --- a/results/plm/lplr_ate_metadata.csv +++ b/results/plm/lplr_ate_metadata.csv @@ -1,2 +1,2 @@ DoubleML Version,Script,Date,Total Runtime (minutes),Python Version,Config File -0.11.dev0,LPLRATECoverageSimulation,2025-11-17 11:05,142.97858368555706,3.12.3,scripts/plm/lplr_ate_config.yml +0.11.dev0,LPLRATECoverageSimulation,2025-11-18 03:13,39.79484195311864,3.12.9,scripts/plm/lplr_ate_config.yml diff --git a/scripts/plm/lplr_ate_config.yml b/scripts/plm/lplr_ate_config.yml index 1c776619..78c930a8 100644 --- a/scripts/plm/lplr_ate_config.yml +++ b/scripts/plm/lplr_ate_config.yml @@ -10,7 +10,6 @@ dgp_parameters: theta: [0.5] # Treatment effect n_obs: [500] # Sample size dim_x: [20] # Number of covariates - balanced_r0: [False] # Whether to use balanced r0 function # Define reusable learner configurations learner_definitions: From 1275beb0b17972c6383e23fe2bebf8198f2c109f Mon Sep 17 00:00:00 2001 From: Sven Klaassen <47529404+SvenKlaassen@users.noreply.github.com> Date: Tue, 18 Nov 2025 11:17:05 +0100 Subject: [PATCH 38/38] Fix link to make_lplr_LZZ2020 --- doc/plm/lplr.qmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/plm/lplr.qmd b/doc/plm/lplr.qmd index c032ce09..b310ce17 100644 --- a/doc/plm/lplr.qmd +++ b/doc/plm/lplr.qmd @@ -24,7 +24,7 @@ init_notebook_mode(all_interactive=True) ## ATE Coverage -The simulations are based on the the [make_lplr_LZZ2020](https://docs.doubleml.org/stable/api/generated/doubleml.datasets.make_lplr_LZZ2020.html)-DGP with $500$ observations. +The simulations are based on the the [make_lplr_LZZ2020](https://docs.doubleml.org/stable/api/generated/doubleml.plm.datasets.make_lplr_LZZ2020.html)-DGP with $500$ observations. ::: {.callout-note title="Metadata" collapse="true"} @@ -110,4 +110,4 @@ generate_and_show_styled_table( level_col="level", coverage_highlight_cols=["Coverage"] ) -``` \ No newline at end of file +```