Skip to content

Commit d7a5444

Browse files
committed
update plm websites
1 parent ad0b297 commit d7a5444

File tree

4 files changed

+191
-252
lines changed

4 files changed

+191
-252
lines changed

doc/plm/pliv.qmd

Lines changed: 51 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -9,55 +9,17 @@ jupyter: python3
99
1010
import numpy as np
1111
import pandas as pd
12-
from itables import init_notebook_mode, show, options
12+
from itables import init_notebook_mode
13+
import os
14+
import sys
1315
14-
init_notebook_mode(all_interactive=True)
16+
doc_dir = os.path.abspath(os.path.join(os.getcwd(), ".."))
17+
if doc_dir not in sys.path:
18+
sys.path.append(doc_dir)
19+
20+
from utils.style_tables import generate_and_show_styled_table
1521
16-
def highlight_range(s, level=0.95, dist=0.05, props=''):
17-
color_grid = np.where((s >= level-dist) &
18-
(s <= level+dist), props, '')
19-
return color_grid
20-
21-
22-
def color_coverage(df, level):
23-
# color coverage column order is important
24-
styled_df = df.apply(
25-
highlight_range,
26-
level=level,
27-
dist=1.0,
28-
props='color:black;background-color:red',
29-
subset=["Coverage"])
30-
styled_df = styled_df.apply(
31-
highlight_range,
32-
level=level,
33-
dist=0.1,
34-
props='color:black;background-color:yellow',
35-
subset=["Coverage"])
36-
styled_df = styled_df.apply(
37-
highlight_range,
38-
level=level,
39-
dist=0.05,
40-
props='color:white;background-color:darkgreen',
41-
subset=["Coverage"])
42-
43-
# set all coverage values to bold
44-
styled_df = styled_df.set_properties(
45-
**{'font-weight': 'bold'},
46-
subset=["Coverage"])
47-
return styled_df
48-
49-
50-
def make_pretty(df, level, n_rep):
51-
styled_df = df.style.hide(axis="index")
52-
# Format only float columns
53-
float_cols = df.select_dtypes(include=['float']).columns
54-
styled_df = styled_df.format({col: "{:.3f}" for col in float_cols})
55-
56-
# color coverage column order is important
57-
styled_df = color_coverage(styled_df, level)
58-
caption = f"Coverage for {level*100}%-Confidence Interval over {n_rep} Repetitions"
59-
60-
return show(styled_df, caption=caption, allow_html=True)
22+
init_notebook_mode(all_interactive=True)
6123
```
6224

6325
## LATE Coverage
@@ -79,34 +41,46 @@ print(metadata_df.T.to_string(header=False))
7941
#| echo: false
8042
8143
# set up data and rename columns
82-
df = pd.read_csv("../../results/plm/pliv_late_coverage.csv", index_col=None)
44+
df_coverage_pliv = pd.read_csv("../../results/plm/pliv_late_coverage.csv", index_col=None)
8345
84-
assert df["repetition"].nunique() == 1
85-
n_rep = df["repetition"].unique()[0]
46+
if "repetition" in df_coverage_pliv.columns and df_coverage_pliv["repetition"].nunique() == 1:
47+
n_rep_pliv = df_coverage_pliv["repetition"].unique()[0]
48+
elif "n_rep" in df_coverage_pliv.columns and df_coverage_pliv["n_rep"].nunique() == 1:
49+
n_rep_pliv = df_coverage_pliv["n_rep"].unique()[0]
50+
else:
51+
n_rep_pliv = "N/A"
8652
87-
display_columns = ["Learner g", "Learner m", "Learner r", "Bias", "CI Length", "Coverage"]
53+
display_columns_pliv = ["Learner g", "Learner m", "Learner r", "Bias", "CI Length", "Coverage"]
8854
```
8955

9056
### Partialling out
9157

9258
```{python}
9359
#| echo: false
94-
score = "partialling out"
95-
level = 0.95
9660
97-
df_ate_95 = df[(df['level'] == level) & (df["score"] == score)][display_columns]
98-
df_ate_95.rename(columns={"Learner g": "Learner l"}, inplace=True)
99-
make_pretty(df_ate_95, level, n_rep)
61+
generate_and_show_styled_table(
62+
main_df=df_coverage_pliv,
63+
filters={"level": 0.95, "score": "partialling out"},
64+
display_cols=display_columns_pliv,
65+
n_rep=n_rep_pliv,
66+
level_col="level",
67+
rename_map={"Learner g": "Learner l"},
68+
coverage_highlight_cols=["Coverage"]
69+
)
10070
```
10171

10272
```{python}
10373
#| echo: false
104-
score = "partialling out"
105-
level = 0.9
10674
107-
df_ate_9 = df[(df['level'] == level) & (df["score"] == score)][display_columns]
108-
df_ate_9.rename(columns={"Learner g": "Learner l"}, inplace=True)
109-
make_pretty(df_ate_9, level, n_rep)
75+
generate_and_show_styled_table(
76+
main_df=df_coverage_pliv,
77+
filters={"level": 0.90, "score": "partialling out"},
78+
display_cols=display_columns_pliv,
79+
n_rep=n_rep_pliv,
80+
level_col="level",
81+
rename_map={"Learner g": "Learner l"},
82+
coverage_highlight_cols=["Coverage"]
83+
)
11084
```
11185

11286
### IV-type
@@ -115,18 +89,26 @@ For the IV-type score, the learners `ml_l` and `ml_g` are both set to the same t
11589

11690
```{python}
11791
#| echo: false
118-
score = "IV-type"
119-
level = 0.95
12092
121-
df_ate_95 = df[(df['level'] == level) & (df["score"] == score)][display_columns]
122-
make_pretty(df_ate_95, level, n_rep)
93+
generate_and_show_styled_table(
94+
main_df=df_coverage_pliv,
95+
filters={"level": 0.95, "score": "IV-type"},
96+
display_cols=display_columns_pliv,
97+
n_rep=n_rep_pliv,
98+
level_col="level",
99+
coverage_highlight_cols=["Coverage"]
100+
)
123101
```
124102

125103
```{python}
126104
#| echo: false
127-
score = "IV-type"
128-
level = 0.9
129105
130-
df_ate_9 = df[(df['level'] == level) & (df["score"] == score)][display_columns]
131-
make_pretty(df_ate_9, level, n_rep)
106+
generate_and_show_styled_table(
107+
main_df=df_coverage_pliv,
108+
filters={"level": 0.9, "score": "IV-type"},
109+
display_cols=display_columns_pliv,
110+
n_rep=n_rep_pliv,
111+
level_col="level",
112+
coverage_highlight_cols=["Coverage"]
113+
)
132114
```

doc/plm/plr.qmd

Lines changed: 67 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ jupyter: python3
99
1010
import numpy as np
1111
import pandas as pd
12-
from itables import init_notebook_mode, show, options
12+
from itables import init_notebook_mode
1313
import os
1414
import sys
1515
1616
doc_dir = os.path.abspath(os.path.join(os.getcwd(), ".."))
1717
if doc_dir not in sys.path:
1818
sys.path.append(doc_dir)
1919
20-
from utils.style_tables import create_styled_table
20+
from utils.style_tables import generate_and_show_styled_table
2121
2222
init_notebook_mode(all_interactive=True)
2323
```
@@ -57,25 +57,30 @@ display_columns_coverage = ["Learner g", "Learner m", "Bias", "CI Length", "Cove
5757

5858
```{python}
5959
# | echo: false
60-
score_po = "partialling out"
61-
level_95 = 0.95
6260
63-
df_po_95 = df_coverage[(df_coverage["level"] == level_95) & (df_coverage["score"] == score_po)][display_columns_coverage].copy()
64-
df_po_95.rename(columns={"Learner g": "Learner l"}, inplace=True)
65-
66-
styled_table_po_95 = create_styled_table(df_po_95, level_95, n_rep_coverage, coverage_cols=["Coverage"])
67-
show(styled_table_po_95, allow_html=True)
61+
generate_and_show_styled_table(
62+
main_df=df_coverage,
63+
filters={"level": 0.95, "score": "partialling out"},
64+
display_cols=display_columns_coverage,
65+
n_rep=n_rep_coverage,
66+
level_col="level",
67+
rename_map={"Learner g": "Learner l"},
68+
coverage_highlight_cols=["Coverage"]
69+
)
6870
```
6971

7072
```{python}
7173
#| echo: false
72-
level_90 = 0.9
7374
74-
df_po_90 = df_coverage[(df_coverage['level'] == level_90) & (df_coverage["score"] == score_po)][display_columns_coverage].copy()
75-
df_po_90.rename(columns={"Learner g": "Learner l"}, inplace=True)
76-
77-
styled_table_po_90 = create_styled_table(df_po_90, level_90, n_rep_coverage, coverage_cols=["Coverage"])
78-
show(styled_table_po_90, allow_html=True)
75+
generate_and_show_styled_table(
76+
main_df=df_coverage,
77+
filters={"level": 0.9, "score": "partialling out"},
78+
display_cols=display_columns_coverage,
79+
n_rep=n_rep_coverage,
80+
level_col="level",
81+
rename_map={"Learner g": "Learner l"},
82+
coverage_highlight_cols=["Coverage"]
83+
)
7984
```
8085

8186
### IV-type
@@ -84,23 +89,28 @@ For the IV-type score, the learners `ml_l` and `ml_g` are both set to the same t
8489

8590
```{python}
8691
#| echo: false
87-
score_iv = "IV-type"
88-
# level_95 is already defined
8992
90-
df_iv_95 = df_coverage[(df_coverage['level'] == level_95) & (df_coverage["score"] == score_iv)][display_columns_coverage]
91-
92-
styled_table_iv_95 = create_styled_table(df_iv_95, level_95, n_rep_coverage, coverage_cols=["Coverage"])
93-
show(styled_table_iv_95, allow_html=True)
93+
generate_and_show_styled_table(
94+
main_df=df_coverage,
95+
filters={"level": 0.95, "score": "IV-type"},
96+
display_cols=display_columns_coverage,
97+
n_rep=n_rep_coverage,
98+
level_col="level",
99+
coverage_highlight_cols=["Coverage"]
100+
)
94101
```
95102

96103
```{python}
97104
#| echo: false
98-
# level_90 is already defined
99-
100-
df_iv_90 = df_coverage[(df_coverage['level'] == level_90) & (df_coverage["score"] == score_iv)][display_columns_coverage]
101105
102-
styled_table_iv_90 = create_styled_table(df_iv_90, level_90, n_rep_coverage, coverage_cols=["Coverage"])
103-
show(styled_table_iv_90, allow_html=True)
106+
generate_and_show_styled_table(
107+
main_df=df_coverage,
108+
filters={"level": 0.9, "score": "IV-type"},
109+
display_cols=display_columns_coverage,
110+
n_rep=n_rep_coverage,
111+
level_col="level",
112+
coverage_highlight_cols=["Coverage"]
113+
)
104114
```
105115

106116
## ATE Sensitivity
@@ -143,34 +153,30 @@ display_columns_sensitivity = [
143153

144154
```{python}
145155
#| echo: false
146-
# score_po and level_95 are defined above
147-
148-
df_sens_po_95 = df_sensitivity[(df_sensitivity['level'] == level_95) & (df_sensitivity["score"] == score_po)][display_columns_sensitivity].copy()
149-
df_sens_po_95.rename(columns={"Learner g": "Learner l"}, inplace=True)
150156
151-
styled_sens_po_95 = create_styled_table(
152-
df_sens_po_95,
153-
level_95,
154-
n_rep_sensitivity,
155-
coverage_cols=["Coverage", "Coverage (Upper)"] # Highlight both
157+
generate_and_show_styled_table(
158+
main_df=df_sensitivity,
159+
filters={"level": 0.95, "score": "partialling out"},
160+
display_cols=display_columns_sensitivity,
161+
n_rep=n_rep_sensitivity,
162+
level_col="level",
163+
rename_map={"Learner g": "Learner l"},
164+
coverage_highlight_cols=["Coverage", "Coverage (Upper)"]
156165
)
157-
show(styled_sens_po_95, allow_html=True)
158166
```
159167

160168
```{python}
161169
#| echo: false
162-
# score_po and level_90 are defined above
163-
164-
df_sens_po_90 = df_sensitivity[(df_sensitivity['level'] == level_90) & (df_sensitivity["score"] == score_po)][display_columns_sensitivity].copy()
165-
df_sens_po_90.rename(columns={"Learner g": "Learner l"}, inplace=True)
166-
167-
styled_sens_po_90 = create_styled_table(
168-
df_sens_po_90,
169-
level_90,
170-
n_rep_sensitivity,
171-
coverage_cols=["Coverage", "Coverage (Upper)"]
170+
#|
171+
generate_and_show_styled_table(
172+
main_df=df_sensitivity,
173+
filters={"level": 0.9, "score": "partialling out"},
174+
display_cols=display_columns_sensitivity,
175+
n_rep=n_rep_sensitivity,
176+
level_col="level",
177+
rename_map={"Learner g": "Learner l"},
178+
coverage_highlight_cols=["Coverage", "Coverage (Upper)"]
172179
)
173-
show(styled_sens_po_90, allow_html=True)
174180
```
175181

176182
### IV-type
@@ -179,30 +185,26 @@ For the IV-type score, the learners `ml_l` and `ml_g` are both set to the same t
179185

180186
```{python}
181187
#| echo: false
182-
# score_iv and level_95 are defined above
183-
184-
df_sens_iv_95 = df_sensitivity[(df_sensitivity['level'] == level_95) & (df_sensitivity["score"] == score_iv)][display_columns_sensitivity]
185188
186-
styled_sens_iv_95 = create_styled_table(
187-
df_sens_iv_95,
188-
level_95,
189-
n_rep_sensitivity,
190-
coverage_cols=["Coverage", "Coverage (Upper)"]
189+
generate_and_show_styled_table(
190+
main_df=df_sensitivity,
191+
filters={"level": 0.95, "score": "IV-type"},
192+
display_cols=display_columns_sensitivity,
193+
n_rep=n_rep_sensitivity,
194+
level_col="level",
195+
coverage_highlight_cols=["Coverage", "Coverage (Upper)"]
191196
)
192-
show(styled_sens_iv_95, allow_html=True)
193197
```
194198

195199
```{python}
196200
#| echo: false
197-
# score_iv and level_90 are defined above
198-
199-
df_sens_iv_90 = df_sensitivity[(df_sensitivity['level'] == level_90) & (df_sensitivity["score"] == score_iv)][display_columns_sensitivity]
200201
201-
styled_sens_iv_90 = create_styled_table(
202-
df_sens_iv_90,
203-
level_90,
204-
n_rep_sensitivity,
205-
coverage_cols=["Coverage", "Coverage (Upper)"]
202+
generate_and_show_styled_table(
203+
main_df=df_sensitivity,
204+
filters={"level": 0.9, "score": "IV-type"},
205+
display_cols=display_columns_sensitivity,
206+
n_rep=n_rep_sensitivity,
207+
level_col="level",
208+
coverage_highlight_cols=["Coverage", "Coverage (Upper)"]
206209
)
207-
show(styled_sens_iv_90, allow_html=True)
208210
```

0 commit comments

Comments
 (0)