@@ -9,55 +9,17 @@ jupyter: python3
99
1010import numpy as np
1111import 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## APO Pointwise Coverage
@@ -78,31 +40,41 @@ print(metadata_df.T.to_string(header=False))
7840``` {python}
7941#| echo: false
8042
81- # set up data and rename columns
82- df = pd.read_csv("../../results/irm/irm_apo_coverage_apo.csv", index_col=None)
43+ # set up data
44+ df_apo = pd.read_csv("../../results/irm/irm_apo_coverage_apo.csv", index_col=None)
8345
84- assert df ["repetition"].nunique() == 1
85- n_rep = df ["repetition"].unique()[0]
46+ assert df_apo ["repetition"].nunique() == 1
47+ n_rep_apo = df_apo ["repetition"].unique()[0]
8648
87- display_columns = ["Learner g", "Learner m", "Treatment Level", "Bias", "CI Length", "Coverage"]
49+ display_columns_apo = ["Learner g", "Learner m", "Treatment Level", "Bias", "CI Length", "Coverage"]
8850```
8951
9052
9153``` {python}
9254#| echo: false
9355
94- level = 0.95
95- df_ate_95 = df[df['level'] == level][display_columns]
96- make_pretty(df_ate_95, level, n_rep)
56+ generate_and_show_styled_table(
57+ main_df=df_apo,
58+ filters={"level": 0.95},
59+ display_cols=display_columns_apo,
60+ n_rep=n_rep_apo,
61+ level_col="level",
62+ coverage_highlight_cols=["Coverage"]
63+ )
9764```
9865
9966
10067``` {python}
10168#| echo: false
10269
103- level = 0.9
104- df_ate_9 = df[df['level'] == level][display_columns]
105- make_pretty(df_ate_9, level, n_rep)
70+ generate_and_show_styled_table(
71+ main_df=df_apo,
72+ filters={"level": 0.9},
73+ display_cols=display_columns_apo,
74+ n_rep=n_rep_apo,
75+ level_col="level",
76+ coverage_highlight_cols=["Coverage"]
77+ )
10678```
10779
10880
@@ -126,80 +98,40 @@ print(metadata_df.T.to_string(header=False))
12698``` {python}
12799#| echo: false
128100
129- def highlight_range(s, level=0.95, dist=0.05, props=''):
130- color_grid = np.where((s >= level-dist) &
131- (s <= level+dist), props, '')
132- return color_grid
133-
134-
135- def color_coverage(df, level):
136- # color coverage column order is important
137- styled_df = df.apply(
138- highlight_range,
139- level=level,
140- dist=1.0,
141- props='color:black;background-color:red',
142- subset=["Coverage", "Uniform Coverage"])
143- styled_df = styled_df.apply(
144- highlight_range,
145- level=level,
146- dist=0.1,
147- props='color:black;background-color:yellow',
148- subset=["Coverage", "Uniform Coverage"])
149- styled_df = styled_df.apply(
150- highlight_range,
151- level=level,
152- dist=0.05,
153- props='color:white;background-color:darkgreen',
154- subset=["Coverage", "Uniform Coverage"])
155-
156- # set all coverage values to bold
157- styled_df = styled_df.set_properties(
158- **{'font-weight': 'bold'},
159- subset=["Coverage", "Uniform Coverage"])
160- return styled_df
161-
162-
163- def make_pretty(df, level, n_rep):
164- styled_df = df.style.hide(axis="index")
165- # Format only float columns
166- float_cols = df.select_dtypes(include=['float']).columns
167- styled_df = styled_df.format({col: "{:.3f}" for col in float_cols})
168-
169- # color coverage column order is important
170- styled_df = color_coverage(styled_df, level)
171- caption = f"Coverage for {level*100}%-Confidence Interval over {n_rep} Repetitions"
172-
173- return show(styled_df, caption=caption, allow_html=True)
174- ```
175-
176- ``` {python}
177- #| echo: false
178-
179- # set up data and rename columns
180- df = pd.read_csv("../../results/irm/irm_apo_coverage_apos.csv", index_col=None)
101+ # set up data
102+ df_apos = pd.read_csv("../../results/irm/irm_apo_coverage_apos.csv", index_col=None)
181103
182- assert df ["repetition"].nunique() == 1
183- n_rep = df ["repetition"].unique()[0]
104+ assert df_apos ["repetition"].nunique() == 1
105+ n_rep_apos = df_apos ["repetition"].unique()[0]
184106
185- display_columns = ["Learner g", "Learner m", "Bias", "CI Length", "Coverage", "Uniform CI Length", "Uniform Coverage"]
107+ display_columns_apos = ["Learner g", "Learner m", "Bias", "CI Length", "Coverage", "Uniform CI Length", "Uniform Coverage"]
186108```
187109
188110``` {python}
189111#| echo: false
190112
191- level = 0.95
192- df_ate_95 = df[df['level'] == level][display_columns]
193- make_pretty(df_ate_95, level, n_rep)
113+ generate_and_show_styled_table(
114+ main_df=df_apos,
115+ filters={"level": 0.95},
116+ display_cols=display_columns_apos,
117+ n_rep=n_rep_apos,
118+ level_col="level",
119+ coverage_highlight_cols=["Coverage", "Uniform Coverage"]
120+ )
194121```
195122
196123
197124``` {python}
198125#| echo: false
199126
200- level = 0.9
201- df_ate_9 = df[df['level'] == level][display_columns]
202- make_pretty(df_ate_9, level, n_rep)
127+ generate_and_show_styled_table(
128+ main_df=df_apos,
129+ filters={"level": 0.9},
130+ display_cols=display_columns_apos,
131+ n_rep=n_rep_apos,
132+ level_col="level",
133+ coverage_highlight_cols=["Coverage", "Uniform Coverage"]
134+ )
203135```
204136
205137## Causal Contrast Coverage
@@ -222,28 +154,38 @@ print(metadata_df.T.to_string(header=False))
222154``` {python}
223155#| echo: false
224156
225- # set up data and rename columns
226- df = pd.read_csv("../../results/irm/irm_apo_coverage_apos_contrast.csv", index_col=None)
157+ # set up data
158+ df_contrast = pd.read_csv("../../results/irm/irm_apo_coverage_apos_contrast.csv", index_col=None)
227159
228- assert df ["repetition"].nunique() == 1
229- n_rep = df ["repetition"].unique()[0]
160+ assert df_contrast ["repetition"].nunique() == 1
161+ n_rep_contrast = df_contrast ["repetition"].unique()[0]
230162
231- display_columns = ["Learner g", "Learner m", "Bias", "CI Length", "Coverage", "Uniform CI Length", "Uniform Coverage"]
163+ display_columns_contrast = ["Learner g", "Learner m", "Bias", "CI Length", "Coverage", "Uniform CI Length", "Uniform Coverage"]
232164```
233165
234166``` {python}
235167#| echo: false
236168
237- level = 0.95
238- df_ate_95 = df[df['level'] == level][display_columns]
239- make_pretty(df_ate_95, level, n_rep)
169+ generate_and_show_styled_table(
170+ main_df=df_contrast,
171+ filters={"level": 0.95},
172+ display_cols=display_columns_contrast,
173+ n_rep=n_rep_contrast,
174+ level_col="level",
175+ coverage_highlight_cols=["Coverage", "Uniform Coverage"]
176+ )
240177```
241178
242179
243180``` {python}
244181#| echo: false
245182
246- level = 0.9
247- df_ate_9 = df[df['level'] == level][display_columns]
248- make_pretty(df_ate_9, level, n_rep)
183+ generate_and_show_styled_table(
184+ main_df=df_contrast,
185+ filters={"level": 0.9},
186+ display_cols=display_columns_contrast,
187+ n_rep=n_rep_contrast,
188+ level_col="level",
189+ coverage_highlight_cols=["Coverage", "Uniform Coverage"]
190+ )
249191```
0 commit comments