Skip to content

Commit e7a0d17

Browse files
authored
Merge pull request #21 from DoubleML/s-update-plm-scripts
update plm scripts
2 parents 39113db + e631195 commit e7a0d17

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1862
-820
lines changed

.github/workflows/pliv_sim.yml

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
strategy:
1818
matrix:
1919
script: [
20-
'scripts/plm/pliv_late_coverage.py',
20+
'scripts/plm/pliv_late.py',
2121
]
2222

2323
steps:
@@ -47,28 +47,37 @@ jobs:
4747
with:
4848
ref: ${{ env.TARGET_BRANCH }}
4949

50+
- name: Install uv
51+
uses: astral-sh/setup-uv@v5
52+
with:
53+
version: "0.7.8"
54+
5055
- name: Set up Python
5156
uses: actions/setup-python@v5
5257
with:
53-
python-version: '3.12'
58+
python-version-file: "monte-cover/pyproject.toml"
5459

55-
- name: Install dependencies
60+
- name: Install Monte-Cover
5661
run: |
57-
python -m pip install --upgrade pip
58-
pip install -r requirements.txt
59-
62+
cd monte-cover
63+
uv venv
64+
uv sync
65+
6066
- name: Install DoubleML from correct branch
6167
run: |
62-
pip uninstall -y doubleml
63-
pip install "doubleml @ git+https://github.com/DoubleML/doubleml-for-py@${{ env.DML_BRANCH }}"
68+
source monte-cover/.venv/bin/activate
69+
uv pip uninstall doubleml
70+
uv pip install "doubleml @ git+https://github.com/DoubleML/doubleml-for-py@${{ env.DML_BRANCH }}"
6471
6572
- name: Set up Git configuration
6673
run: |
6774
git config --global user.name 'github-actions'
6875
git config --global user.email '[email protected]'
6976
7077
- name: Run scripts
71-
run: python ${{ matrix.script }}
78+
run: |
79+
source monte-cover/.venv/bin/activate
80+
uv run ${{ matrix.script }}
7281
7382
- name: Commit any existing changes
7483
run: |

.github/workflows/plr_sim.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ jobs:
1717
strategy:
1818
matrix:
1919
script: [
20-
'scripts/plm/plr_ate_coverage.py',
20+
'scripts/plm/plr_ate.py',
2121
'scripts/plm/plr_ate_sensitivity.py',
22-
'scripts/plm/plr_cate_coverage.py',
23-
'scripts/plm/plr_gate_coverage.py',
22+
'scripts/plm/plr_cate.py',
23+
'scripts/plm/plr_gate.py',
2424
]
2525

2626
steps:
@@ -53,7 +53,7 @@ jobs:
5353
- name: Install uv
5454
uses: astral-sh/setup-uv@v5
5555
with:
56-
version: "0.6.11"
56+
version: "0.7.8"
5757

5858
- name: Set up Python
5959
uses: actions/setup-python@v5

doc/plm/pliv.qmd

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ display_columns_pliv = ["Learner g", "Learner m", "Learner r", "Bias", "CI Lengt
6060
6161
generate_and_show_styled_table(
6262
main_df=df_coverage_pliv,
63-
filters={"level": 0.95, "score": "partialling out"},
63+
filters={"level": 0.95, "Score": "partialling out"},
6464
display_cols=display_columns_pliv,
6565
n_rep=n_rep_pliv,
6666
level_col="level",
@@ -74,7 +74,7 @@ generate_and_show_styled_table(
7474
7575
generate_and_show_styled_table(
7676
main_df=df_coverage_pliv,
77-
filters={"level": 0.90, "score": "partialling out"},
77+
filters={"level": 0.90, "Score": "partialling out"},
7878
display_cols=display_columns_pliv,
7979
n_rep=n_rep_pliv,
8080
level_col="level",
@@ -92,7 +92,7 @@ For the IV-type score, the learners `ml_l` and `ml_g` are both set to the same t
9292
9393
generate_and_show_styled_table(
9494
main_df=df_coverage_pliv,
95-
filters={"level": 0.95, "score": "IV-type"},
95+
filters={"level": 0.95, "Score": "IV-type"},
9696
display_cols=display_columns_pliv,
9797
n_rep=n_rep_pliv,
9898
level_col="level",
@@ -105,7 +105,7 @@ generate_and_show_styled_table(
105105
106106
generate_and_show_styled_table(
107107
main_df=df_coverage_pliv,
108-
filters={"level": 0.9, "score": "IV-type"},
108+
filters={"level": 0.9, "Score": "IV-type"},
109109
display_cols=display_columns_pliv,
110110
n_rep=n_rep_pliv,
111111
level_col="level",

doc/plm/plr.qmd

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ display_columns_coverage = ["Learner g", "Learner m", "Bias", "CI Length", "Cove
6060
6161
generate_and_show_styled_table(
6262
main_df=df_coverage,
63-
filters={"level": 0.95, "score": "partialling out"},
63+
filters={"level": 0.95, "Score": "partialling out"},
6464
display_cols=display_columns_coverage,
6565
n_rep=n_rep_coverage,
6666
level_col="level",
@@ -74,7 +74,7 @@ generate_and_show_styled_table(
7474
7575
generate_and_show_styled_table(
7676
main_df=df_coverage,
77-
filters={"level": 0.9, "score": "partialling out"},
77+
filters={"level": 0.9, "Score": "partialling out"},
7878
display_cols=display_columns_coverage,
7979
n_rep=n_rep_coverage,
8080
level_col="level",
@@ -92,7 +92,7 @@ For the IV-type score, the learners `ml_l` and `ml_g` are both set to the same t
9292
9393
generate_and_show_styled_table(
9494
main_df=df_coverage,
95-
filters={"level": 0.95, "score": "IV-type"},
95+
filters={"level": 0.95, "Score": "IV-type"},
9696
display_cols=display_columns_coverage,
9797
n_rep=n_rep_coverage,
9898
level_col="level",
@@ -105,7 +105,7 @@ generate_and_show_styled_table(
105105
106106
generate_and_show_styled_table(
107107
main_df=df_coverage,
108-
filters={"level": 0.9, "score": "IV-type"},
108+
filters={"level": 0.9, "Score": "IV-type"},
109109
display_cols=display_columns_coverage,
110110
n_rep=n_rep_coverage,
111111
level_col="level",
@@ -135,7 +135,7 @@ print(metadata_df_sens.T.to_string(header=False))
135135
#| echo: false
136136
137137
# set up data and rename columns
138-
df_sensitivity = pd.read_csv("../../results/plm/plr_ate_sensitivity.csv", index_col=None)
138+
df_sensitivity = pd.read_csv("../../results/plm/plr_ate_sensitivity_coverage.csv", index_col=None)
139139
140140
if "repetition" in df_sensitivity.columns and df_sensitivity["repetition"].nunique() == 1:
141141
n_rep_sensitivity = df_sensitivity["repetition"].unique()[0]
@@ -156,7 +156,7 @@ display_columns_sensitivity = [
156156
157157
generate_and_show_styled_table(
158158
main_df=df_sensitivity,
159-
filters={"level": 0.95, "score": "partialling out"},
159+
filters={"level": 0.95, "Score": "partialling out"},
160160
display_cols=display_columns_sensitivity,
161161
n_rep=n_rep_sensitivity,
162162
level_col="level",
@@ -167,10 +167,10 @@ generate_and_show_styled_table(
167167

168168
```{python}
169169
#| echo: false
170-
#|
170+
#|
171171
generate_and_show_styled_table(
172172
main_df=df_sensitivity,
173-
filters={"level": 0.9, "score": "partialling out"},
173+
filters={"level": 0.9, "Score": "partialling out"},
174174
display_cols=display_columns_sensitivity,
175175
n_rep=n_rep_sensitivity,
176176
level_col="level",
@@ -188,7 +188,7 @@ For the IV-type score, the learners `ml_l` and `ml_g` are both set to the same t
188188
189189
generate_and_show_styled_table(
190190
main_df=df_sensitivity,
191-
filters={"level": 0.95, "score": "IV-type"},
191+
filters={"level": 0.95, "Score": "IV-type"},
192192
display_cols=display_columns_sensitivity,
193193
n_rep=n_rep_sensitivity,
194194
level_col="level",
@@ -201,7 +201,7 @@ generate_and_show_styled_table(
201201
202202
generate_and_show_styled_table(
203203
main_df=df_sensitivity,
204-
filters={"level": 0.9, "score": "IV-type"},
204+
filters={"level": 0.9, "Score": "IV-type"},
205205
display_cols=display_columns_sensitivity,
206206
n_rep=n_rep_sensitivity,
207207
level_col="level",

doc/plm/plr_cate.qmd

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,28 @@ else:
5757
display_columns_cate = ["Learner g", "Learner m", "Bias", "CI Length", "Coverage", "Uniform CI Length", "Uniform Coverage"]
5858
```
5959

60+
### Partialling out
61+
62+
```{python}
63+
#| echo: false
64+
65+
generate_and_show_styled_table(
66+
main_df=df_cate,
67+
filters={"level": 0.95, "Score": "partialling out"},
68+
display_cols=display_columns_cate,
69+
n_rep=n_rep_cate,
70+
level_col="level",
71+
rename_map={"Learner g": "Learner l"},
72+
coverage_highlight_cols=["Coverage", "Uniform Coverage"]
73+
)
74+
```
75+
6076
```{python}
6177
#| echo: false
6278
6379
generate_and_show_styled_table(
6480
main_df=df_cate,
65-
filters={"level": 0.95},
81+
filters={"level": 0.9, "Score": "partialling out"},
6682
display_cols=display_columns_cate,
6783
n_rep=n_rep_cate,
6884
level_col="level",
@@ -71,16 +87,33 @@ generate_and_show_styled_table(
7187
)
7288
```
7389

90+
91+
### IV-type
92+
7493
```{python}
7594
#| echo: false
7695
7796
generate_and_show_styled_table(
7897
main_df=df_cate,
79-
filters={"level": 0.9},
98+
filters={"level": 0.95, "Score": "IV-type"},
8099
display_cols=display_columns_cate,
81100
n_rep=n_rep_cate,
82101
level_col="level",
83102
rename_map={"Learner g": "Learner l"},
84103
coverage_highlight_cols=["Coverage", "Uniform Coverage"]
85104
)
86105
```
106+
107+
```{python}
108+
#| echo: false
109+
110+
generate_and_show_styled_table(
111+
main_df=df_cate,
112+
filters={"level": 0.9, "Score": "IV-type"},
113+
display_cols=display_columns_cate,
114+
n_rep=n_rep_cate,
115+
level_col="level",
116+
rename_map={"Learner g": "Learner l"},
117+
coverage_highlight_cols=["Coverage", "Uniform Coverage"]
118+
)
119+
```

doc/plm/plr_gate.qmd

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,44 @@ else:
5656
display_columns_gate = ["Learner g", "Learner m", "Bias", "CI Length", "Coverage", "Uniform CI Length", "Uniform Coverage"]
5757
```
5858

59+
### Partialling out
60+
61+
```{python}
62+
#| echo: false
63+
64+
generate_and_show_styled_table(
65+
main_df=df_gate,
66+
filters={"level": 0.95, "Score": "partialling out"},
67+
display_cols=display_columns_gate,
68+
n_rep=n_rep_gate,
69+
level_col="level",
70+
rename_map={"Learner g": "Learner l"},
71+
coverage_highlight_cols=["Coverage", "Uniform Coverage"]
72+
)
73+
```
74+
75+
```{python}
76+
#| echo: false
77+
78+
generate_and_show_styled_table(
79+
main_df=df_gate,
80+
filters={"level": 0.9, "Score": "partialling out"},
81+
display_cols=display_columns_gate,
82+
n_rep=n_rep_gate,
83+
level_col="level",
84+
rename_map={"Learner g": "Learner l"},
85+
coverage_highlight_cols=["Coverage", "Uniform Coverage"]
86+
)
87+
```
88+
89+
### IV-type
90+
5991
```{python}
6092
#| echo: false
6193
6294
generate_and_show_styled_table(
6395
main_df=df_gate,
64-
filters={"level": 0.95},
96+
filters={"level": 0.95, "Score": "IV-type"},
6597
display_cols=display_columns_gate,
6698
n_rep=n_rep_gate,
6799
level_col="level",
@@ -75,7 +107,7 @@ generate_and_show_styled_table(
75107
76108
generate_and_show_styled_table(
77109
main_df=df_gate,
78-
filters={"level": 0.9},
110+
filters={"level": 0.9, "Score": "IV-type"},
79111
display_cols=display_columns_gate,
80112
n_rep=n_rep_gate,
81113
level_col="level",

monte-cover/pyproject.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ authors = [
99
requires-python = ">=3.12"
1010
dependencies = [
1111
"black>=25.1.0",
12-
"doubleml[rdd]>=0.9.3",
12+
"doubleml[rdd]>=0.10.0",
1313
"ipykernel>=6.29.5",
1414
"itables>=2.2.5",
1515
"joblib>=1.4.2",
@@ -19,6 +19,7 @@ dependencies = [
1919
"pyyaml>=6.0.2",
2020
"ruff>=0.11.0",
2121
"scikit-learn>=1.5.2",
22+
"pre-commit>=4.2.0",
2223
]
2324

2425
[project.scripts]

0 commit comments

Comments
 (0)