formative-ds 2.2.4__tar.gz → 2.2.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {formative_ds-2.2.4 → formative_ds-2.2.5}/PKG-INFO +1 -1
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/estimators/_base.py +25 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/estimators/iv.py +2 -9
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/estimators/matching.py +3 -20
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/estimators/ols.py +3 -21
- {formative_ds-2.2.4 → formative_ds-2.2.5}/pyproject.toml +2 -2
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/documentation_options.js +1 -1
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/causal/benchmarks.html +2 -2
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/causal/dag.html +2 -2
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/causal/decisions.html +2 -2
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/causal/estimands.html +2 -2
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/causal/estimators.html +2 -2
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/causal/introduction.html +2 -2
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/causal/motivation.html +2 -2
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/causal/refutations.html +2 -2
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/causal/wizard.html +2 -2
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/game/decision_rules.html +2 -2
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/game/introduction.html +2 -2
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/game/single_player.html +2 -2
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/genindex.html +2 -2
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/index.html +2 -2
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/search.html +2 -2
- {formative_ds-2.2.4 → formative_ds-2.2.5}/uv.lock +1 -1
- {formative_ds-2.2.4 → formative_ds-2.2.5}/.gitattributes +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/.github/workflows/ci.yml +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/.github/workflows/publish.yml +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/.gitignore +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/CLAUDE.md +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/LICENSE +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/Makefile +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/README.md +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/TODO.md +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/docs/_static/version_switcher.css +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/docs/_static/version_switcher.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/docs/causal/benchmarks.rst +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/docs/causal/dag.rst +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/docs/causal/decisions.rst +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/docs/causal/estimands.rst +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/docs/causal/estimators.rst +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/docs/causal/introduction.rst +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/docs/causal/motivation.rst +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/docs/causal/refutations.rst +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/docs/causal/wizard.rst +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/docs/conf.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/docs/design/policy_learning.md +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/docs/game/decision_rules.rst +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/docs/game/introduction.rst +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/docs/game/single_player.rst +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/docs/index.rst +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/examples/decision/01_decision_basic.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/examples/did/01_did_basic.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/examples/iv/01_iv_basic.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/examples/iv/02_iv_vs_ols_bias.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/examples/iv/03_iv_with_observed_confounder.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/examples/iv/04_iv_refutation.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/examples/matching/01_basic_matching.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/examples/matching/02_matching_vs_naive.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/examples/matching/03_matching_refutation.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/examples/ols/01_ols_basic.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/examples/ols/02_ols_unobserved_confounder.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/examples/ols/03_ols_multiple_confounders.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/examples/rct/01_rct_basic.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/examples/rdd/01_rdd_basic.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/examples/rdd/02_rdd_positive_running_var.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/__init__.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/__init__.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/_assumptions.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/_exceptions.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/_explain.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/dag.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/decision.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/estimators/__init__.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/estimators/_cate.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/estimators/did.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/estimators/policy.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/estimators/rct.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/estimators/rdd.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/refutations/__init__.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/refutations/_check.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/refutations/cate.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/refutations/did.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/refutations/iv.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/refutations/matching.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/refutations/ols.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/refutations/policy.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/refutations/rct.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/causal/refutations/rdd.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/game/__init__.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/game/expected_value.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/game/hurwicz.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/game/laplace.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/game/maximax.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/game/maximin.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/formative/game/minimax.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/notebooks/card_krueger_benchmark.ipynb +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/notebooks/lalonde_benchmark.ipynb +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/scripts/snapshot_docs.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_sources/causal/benchmarks.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_sources/causal/dag.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_sources/causal/decisions.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_sources/causal/estimands.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_sources/causal/estimators.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_sources/causal/introduction.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_sources/causal/motivation.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_sources/causal/refutations.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_sources/causal/wizard.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_sources/game/decision_rules.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_sources/game/introduction.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_sources/game/single_player.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_sources/index.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/_sphinx_javascript_frameworks_compat.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/base-stemmer.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/basic.css +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/check-solid.svg +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/clipboard.min.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/copy-button.svg +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/copybutton.css +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/copybutton.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/copybutton_funcs.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/css/badge_only.css +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/css/fonts/fontawesome-webfont.eot +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/css/fonts/fontawesome-webfont.svg +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/css/fonts/fontawesome-webfont.ttf +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/css/fonts/fontawesome-webfont.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/css/fonts/lato-bold-italic.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/css/fonts/lato-bold-italic.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/css/fonts/lato-bold.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/css/fonts/lato-bold.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/css/fonts/lato-normal-italic.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/css/fonts/lato-normal-italic.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/css/fonts/lato-normal.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/css/fonts/lato-normal.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/css/theme.css +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/doctools.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/documentation_options.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/english-stemmer.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/file.png +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/Lato/lato-bold.eot +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/Lato/lato-bold.ttf +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/Lato/lato-bold.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/Lato/lato-bold.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/Lato/lato-bolditalic.eot +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/Lato/lato-bolditalic.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/Lato/lato-italic.eot +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/Lato/lato-italic.ttf +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/Lato/lato-italic.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/Lato/lato-italic.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/Lato/lato-regular.eot +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/Lato/lato-regular.ttf +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/Lato/lato-regular.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/Lato/lato-regular.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/jquery.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/js/badge_only.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/js/theme.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/js/versions.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/language_data.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/minus.png +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/plus.png +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/pygments.css +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/searchtools.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/sphinx_highlight.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/version_switcher.css +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/_static/version_switcher.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/causal/benchmarks.html +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/causal/dag.html +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/causal/decisions.html +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/causal/estimands.html +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/causal/estimators.html +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/causal/introduction.html +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/causal/motivation.html +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/causal/refutations.html +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/causal/wizard.html +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/game/decision_rules.html +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/game/introduction.html +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/game/single_player.html +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/genindex.html +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/index.html +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/objects.inv +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/search.html +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.1/searchindex.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_sources/causal/benchmarks.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_sources/causal/dag.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_sources/causal/decisions.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_sources/causal/estimands.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_sources/causal/estimators.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_sources/causal/introduction.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_sources/causal/motivation.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_sources/causal/refutations.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_sources/causal/wizard.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_sources/game/decision_rules.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_sources/game/introduction.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_sources/game/single_player.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_sources/index.rst.txt +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/_sphinx_javascript_frameworks_compat.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/base-stemmer.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/basic.css +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/check-solid.svg +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/clipboard.min.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/copy-button.svg +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/copybutton.css +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/copybutton.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/copybutton_funcs.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/css/badge_only.css +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/css/fonts/fontawesome-webfont.eot +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/css/fonts/fontawesome-webfont.svg +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/css/fonts/fontawesome-webfont.ttf +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/css/fonts/fontawesome-webfont.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/css/fonts/lato-bold-italic.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/css/fonts/lato-bold-italic.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/css/fonts/lato-bold.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/css/fonts/lato-bold.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/css/fonts/lato-normal-italic.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/css/fonts/lato-normal-italic.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/css/fonts/lato-normal.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/css/fonts/lato-normal.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/css/theme.css +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/doctools.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/english-stemmer.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/file.png +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/Lato/lato-bold.eot +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/Lato/lato-bold.ttf +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/Lato/lato-bold.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/Lato/lato-bold.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/Lato/lato-bolditalic.eot +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/Lato/lato-bolditalic.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/Lato/lato-italic.eot +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/Lato/lato-italic.ttf +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/Lato/lato-italic.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/Lato/lato-italic.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/Lato/lato-regular.eot +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/Lato/lato-regular.ttf +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/Lato/lato-regular.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/Lato/lato-regular.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/jquery.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/js/badge_only.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/js/theme.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/js/versions.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/language_data.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/minus.png +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/plus.png +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/pygments.css +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/searchtools.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/sphinx_highlight.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/version_switcher.css +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/_static/version_switcher.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/objects.inv +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/2.2/searchindex.js +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/site/versions.json +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/tests/test_cate.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/tests/test_cate_refutation.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/tests/test_dag.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/tests/test_decision.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/tests/test_did.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/tests/test_did_refutation.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/tests/test_game.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/tests/test_iv.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/tests/test_iv_refutation.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/tests/test_matching.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/tests/test_matching_refutation.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/tests/test_ols.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/tests/test_ols_refutation.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/tests/test_policy.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/tests/test_policy_refutation.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/tests/test_rct.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/tests/test_rct_refutation.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/tests/test_rdd.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/tests/test_rdd_refutation.py +0 -0
- {formative_ds-2.2.4 → formative_ds-2.2.5}/vercel.json +0 -0
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
from .._assumptions import Assumption
|
|
4
|
+
from .._exceptions import IdentificationError
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def _backdoor_confounders(dag, treatment: str, outcome: str) -> set[str]:
|
|
8
|
+
"""
|
|
9
|
+
Confounders under the backdoor criterion: common ancestors of treatment and
|
|
10
|
+
outcome that are not descendants of treatment (mediators or post-treatment
|
|
11
|
+
variables).
|
|
12
|
+
"""
|
|
13
|
+
return (dag.ancestors(treatment) & dag.ancestors(outcome)) - dag.descendants(treatment)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def _missing_confounders_error(missing: set[str], treatment: str, outcome: str) -> IdentificationError:
|
|
17
|
+
"""``IdentificationError`` for DAG-declared confounders absent from the dataframe."""
|
|
18
|
+
return IdentificationError(
|
|
19
|
+
f"\nDAG confounders not found in dataframe: {sorted(missing)}\n\n"
|
|
20
|
+
f"Your DAG declares these variables as confounders of '{treatment}' and\n"
|
|
21
|
+
f"'{outcome}', but they are absent from the dataframe and cannot be\n"
|
|
22
|
+
f"controlled for. Note: there may also be confounders not modelled in your\n"
|
|
23
|
+
f"DAG at all — formative cannot detect those.\n\n"
|
|
24
|
+
f"Consider:\n"
|
|
25
|
+
f" - Collecting data on {sorted(missing)} and adding it to the dataframe\n"
|
|
26
|
+
f" - IV estimation if you have a valid instrument for '{treatment}'\n"
|
|
27
|
+
f" - DiD or RD if a natural experiment is available"
|
|
28
|
+
)
|
|
4
29
|
|
|
5
30
|
|
|
6
31
|
class _BaseResult:
|
|
@@ -7,7 +7,7 @@ from statsmodels.sandbox.regression.gmm import IV2SLS as _IV2SLS
|
|
|
7
7
|
|
|
8
8
|
from .._assumptions import Assumption
|
|
9
9
|
from ..dag import DAG
|
|
10
|
-
from ._base import _StatsmodelsResult
|
|
10
|
+
from ._base import _backdoor_confounders, _StatsmodelsResult
|
|
11
11
|
|
|
12
12
|
IV_ASSUMPTIONS: list[Assumption] = [
|
|
13
13
|
Assumption("Relevance: the instrument strongly affects treatment", testable=True),
|
|
@@ -228,14 +228,7 @@ class IV2SLS:
|
|
|
228
228
|
Unobserved confounders are handled by the instrument and are not flagged
|
|
229
229
|
as errors — this is the primary use case for IV estimation.
|
|
230
230
|
"""
|
|
231
|
-
|
|
232
|
-
T, Y = self._treatment, self._outcome
|
|
233
|
-
|
|
234
|
-
treatment_ancestors = dag.ancestors(T)
|
|
235
|
-
outcome_ancestors = dag.ancestors(Y)
|
|
236
|
-
treatment_descendants = dag.descendants(T)
|
|
237
|
-
|
|
238
|
-
confounders = (treatment_ancestors & outcome_ancestors) - treatment_descendants
|
|
231
|
+
confounders = _backdoor_confounders(self._dag, self._treatment, self._outcome)
|
|
239
232
|
confounders.discard(self._instrument)
|
|
240
233
|
|
|
241
234
|
return {c for c in confounders if c in data_columns}
|
|
@@ -6,9 +6,8 @@ import statsmodels.api as sm
|
|
|
6
6
|
import statsmodels.formula.api as smf
|
|
7
7
|
|
|
8
8
|
from .._assumptions import Assumption
|
|
9
|
-
from .._exceptions import IdentificationError
|
|
10
9
|
from ..dag import DAG
|
|
11
|
-
from ._base import _BaseResult
|
|
10
|
+
from ._base import _backdoor_confounders, _BaseResult, _missing_confounders_error
|
|
12
11
|
|
|
13
12
|
MATCHING_ASSUMPTIONS: list[Assumption] = [
|
|
14
13
|
Assumption("Conditional independence: no unobserved confounders given matched variables", testable=False),
|
|
@@ -283,14 +282,7 @@ class PropensityScoreMatching:
|
|
|
283
282
|
raise ValueError("Treatment and outcome must be different variables.")
|
|
284
283
|
|
|
285
284
|
def _identify(self, data_columns: set[str]) -> tuple[set[str], set[str]]:
|
|
286
|
-
|
|
287
|
-
T, Y = self._treatment, self._outcome
|
|
288
|
-
|
|
289
|
-
treatment_ancestors = dag.ancestors(T)
|
|
290
|
-
outcome_ancestors = dag.ancestors(Y)
|
|
291
|
-
treatment_descendants = dag.descendants(T)
|
|
292
|
-
|
|
293
|
-
confounders = (treatment_ancestors & outcome_ancestors) - treatment_descendants
|
|
285
|
+
confounders = _backdoor_confounders(self._dag, self._treatment, self._outcome)
|
|
294
286
|
observed = {c for c in confounders if c in data_columns}
|
|
295
287
|
missing = {c for c in confounders if c not in data_columns}
|
|
296
288
|
return observed, missing
|
|
@@ -328,16 +320,7 @@ class PropensityScoreMatching:
|
|
|
328
320
|
adjustment_set, missing = self._identify(data_columns)
|
|
329
321
|
|
|
330
322
|
if missing:
|
|
331
|
-
raise
|
|
332
|
-
f"\nDAG confounders not found in dataframe: {sorted(missing)}\n\n"
|
|
333
|
-
f"Your DAG declares these variables as confounders of "
|
|
334
|
-
f"'{self._treatment}' and '{self._outcome}', but they are "
|
|
335
|
-
f"absent from the dataframe and cannot be controlled for.\n\n"
|
|
336
|
-
f"Consider:\n"
|
|
337
|
-
f" - Collecting data on {sorted(missing)} and adding it to the dataframe\n"
|
|
338
|
-
f" - IV estimation if you have a valid instrument for '{self._treatment}'\n"
|
|
339
|
-
f" - DiD or RD if a natural experiment is available"
|
|
340
|
-
)
|
|
323
|
+
raise _missing_confounders_error(missing, self._treatment, self._outcome)
|
|
341
324
|
|
|
342
325
|
T, Y = self._treatment, self._outcome
|
|
343
326
|
|
|
@@ -4,9 +4,8 @@ import pandas as pd
|
|
|
4
4
|
import statsmodels.formula.api as smf
|
|
5
5
|
|
|
6
6
|
from .._assumptions import Assumption
|
|
7
|
-
from .._exceptions import IdentificationError
|
|
8
7
|
from ..dag import DAG
|
|
9
|
-
from ._base import _StatsmodelsResult
|
|
8
|
+
from ._base import _backdoor_confounders, _missing_confounders_error, _StatsmodelsResult
|
|
10
9
|
from ._cate import (
|
|
11
10
|
CATE_ASSUMPTIONS,
|
|
12
11
|
_CATEResultMixin,
|
|
@@ -282,14 +281,7 @@ class OLSObservational:
|
|
|
282
281
|
absent from the data. There may be additional unobserved confounders
|
|
283
282
|
not represented in the DAG at all.
|
|
284
283
|
"""
|
|
285
|
-
|
|
286
|
-
T, Y = self._treatment, self._outcome
|
|
287
|
-
|
|
288
|
-
treatment_ancestors = dag.ancestors(T)
|
|
289
|
-
outcome_ancestors = dag.ancestors(Y)
|
|
290
|
-
treatment_descendants = dag.descendants(T)
|
|
291
|
-
|
|
292
|
-
confounders = (treatment_ancestors & outcome_ancestors) - treatment_descendants
|
|
284
|
+
confounders = _backdoor_confounders(self._dag, self._treatment, self._outcome)
|
|
293
285
|
|
|
294
286
|
observed_confounders = {c for c in confounders if c in data_columns}
|
|
295
287
|
dag_confounders_not_in_data = {c for c in confounders if c not in data_columns}
|
|
@@ -335,17 +327,7 @@ class OLSObservational:
|
|
|
335
327
|
adjustment_set, dag_confounders_not_in_data = self._identify(data_columns)
|
|
336
328
|
|
|
337
329
|
if dag_confounders_not_in_data:
|
|
338
|
-
raise
|
|
339
|
-
f"\nDAG confounders not found in dataframe: {sorted(dag_confounders_not_in_data)}\n\n"
|
|
340
|
-
f"Your DAG declares these variables as confounders of '{self._treatment}' and\n"
|
|
341
|
-
f"'{self._outcome}', but they are absent from the dataframe and cannot be\n"
|
|
342
|
-
f"controlled for. Note: there may also be confounders not modelled in your\n"
|
|
343
|
-
f"DAG at all — formative cannot detect those.\n\n"
|
|
344
|
-
f"Consider:\n"
|
|
345
|
-
f" - Collecting data on {sorted(dag_confounders_not_in_data)} and adding it to the dataframe\n"
|
|
346
|
-
f" - IV estimation if you have a valid instrument for '{self._treatment}'\n"
|
|
347
|
-
f" - DiD or RD if a natural experiment is available"
|
|
348
|
-
)
|
|
330
|
+
raise _missing_confounders_error(dag_confounders_not_in_data, self._treatment, self._outcome)
|
|
349
331
|
|
|
350
332
|
unadjusted_result = smf.ols(f"{self._outcome} ~ {self._treatment}", data=data).fit()
|
|
351
333
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "formative-ds"
|
|
7
|
-
version = "2.2.
|
|
7
|
+
version = "2.2.5"
|
|
8
8
|
description = "A Python library for quantitative reasoning."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -48,7 +48,7 @@ docs = ["sphinx>=7,<10", "sphinx-rtd-theme>=2,<4", "sphinx-copybutton>=0.5,<0.6"
|
|
|
48
48
|
packages = ["formative"]
|
|
49
49
|
|
|
50
50
|
[tool.bumpversion]
|
|
51
|
-
current_version = "2.2.
|
|
51
|
+
current_version = "2.2.5"
|
|
52
52
|
commit = true
|
|
53
53
|
tag = true
|
|
54
54
|
tag_name = "v{new_version}"
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
|
|
8
8
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
9
|
-
<title>Benchmarks — formative 2.2.
|
|
9
|
+
<title>Benchmarks — formative 2.2.4 documentation</title>
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
|
|
11
11
|
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=9edc463e" />
|
|
12
12
|
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<link rel="canonical" href="https://docs.getformative.dev/causal/benchmarks.html" />
|
|
17
17
|
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
|
18
18
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
19
|
-
<script src="../_static/documentation_options.js?v=
|
|
19
|
+
<script src="../_static/documentation_options.js?v=4e6cfea6"></script>
|
|
20
20
|
<script src="../_static/doctools.js?v=fd6eb6e6"></script>
|
|
21
21
|
<script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
22
22
|
<script src="../_static/clipboard.min.js?v=a7894cd8"></script>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
|
|
8
8
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
9
|
-
<title>DAG — formative 2.2.
|
|
9
|
+
<title>DAG — formative 2.2.4 documentation</title>
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
|
|
11
11
|
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=9edc463e" />
|
|
12
12
|
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<link rel="canonical" href="https://docs.getformative.dev/causal/dag.html" />
|
|
17
17
|
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
|
18
18
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
19
|
-
<script src="../_static/documentation_options.js?v=
|
|
19
|
+
<script src="../_static/documentation_options.js?v=4e6cfea6"></script>
|
|
20
20
|
<script src="../_static/doctools.js?v=fd6eb6e6"></script>
|
|
21
21
|
<script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
22
22
|
<script src="../_static/clipboard.min.js?v=a7894cd8"></script>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
|
|
8
8
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
9
|
-
<title>Decisions — formative 2.2.
|
|
9
|
+
<title>Decisions — formative 2.2.4 documentation</title>
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
|
|
11
11
|
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=9edc463e" />
|
|
12
12
|
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<link rel="canonical" href="https://docs.getformative.dev/causal/decisions.html" />
|
|
17
17
|
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
|
18
18
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
19
|
-
<script src="../_static/documentation_options.js?v=
|
|
19
|
+
<script src="../_static/documentation_options.js?v=4e6cfea6"></script>
|
|
20
20
|
<script src="../_static/doctools.js?v=fd6eb6e6"></script>
|
|
21
21
|
<script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
22
22
|
<script src="../_static/clipboard.min.js?v=a7894cd8"></script>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
|
|
8
8
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
9
|
-
<title>Estimands — formative 2.2.
|
|
9
|
+
<title>Estimands — formative 2.2.4 documentation</title>
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
|
|
11
11
|
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=9edc463e" />
|
|
12
12
|
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<link rel="canonical" href="https://docs.getformative.dev/causal/estimands.html" />
|
|
17
17
|
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
|
18
18
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
19
|
-
<script src="../_static/documentation_options.js?v=
|
|
19
|
+
<script src="../_static/documentation_options.js?v=4e6cfea6"></script>
|
|
20
20
|
<script src="../_static/doctools.js?v=fd6eb6e6"></script>
|
|
21
21
|
<script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
22
22
|
<script src="../_static/clipboard.min.js?v=a7894cd8"></script>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
|
|
8
8
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
9
|
-
<title>Estimators — formative 2.2.
|
|
9
|
+
<title>Estimators — formative 2.2.4 documentation</title>
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
|
|
11
11
|
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=9edc463e" />
|
|
12
12
|
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<link rel="canonical" href="https://docs.getformative.dev/causal/estimators.html" />
|
|
17
17
|
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
|
18
18
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
19
|
-
<script src="../_static/documentation_options.js?v=
|
|
19
|
+
<script src="../_static/documentation_options.js?v=4e6cfea6"></script>
|
|
20
20
|
<script src="../_static/doctools.js?v=fd6eb6e6"></script>
|
|
21
21
|
<script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
22
22
|
<script src="../_static/clipboard.min.js?v=a7894cd8"></script>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
|
|
8
8
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
9
|
-
<title>Introduction — formative 2.2.
|
|
9
|
+
<title>Introduction — formative 2.2.4 documentation</title>
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
|
|
11
11
|
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=9edc463e" />
|
|
12
12
|
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<link rel="canonical" href="https://docs.getformative.dev/causal/introduction.html" />
|
|
17
17
|
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
|
18
18
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
19
|
-
<script src="../_static/documentation_options.js?v=
|
|
19
|
+
<script src="../_static/documentation_options.js?v=4e6cfea6"></script>
|
|
20
20
|
<script src="../_static/doctools.js?v=fd6eb6e6"></script>
|
|
21
21
|
<script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
22
22
|
<script src="../_static/clipboard.min.js?v=a7894cd8"></script>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
|
|
8
8
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
9
|
-
<title>Motivation — formative 2.2.
|
|
9
|
+
<title>Motivation — formative 2.2.4 documentation</title>
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
|
|
11
11
|
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=9edc463e" />
|
|
12
12
|
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<link rel="canonical" href="https://docs.getformative.dev/causal/motivation.html" />
|
|
17
17
|
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
|
18
18
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
19
|
-
<script src="../_static/documentation_options.js?v=
|
|
19
|
+
<script src="../_static/documentation_options.js?v=4e6cfea6"></script>
|
|
20
20
|
<script src="../_static/doctools.js?v=fd6eb6e6"></script>
|
|
21
21
|
<script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
22
22
|
<script src="../_static/clipboard.min.js?v=a7894cd8"></script>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
|
|
8
8
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
9
|
-
<title>Refutations — formative 2.2.
|
|
9
|
+
<title>Refutations — formative 2.2.4 documentation</title>
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
|
|
11
11
|
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=9edc463e" />
|
|
12
12
|
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<link rel="canonical" href="https://docs.getformative.dev/causal/refutations.html" />
|
|
17
17
|
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
|
18
18
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
19
|
-
<script src="../_static/documentation_options.js?v=
|
|
19
|
+
<script src="../_static/documentation_options.js?v=4e6cfea6"></script>
|
|
20
20
|
<script src="../_static/doctools.js?v=fd6eb6e6"></script>
|
|
21
21
|
<script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
22
22
|
<script src="../_static/clipboard.min.js?v=a7894cd8"></script>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
|
|
8
8
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
9
|
-
<title>Choosing an estimator — formative 2.2.
|
|
9
|
+
<title>Choosing an estimator — formative 2.2.4 documentation</title>
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
|
|
11
11
|
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=9edc463e" />
|
|
12
12
|
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<link rel="canonical" href="https://docs.getformative.dev/causal/wizard.html" />
|
|
17
17
|
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
|
18
18
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
19
|
-
<script src="../_static/documentation_options.js?v=
|
|
19
|
+
<script src="../_static/documentation_options.js?v=4e6cfea6"></script>
|
|
20
20
|
<script src="../_static/doctools.js?v=fd6eb6e6"></script>
|
|
21
21
|
<script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
22
22
|
<script src="../_static/clipboard.min.js?v=a7894cd8"></script>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
|
|
8
8
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
9
|
-
<title>Decision rules — formative 2.2.
|
|
9
|
+
<title>Decision rules — formative 2.2.4 documentation</title>
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
|
|
11
11
|
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=9edc463e" />
|
|
12
12
|
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<link rel="canonical" href="https://docs.getformative.dev/game/decision_rules.html" />
|
|
17
17
|
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
|
18
18
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
19
|
-
<script src="../_static/documentation_options.js?v=
|
|
19
|
+
<script src="../_static/documentation_options.js?v=4e6cfea6"></script>
|
|
20
20
|
<script src="../_static/doctools.js?v=fd6eb6e6"></script>
|
|
21
21
|
<script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
22
22
|
<script src="../_static/clipboard.min.js?v=a7894cd8"></script>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
|
|
8
8
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
9
|
-
<title>Introduction — formative 2.2.
|
|
9
|
+
<title>Introduction — formative 2.2.4 documentation</title>
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
|
|
11
11
|
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=9edc463e" />
|
|
12
12
|
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<link rel="canonical" href="https://docs.getformative.dev/game/introduction.html" />
|
|
17
17
|
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
|
18
18
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
19
|
-
<script src="../_static/documentation_options.js?v=
|
|
19
|
+
<script src="../_static/documentation_options.js?v=4e6cfea6"></script>
|
|
20
20
|
<script src="../_static/doctools.js?v=fd6eb6e6"></script>
|
|
21
21
|
<script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
22
22
|
<script src="../_static/clipboard.min.js?v=a7894cd8"></script>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
|
|
8
8
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
9
|
-
<title>Single-player — formative 2.2.
|
|
9
|
+
<title>Single-player — formative 2.2.4 documentation</title>
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
|
|
11
11
|
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=9edc463e" />
|
|
12
12
|
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<link rel="canonical" href="https://docs.getformative.dev/game/single_player.html" />
|
|
17
17
|
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
|
18
18
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
19
|
-
<script src="../_static/documentation_options.js?v=
|
|
19
|
+
<script src="../_static/documentation_options.js?v=4e6cfea6"></script>
|
|
20
20
|
<script src="../_static/doctools.js?v=fd6eb6e6"></script>
|
|
21
21
|
<script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
22
22
|
<script src="../_static/clipboard.min.js?v=a7894cd8"></script>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<head>
|
|
6
6
|
<meta charset="utf-8" />
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
|
-
<title>Index — formative 2.2.
|
|
8
|
+
<title>Index — formative 2.2.4 documentation</title>
|
|
9
9
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=9edc463e" />
|
|
11
11
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
<link rel="canonical" href="https://docs.getformative.dev/genindex.html" />
|
|
16
16
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
|
17
17
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
18
|
-
<script src="_static/documentation_options.js?v=
|
|
18
|
+
<script src="_static/documentation_options.js?v=4e6cfea6"></script>
|
|
19
19
|
<script src="_static/doctools.js?v=fd6eb6e6"></script>
|
|
20
20
|
<script src="_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
21
21
|
<script src="_static/clipboard.min.js?v=a7894cd8"></script>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
|
|
8
8
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
9
|
-
<title>formative — formative 2.2.
|
|
9
|
+
<title>formative — formative 2.2.4 documentation</title>
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
|
|
11
11
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=9edc463e" />
|
|
12
12
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<link rel="canonical" href="https://docs.getformative.dev/index.html" />
|
|
17
17
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
|
18
18
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
19
|
-
<script src="_static/documentation_options.js?v=
|
|
19
|
+
<script src="_static/documentation_options.js?v=4e6cfea6"></script>
|
|
20
20
|
<script src="_static/doctools.js?v=fd6eb6e6"></script>
|
|
21
21
|
<script src="_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
22
22
|
<script src="_static/clipboard.min.js?v=a7894cd8"></script>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<head>
|
|
6
6
|
<meta charset="utf-8" />
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
|
-
<title>Search — formative 2.2.
|
|
8
|
+
<title>Search — formative 2.2.4 documentation</title>
|
|
9
9
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=9edc463e" />
|
|
11
11
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
|
18
18
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
19
|
-
<script src="_static/documentation_options.js?v=
|
|
19
|
+
<script src="_static/documentation_options.js?v=4e6cfea6"></script>
|
|
20
20
|
<script src="_static/doctools.js?v=fd6eb6e6"></script>
|
|
21
21
|
<script src="_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
22
22
|
<script src="_static/clipboard.min.js?v=a7894cd8"></script>
|
|
@@ -603,7 +603,7 @@ wheels = [
|
|
|
603
603
|
|
|
604
604
|
[[package]]
|
|
605
605
|
name = "formative-ds"
|
|
606
|
-
version = "2.2.
|
|
606
|
+
version = "2.2.5"
|
|
607
607
|
source = { editable = "." }
|
|
608
608
|
dependencies = [
|
|
609
609
|
{ name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|