Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions doc/_quarto-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ metadata-files:
- _website.yml

website:
site-url: https://docs.doubleml.org/doubleml-coverage/dev/
drafts:
- index.qmd
# IRM
Expand All @@ -14,6 +15,7 @@ website:
- irm/irm_cate.qmd
- irm/apo.qmd
- irm/qte.qmd
- irm/iivm.qmd
# PLM
- plm/plr.qmd
- plm/plr_gate.qmd
Expand Down
2 changes: 2 additions & 0 deletions doc/_website.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
website:
title: "DoubleML Coverage"
favicon: _static/favicon.ico
site-url: https://docs.doubleml.org/doubleml-coverage/
search:
location: sidebar
sidebar:
Expand All @@ -17,6 +18,7 @@ website:
- irm/irm_cate.qmd
- irm/apo.qmd
- irm/qte.qmd
- irm/iivm.qmd
- text: "PLM"
menu:
- plm/plr.qmd
Expand Down
107 changes: 41 additions & 66 deletions doc/did/did_cs.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -9,55 +9,17 @@ jupyter: python3

import numpy as np
import pandas as pd
from itables import init_notebook_mode, show, options
from itables import init_notebook_mode
import os
import sys

init_notebook_mode(all_interactive=True)
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

def highlight_range(s, level=0.95, dist=0.05, props=''):
color_grid = np.where((s >= level-dist) &
(s <= level+dist), props, '')
return color_grid


def color_coverage(df, level):
# color coverage column order is important
styled_df = df.apply(
highlight_range,
level=level,
dist=1.0,
props='color:black;background-color:red',
subset=["Coverage"])
styled_df = styled_df.apply(
highlight_range,
level=level,
dist=0.1,
props='color:black;background-color:yellow',
subset=["Coverage"])
styled_df = styled_df.apply(
highlight_range,
level=level,
dist=0.05,
props='color:white;background-color:darkgreen',
subset=["Coverage"])

# set all coverage values to bold
styled_df = styled_df.set_properties(
**{'font-weight': 'bold'},
subset=["Coverage"])
return styled_df


def make_pretty(df, level, n_rep):
styled_df = df.style.hide(axis="index")
# Format only float columns
float_cols = df.select_dtypes(include=['float']).columns
styled_df = styled_df.format({col: "{:.3f}" for col in float_cols})

# color coverage column order is important
styled_df = color_coverage(styled_df, level)
caption = f"Coverage for {level*100}%-Confidence Interval over {n_rep} Repetitions"

return show(styled_df, caption=caption, allow_html=True)
init_notebook_mode(all_interactive=True)
```

## ATTE Coverage
Expand Down Expand Up @@ -91,20 +53,27 @@ display_columns = ["Learner g", "Learner m", "DGP", "In-sample-norm.", "Bias", "

```{python}
#| echo: false
score = "observational"
level = 0.95

df_ate_95 = df[(df['level'] == level) & (df["Score"] == score)][display_columns]
make_pretty(df_ate_95, level, n_rep)
generate_and_show_styled_table(
main_df=df,
filters={"level": 0.95, "Score": "observational"},
display_cols=display_columns,
n_rep=n_rep,
level_col="level",
coverage_highlight_cols=["Coverage"]
)
```

```{python}
#| echo: false
score = "observational"
level = 0.9

df_ate_9 = df[(df['level'] == level) & (df["Score"] == score)][display_columns]
make_pretty(df_ate_9, level, n_rep)
generate_and_show_styled_table(
main_df=df,
filters={"level": 0.9, "Score": "observational"},
display_cols=display_columns,
n_rep=n_rep,
level_col="level",
coverage_highlight_cols=["Coverage"]
)
```

### Experimental Score
Expand All @@ -113,18 +82,24 @@ Remark that the only two valid DGPs are DGP $5$ and DGP $6$. All other DGPs are

```{python}
#| echo: false
score = "experimental"
level = 0.95

df_ate_95 = df[(df['level'] == level) & (df["Score"] == score)][display_columns]
make_pretty(df_ate_95, level, n_rep)
generate_and_show_styled_table(
main_df=df,
filters={"level": 0.95, "Score": "experimental"},
display_cols=display_columns,
n_rep=n_rep,
level_col="level",
coverage_highlight_cols=["Coverage"]
)
```

```{python}
#| echo: false
score = "experimental"
level = 0.9

df_ate_9 = df[(df['level'] == level) & (df["Score"] == score)][display_columns]
make_pretty(df_ate_9, level, n_rep)
generate_and_show_styled_table(
main_df=df,
filters={"level": 0.9, "Score": "experimental"},
display_cols=display_columns,
n_rep=n_rep,
level_col="level",
coverage_highlight_cols=["Coverage"]
)
```
Loading