@@ -9,55 +9,17 @@ jupyter: python3
9
9
10
10
import numpy as np
11
11
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
13
15
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
15
21
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)
61
23
```
62
24
63
25
## ATTE Coverage
@@ -91,20 +53,27 @@ display_columns = ["Learner g", "Learner m", "DGP", "In-sample-norm.", "Bias", "
91
53
92
54
``` {python}
93
55
#| echo: false
94
- score = "observational"
95
- level = 0.95
96
56
97
- df_ate_95 = df[(df['level'] == level) & (df["Score"] == score)][display_columns]
98
- make_pretty(df_ate_95, level, n_rep)
57
+ generate_and_show_styled_table(
58
+ main_df=df,
59
+ filters={"level": 0.95, "Score": "observational"},
60
+ display_cols=display_columns,
61
+ n_rep=n_rep,
62
+ level_col="level",
63
+ coverage_highlight_cols=["Coverage"]
64
+ )
99
65
```
100
66
101
67
``` {python}
102
68
#| echo: false
103
- score = "observational"
104
- level = 0.9
105
-
106
- df_ate_9 = df[(df['level'] == level) & (df["Score"] == score)][display_columns]
107
- make_pretty(df_ate_9, level, n_rep)
69
+ generate_and_show_styled_table(
70
+ main_df=df,
71
+ filters={"level": 0.9, "Score": "observational"},
72
+ display_cols=display_columns,
73
+ n_rep=n_rep,
74
+ level_col="level",
75
+ coverage_highlight_cols=["Coverage"]
76
+ )
108
77
```
109
78
110
79
### Experimental Score
@@ -113,18 +82,24 @@ Remark that the only two valid DGPs are DGP $5$ and DGP $6$. All other DGPs are
113
82
114
83
``` {python}
115
84
#| echo: false
116
- score = "experimental"
117
- level = 0.95
118
-
119
- df_ate_95 = df[(df['level'] == level) & (df["Score"] == score)][display_columns]
120
- make_pretty(df_ate_95, level, n_rep)
85
+ generate_and_show_styled_table(
86
+ main_df=df,
87
+ filters={"level": 0.95, "Score": "experimental"},
88
+ display_cols=display_columns,
89
+ n_rep=n_rep,
90
+ level_col="level",
91
+ coverage_highlight_cols=["Coverage"]
92
+ )
121
93
```
122
94
123
95
``` {python}
124
96
#| echo: false
125
- score = "experimental"
126
- level = 0.9
127
-
128
- df_ate_9 = df[(df['level'] == level) & (df["Score"] == score)][display_columns]
129
- make_pretty(df_ate_9, level, n_rep)
97
+ generate_and_show_styled_table(
98
+ main_df=df,
99
+ filters={"level": 0.9, "Score": "experimental"},
100
+ display_cols=display_columns,
101
+ n_rep=n_rep,
102
+ level_col="level",
103
+ coverage_highlight_cols=["Coverage"]
104
+ )
130
105
```
0 commit comments