diff --git a/TODO.md b/TODO.md index 17d2659e..e805586d 100644 --- a/TODO.md +++ b/TODO.md @@ -131,12 +131,8 @@ Deferred items from PR reviews that were not addressed before merge. |-------|----------|----|----------| | R comparison tests spawn separate `Rscript` per test (slow CI) | `tests/test_methodology_twfe.py:294` | #139 | Low | | CS R helpers hard-code `xformla = ~ 1`; no covariate-adjusted R benchmark for IRLS path | `tests/test_methodology_callaway.py` | #202 | Low | -| ~1583 `duplicate object description` Sphinx warnings — restructure `docs/api/*.rst` to avoid duplicate `:members:` + `autosummary` (count grew from ~376 as API surface expanded) | `docs/api/*.rst` | — | Low | | Doc-snippet smoke tests only cover `.rst` files; `.txt` AI guides outside CI validation | `tests/test_doc_snippets.py` | #239 | Low | | Add CI validation for `docs/doc-deps.yaml` integrity (stale paths, unmapped source files) | `docs/doc-deps.yaml` | #269 | Low | -| Sphinx autodoc fails to import 3 result members: `DiDResults.ci`, `MultiPeriodDiDResults.att`, `CallawaySantAnnaResults.aggregate` — investigate whether these are renamed/removed or just unresolvable from autosummary template | `docs/api/results.rst`, `docs/api/staggered.rst` | — | Medium | -| `EDiDBootstrapResults` cross-reference is ambiguous — class is exported from both `diff_diff` and `diff_diff.efficient_did_bootstrap`, producing 3 "more than one target found" warnings. Add `:noindex:` to one source or use full-path refs | `diff_diff/efficient_did_results.py`, `docs/api/efficient_did.rst` | — | Low | -| Tracked Sphinx autosummary stubs in `docs/api/_autosummary/*.rst` are stale — every sphinx build regenerates them with new attributes (e.g., `coef_var`, `survey_metadata`) that have been added to result classes. Either commit a refresh or move the directory to `.gitignore` and treat as build output. Also 6 untracked stubs exist for newer estimators (`WooldridgeDiD`, `SimulationMDEResults`, etc.) that have never been committed. | `docs/api/_autosummary/` | — | Low | | HonestDiD `test_m0_short_circuit` uses wall-clock `elapsed < 0.5s` as a proxy for "short-circuit path taken" instead of calling the full optimizer. Replace with a direct correctness signal (mock/spy the optimizer or check a state flag) so the test doesn't depend on CI timing. Not flaky today at 500ms, but load-bearing correctness on a timing proxy is brittle. | `tests/test_methodology_honest_did.py:246` | — | Low | | SyntheticDiD: rename internal `placebo_effects` variable to `variance_effects` (or `resampled_effects`). Misleading name across the placebo/bootstrap/jackknife dispatch paths — holds three different contents depending on variance method. Low-risk refactor; user-facing field rename should preserve `placebo_effects` as a deprecated alias for one release. | `synthetic_did.py`, `results.py` | follow-up | Medium | diff --git a/diff_diff/results.py b/diff_diff/results.py index 185feff4..cead3f52 100644 --- a/diff_diff/results.py +++ b/diff_diff/results.py @@ -1275,6 +1275,7 @@ def in_time_placebo( - ``pre_fit_rmse`` — RMSE on the fake pre-window - ``n_pre_fake`` — periods before the fake date - ``n_post_fake`` — periods from the fake date onward + NaN is emitted only for dimensional infeasibility. Frank-Wolfe does not expose a mid-solver non-convergence signal; inspect ``pre_fit_rmse`` for poor refit quality. diff --git a/diff_diff/triple_diff.py b/diff_diff/triple_diff.py index 958903c2..fc504507 100644 --- a/diff_diff/triple_diff.py +++ b/diff_diff/triple_diff.py @@ -355,11 +355,13 @@ class TripleDifference: Estimates the Average Treatment effect on the Treated (ATT) when treatment requires satisfying two criteria: belonging to a treated group AND being - in an eligible partition of the population. + in an eligible partition of the population. The DDD design was popularized + by Gruber (1994) [2]_. - This implementation follows Ortiz-Villavicencio & Sant'Anna (2025), which - shows that naive DDD implementations (difference of two DiDs, three-way - fixed effects) are invalid when covariates are needed for identification. + This implementation follows Ortiz-Villavicencio & Sant'Anna (2025) [1]_, + which shows that naive DDD implementations (difference of two DiDs, + three-way fixed effects) are invalid when covariates are needed for + identification. Parameters ---------- diff --git a/docs/_templates/autosummary/class.rst b/docs/_templates/autosummary/class.rst new file mode 100644 index 00000000..6866ebb2 --- /dev/null +++ b/docs/_templates/autosummary/class.rst @@ -0,0 +1,26 @@ +{{ fullname | escape | underline }} + +.. currentmodule:: {{ module }} + +.. autoclass:: {{ objname }} + :no-members: +{% block methods %} +{% if methods %} + .. rubric:: {{ _('Methods') }} + + .. autosummary:: +{% for item in methods %} + ~{{ name }}.{{ item }} +{%- endfor %} +{% endif %} +{% endblock %} +{% block attributes %} +{% if attributes %} + .. rubric:: {{ _('Attributes') }} + + .. autosummary:: +{% for item in attributes %} + ~{{ name }}.{{ item }} +{%- endfor %} +{% endif %} +{% endblock %} diff --git a/docs/_templates/autosummary/function.rst b/docs/_templates/autosummary/function.rst new file mode 100644 index 00000000..e88e9916 --- /dev/null +++ b/docs/_templates/autosummary/function.rst @@ -0,0 +1,6 @@ +{{ fullname | escape | underline}} + +.. currentmodule:: {{ module }} + +.. autofunction:: {{ objname }} + :no-index: diff --git a/docs/api/_autosummary/diff_diff.BaconDecomposition.rst b/docs/api/_autosummary/diff_diff.BaconDecomposition.rst index 6086f861..60729342 100644 --- a/docs/api/_autosummary/diff_diff.BaconDecomposition.rst +++ b/docs/api/_autosummary/diff_diff.BaconDecomposition.rst @@ -4,24 +4,20 @@ .. currentmodule:: diff_diff .. autoclass:: BaconDecomposition + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~BaconDecomposition.__init__ ~BaconDecomposition.fit ~BaconDecomposition.get_params ~BaconDecomposition.print_summary ~BaconDecomposition.set_params ~BaconDecomposition.summary - - - - - \ No newline at end of file + + + diff --git a/docs/api/_autosummary/diff_diff.BaconDecompositionResults.rst b/docs/api/_autosummary/diff_diff.BaconDecompositionResults.rst index a9efaff6..222a72a0 100644 --- a/docs/api/_autosummary/diff_diff.BaconDecompositionResults.rst +++ b/docs/api/_autosummary/diff_diff.BaconDecompositionResults.rst @@ -4,32 +4,30 @@ .. currentmodule:: diff_diff .. autoclass:: BaconDecompositionResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~BaconDecompositionResults.__init__ ~BaconDecompositionResults.effect_by_type ~BaconDecompositionResults.print_summary ~BaconDecompositionResults.summary ~BaconDecompositionResults.to_dataframe ~BaconDecompositionResults.weight_by_type - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~BaconDecompositionResults.decomposition_error ~BaconDecompositionResults.n_obs + ~BaconDecompositionResults.survey_metadata ~BaconDecompositionResults.twfe_estimate ~BaconDecompositionResults.comparisons ~BaconDecompositionResults.total_weight_treated_vs_never @@ -41,5 +39,4 @@ ~BaconDecompositionResults.n_timing_groups ~BaconDecompositionResults.n_never_treated ~BaconDecompositionResults.timing_groups - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.CSBootstrapResults.rst b/docs/api/_autosummary/diff_diff.CSBootstrapResults.rst index 88bdda66..e7a16b54 100644 --- a/docs/api/_autosummary/diff_diff.CSBootstrapResults.rst +++ b/docs/api/_autosummary/diff_diff.CSBootstrapResults.rst @@ -4,25 +4,22 @@ .. currentmodule:: diff_diff .. autoclass:: CSBootstrapResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~CSBootstrapResults.__init__ - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~CSBootstrapResults.bootstrap_distribution ~CSBootstrapResults.cband_crit_value ~CSBootstrapResults.event_study_cis @@ -40,5 +37,4 @@ ~CSBootstrapResults.group_time_ses ~CSBootstrapResults.group_time_cis ~CSBootstrapResults.group_time_p_values - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.CallawaySantAnna.rst b/docs/api/_autosummary/diff_diff.CallawaySantAnna.rst index 65aeee39..facf4993 100644 --- a/docs/api/_autosummary/diff_diff.CallawaySantAnna.rst +++ b/docs/api/_autosummary/diff_diff.CallawaySantAnna.rst @@ -4,35 +4,32 @@ .. currentmodule:: diff_diff .. autoclass:: CallawaySantAnna + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~CallawaySantAnna.__init__ + ~CallawaySantAnna.diagnose_propensity ~CallawaySantAnna.fit ~CallawaySantAnna.get_params ~CallawaySantAnna.print_summary ~CallawaySantAnna.set_params ~CallawaySantAnna.summary - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~CallawaySantAnna.n_bootstrap ~CallawaySantAnna.bootstrap_weights ~CallawaySantAnna.alpha ~CallawaySantAnna.seed ~CallawaySantAnna.anticipation ~CallawaySantAnna.base_period - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.CallawaySantAnnaResults.rst b/docs/api/_autosummary/diff_diff.CallawaySantAnnaResults.rst index dc2f10fe..e264159f 100644 --- a/docs/api/_autosummary/diff_diff.CallawaySantAnnaResults.rst +++ b/docs/api/_autosummary/diff_diff.CallawaySantAnnaResults.rst @@ -4,39 +4,51 @@ .. currentmodule:: diff_diff .. autoclass:: CallawaySantAnnaResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~CallawaySantAnnaResults.__init__ + ~CallawaySantAnnaResults.epv_summary ~CallawaySantAnnaResults.print_summary ~CallawaySantAnnaResults.summary ~CallawaySantAnnaResults.to_dataframe - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~CallawaySantAnnaResults.alpha + ~CallawaySantAnnaResults.anticipation + ~CallawaySantAnnaResults.att ~CallawaySantAnnaResults.base_period ~CallawaySantAnnaResults.bootstrap_results ~CallawaySantAnnaResults.cband_crit_value + ~CallawaySantAnnaResults.coef_var + ~CallawaySantAnnaResults.conf_int ~CallawaySantAnnaResults.control_group + ~CallawaySantAnnaResults.epv_diagnostics + ~CallawaySantAnnaResults.epv_threshold ~CallawaySantAnnaResults.event_study_effects + ~CallawaySantAnnaResults.event_study_vcov + ~CallawaySantAnnaResults.event_study_vcov_index ~CallawaySantAnnaResults.group_effects ~CallawaySantAnnaResults.influence_functions ~CallawaySantAnnaResults.is_significant + ~CallawaySantAnnaResults.p_value + ~CallawaySantAnnaResults.panel + ~CallawaySantAnnaResults.pscore_fallback ~CallawaySantAnnaResults.pscore_trim + ~CallawaySantAnnaResults.se ~CallawaySantAnnaResults.significance_stars + ~CallawaySantAnnaResults.survey_metadata + ~CallawaySantAnnaResults.t_stat ~CallawaySantAnnaResults.group_time_effects ~CallawaySantAnnaResults.overall_att ~CallawaySantAnnaResults.overall_se @@ -48,5 +60,4 @@ ~CallawaySantAnnaResults.n_obs ~CallawaySantAnnaResults.n_treated_units ~CallawaySantAnnaResults.n_control_units - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.ChaisemartinDHaultfoeuille.rst b/docs/api/_autosummary/diff_diff.ChaisemartinDHaultfoeuille.rst new file mode 100644 index 00000000..f2318b81 --- /dev/null +++ b/docs/api/_autosummary/diff_diff.ChaisemartinDHaultfoeuille.rst @@ -0,0 +1,30 @@ +diff\_diff.ChaisemartinDHaultfoeuille +===================================== + +.. currentmodule:: diff_diff + +.. autoclass:: ChaisemartinDHaultfoeuille + :no-members: + + + .. rubric:: Methods + + .. autosummary:: + + ~ChaisemartinDHaultfoeuille.__init__ + ~ChaisemartinDHaultfoeuille.fit + ~ChaisemartinDHaultfoeuille.get_params + ~ChaisemartinDHaultfoeuille.set_params + + + + + .. rubric:: Attributes + + .. autosummary:: + + ~ChaisemartinDHaultfoeuille.n_bootstrap + ~ChaisemartinDHaultfoeuille.bootstrap_weights + ~ChaisemartinDHaultfoeuille.alpha + ~ChaisemartinDHaultfoeuille.seed + diff --git a/docs/api/_autosummary/diff_diff.ChaisemartinDHaultfoeuilleResults.rst b/docs/api/_autosummary/diff_diff.ChaisemartinDHaultfoeuilleResults.rst new file mode 100644 index 00000000..ea711d8a --- /dev/null +++ b/docs/api/_autosummary/diff_diff.ChaisemartinDHaultfoeuilleResults.rst @@ -0,0 +1,94 @@ +diff\_diff.ChaisemartinDHaultfoeuilleResults +============================================ + +.. currentmodule:: diff_diff + +.. autoclass:: ChaisemartinDHaultfoeuilleResults + :no-members: + + + .. rubric:: Methods + + .. autosummary:: + + ~ChaisemartinDHaultfoeuilleResults.__init__ + ~ChaisemartinDHaultfoeuilleResults.print_summary + ~ChaisemartinDHaultfoeuilleResults.summary + ~ChaisemartinDHaultfoeuilleResults.to_dataframe + + + + + .. rubric:: Attributes + + .. autosummary:: + + ~ChaisemartinDHaultfoeuilleResults.L_max + ~ChaisemartinDHaultfoeuilleResults.alpha + ~ChaisemartinDHaultfoeuilleResults.att + ~ChaisemartinDHaultfoeuilleResults.bootstrap_results + ~ChaisemartinDHaultfoeuilleResults.coef_var + ~ChaisemartinDHaultfoeuilleResults.conf_int + ~ChaisemartinDHaultfoeuilleResults.cost_benefit_delta + ~ChaisemartinDHaultfoeuilleResults.covariate_residuals + ~ChaisemartinDHaultfoeuilleResults.design2_effects + ~ChaisemartinDHaultfoeuilleResults.event_study_effects + ~ChaisemartinDHaultfoeuilleResults.heterogeneity_effects + ~ChaisemartinDHaultfoeuilleResults.honest_did_results + ~ChaisemartinDHaultfoeuilleResults.is_significant + ~ChaisemartinDHaultfoeuilleResults.linear_trends_effects + ~ChaisemartinDHaultfoeuilleResults.normalized_effects + ~ChaisemartinDHaultfoeuilleResults.p_value + ~ChaisemartinDHaultfoeuilleResults.path_cumulated_event_study + ~ChaisemartinDHaultfoeuilleResults.path_effects + ~ChaisemartinDHaultfoeuilleResults.path_placebo_event_study + ~ChaisemartinDHaultfoeuilleResults.path_sup_t_bands + ~ChaisemartinDHaultfoeuilleResults.placebo_event_study + ~ChaisemartinDHaultfoeuilleResults.se + ~ChaisemartinDHaultfoeuilleResults.significance_stars + ~ChaisemartinDHaultfoeuilleResults.sup_t_bands + ~ChaisemartinDHaultfoeuilleResults.survey_metadata + ~ChaisemartinDHaultfoeuilleResults.t_stat + ~ChaisemartinDHaultfoeuilleResults.trends_linear + ~ChaisemartinDHaultfoeuilleResults.twfe_beta_fe + ~ChaisemartinDHaultfoeuilleResults.twfe_fraction_negative + ~ChaisemartinDHaultfoeuilleResults.twfe_sigma_fe + ~ChaisemartinDHaultfoeuilleResults.twfe_weights + ~ChaisemartinDHaultfoeuilleResults.overall_att + ~ChaisemartinDHaultfoeuilleResults.overall_se + ~ChaisemartinDHaultfoeuilleResults.overall_t_stat + ~ChaisemartinDHaultfoeuilleResults.overall_p_value + ~ChaisemartinDHaultfoeuilleResults.overall_conf_int + ~ChaisemartinDHaultfoeuilleResults.joiners_att + ~ChaisemartinDHaultfoeuilleResults.joiners_se + ~ChaisemartinDHaultfoeuilleResults.joiners_t_stat + ~ChaisemartinDHaultfoeuilleResults.joiners_p_value + ~ChaisemartinDHaultfoeuilleResults.joiners_conf_int + ~ChaisemartinDHaultfoeuilleResults.n_joiner_cells + ~ChaisemartinDHaultfoeuilleResults.n_joiner_obs + ~ChaisemartinDHaultfoeuilleResults.joiners_available + ~ChaisemartinDHaultfoeuilleResults.leavers_att + ~ChaisemartinDHaultfoeuilleResults.leavers_se + ~ChaisemartinDHaultfoeuilleResults.leavers_t_stat + ~ChaisemartinDHaultfoeuilleResults.leavers_p_value + ~ChaisemartinDHaultfoeuilleResults.leavers_conf_int + ~ChaisemartinDHaultfoeuilleResults.n_leaver_cells + ~ChaisemartinDHaultfoeuilleResults.n_leaver_obs + ~ChaisemartinDHaultfoeuilleResults.leavers_available + ~ChaisemartinDHaultfoeuilleResults.placebo_effect + ~ChaisemartinDHaultfoeuilleResults.placebo_se + ~ChaisemartinDHaultfoeuilleResults.placebo_t_stat + ~ChaisemartinDHaultfoeuilleResults.placebo_p_value + ~ChaisemartinDHaultfoeuilleResults.placebo_conf_int + ~ChaisemartinDHaultfoeuilleResults.placebo_available + ~ChaisemartinDHaultfoeuilleResults.per_period_effects + ~ChaisemartinDHaultfoeuilleResults.groups + ~ChaisemartinDHaultfoeuilleResults.time_periods + ~ChaisemartinDHaultfoeuilleResults.n_obs + ~ChaisemartinDHaultfoeuilleResults.n_treated_obs + ~ChaisemartinDHaultfoeuilleResults.n_switcher_cells + ~ChaisemartinDHaultfoeuilleResults.n_cohorts + ~ChaisemartinDHaultfoeuilleResults.n_groups_dropped_crossers + ~ChaisemartinDHaultfoeuilleResults.n_groups_dropped_singleton_baseline + ~ChaisemartinDHaultfoeuilleResults.n_groups_dropped_never_switching + diff --git a/docs/api/_autosummary/diff_diff.Comparison2x2.rst b/docs/api/_autosummary/diff_diff.Comparison2x2.rst index 718f5e87..092f621e 100644 --- a/docs/api/_autosummary/diff_diff.Comparison2x2.rst +++ b/docs/api/_autosummary/diff_diff.Comparison2x2.rst @@ -4,25 +4,22 @@ .. currentmodule:: diff_diff .. autoclass:: Comparison2x2 + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~Comparison2x2.__init__ - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~Comparison2x2.treated_group ~Comparison2x2.control_group ~Comparison2x2.comparison_type @@ -31,5 +28,4 @@ ~Comparison2x2.n_treated ~Comparison2x2.n_control ~Comparison2x2.time_window - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.ContinuousDiD.rst b/docs/api/_autosummary/diff_diff.ContinuousDiD.rst index 4dd604be..14764cb1 100644 --- a/docs/api/_autosummary/diff_diff.ContinuousDiD.rst +++ b/docs/api/_autosummary/diff_diff.ContinuousDiD.rst @@ -4,22 +4,18 @@ .. currentmodule:: diff_diff .. autoclass:: ContinuousDiD + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~ContinuousDiD.__init__ ~ContinuousDiD.fit ~ContinuousDiD.get_params ~ContinuousDiD.set_params - - - - - \ No newline at end of file + + + diff --git a/docs/api/_autosummary/diff_diff.ContinuousDiDResults.rst b/docs/api/_autosummary/diff_diff.ContinuousDiDResults.rst index ad1df6e7..282e9255 100644 --- a/docs/api/_autosummary/diff_diff.ContinuousDiDResults.rst +++ b/docs/api/_autosummary/diff_diff.ContinuousDiDResults.rst @@ -4,41 +4,49 @@ .. currentmodule:: diff_diff .. autoclass:: ContinuousDiDResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~ContinuousDiDResults.__init__ ~ContinuousDiDResults.print_summary ~ContinuousDiDResults.summary ~ContinuousDiDResults.to_dataframe - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~ContinuousDiDResults.alpha ~ContinuousDiDResults.anticipation + ~ContinuousDiDResults.att ~ContinuousDiDResults.base_period ~ContinuousDiDResults.bootstrap_weights + ~ContinuousDiDResults.coef_var + ~ContinuousDiDResults.conf_int ~ContinuousDiDResults.control_group ~ContinuousDiDResults.degree ~ContinuousDiDResults.event_study_effects ~ContinuousDiDResults.is_significant ~ContinuousDiDResults.n_bootstrap ~ContinuousDiDResults.num_knots + ~ContinuousDiDResults.overall_conf_int + ~ContinuousDiDResults.overall_p_value + ~ContinuousDiDResults.overall_se + ~ContinuousDiDResults.overall_t_stat + ~ContinuousDiDResults.p_value ~ContinuousDiDResults.rank_deficient_action + ~ContinuousDiDResults.se ~ContinuousDiDResults.seed ~ContinuousDiDResults.significance_stars + ~ContinuousDiDResults.survey_metadata + ~ContinuousDiDResults.t_stat ~ContinuousDiDResults.dose_response_att ~ContinuousDiDResults.dose_response_acrt ~ContinuousDiDResults.overall_att @@ -58,5 +66,4 @@ ~ContinuousDiDResults.n_obs ~ContinuousDiDResults.n_treated_units ~ContinuousDiDResults.n_control_units - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.DCDHBootstrapResults.rst b/docs/api/_autosummary/diff_diff.DCDHBootstrapResults.rst new file mode 100644 index 00000000..0090365d --- /dev/null +++ b/docs/api/_autosummary/diff_diff.DCDHBootstrapResults.rst @@ -0,0 +1,54 @@ +diff\_diff.DCDHBootstrapResults +=============================== + +.. currentmodule:: diff_diff + +.. autoclass:: DCDHBootstrapResults + :no-members: + + + .. rubric:: Methods + + .. autosummary:: + + ~DCDHBootstrapResults.__init__ + + + + + .. rubric:: Attributes + + .. autosummary:: + + ~DCDHBootstrapResults.bootstrap_distribution + ~DCDHBootstrapResults.cband_crit_value + ~DCDHBootstrapResults.event_study_cis + ~DCDHBootstrapResults.event_study_p_values + ~DCDHBootstrapResults.event_study_ses + ~DCDHBootstrapResults.joiners_ci + ~DCDHBootstrapResults.joiners_p_value + ~DCDHBootstrapResults.joiners_se + ~DCDHBootstrapResults.leavers_ci + ~DCDHBootstrapResults.leavers_p_value + ~DCDHBootstrapResults.leavers_se + ~DCDHBootstrapResults.path_cband_crit_values + ~DCDHBootstrapResults.path_cband_n_valid_horizons + ~DCDHBootstrapResults.path_cis + ~DCDHBootstrapResults.path_p_values + ~DCDHBootstrapResults.path_placebo_cis + ~DCDHBootstrapResults.path_placebo_p_values + ~DCDHBootstrapResults.path_placebo_ses + ~DCDHBootstrapResults.path_ses + ~DCDHBootstrapResults.placebo_ci + ~DCDHBootstrapResults.placebo_horizon_cis + ~DCDHBootstrapResults.placebo_horizon_p_values + ~DCDHBootstrapResults.placebo_horizon_ses + ~DCDHBootstrapResults.placebo_p_value + ~DCDHBootstrapResults.placebo_se + ~DCDHBootstrapResults.n_bootstrap + ~DCDHBootstrapResults.weight_type + ~DCDHBootstrapResults.alpha + ~DCDHBootstrapResults.overall_se + ~DCDHBootstrapResults.overall_ci + ~DCDHBootstrapResults.overall_p_value + diff --git a/docs/api/_autosummary/diff_diff.DeltaRM.rst b/docs/api/_autosummary/diff_diff.DeltaRM.rst index fb6504a7..c8f6bef2 100644 --- a/docs/api/_autosummary/diff_diff.DeltaRM.rst +++ b/docs/api/_autosummary/diff_diff.DeltaRM.rst @@ -4,25 +4,21 @@ .. currentmodule:: diff_diff .. autoclass:: DeltaRM + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~DeltaRM.__init__ - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~DeltaRM.Mbar - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.DeltaSD.rst b/docs/api/_autosummary/diff_diff.DeltaSD.rst index 2c28198b..0d581bd5 100644 --- a/docs/api/_autosummary/diff_diff.DeltaSD.rst +++ b/docs/api/_autosummary/diff_diff.DeltaSD.rst @@ -4,25 +4,21 @@ .. currentmodule:: diff_diff .. autoclass:: DeltaSD + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~DeltaSD.__init__ - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~DeltaSD.M - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.DeltaSDRM.rst b/docs/api/_autosummary/diff_diff.DeltaSDRM.rst index 69f2f39c..8ba5e182 100644 --- a/docs/api/_autosummary/diff_diff.DeltaSDRM.rst +++ b/docs/api/_autosummary/diff_diff.DeltaSDRM.rst @@ -4,26 +4,22 @@ .. currentmodule:: diff_diff .. autoclass:: DeltaSDRM + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~DeltaSDRM.__init__ - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~DeltaSDRM.M ~DeltaSDRM.Mbar - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.DiDResults.rst b/docs/api/_autosummary/diff_diff.DiDResults.rst index 34b12bdc..5178e915 100644 --- a/docs/api/_autosummary/diff_diff.DiDResults.rst +++ b/docs/api/_autosummary/diff_diff.DiDResults.rst @@ -4,31 +4,30 @@ .. currentmodule:: diff_diff .. autoclass:: DiDResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~DiDResults.__init__ ~DiDResults.print_summary ~DiDResults.summary ~DiDResults.to_dataframe ~DiDResults.to_dict - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~DiDResults.alpha ~DiDResults.bootstrap_distribution + ~DiDResults.cluster_name + ~DiDResults.coef_var ~DiDResults.coefficients ~DiDResults.fitted_values ~DiDResults.inference_method @@ -38,7 +37,9 @@ ~DiDResults.r_squared ~DiDResults.residuals ~DiDResults.significance_stars + ~DiDResults.survey_metadata ~DiDResults.vcov + ~DiDResults.vcov_type ~DiDResults.att ~DiDResults.se ~DiDResults.t_stat @@ -47,5 +48,4 @@ ~DiDResults.n_obs ~DiDResults.n_treated ~DiDResults.n_control - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.DifferenceInDifferences.rst b/docs/api/_autosummary/diff_diff.DifferenceInDifferences.rst index c0832387..ed617e61 100644 --- a/docs/api/_autosummary/diff_diff.DifferenceInDifferences.rst +++ b/docs/api/_autosummary/diff_diff.DifferenceInDifferences.rst @@ -4,15 +4,13 @@ .. currentmodule:: diff_diff .. autoclass:: DifferenceInDifferences + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~DifferenceInDifferences.__init__ ~DifferenceInDifferences.fit ~DifferenceInDifferences.get_params @@ -20,9 +18,7 @@ ~DifferenceInDifferences.print_summary ~DifferenceInDifferences.set_params ~DifferenceInDifferences.summary - - - - - \ No newline at end of file + + + diff --git a/docs/api/_autosummary/diff_diff.DoseResponseCurve.rst b/docs/api/_autosummary/diff_diff.DoseResponseCurve.rst index cbafdacc..65434f23 100644 --- a/docs/api/_autosummary/diff_diff.DoseResponseCurve.rst +++ b/docs/api/_autosummary/diff_diff.DoseResponseCurve.rst @@ -4,26 +4,24 @@ .. currentmodule:: diff_diff .. autoclass:: DoseResponseCurve + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~DoseResponseCurve.__init__ ~DoseResponseCurve.to_dataframe - - - - + + + .. rubric:: Attributes .. autosummary:: - + + ~DoseResponseCurve.df_survey ~DoseResponseCurve.n_bootstrap ~DoseResponseCurve.p_value ~DoseResponseCurve.dose_grid @@ -32,5 +30,4 @@ ~DoseResponseCurve.conf_int_lower ~DoseResponseCurve.conf_int_upper ~DoseResponseCurve.target - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.EDiDBootstrapResults.rst b/docs/api/_autosummary/diff_diff.EDiDBootstrapResults.rst index bbd47e37..52f6956b 100644 --- a/docs/api/_autosummary/diff_diff.EDiDBootstrapResults.rst +++ b/docs/api/_autosummary/diff_diff.EDiDBootstrapResults.rst @@ -4,25 +4,22 @@ .. currentmodule:: diff_diff .. autoclass:: EDiDBootstrapResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~EDiDBootstrapResults.__init__ - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~EDiDBootstrapResults.bootstrap_distribution ~EDiDBootstrapResults.event_study_cis ~EDiDBootstrapResults.event_study_p_values @@ -39,5 +36,4 @@ ~EDiDBootstrapResults.group_time_ses ~EDiDBootstrapResults.group_time_cis ~EDiDBootstrapResults.group_time_p_values - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.EfficientDiD.rst b/docs/api/_autosummary/diff_diff.EfficientDiD.rst index 6a53b576..6696b5c4 100644 --- a/docs/api/_autosummary/diff_diff.EfficientDiD.rst +++ b/docs/api/_autosummary/diff_diff.EfficientDiD.rst @@ -4,34 +4,31 @@ .. currentmodule:: diff_diff .. autoclass:: EfficientDiD + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~EfficientDiD.__init__ ~EfficientDiD.fit ~EfficientDiD.get_params + ~EfficientDiD.hausman_pretest ~EfficientDiD.print_summary ~EfficientDiD.set_params ~EfficientDiD.summary - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~EfficientDiD.n_bootstrap ~EfficientDiD.bootstrap_weights ~EfficientDiD.alpha ~EfficientDiD.seed ~EfficientDiD.anticipation - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.EfficientDiDResults.rst b/docs/api/_autosummary/diff_diff.EfficientDiDResults.rst index 58fa230f..d19233eb 100644 --- a/docs/api/_autosummary/diff_diff.EfficientDiDResults.rst +++ b/docs/api/_autosummary/diff_diff.EfficientDiDResults.rst @@ -4,42 +4,53 @@ .. currentmodule:: diff_diff .. autoclass:: EfficientDiDResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~EfficientDiDResults.__init__ ~EfficientDiDResults.print_summary ~EfficientDiDResults.summary ~EfficientDiDResults.to_dataframe - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~EfficientDiDResults.alpha ~EfficientDiDResults.anticipation + ~EfficientDiDResults.att ~EfficientDiDResults.bootstrap_results ~EfficientDiDResults.bootstrap_weights + ~EfficientDiDResults.cluster + ~EfficientDiDResults.coef_var + ~EfficientDiDResults.conf_int + ~EfficientDiDResults.control_group ~EfficientDiDResults.efficient_weights + ~EfficientDiDResults.estimation_path ~EfficientDiDResults.event_study_effects ~EfficientDiDResults.group_effects ~EfficientDiDResults.influence_functions ~EfficientDiDResults.is_significant + ~EfficientDiDResults.kernel_bandwidth ~EfficientDiDResults.n_bootstrap ~EfficientDiDResults.omega_condition_numbers + ~EfficientDiDResults.p_value ~EfficientDiDResults.pt_assumption + ~EfficientDiDResults.ratio_clip + ~EfficientDiDResults.se ~EfficientDiDResults.seed + ~EfficientDiDResults.sieve_criterion + ~EfficientDiDResults.sieve_k_max ~EfficientDiDResults.significance_stars + ~EfficientDiDResults.survey_metadata + ~EfficientDiDResults.t_stat ~EfficientDiDResults.group_time_effects ~EfficientDiDResults.overall_att ~EfficientDiDResults.overall_se @@ -51,5 +62,4 @@ ~EfficientDiDResults.n_obs ~EfficientDiDResults.n_treated_units ~EfficientDiDResults.n_control_units - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.GroupTimeEffect.rst b/docs/api/_autosummary/diff_diff.GroupTimeEffect.rst index 7258267d..3f374873 100644 --- a/docs/api/_autosummary/diff_diff.GroupTimeEffect.rst +++ b/docs/api/_autosummary/diff_diff.GroupTimeEffect.rst @@ -4,25 +4,22 @@ .. currentmodule:: diff_diff .. autoclass:: GroupTimeEffect + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~GroupTimeEffect.__init__ - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~GroupTimeEffect.is_significant ~GroupTimeEffect.significance_stars ~GroupTimeEffect.group @@ -34,5 +31,4 @@ ~GroupTimeEffect.conf_int ~GroupTimeEffect.n_treated ~GroupTimeEffect.n_control - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.HeterogeneousAdoptionDiD.rst b/docs/api/_autosummary/diff_diff.HeterogeneousAdoptionDiD.rst new file mode 100644 index 00000000..41b9190f --- /dev/null +++ b/docs/api/_autosummary/diff_diff.HeterogeneousAdoptionDiD.rst @@ -0,0 +1,21 @@ +diff\_diff.HeterogeneousAdoptionDiD +=================================== + +.. currentmodule:: diff_diff + +.. autoclass:: HeterogeneousAdoptionDiD + :no-members: + + + .. rubric:: Methods + + .. autosummary:: + + ~HeterogeneousAdoptionDiD.__init__ + ~HeterogeneousAdoptionDiD.fit + ~HeterogeneousAdoptionDiD.get_params + ~HeterogeneousAdoptionDiD.set_params + + + + diff --git a/docs/api/_autosummary/diff_diff.HeterogeneousAdoptionDiDEventStudyResults.rst b/docs/api/_autosummary/diff_diff.HeterogeneousAdoptionDiDEventStudyResults.rst new file mode 100644 index 00000000..09e0e2a9 --- /dev/null +++ b/docs/api/_autosummary/diff_diff.HeterogeneousAdoptionDiDEventStudyResults.rst @@ -0,0 +1,56 @@ +diff\_diff.HeterogeneousAdoptionDiDEventStudyResults +==================================================== + +.. currentmodule:: diff_diff + +.. autoclass:: HeterogeneousAdoptionDiDEventStudyResults + :no-members: + + + .. rubric:: Methods + + .. autosummary:: + + ~HeterogeneousAdoptionDiDEventStudyResults.__init__ + ~HeterogeneousAdoptionDiDEventStudyResults.print_summary + ~HeterogeneousAdoptionDiDEventStudyResults.summary + ~HeterogeneousAdoptionDiDEventStudyResults.to_dataframe + ~HeterogeneousAdoptionDiDEventStudyResults.to_dict + + + + + .. rubric:: Attributes + + .. autosummary:: + + ~HeterogeneousAdoptionDiDEventStudyResults.cband_crit_value + ~HeterogeneousAdoptionDiDEventStudyResults.cband_high + ~HeterogeneousAdoptionDiDEventStudyResults.cband_low + ~HeterogeneousAdoptionDiDEventStudyResults.cband_method + ~HeterogeneousAdoptionDiDEventStudyResults.cband_n_bootstrap + ~HeterogeneousAdoptionDiDEventStudyResults.effective_dose_mean + ~HeterogeneousAdoptionDiDEventStudyResults.variance_formula + ~HeterogeneousAdoptionDiDEventStudyResults.event_times + ~HeterogeneousAdoptionDiDEventStudyResults.att + ~HeterogeneousAdoptionDiDEventStudyResults.se + ~HeterogeneousAdoptionDiDEventStudyResults.t_stat + ~HeterogeneousAdoptionDiDEventStudyResults.p_value + ~HeterogeneousAdoptionDiDEventStudyResults.conf_int_low + ~HeterogeneousAdoptionDiDEventStudyResults.conf_int_high + ~HeterogeneousAdoptionDiDEventStudyResults.n_obs_per_horizon + ~HeterogeneousAdoptionDiDEventStudyResults.alpha + ~HeterogeneousAdoptionDiDEventStudyResults.design + ~HeterogeneousAdoptionDiDEventStudyResults.target_parameter + ~HeterogeneousAdoptionDiDEventStudyResults.d_lower + ~HeterogeneousAdoptionDiDEventStudyResults.dose_mean + ~HeterogeneousAdoptionDiDEventStudyResults.F + ~HeterogeneousAdoptionDiDEventStudyResults.n_units + ~HeterogeneousAdoptionDiDEventStudyResults.inference_method + ~HeterogeneousAdoptionDiDEventStudyResults.vcov_type + ~HeterogeneousAdoptionDiDEventStudyResults.cluster_name + ~HeterogeneousAdoptionDiDEventStudyResults.survey_metadata + ~HeterogeneousAdoptionDiDEventStudyResults.bandwidth_diagnostics + ~HeterogeneousAdoptionDiDEventStudyResults.bias_corrected_fit + ~HeterogeneousAdoptionDiDEventStudyResults.filter_info + diff --git a/docs/api/_autosummary/diff_diff.HeterogeneousAdoptionDiDResults.rst b/docs/api/_autosummary/diff_diff.HeterogeneousAdoptionDiDResults.rst new file mode 100644 index 00000000..f3907b05 --- /dev/null +++ b/docs/api/_autosummary/diff_diff.HeterogeneousAdoptionDiDResults.rst @@ -0,0 +1,50 @@ +diff\_diff.HeterogeneousAdoptionDiDResults +========================================== + +.. currentmodule:: diff_diff + +.. autoclass:: HeterogeneousAdoptionDiDResults + :no-members: + + + .. rubric:: Methods + + .. autosummary:: + + ~HeterogeneousAdoptionDiDResults.__init__ + ~HeterogeneousAdoptionDiDResults.print_summary + ~HeterogeneousAdoptionDiDResults.summary + ~HeterogeneousAdoptionDiDResults.to_dataframe + ~HeterogeneousAdoptionDiDResults.to_dict + + + + + .. rubric:: Attributes + + .. autosummary:: + + ~HeterogeneousAdoptionDiDResults.effective_dose_mean + ~HeterogeneousAdoptionDiDResults.variance_formula + ~HeterogeneousAdoptionDiDResults.att + ~HeterogeneousAdoptionDiDResults.se + ~HeterogeneousAdoptionDiDResults.t_stat + ~HeterogeneousAdoptionDiDResults.p_value + ~HeterogeneousAdoptionDiDResults.conf_int + ~HeterogeneousAdoptionDiDResults.alpha + ~HeterogeneousAdoptionDiDResults.design + ~HeterogeneousAdoptionDiDResults.target_parameter + ~HeterogeneousAdoptionDiDResults.d_lower + ~HeterogeneousAdoptionDiDResults.dose_mean + ~HeterogeneousAdoptionDiDResults.n_obs + ~HeterogeneousAdoptionDiDResults.n_treated + ~HeterogeneousAdoptionDiDResults.n_control + ~HeterogeneousAdoptionDiDResults.n_mass_point + ~HeterogeneousAdoptionDiDResults.n_above_d_lower + ~HeterogeneousAdoptionDiDResults.inference_method + ~HeterogeneousAdoptionDiDResults.vcov_type + ~HeterogeneousAdoptionDiDResults.cluster_name + ~HeterogeneousAdoptionDiDResults.survey_metadata + ~HeterogeneousAdoptionDiDResults.bandwidth_diagnostics + ~HeterogeneousAdoptionDiDResults.bias_corrected_fit + diff --git a/docs/api/_autosummary/diff_diff.HonestDiD.rst b/docs/api/_autosummary/diff_diff.HonestDiD.rst index b83cff50..8e09e39c 100644 --- a/docs/api/_autosummary/diff_diff.HonestDiD.rst +++ b/docs/api/_autosummary/diff_diff.HonestDiD.rst @@ -4,24 +4,20 @@ .. currentmodule:: diff_diff .. autoclass:: HonestDiD + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~HonestDiD.__init__ ~HonestDiD.breakdown_value ~HonestDiD.fit ~HonestDiD.get_params ~HonestDiD.sensitivity_analysis ~HonestDiD.set_params - - - - - \ No newline at end of file + + + diff --git a/docs/api/_autosummary/diff_diff.HonestDiDResults.rst b/docs/api/_autosummary/diff_diff.HonestDiDResults.rst index 99a1b729..22ce46e9 100644 --- a/docs/api/_autosummary/diff_diff.HonestDiDResults.rst +++ b/docs/api/_autosummary/diff_diff.HonestDiDResults.rst @@ -4,37 +4,39 @@ .. currentmodule:: diff_diff .. autoclass:: HonestDiDResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~HonestDiDResults.__init__ ~HonestDiDResults.print_summary ~HonestDiDResults.summary ~HonestDiDResults.to_dataframe ~HonestDiDResults.to_dict - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~HonestDiDResults.alpha ~HonestDiDResults.ci_method ~HonestDiDResults.ci_width + ~HonestDiDResults.df_survey ~HonestDiDResults.event_study_bounds ~HonestDiDResults.identified_set_width ~HonestDiDResults.is_significant ~HonestDiDResults.original_results + ~HonestDiDResults.post_periods_used + ~HonestDiDResults.pre_periods_used ~HonestDiDResults.significance_stars + ~HonestDiDResults.survey_metadata + ~HonestDiDResults.target_label ~HonestDiDResults.lb ~HonestDiDResults.ub ~HonestDiDResults.ci_lb @@ -43,5 +45,4 @@ ~HonestDiDResults.method ~HonestDiDResults.original_estimate ~HonestDiDResults.original_se - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.ImputationBootstrapResults.rst b/docs/api/_autosummary/diff_diff.ImputationBootstrapResults.rst index 62d6e57e..ca66a034 100644 --- a/docs/api/_autosummary/diff_diff.ImputationBootstrapResults.rst +++ b/docs/api/_autosummary/diff_diff.ImputationBootstrapResults.rst @@ -4,25 +4,22 @@ .. currentmodule:: diff_diff .. autoclass:: ImputationBootstrapResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~ImputationBootstrapResults.__init__ - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~ImputationBootstrapResults.bootstrap_distribution ~ImputationBootstrapResults.event_study_cis ~ImputationBootstrapResults.event_study_p_values @@ -36,5 +33,4 @@ ~ImputationBootstrapResults.overall_att_se ~ImputationBootstrapResults.overall_att_ci ~ImputationBootstrapResults.overall_att_p_value - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.ImputationDiD.rst b/docs/api/_autosummary/diff_diff.ImputationDiD.rst index 21995ef3..6794ab8f 100644 --- a/docs/api/_autosummary/diff_diff.ImputationDiD.rst +++ b/docs/api/_autosummary/diff_diff.ImputationDiD.rst @@ -4,24 +4,31 @@ .. currentmodule:: diff_diff .. autoclass:: ImputationDiD + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~ImputationDiD.__init__ ~ImputationDiD.fit ~ImputationDiD.get_params ~ImputationDiD.print_summary ~ImputationDiD.set_params ~ImputationDiD.summary - - - - - \ No newline at end of file + + + + .. rubric:: Attributes + + .. autosummary:: + + ~ImputationDiD.n_bootstrap + ~ImputationDiD.bootstrap_weights + ~ImputationDiD.alpha + ~ImputationDiD.seed + ~ImputationDiD.anticipation + ~ImputationDiD.horizon_max + diff --git a/docs/api/_autosummary/diff_diff.ImputationDiDResults.rst b/docs/api/_autosummary/diff_diff.ImputationDiDResults.rst index 5295eff3..367e35aa 100644 --- a/docs/api/_autosummary/diff_diff.ImputationDiDResults.rst +++ b/docs/api/_autosummary/diff_diff.ImputationDiDResults.rst @@ -4,34 +4,39 @@ .. currentmodule:: diff_diff .. autoclass:: ImputationDiDResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~ImputationDiDResults.__init__ ~ImputationDiDResults.pretrend_test ~ImputationDiDResults.print_summary ~ImputationDiDResults.summary ~ImputationDiDResults.to_dataframe - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~ImputationDiDResults.alpha + ~ImputationDiDResults.anticipation + ~ImputationDiDResults.att ~ImputationDiDResults.bootstrap_results + ~ImputationDiDResults.coef_var + ~ImputationDiDResults.conf_int ~ImputationDiDResults.is_significant + ~ImputationDiDResults.p_value ~ImputationDiDResults.pretrend_results + ~ImputationDiDResults.se ~ImputationDiDResults.significance_stars + ~ImputationDiDResults.survey_metadata + ~ImputationDiDResults.t_stat ~ImputationDiDResults.treatment_effects ~ImputationDiDResults.overall_att ~ImputationDiDResults.overall_se @@ -47,5 +52,4 @@ ~ImputationDiDResults.n_untreated_obs ~ImputationDiDResults.n_treated_units ~ImputationDiDResults.n_control_units - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.MultiPeriodDiD.rst b/docs/api/_autosummary/diff_diff.MultiPeriodDiD.rst index 8cdb2b49..f0c3e56c 100644 --- a/docs/api/_autosummary/diff_diff.MultiPeriodDiD.rst +++ b/docs/api/_autosummary/diff_diff.MultiPeriodDiD.rst @@ -4,15 +4,13 @@ .. currentmodule:: diff_diff .. autoclass:: MultiPeriodDiD + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~MultiPeriodDiD.__init__ ~MultiPeriodDiD.fit ~MultiPeriodDiD.get_params @@ -20,9 +18,7 @@ ~MultiPeriodDiD.print_summary ~MultiPeriodDiD.set_params ~MultiPeriodDiD.summary - - - - - \ No newline at end of file + + + diff --git a/docs/api/_autosummary/diff_diff.MultiPeriodDiDResults.rst b/docs/api/_autosummary/diff_diff.MultiPeriodDiDResults.rst index fee778ac..b364264f 100644 --- a/docs/api/_autosummary/diff_diff.MultiPeriodDiDResults.rst +++ b/docs/api/_autosummary/diff_diff.MultiPeriodDiDResults.rst @@ -4,42 +4,51 @@ .. currentmodule:: diff_diff .. autoclass:: MultiPeriodDiDResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~MultiPeriodDiDResults.__init__ ~MultiPeriodDiDResults.get_effect ~MultiPeriodDiDResults.print_summary ~MultiPeriodDiDResults.summary ~MultiPeriodDiDResults.to_dataframe ~MultiPeriodDiDResults.to_dict - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~MultiPeriodDiDResults.alpha + ~MultiPeriodDiDResults.att + ~MultiPeriodDiDResults.cluster_name + ~MultiPeriodDiDResults.coef_var ~MultiPeriodDiDResults.coefficients + ~MultiPeriodDiDResults.conf_int ~MultiPeriodDiDResults.fitted_values + ~MultiPeriodDiDResults.inference_method ~MultiPeriodDiDResults.interaction_indices ~MultiPeriodDiDResults.is_significant + ~MultiPeriodDiDResults.n_bootstrap + ~MultiPeriodDiDResults.n_clusters + ~MultiPeriodDiDResults.p_value ~MultiPeriodDiDResults.post_period_effects ~MultiPeriodDiDResults.pre_period_effects ~MultiPeriodDiDResults.r_squared ~MultiPeriodDiDResults.reference_period ~MultiPeriodDiDResults.residuals + ~MultiPeriodDiDResults.se ~MultiPeriodDiDResults.significance_stars + ~MultiPeriodDiDResults.survey_metadata + ~MultiPeriodDiDResults.t_stat ~MultiPeriodDiDResults.vcov + ~MultiPeriodDiDResults.vcov_type ~MultiPeriodDiDResults.period_effects ~MultiPeriodDiDResults.avg_att ~MultiPeriodDiDResults.avg_se @@ -51,5 +60,4 @@ ~MultiPeriodDiDResults.n_control ~MultiPeriodDiDResults.pre_periods ~MultiPeriodDiDResults.post_periods - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.PeriodEffect.rst b/docs/api/_autosummary/diff_diff.PeriodEffect.rst index c92e2fc3..303501b6 100644 --- a/docs/api/_autosummary/diff_diff.PeriodEffect.rst +++ b/docs/api/_autosummary/diff_diff.PeriodEffect.rst @@ -4,25 +4,22 @@ .. currentmodule:: diff_diff .. autoclass:: PeriodEffect + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~PeriodEffect.__init__ - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~PeriodEffect.is_significant ~PeriodEffect.significance_stars ~PeriodEffect.period @@ -31,5 +28,4 @@ ~PeriodEffect.t_stat ~PeriodEffect.p_value ~PeriodEffect.conf_int - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.PlaceboTestResults.rst b/docs/api/_autosummary/diff_diff.PlaceboTestResults.rst index 99bb7f0b..54aaa8f4 100644 --- a/docs/api/_autosummary/diff_diff.PlaceboTestResults.rst +++ b/docs/api/_autosummary/diff_diff.PlaceboTestResults.rst @@ -4,29 +4,26 @@ .. currentmodule:: diff_diff .. autoclass:: PlaceboTestResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~PlaceboTestResults.__init__ ~PlaceboTestResults.print_summary ~PlaceboTestResults.summary ~PlaceboTestResults.to_dataframe ~PlaceboTestResults.to_dict - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~PlaceboTestResults.alpha ~PlaceboTestResults.fake_group ~PlaceboTestResults.fake_period @@ -44,5 +41,4 @@ ~PlaceboTestResults.conf_int ~PlaceboTestResults.n_obs ~PlaceboTestResults.is_significant - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.PowerAnalysis.rst b/docs/api/_autosummary/diff_diff.PowerAnalysis.rst index ee97ad01..a9d4b7c6 100644 --- a/docs/api/_autosummary/diff_diff.PowerAnalysis.rst +++ b/docs/api/_autosummary/diff_diff.PowerAnalysis.rst @@ -4,24 +4,20 @@ .. currentmodule:: diff_diff .. autoclass:: PowerAnalysis + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~PowerAnalysis.__init__ ~PowerAnalysis.mde ~PowerAnalysis.power ~PowerAnalysis.power_curve ~PowerAnalysis.sample_size ~PowerAnalysis.sample_size_curve - - - - - \ No newline at end of file + + + diff --git a/docs/api/_autosummary/diff_diff.PowerResults.rst b/docs/api/_autosummary/diff_diff.PowerResults.rst index 46f7948e..59d107c3 100644 --- a/docs/api/_autosummary/diff_diff.PowerResults.rst +++ b/docs/api/_autosummary/diff_diff.PowerResults.rst @@ -4,29 +4,27 @@ .. currentmodule:: diff_diff .. autoclass:: PowerResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~PowerResults.__init__ ~PowerResults.print_summary ~PowerResults.summary ~PowerResults.to_dataframe ~PowerResults.to_dict - - - - + + + .. rubric:: Attributes .. autosummary:: - + + ~PowerResults.deff ~PowerResults.design ~PowerResults.rho ~PowerResults.power @@ -40,5 +38,4 @@ ~PowerResults.n_pre ~PowerResults.n_post ~PowerResults.sigma - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.PreTrendsPower.rst b/docs/api/_autosummary/diff_diff.PreTrendsPower.rst index c685085f..b5085f8e 100644 --- a/docs/api/_autosummary/diff_diff.PreTrendsPower.rst +++ b/docs/api/_autosummary/diff_diff.PreTrendsPower.rst @@ -4,15 +4,13 @@ .. currentmodule:: diff_diff .. autoclass:: PreTrendsPower + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~PreTrendsPower.__init__ ~PreTrendsPower.fit ~PreTrendsPower.get_params @@ -20,9 +18,7 @@ ~PreTrendsPower.power_curve ~PreTrendsPower.sensitivity_to_honest_did ~PreTrendsPower.set_params - - - - - \ No newline at end of file + + + diff --git a/docs/api/_autosummary/diff_diff.PreTrendsPowerCurve.rst b/docs/api/_autosummary/diff_diff.PreTrendsPowerCurve.rst index 70caeb77..64584465 100644 --- a/docs/api/_autosummary/diff_diff.PreTrendsPowerCurve.rst +++ b/docs/api/_autosummary/diff_diff.PreTrendsPowerCurve.rst @@ -4,32 +4,28 @@ .. currentmodule:: diff_diff .. autoclass:: PreTrendsPowerCurve + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~PreTrendsPowerCurve.__init__ ~PreTrendsPowerCurve.plot ~PreTrendsPowerCurve.to_dataframe - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~PreTrendsPowerCurve.M_values ~PreTrendsPowerCurve.powers ~PreTrendsPowerCurve.mdv ~PreTrendsPowerCurve.alpha ~PreTrendsPowerCurve.target_power ~PreTrendsPowerCurve.violation_type - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.PreTrendsPowerResults.rst b/docs/api/_autosummary/diff_diff.PreTrendsPowerResults.rst index da320524..cfbbe639 100644 --- a/docs/api/_autosummary/diff_diff.PreTrendsPowerResults.rst +++ b/docs/api/_autosummary/diff_diff.PreTrendsPowerResults.rst @@ -4,30 +4,27 @@ .. currentmodule:: diff_diff .. autoclass:: PreTrendsPowerResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~PreTrendsPowerResults.__init__ ~PreTrendsPowerResults.power_at ~PreTrendsPowerResults.print_summary ~PreTrendsPowerResults.summary ~PreTrendsPowerResults.to_dataframe ~PreTrendsPowerResults.to_dict - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~PreTrendsPowerResults.is_informative ~PreTrendsPowerResults.original_results ~PreTrendsPowerResults.power_adequate @@ -44,5 +41,4 @@ ~PreTrendsPowerResults.pre_period_effects ~PreTrendsPowerResults.pre_period_ses ~PreTrendsPowerResults.vcov - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.SABootstrapResults.rst b/docs/api/_autosummary/diff_diff.SABootstrapResults.rst index a39d3b39..15003f14 100644 --- a/docs/api/_autosummary/diff_diff.SABootstrapResults.rst +++ b/docs/api/_autosummary/diff_diff.SABootstrapResults.rst @@ -4,25 +4,22 @@ .. currentmodule:: diff_diff .. autoclass:: SABootstrapResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~SABootstrapResults.__init__ - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~SABootstrapResults.bootstrap_distribution ~SABootstrapResults.n_bootstrap ~SABootstrapResults.weight_type @@ -33,5 +30,4 @@ ~SABootstrapResults.event_study_ses ~SABootstrapResults.event_study_cis ~SABootstrapResults.event_study_p_values - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.SensitivityResults.rst b/docs/api/_autosummary/diff_diff.SensitivityResults.rst index 4c30df18..f6b2dd1f 100644 --- a/docs/api/_autosummary/diff_diff.SensitivityResults.rst +++ b/docs/api/_autosummary/diff_diff.SensitivityResults.rst @@ -4,29 +4,26 @@ .. currentmodule:: diff_diff .. autoclass:: SensitivityResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~SensitivityResults.__init__ ~SensitivityResults.plot ~SensitivityResults.print_summary ~SensitivityResults.summary ~SensitivityResults.to_dataframe - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~SensitivityResults.alpha ~SensitivityResults.has_breakdown ~SensitivityResults.M_values @@ -36,5 +33,4 @@ ~SensitivityResults.method ~SensitivityResults.original_estimate ~SensitivityResults.original_se - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.SimulationMDEResults.rst b/docs/api/_autosummary/diff_diff.SimulationMDEResults.rst new file mode 100644 index 00000000..52eab21a --- /dev/null +++ b/docs/api/_autosummary/diff_diff.SimulationMDEResults.rst @@ -0,0 +1,37 @@ +diff\_diff.SimulationMDEResults +=============================== + +.. currentmodule:: diff_diff + +.. autoclass:: SimulationMDEResults + :no-members: + + + .. rubric:: Methods + + .. autosummary:: + + ~SimulationMDEResults.__init__ + ~SimulationMDEResults.summary + ~SimulationMDEResults.to_dataframe + ~SimulationMDEResults.to_dict + + + + + .. rubric:: Attributes + + .. autosummary:: + + ~SimulationMDEResults.effective_n_units + ~SimulationMDEResults.survey_config + ~SimulationMDEResults.mde + ~SimulationMDEResults.power_at_mde + ~SimulationMDEResults.target_power + ~SimulationMDEResults.alpha + ~SimulationMDEResults.n_units + ~SimulationMDEResults.n_simulations_per_step + ~SimulationMDEResults.n_steps + ~SimulationMDEResults.search_path + ~SimulationMDEResults.estimator_name + diff --git a/docs/api/_autosummary/diff_diff.SimulationPowerResults.rst b/docs/api/_autosummary/diff_diff.SimulationPowerResults.rst index 0a4f46e1..6eff7687 100644 --- a/docs/api/_autosummary/diff_diff.SimulationPowerResults.rst +++ b/docs/api/_autosummary/diff_diff.SimulationPowerResults.rst @@ -4,31 +4,33 @@ .. currentmodule:: diff_diff .. autoclass:: SimulationPowerResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~SimulationPowerResults.__init__ ~SimulationPowerResults.power_curve_df ~SimulationPowerResults.print_summary ~SimulationPowerResults.summary ~SimulationPowerResults.to_dataframe ~SimulationPowerResults.to_dict - - - - + + + .. rubric:: Attributes .. autosummary:: - + + ~SimulationPowerResults.effective_n_units + ~SimulationPowerResults.mean_deff + ~SimulationPowerResults.mean_icc_realized + ~SimulationPowerResults.n_simulation_failures ~SimulationPowerResults.simulation_results + ~SimulationPowerResults.survey_config ~SimulationPowerResults.power ~SimulationPowerResults.power_se ~SimulationPowerResults.power_ci @@ -45,5 +47,4 @@ ~SimulationPowerResults.estimator_name ~SimulationPowerResults.bias ~SimulationPowerResults.rmse - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.SimulationSampleSizeResults.rst b/docs/api/_autosummary/diff_diff.SimulationSampleSizeResults.rst new file mode 100644 index 00000000..3bd374fe --- /dev/null +++ b/docs/api/_autosummary/diff_diff.SimulationSampleSizeResults.rst @@ -0,0 +1,37 @@ +diff\_diff.SimulationSampleSizeResults +====================================== + +.. currentmodule:: diff_diff + +.. autoclass:: SimulationSampleSizeResults + :no-members: + + + .. rubric:: Methods + + .. autosummary:: + + ~SimulationSampleSizeResults.__init__ + ~SimulationSampleSizeResults.summary + ~SimulationSampleSizeResults.to_dataframe + ~SimulationSampleSizeResults.to_dict + + + + + .. rubric:: Attributes + + .. autosummary:: + + ~SimulationSampleSizeResults.effective_n_units + ~SimulationSampleSizeResults.survey_config + ~SimulationSampleSizeResults.required_n + ~SimulationSampleSizeResults.power_at_n + ~SimulationSampleSizeResults.target_power + ~SimulationSampleSizeResults.alpha + ~SimulationSampleSizeResults.effect_size + ~SimulationSampleSizeResults.n_simulations_per_step + ~SimulationSampleSizeResults.n_steps + ~SimulationSampleSizeResults.search_path + ~SimulationSampleSizeResults.estimator_name + diff --git a/docs/api/_autosummary/diff_diff.StackedDiD.rst b/docs/api/_autosummary/diff_diff.StackedDiD.rst index 50546d33..681a8bb3 100644 --- a/docs/api/_autosummary/diff_diff.StackedDiD.rst +++ b/docs/api/_autosummary/diff_diff.StackedDiD.rst @@ -4,24 +4,20 @@ .. currentmodule:: diff_diff .. autoclass:: StackedDiD + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~StackedDiD.__init__ ~StackedDiD.fit ~StackedDiD.get_params ~StackedDiD.print_summary ~StackedDiD.set_params ~StackedDiD.summary - - - - - \ No newline at end of file + + + diff --git a/docs/api/_autosummary/diff_diff.StackedDiDResults.rst b/docs/api/_autosummary/diff_diff.StackedDiDResults.rst index b9586304..73c3b0eb 100644 --- a/docs/api/_autosummary/diff_diff.StackedDiDResults.rst +++ b/docs/api/_autosummary/diff_diff.StackedDiDResults.rst @@ -4,30 +4,31 @@ .. currentmodule:: diff_diff .. autoclass:: StackedDiDResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~StackedDiDResults.__init__ ~StackedDiDResults.print_summary ~StackedDiDResults.summary ~StackedDiDResults.to_dataframe - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~StackedDiDResults.alpha + ~StackedDiDResults.anticipation + ~StackedDiDResults.att ~StackedDiDResults.clean_control + ~StackedDiDResults.coef_var + ~StackedDiDResults.conf_int ~StackedDiDResults.is_significant ~StackedDiDResults.kappa_post ~StackedDiDResults.kappa_pre @@ -36,7 +37,11 @@ ~StackedDiDResults.n_stacked_obs ~StackedDiDResults.n_sub_experiments ~StackedDiDResults.n_treated_units + ~StackedDiDResults.p_value + ~StackedDiDResults.se ~StackedDiDResults.significance_stars + ~StackedDiDResults.survey_metadata + ~StackedDiDResults.t_stat ~StackedDiDResults.weighting ~StackedDiDResults.overall_att ~StackedDiDResults.overall_se @@ -49,5 +54,4 @@ ~StackedDiDResults.groups ~StackedDiDResults.trimmed_groups ~StackedDiDResults.time_periods - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.SunAbraham.rst b/docs/api/_autosummary/diff_diff.SunAbraham.rst index eadb3608..a6aacc72 100644 --- a/docs/api/_autosummary/diff_diff.SunAbraham.rst +++ b/docs/api/_autosummary/diff_diff.SunAbraham.rst @@ -4,24 +4,20 @@ .. currentmodule:: diff_diff .. autoclass:: SunAbraham + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~SunAbraham.__init__ ~SunAbraham.fit ~SunAbraham.get_params ~SunAbraham.print_summary ~SunAbraham.set_params ~SunAbraham.summary - - - - - \ No newline at end of file + + + diff --git a/docs/api/_autosummary/diff_diff.SunAbrahamResults.rst b/docs/api/_autosummary/diff_diff.SunAbrahamResults.rst index fb259973..99be9bea 100644 --- a/docs/api/_autosummary/diff_diff.SunAbrahamResults.rst +++ b/docs/api/_autosummary/diff_diff.SunAbrahamResults.rst @@ -4,34 +4,39 @@ .. currentmodule:: diff_diff .. autoclass:: SunAbrahamResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~SunAbrahamResults.__init__ ~SunAbrahamResults.print_summary ~SunAbrahamResults.summary ~SunAbrahamResults.to_dataframe - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~SunAbrahamResults.alpha + ~SunAbrahamResults.anticipation + ~SunAbrahamResults.att ~SunAbrahamResults.bootstrap_results + ~SunAbrahamResults.coef_var ~SunAbrahamResults.cohort_effects + ~SunAbrahamResults.conf_int ~SunAbrahamResults.control_group ~SunAbrahamResults.is_significant + ~SunAbrahamResults.p_value + ~SunAbrahamResults.se ~SunAbrahamResults.significance_stars + ~SunAbrahamResults.survey_metadata + ~SunAbrahamResults.t_stat ~SunAbrahamResults.event_study_effects ~SunAbrahamResults.overall_att ~SunAbrahamResults.overall_se @@ -44,5 +49,4 @@ ~SunAbrahamResults.n_obs ~SunAbrahamResults.n_treated_units ~SunAbrahamResults.n_control_units - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.SyntheticDiD.rst b/docs/api/_autosummary/diff_diff.SyntheticDiD.rst index 4e03c271..2827a478 100644 --- a/docs/api/_autosummary/diff_diff.SyntheticDiD.rst +++ b/docs/api/_autosummary/diff_diff.SyntheticDiD.rst @@ -4,15 +4,13 @@ .. currentmodule:: diff_diff .. autoclass:: SyntheticDiD + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~SyntheticDiD.__init__ ~SyntheticDiD.fit ~SyntheticDiD.get_params @@ -20,9 +18,7 @@ ~SyntheticDiD.print_summary ~SyntheticDiD.set_params ~SyntheticDiD.summary - - - - - \ No newline at end of file + + + diff --git a/docs/api/_autosummary/diff_diff.SyntheticDiDResults.rst b/docs/api/_autosummary/diff_diff.SyntheticDiDResults.rst index 1b996bdd..57a1c2a5 100644 --- a/docs/api/_autosummary/diff_diff.SyntheticDiDResults.rst +++ b/docs/api/_autosummary/diff_diff.SyntheticDiDResults.rst @@ -4,38 +4,46 @@ .. currentmodule:: diff_diff .. autoclass:: SyntheticDiDResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~SyntheticDiDResults.__init__ + ~SyntheticDiDResults.get_loo_effects_df ~SyntheticDiDResults.get_time_weights_df ~SyntheticDiDResults.get_unit_weights_df + ~SyntheticDiDResults.get_weight_concentration + ~SyntheticDiDResults.in_time_placebo ~SyntheticDiDResults.print_summary + ~SyntheticDiDResults.sensitivity_to_zeta_omega ~SyntheticDiDResults.summary ~SyntheticDiDResults.to_dataframe ~SyntheticDiDResults.to_dict - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~SyntheticDiDResults.alpha + ~SyntheticDiDResults.coef_var ~SyntheticDiDResults.is_significant ~SyntheticDiDResults.n_bootstrap ~SyntheticDiDResults.noise_level ~SyntheticDiDResults.placebo_effects ~SyntheticDiDResults.pre_treatment_fit ~SyntheticDiDResults.significance_stars + ~SyntheticDiDResults.survey_metadata + ~SyntheticDiDResults.synthetic_post_trajectory + ~SyntheticDiDResults.synthetic_pre_trajectory + ~SyntheticDiDResults.time_weights_array + ~SyntheticDiDResults.treated_post_trajectory + ~SyntheticDiDResults.treated_pre_trajectory ~SyntheticDiDResults.variance_method ~SyntheticDiDResults.zeta_lambda ~SyntheticDiDResults.zeta_omega @@ -51,5 +59,4 @@ ~SyntheticDiDResults.time_weights ~SyntheticDiDResults.pre_periods ~SyntheticDiDResults.post_periods - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.TROP.rst b/docs/api/_autosummary/diff_diff.TROP.rst index c223329d..f6eb94d1 100644 --- a/docs/api/_autosummary/diff_diff.TROP.rst +++ b/docs/api/_autosummary/diff_diff.TROP.rst @@ -4,28 +4,34 @@ .. currentmodule:: diff_diff .. autoclass:: TROP + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~TROP.__init__ ~TROP.fit ~TROP.get_params ~TROP.set_params - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~TROP.CONVERGENCE_TOL_SVD - - \ No newline at end of file + ~TROP.max_iter + ~TROP.tol + ~TROP.n_bootstrap + ~TROP.seed + ~TROP.lambda_time_grid + ~TROP.lambda_unit_grid + ~TROP.lambda_nn_grid + ~TROP.alpha + ~TROP.results_ + ~TROP.is_fitted_ + diff --git a/docs/api/_autosummary/diff_diff.TROPResults.rst b/docs/api/_autosummary/diff_diff.TROPResults.rst index a111fe37..2186f45b 100644 --- a/docs/api/_autosummary/diff_diff.TROPResults.rst +++ b/docs/api/_autosummary/diff_diff.TROPResults.rst @@ -4,15 +4,13 @@ .. currentmodule:: diff_diff .. autoclass:: TROPResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~TROPResults.__init__ ~TROPResults.get_time_effects_df ~TROPResults.get_treatment_effects_df @@ -21,22 +19,23 @@ ~TROPResults.summary ~TROPResults.to_dataframe ~TROPResults.to_dict - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~TROPResults.alpha ~TROPResults.bootstrap_distribution + ~TROPResults.coef_var ~TROPResults.is_significant ~TROPResults.n_bootstrap ~TROPResults.n_post_periods ~TROPResults.n_pre_periods ~TROPResults.significance_stars + ~TROPResults.survey_metadata ~TROPResults.att ~TROPResults.se ~TROPResults.t_stat @@ -55,5 +54,4 @@ ~TROPResults.factor_matrix ~TROPResults.effective_rank ~TROPResults.loocv_score - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.TripleDifference.rst b/docs/api/_autosummary/diff_diff.TripleDifference.rst index 37621322..2f80893c 100644 --- a/docs/api/_autosummary/diff_diff.TripleDifference.rst +++ b/docs/api/_autosummary/diff_diff.TripleDifference.rst @@ -4,24 +4,20 @@ .. currentmodule:: diff_diff .. autoclass:: TripleDifference + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~TripleDifference.__init__ ~TripleDifference.fit ~TripleDifference.get_params ~TripleDifference.print_summary ~TripleDifference.set_params ~TripleDifference.summary - - - - - \ No newline at end of file + + + diff --git a/docs/api/_autosummary/diff_diff.TripleDifferenceResults.rst b/docs/api/_autosummary/diff_diff.TripleDifferenceResults.rst index cfaf2368..991fe9dd 100644 --- a/docs/api/_autosummary/diff_diff.TripleDifferenceResults.rst +++ b/docs/api/_autosummary/diff_diff.TripleDifferenceResults.rst @@ -4,39 +4,41 @@ .. currentmodule:: diff_diff .. autoclass:: TripleDifferenceResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~TripleDifferenceResults.__init__ + ~TripleDifferenceResults.epv_summary ~TripleDifferenceResults.print_summary ~TripleDifferenceResults.summary ~TripleDifferenceResults.to_dataframe ~TripleDifferenceResults.to_dict - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~TripleDifferenceResults.alpha ~TripleDifferenceResults.covariate_balance + ~TripleDifferenceResults.epv_diagnostics + ~TripleDifferenceResults.epv_threshold ~TripleDifferenceResults.group_means ~TripleDifferenceResults.inference_method ~TripleDifferenceResults.is_significant ~TripleDifferenceResults.n_bootstrap ~TripleDifferenceResults.n_clusters + ~TripleDifferenceResults.pscore_fallback ~TripleDifferenceResults.pscore_stats ~TripleDifferenceResults.r_squared ~TripleDifferenceResults.significance_stars + ~TripleDifferenceResults.survey_metadata ~TripleDifferenceResults.att ~TripleDifferenceResults.se ~TripleDifferenceResults.t_stat @@ -48,5 +50,4 @@ ~TripleDifferenceResults.n_control_eligible ~TripleDifferenceResults.n_control_ineligible ~TripleDifferenceResults.estimation_method - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.TwoStageBootstrapResults.rst b/docs/api/_autosummary/diff_diff.TwoStageBootstrapResults.rst index f38b4e42..67e4d7c9 100644 --- a/docs/api/_autosummary/diff_diff.TwoStageBootstrapResults.rst +++ b/docs/api/_autosummary/diff_diff.TwoStageBootstrapResults.rst @@ -4,25 +4,22 @@ .. currentmodule:: diff_diff .. autoclass:: TwoStageBootstrapResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~TwoStageBootstrapResults.__init__ - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~TwoStageBootstrapResults.bootstrap_distribution ~TwoStageBootstrapResults.event_study_cis ~TwoStageBootstrapResults.event_study_p_values @@ -36,5 +33,4 @@ ~TwoStageBootstrapResults.overall_att_se ~TwoStageBootstrapResults.overall_att_ci ~TwoStageBootstrapResults.overall_att_p_value - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.TwoStageDiD.rst b/docs/api/_autosummary/diff_diff.TwoStageDiD.rst index 648b8131..0eaedf9b 100644 --- a/docs/api/_autosummary/diff_diff.TwoStageDiD.rst +++ b/docs/api/_autosummary/diff_diff.TwoStageDiD.rst @@ -4,24 +4,30 @@ .. currentmodule:: diff_diff .. autoclass:: TwoStageDiD + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~TwoStageDiD.__init__ ~TwoStageDiD.fit ~TwoStageDiD.get_params ~TwoStageDiD.print_summary ~TwoStageDiD.set_params ~TwoStageDiD.summary - - - - - \ No newline at end of file + + + + .. rubric:: Attributes + + .. autosummary:: + + ~TwoStageDiD.n_bootstrap + ~TwoStageDiD.bootstrap_weights + ~TwoStageDiD.alpha + ~TwoStageDiD.seed + ~TwoStageDiD.horizon_max + diff --git a/docs/api/_autosummary/diff_diff.TwoStageDiDResults.rst b/docs/api/_autosummary/diff_diff.TwoStageDiDResults.rst index 624a26dd..00c5d5c0 100644 --- a/docs/api/_autosummary/diff_diff.TwoStageDiDResults.rst +++ b/docs/api/_autosummary/diff_diff.TwoStageDiDResults.rst @@ -4,32 +4,37 @@ .. currentmodule:: diff_diff .. autoclass:: TwoStageDiDResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~TwoStageDiDResults.__init__ ~TwoStageDiDResults.print_summary ~TwoStageDiDResults.summary ~TwoStageDiDResults.to_dataframe - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~TwoStageDiDResults.alpha + ~TwoStageDiDResults.anticipation + ~TwoStageDiDResults.att ~TwoStageDiDResults.bootstrap_results + ~TwoStageDiDResults.coef_var + ~TwoStageDiDResults.conf_int ~TwoStageDiDResults.is_significant + ~TwoStageDiDResults.p_value + ~TwoStageDiDResults.se ~TwoStageDiDResults.significance_stars + ~TwoStageDiDResults.survey_metadata + ~TwoStageDiDResults.t_stat ~TwoStageDiDResults.treatment_effects ~TwoStageDiDResults.overall_att ~TwoStageDiDResults.overall_se @@ -45,5 +50,4 @@ ~TwoStageDiDResults.n_untreated_obs ~TwoStageDiDResults.n_treated_units ~TwoStageDiDResults.n_control_units - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.TwoWayFixedEffects.rst b/docs/api/_autosummary/diff_diff.TwoWayFixedEffects.rst index 8eddb62b..7eecc57f 100644 --- a/docs/api/_autosummary/diff_diff.TwoWayFixedEffects.rst +++ b/docs/api/_autosummary/diff_diff.TwoWayFixedEffects.rst @@ -4,15 +4,13 @@ .. currentmodule:: diff_diff .. autoclass:: TwoWayFixedEffects + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~TwoWayFixedEffects.__init__ ~TwoWayFixedEffects.decompose ~TwoWayFixedEffects.fit @@ -21,9 +19,7 @@ ~TwoWayFixedEffects.print_summary ~TwoWayFixedEffects.set_params ~TwoWayFixedEffects.summary - - - - - \ No newline at end of file + + + diff --git a/docs/api/_autosummary/diff_diff.WildBootstrapResults.rst b/docs/api/_autosummary/diff_diff.WildBootstrapResults.rst index a61f6ce2..d09127d7 100644 --- a/docs/api/_autosummary/diff_diff.WildBootstrapResults.rst +++ b/docs/api/_autosummary/diff_diff.WildBootstrapResults.rst @@ -4,27 +4,24 @@ .. currentmodule:: diff_diff .. autoclass:: WildBootstrapResults + :no-members: - - .. automethod:: __init__ - .. rubric:: Methods .. autosummary:: - + ~WildBootstrapResults.__init__ ~WildBootstrapResults.print_summary ~WildBootstrapResults.summary - - - - + + + .. rubric:: Attributes .. autosummary:: - + ~WildBootstrapResults.alpha ~WildBootstrapResults.bootstrap_distribution ~WildBootstrapResults.se @@ -35,5 +32,4 @@ ~WildBootstrapResults.n_clusters ~WildBootstrapResults.n_bootstrap ~WildBootstrapResults.weight_type - - \ No newline at end of file + diff --git a/docs/api/_autosummary/diff_diff.WooldridgeDiD.rst b/docs/api/_autosummary/diff_diff.WooldridgeDiD.rst new file mode 100644 index 00000000..972db0bb --- /dev/null +++ b/docs/api/_autosummary/diff_diff.WooldridgeDiD.rst @@ -0,0 +1,27 @@ +diff\_diff.WooldridgeDiD +======================== + +.. currentmodule:: diff_diff + +.. autoclass:: WooldridgeDiD + :no-members: + + + .. rubric:: Methods + + .. autosummary:: + + ~WooldridgeDiD.__init__ + ~WooldridgeDiD.fit + ~WooldridgeDiD.get_params + ~WooldridgeDiD.set_params + + + + + .. rubric:: Attributes + + .. autosummary:: + + ~WooldridgeDiD.results_ + diff --git a/docs/api/_autosummary/diff_diff.aggregate_to_cohorts.rst b/docs/api/_autosummary/diff_diff.aggregate_to_cohorts.rst index 24d5b63c..5084819f 100644 --- a/docs/api/_autosummary/diff_diff.aggregate_to_cohorts.rst +++ b/docs/api/_autosummary/diff_diff.aggregate_to_cohorts.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: aggregate_to_cohorts \ No newline at end of file +.. autofunction:: aggregate_to_cohorts + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.balance_panel.rst b/docs/api/_autosummary/diff_diff.balance_panel.rst index bf163bc9..6b4bb834 100644 --- a/docs/api/_autosummary/diff_diff.balance_panel.rst +++ b/docs/api/_autosummary/diff_diff.balance_panel.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: balance_panel \ No newline at end of file +.. autofunction:: balance_panel + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.check_parallel_trends.rst b/docs/api/_autosummary/diff_diff.check_parallel_trends.rst index bf77dd37..dadfbcf7 100644 --- a/docs/api/_autosummary/diff_diff.check_parallel_trends.rst +++ b/docs/api/_autosummary/diff_diff.check_parallel_trends.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: check_parallel_trends \ No newline at end of file +.. autofunction:: check_parallel_trends + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.check_parallel_trends_robust.rst b/docs/api/_autosummary/diff_diff.check_parallel_trends_robust.rst index 9780e1b8..6e475c51 100644 --- a/docs/api/_autosummary/diff_diff.check_parallel_trends_robust.rst +++ b/docs/api/_autosummary/diff_diff.check_parallel_trends_robust.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: check_parallel_trends_robust \ No newline at end of file +.. autofunction:: check_parallel_trends_robust + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.clear_cache.rst b/docs/api/_autosummary/diff_diff.clear_cache.rst index 3a0a778f..fa59c55a 100644 --- a/docs/api/_autosummary/diff_diff.clear_cache.rst +++ b/docs/api/_autosummary/diff_diff.clear_cache.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: clear_cache \ No newline at end of file +.. autofunction:: clear_cache + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.compute_honest_did.rst b/docs/api/_autosummary/diff_diff.compute_honest_did.rst index 128b910b..8bab8f4f 100644 --- a/docs/api/_autosummary/diff_diff.compute_honest_did.rst +++ b/docs/api/_autosummary/diff_diff.compute_honest_did.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: compute_honest_did \ No newline at end of file +.. autofunction:: compute_honest_did + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.compute_mde.rst b/docs/api/_autosummary/diff_diff.compute_mde.rst index 2962fb3a..37c3031a 100644 --- a/docs/api/_autosummary/diff_diff.compute_mde.rst +++ b/docs/api/_autosummary/diff_diff.compute_mde.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: compute_mde \ No newline at end of file +.. autofunction:: compute_mde + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.compute_mdv.rst b/docs/api/_autosummary/diff_diff.compute_mdv.rst index a015be76..7b526017 100644 --- a/docs/api/_autosummary/diff_diff.compute_mdv.rst +++ b/docs/api/_autosummary/diff_diff.compute_mdv.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: compute_mdv \ No newline at end of file +.. autofunction:: compute_mdv + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.compute_power.rst b/docs/api/_autosummary/diff_diff.compute_power.rst index 5afd4245..65b134a6 100644 --- a/docs/api/_autosummary/diff_diff.compute_power.rst +++ b/docs/api/_autosummary/diff_diff.compute_power.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: compute_power \ No newline at end of file +.. autofunction:: compute_power + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.compute_pretrends_power.rst b/docs/api/_autosummary/diff_diff.compute_pretrends_power.rst index 776dd827..5d5b74ff 100644 --- a/docs/api/_autosummary/diff_diff.compute_pretrends_power.rst +++ b/docs/api/_autosummary/diff_diff.compute_pretrends_power.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: compute_pretrends_power \ No newline at end of file +.. autofunction:: compute_pretrends_power + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.compute_sample_size.rst b/docs/api/_autosummary/diff_diff.compute_sample_size.rst index e26beba1..eb53501c 100644 --- a/docs/api/_autosummary/diff_diff.compute_sample_size.rst +++ b/docs/api/_autosummary/diff_diff.compute_sample_size.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: compute_sample_size \ No newline at end of file +.. autofunction:: compute_sample_size + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.create_event_time.rst b/docs/api/_autosummary/diff_diff.create_event_time.rst index 3b660100..fef2b94c 100644 --- a/docs/api/_autosummary/diff_diff.create_event_time.rst +++ b/docs/api/_autosummary/diff_diff.create_event_time.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: create_event_time \ No newline at end of file +.. autofunction:: create_event_time + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.equivalence_test_trends.rst b/docs/api/_autosummary/diff_diff.equivalence_test_trends.rst index d4422557..abe0f6b9 100644 --- a/docs/api/_autosummary/diff_diff.equivalence_test_trends.rst +++ b/docs/api/_autosummary/diff_diff.equivalence_test_trends.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: equivalence_test_trends \ No newline at end of file +.. autofunction:: equivalence_test_trends + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.generate_continuous_did_data.rst b/docs/api/_autosummary/diff_diff.generate_continuous_did_data.rst index 7302b87c..488afb1a 100644 --- a/docs/api/_autosummary/diff_diff.generate_continuous_did_data.rst +++ b/docs/api/_autosummary/diff_diff.generate_continuous_did_data.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: generate_continuous_did_data \ No newline at end of file +.. autofunction:: generate_continuous_did_data + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.generate_ddd_data.rst b/docs/api/_autosummary/diff_diff.generate_ddd_data.rst index 9c511d33..0e069e15 100644 --- a/docs/api/_autosummary/diff_diff.generate_ddd_data.rst +++ b/docs/api/_autosummary/diff_diff.generate_ddd_data.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: generate_ddd_data \ No newline at end of file +.. autofunction:: generate_ddd_data + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.generate_did_data.rst b/docs/api/_autosummary/diff_diff.generate_did_data.rst index 387ea053..07b744a3 100644 --- a/docs/api/_autosummary/diff_diff.generate_did_data.rst +++ b/docs/api/_autosummary/diff_diff.generate_did_data.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: generate_did_data \ No newline at end of file +.. autofunction:: generate_did_data + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.generate_event_study_data.rst b/docs/api/_autosummary/diff_diff.generate_event_study_data.rst index 15d7134e..c866a4bc 100644 --- a/docs/api/_autosummary/diff_diff.generate_event_study_data.rst +++ b/docs/api/_autosummary/diff_diff.generate_event_study_data.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: generate_event_study_data \ No newline at end of file +.. autofunction:: generate_event_study_data + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.generate_factor_data.rst b/docs/api/_autosummary/diff_diff.generate_factor_data.rst index f4c3c0fa..06d430b6 100644 --- a/docs/api/_autosummary/diff_diff.generate_factor_data.rst +++ b/docs/api/_autosummary/diff_diff.generate_factor_data.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: generate_factor_data \ No newline at end of file +.. autofunction:: generate_factor_data + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.generate_panel_data.rst b/docs/api/_autosummary/diff_diff.generate_panel_data.rst index 48f25044..92d18e33 100644 --- a/docs/api/_autosummary/diff_diff.generate_panel_data.rst +++ b/docs/api/_autosummary/diff_diff.generate_panel_data.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: generate_panel_data \ No newline at end of file +.. autofunction:: generate_panel_data + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.generate_staggered_data.rst b/docs/api/_autosummary/diff_diff.generate_staggered_data.rst index 18686f59..4f2ca199 100644 --- a/docs/api/_autosummary/diff_diff.generate_staggered_data.rst +++ b/docs/api/_autosummary/diff_diff.generate_staggered_data.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: generate_staggered_data \ No newline at end of file +.. autofunction:: generate_staggered_data + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.leave_one_out_test.rst b/docs/api/_autosummary/diff_diff.leave_one_out_test.rst index 24f0c6c9..ea7cd428 100644 --- a/docs/api/_autosummary/diff_diff.leave_one_out_test.rst +++ b/docs/api/_autosummary/diff_diff.leave_one_out_test.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: leave_one_out_test \ No newline at end of file +.. autofunction:: leave_one_out_test + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.list_datasets.rst b/docs/api/_autosummary/diff_diff.list_datasets.rst index 25f27152..d93feae6 100644 --- a/docs/api/_autosummary/diff_diff.list_datasets.rst +++ b/docs/api/_autosummary/diff_diff.list_datasets.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: list_datasets \ No newline at end of file +.. autofunction:: list_datasets + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.load_card_krueger.rst b/docs/api/_autosummary/diff_diff.load_card_krueger.rst index 9a8191c9..2ded9e96 100644 --- a/docs/api/_autosummary/diff_diff.load_card_krueger.rst +++ b/docs/api/_autosummary/diff_diff.load_card_krueger.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: load_card_krueger \ No newline at end of file +.. autofunction:: load_card_krueger + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.load_castle_doctrine.rst b/docs/api/_autosummary/diff_diff.load_castle_doctrine.rst index 65729d66..91d49347 100644 --- a/docs/api/_autosummary/diff_diff.load_castle_doctrine.rst +++ b/docs/api/_autosummary/diff_diff.load_castle_doctrine.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: load_castle_doctrine \ No newline at end of file +.. autofunction:: load_castle_doctrine + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.load_dataset.rst b/docs/api/_autosummary/diff_diff.load_dataset.rst index a39ef3ca..71224ee7 100644 --- a/docs/api/_autosummary/diff_diff.load_dataset.rst +++ b/docs/api/_autosummary/diff_diff.load_dataset.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: load_dataset \ No newline at end of file +.. autofunction:: load_dataset + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.load_divorce_laws.rst b/docs/api/_autosummary/diff_diff.load_divorce_laws.rst index 7ba295ab..3ac17950 100644 --- a/docs/api/_autosummary/diff_diff.load_divorce_laws.rst +++ b/docs/api/_autosummary/diff_diff.load_divorce_laws.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: load_divorce_laws \ No newline at end of file +.. autofunction:: load_divorce_laws + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.load_mpdta.rst b/docs/api/_autosummary/diff_diff.load_mpdta.rst index bda15b2a..7f94f463 100644 --- a/docs/api/_autosummary/diff_diff.load_mpdta.rst +++ b/docs/api/_autosummary/diff_diff.load_mpdta.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: load_mpdta \ No newline at end of file +.. autofunction:: load_mpdta + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.make_post_indicator.rst b/docs/api/_autosummary/diff_diff.make_post_indicator.rst index daed0e26..de56260f 100644 --- a/docs/api/_autosummary/diff_diff.make_post_indicator.rst +++ b/docs/api/_autosummary/diff_diff.make_post_indicator.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: make_post_indicator \ No newline at end of file +.. autofunction:: make_post_indicator + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.make_treatment_indicator.rst b/docs/api/_autosummary/diff_diff.make_treatment_indicator.rst index 2306d84a..672e8cd1 100644 --- a/docs/api/_autosummary/diff_diff.make_treatment_indicator.rst +++ b/docs/api/_autosummary/diff_diff.make_treatment_indicator.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: make_treatment_indicator \ No newline at end of file +.. autofunction:: make_treatment_indicator + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.permutation_test.rst b/docs/api/_autosummary/diff_diff.permutation_test.rst index 44fc53bd..3d19fd1e 100644 --- a/docs/api/_autosummary/diff_diff.permutation_test.rst +++ b/docs/api/_autosummary/diff_diff.permutation_test.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: permutation_test \ No newline at end of file +.. autofunction:: permutation_test + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.placebo_group_test.rst b/docs/api/_autosummary/diff_diff.placebo_group_test.rst index 867b4e48..243b4bd9 100644 --- a/docs/api/_autosummary/diff_diff.placebo_group_test.rst +++ b/docs/api/_autosummary/diff_diff.placebo_group_test.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: placebo_group_test \ No newline at end of file +.. autofunction:: placebo_group_test + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.placebo_timing_test.rst b/docs/api/_autosummary/diff_diff.placebo_timing_test.rst index cf7512a0..bcc8214a 100644 --- a/docs/api/_autosummary/diff_diff.placebo_timing_test.rst +++ b/docs/api/_autosummary/diff_diff.placebo_timing_test.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: placebo_timing_test \ No newline at end of file +.. autofunction:: placebo_timing_test + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.plot_bacon.rst b/docs/api/_autosummary/diff_diff.plot_bacon.rst index b02c5bb0..933c1077 100644 --- a/docs/api/_autosummary/diff_diff.plot_bacon.rst +++ b/docs/api/_autosummary/diff_diff.plot_bacon.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: plot_bacon \ No newline at end of file +.. autofunction:: plot_bacon + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.plot_event_study.rst b/docs/api/_autosummary/diff_diff.plot_event_study.rst index 97cf3178..42d2236c 100644 --- a/docs/api/_autosummary/diff_diff.plot_event_study.rst +++ b/docs/api/_autosummary/diff_diff.plot_event_study.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: plot_event_study \ No newline at end of file +.. autofunction:: plot_event_study + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.plot_group_effects.rst b/docs/api/_autosummary/diff_diff.plot_group_effects.rst index d00d43b8..e4104b1d 100644 --- a/docs/api/_autosummary/diff_diff.plot_group_effects.rst +++ b/docs/api/_autosummary/diff_diff.plot_group_effects.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: plot_group_effects \ No newline at end of file +.. autofunction:: plot_group_effects + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.plot_honest_event_study.rst b/docs/api/_autosummary/diff_diff.plot_honest_event_study.rst index 635744b4..e113dbca 100644 --- a/docs/api/_autosummary/diff_diff.plot_honest_event_study.rst +++ b/docs/api/_autosummary/diff_diff.plot_honest_event_study.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: plot_honest_event_study \ No newline at end of file +.. autofunction:: plot_honest_event_study + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.plot_power_curve.rst b/docs/api/_autosummary/diff_diff.plot_power_curve.rst index b70ac6ca..afe1a1cf 100644 --- a/docs/api/_autosummary/diff_diff.plot_power_curve.rst +++ b/docs/api/_autosummary/diff_diff.plot_power_curve.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: plot_power_curve \ No newline at end of file +.. autofunction:: plot_power_curve + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.plot_pretrends_power.rst b/docs/api/_autosummary/diff_diff.plot_pretrends_power.rst index 9bb17a23..727f4a15 100644 --- a/docs/api/_autosummary/diff_diff.plot_pretrends_power.rst +++ b/docs/api/_autosummary/diff_diff.plot_pretrends_power.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: plot_pretrends_power \ No newline at end of file +.. autofunction:: plot_pretrends_power + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.plot_sensitivity.rst b/docs/api/_autosummary/diff_diff.plot_sensitivity.rst index b1e5d374..db791a00 100644 --- a/docs/api/_autosummary/diff_diff.plot_sensitivity.rst +++ b/docs/api/_autosummary/diff_diff.plot_sensitivity.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: plot_sensitivity \ No newline at end of file +.. autofunction:: plot_sensitivity + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.profile_panel.rst b/docs/api/_autosummary/diff_diff.profile_panel.rst new file mode 100644 index 00000000..b7496d28 --- /dev/null +++ b/docs/api/_autosummary/diff_diff.profile_panel.rst @@ -0,0 +1,7 @@ +diff\_diff.profile\_panel +========================= + +.. currentmodule:: diff_diff + +.. autofunction:: profile_panel + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.rank_control_units.rst b/docs/api/_autosummary/diff_diff.rank_control_units.rst index 461068d4..800c81f8 100644 --- a/docs/api/_autosummary/diff_diff.rank_control_units.rst +++ b/docs/api/_autosummary/diff_diff.rank_control_units.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: rank_control_units \ No newline at end of file +.. autofunction:: rank_control_units + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.run_all_placebo_tests.rst b/docs/api/_autosummary/diff_diff.run_all_placebo_tests.rst index ea9b5364..072177bc 100644 --- a/docs/api/_autosummary/diff_diff.run_all_placebo_tests.rst +++ b/docs/api/_autosummary/diff_diff.run_all_placebo_tests.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: run_all_placebo_tests \ No newline at end of file +.. autofunction:: run_all_placebo_tests + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.run_placebo_test.rst b/docs/api/_autosummary/diff_diff.run_placebo_test.rst index deb2f0ab..372ef123 100644 --- a/docs/api/_autosummary/diff_diff.run_placebo_test.rst +++ b/docs/api/_autosummary/diff_diff.run_placebo_test.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: run_placebo_test \ No newline at end of file +.. autofunction:: run_placebo_test + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.sensitivity_plot.rst b/docs/api/_autosummary/diff_diff.sensitivity_plot.rst index 8784526c..29f8e527 100644 --- a/docs/api/_autosummary/diff_diff.sensitivity_plot.rst +++ b/docs/api/_autosummary/diff_diff.sensitivity_plot.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: sensitivity_plot \ No newline at end of file +.. autofunction:: sensitivity_plot + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.simulate_mde.rst b/docs/api/_autosummary/diff_diff.simulate_mde.rst new file mode 100644 index 00000000..e2c3f723 --- /dev/null +++ b/docs/api/_autosummary/diff_diff.simulate_mde.rst @@ -0,0 +1,7 @@ +diff\_diff.simulate\_mde +======================== + +.. currentmodule:: diff_diff + +.. autofunction:: simulate_mde + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.simulate_power.rst b/docs/api/_autosummary/diff_diff.simulate_power.rst index 76c35f4a..ec4cc3ee 100644 --- a/docs/api/_autosummary/diff_diff.simulate_power.rst +++ b/docs/api/_autosummary/diff_diff.simulate_power.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: simulate_power \ No newline at end of file +.. autofunction:: simulate_power + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.simulate_sample_size.rst b/docs/api/_autosummary/diff_diff.simulate_sample_size.rst new file mode 100644 index 00000000..2e9bc587 --- /dev/null +++ b/docs/api/_autosummary/diff_diff.simulate_sample_size.rst @@ -0,0 +1,7 @@ +diff\_diff.simulate\_sample\_size +================================= + +.. currentmodule:: diff_diff + +.. autofunction:: simulate_sample_size + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.summarize_did_data.rst b/docs/api/_autosummary/diff_diff.summarize_did_data.rst index 59bca45d..d07e45e1 100644 --- a/docs/api/_autosummary/diff_diff.summarize_did_data.rst +++ b/docs/api/_autosummary/diff_diff.summarize_did_data.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: summarize_did_data \ No newline at end of file +.. autofunction:: summarize_did_data + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.validate_did_data.rst b/docs/api/_autosummary/diff_diff.validate_did_data.rst index 3886f8e9..fd3eb0d5 100644 --- a/docs/api/_autosummary/diff_diff.validate_did_data.rst +++ b/docs/api/_autosummary/diff_diff.validate_did_data.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: validate_did_data \ No newline at end of file +.. autofunction:: validate_did_data + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.wide_to_long.rst b/docs/api/_autosummary/diff_diff.wide_to_long.rst index 223316b3..f027dc7b 100644 --- a/docs/api/_autosummary/diff_diff.wide_to_long.rst +++ b/docs/api/_autosummary/diff_diff.wide_to_long.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: wide_to_long \ No newline at end of file +.. autofunction:: wide_to_long + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.wild_bootstrap_se.rst b/docs/api/_autosummary/diff_diff.wild_bootstrap_se.rst index 18312037..32fed535 100644 --- a/docs/api/_autosummary/diff_diff.wild_bootstrap_se.rst +++ b/docs/api/_autosummary/diff_diff.wild_bootstrap_se.rst @@ -3,4 +3,5 @@ .. currentmodule:: diff_diff -.. autofunction:: wild_bootstrap_se \ No newline at end of file +.. autofunction:: wild_bootstrap_se + :no-index: \ No newline at end of file diff --git a/docs/api/_autosummary/diff_diff.wooldridge_results.WooldridgeDiDResults.rst b/docs/api/_autosummary/diff_diff.wooldridge_results.WooldridgeDiDResults.rst new file mode 100644 index 00000000..228e21ff --- /dev/null +++ b/docs/api/_autosummary/diff_diff.wooldridge_results.WooldridgeDiDResults.rst @@ -0,0 +1,51 @@ +diff\_diff.wooldridge\_results.WooldridgeDiDResults +=================================================== + +.. currentmodule:: diff_diff.wooldridge_results + +.. autoclass:: WooldridgeDiDResults + :no-members: + + + .. rubric:: Methods + + .. autosummary:: + + ~WooldridgeDiDResults.__init__ + ~WooldridgeDiDResults.aggregate + ~WooldridgeDiDResults.plot_event_study + ~WooldridgeDiDResults.summary + ~WooldridgeDiDResults.to_dataframe + + + + + .. rubric:: Attributes + + .. autosummary:: + + ~WooldridgeDiDResults.alpha + ~WooldridgeDiDResults.anticipation + ~WooldridgeDiDResults.att + ~WooldridgeDiDResults.calendar_effects + ~WooldridgeDiDResults.conf_int + ~WooldridgeDiDResults.control_group + ~WooldridgeDiDResults.event_study_effects + ~WooldridgeDiDResults.group_effects + ~WooldridgeDiDResults.method + ~WooldridgeDiDResults.n_control_units + ~WooldridgeDiDResults.n_obs + ~WooldridgeDiDResults.n_treated_units + ~WooldridgeDiDResults.p_value + ~WooldridgeDiDResults.se + ~WooldridgeDiDResults.survey_metadata + ~WooldridgeDiDResults.t_stat + ~WooldridgeDiDResults.group_time_effects + ~WooldridgeDiDResults.overall_att + ~WooldridgeDiDResults.overall_se + ~WooldridgeDiDResults.overall_t_stat + ~WooldridgeDiDResults.overall_p_value + ~WooldridgeDiDResults.overall_conf_int + ~WooldridgeDiDResults.groups + ~WooldridgeDiDResults.time_periods + diff --git a/docs/api/business_report.rst b/docs/api/business_report.rst index 953b6e2d..d63ded5d 100644 --- a/docs/api/business_report.rst +++ b/docs/api/business_report.rst @@ -47,7 +47,7 @@ pretest to opt in. Methodology deviations (no traffic-light gates, pre-trends verdict thresholds, power-aware phrasing, unit-translation policy, schema -stability) are documented in :doc:`../methodology/REPORTING`. +stability) are documented in ``docs/methodology/REPORTING.md``. The schema carries a top-level ``target_parameter`` block (experimental) naming what the headline scalar represents per @@ -62,7 +62,7 @@ distinguishes the populated-surface subcase (per-horizon table available on ``linear_trends_effects``) from the empty-surface subcase (no horizons survived estimation; re-fit with a larger ``L_max`` or with ``trends_linear=False``). See the "Target -parameter" section of :doc:`../methodology/REPORTING` for the +parameter" section of ``docs/methodology/REPORTING.md`` for the full per-estimator dispatch table and schema shape. Example diff --git a/docs/api/chaisemartin_dhaultfoeuille.rst b/docs/api/chaisemartin_dhaultfoeuille.rst index 3a240da7..8cf8578b 100644 --- a/docs/api/chaisemartin_dhaultfoeuille.rst +++ b/docs/api/chaisemartin_dhaultfoeuille.rst @@ -100,8 +100,6 @@ library option for non-absorbing treatments. Difference-in-Differences Estimators of Intertemporal Treatment Effects. NBER Working Paper 29873. -.. module:: diff_diff.chaisemartin_dhaultfoeuille - ChaisemartinDHaultfoeuille -------------------------- @@ -170,7 +168,7 @@ treatment effects that could flip the sign of the plain TWFE coefficient. .. autofunction:: diff_diff.twowayfeweights -.. autoclass:: diff_diff.chaisemartin_dhaultfoeuille.TWFEWeightsResult +.. autoclass:: diff_diff.TWFEWeightsResult :no-index: :members: diff --git a/docs/api/datasets.rst b/docs/api/datasets.rst index d74f2c61..39a937e0 100644 --- a/docs/api/datasets.rst +++ b/docs/api/datasets.rst @@ -3,8 +3,6 @@ Datasets Built-in real-world datasets from published studies for examples, tutorials, and testing. -.. module:: diff_diff.datasets - All datasets are downloaded from public sources on first use and cached locally at ``~/.cache/diff_diff/datasets/``. Pass ``force_download=True`` to any loader to refresh the cache. If the download fails and a cached copy exists, the cached @@ -20,7 +18,7 @@ Card & Krueger (1994) minimum wage study. Classic 2x2 DiD comparing fast-food employment in New Jersey (treated) and Pennsylvania (control) around NJ's 1992 minimum wage increase. -.. autofunction:: load_card_krueger +.. autofunction:: diff_diff.load_card_krueger Example ^^^^^^^ @@ -50,7 +48,7 @@ Castle doctrine (Stand Your Ground) gun law study. Staggered adoption of self-defense law expansions across U.S. states (2000--2010), suitable for Callaway--Sant'Anna or Sun--Abraham estimation. -.. autofunction:: load_castle_doctrine +.. autofunction:: diff_diff.load_castle_doctrine Example ^^^^^^^ @@ -77,7 +75,7 @@ Unilateral (no-fault) divorce law reforms. Staggered adoption across U.S. states (1968--1988) from Stevenson & Wolfers (2006), with outcomes for divorce rate, female labor force participation, and female suicide rate. -.. autofunction:: load_divorce_laws +.. autofunction:: diff_diff.load_divorce_laws Example ^^^^^^^ @@ -104,7 +102,7 @@ Minimum wage panel data for training (Callaway & Sant'Anna 2021). Simulated county-level employment data with staggered minimum wage increases (2003--2007), from the R ``did`` package. -.. autofunction:: load_mpdta +.. autofunction:: diff_diff.load_mpdta Example ^^^^^^^ @@ -132,21 +130,21 @@ load_dataset Generic loader that fetches a dataset by name. -.. autofunction:: load_dataset +.. autofunction:: diff_diff.load_dataset list_datasets ~~~~~~~~~~~~~ List all available datasets with descriptions. -.. autofunction:: list_datasets +.. autofunction:: diff_diff.list_datasets clear_cache ~~~~~~~~~~~~ Remove all cached dataset files from ``~/.cache/diff_diff/datasets/``. -.. autofunction:: clear_cache +.. autofunction:: diff_diff.clear_cache Listing and Loading Datasets ---------------------------- diff --git a/docs/api/diagnostic_report.rst b/docs/api/diagnostic_report.rst index e0cc3375..d86c8a71 100644 --- a/docs/api/diagnostic_report.rst +++ b/docs/api/diagnostic_report.rst @@ -13,12 +13,12 @@ result. Methodology deviations (no traffic-light gates, opt-in placebo battery, estimator-native diagnostic routing, power-aware phrasing -threshold) are documented in :doc:`../methodology/REPORTING`. +threshold) are documented in ``docs/methodology/REPORTING.md``. The schema carries a top-level ``target_parameter`` block (experimental) naming what the headline scalar represents per estimator. See the "Target parameter" section of -:doc:`../methodology/REPORTING` for the per-estimator dispatch and +``docs/methodology/REPORTING.md`` for the per-estimator dispatch and schema shape. Data-dependent checks (2x2 parallel trends on simple DiD, diff --git a/docs/api/power.rst b/docs/api/power.rst index dbbb9b57..e9265819 100644 --- a/docs/api/power.rst +++ b/docs/api/power.rst @@ -147,6 +147,13 @@ Simulation-based sample size for any DiD estimator. .. autofunction:: diff_diff.simulate_sample_size +plot_power_curve +~~~~~~~~~~~~~~~~ + +Visualization for a power curve from ``PowerAnalysis`` results. + +.. autofunction:: diff_diff.plot_power_curve + Complete Example ---------------- diff --git a/docs/api/pretrends.rst b/docs/api/pretrends.rst index c149e73c..8924cb13 100644 --- a/docs/api/pretrends.rst +++ b/docs/api/pretrends.rst @@ -100,6 +100,13 @@ Compute minimum detectable violation. .. autofunction:: diff_diff.compute_mdv +plot_pretrends_power +~~~~~~~~~~~~~~~~~~~~ + +Plot a pre-trends test power curve. + +.. autofunction:: diff_diff.plot_pretrends_power + Violation Types --------------- diff --git a/docs/api/results.rst b/docs/api/results.rst index 44d5909c..4545ef66 100644 --- a/docs/api/results.rst +++ b/docs/api/results.rst @@ -24,7 +24,7 @@ Results from basic DifferenceInDifferences estimation. ~DiDResults.se ~DiDResults.t_stat ~DiDResults.p_value - ~DiDResults.ci + ~DiDResults.conf_int ~DiDResults.n_obs ~DiDResults.is_significant ~DiDResults.significance_stars diff --git a/docs/api/stacked_did.rst b/docs/api/stacked_did.rst index 9ae5c617..20c2da8c 100644 --- a/docs/api/stacked_did.rst +++ b/docs/api/stacked_did.rst @@ -23,8 +23,6 @@ which addresses bias in naive stacked DiD regressions by: Difference-in-Differences. *NBER Working Paper* 32054. ``_ -.. module:: diff_diff.stacked_did - StackedDiD ---------- @@ -50,7 +48,7 @@ StackedDiDResults Results container for Stacked DiD estimation. -.. autoclass:: diff_diff.stacked_did.StackedDiDResults +.. autoclass:: diff_diff.StackedDiDResults :no-index: :members: :undoc-members: diff --git a/docs/api/staggered.rst b/docs/api/staggered.rst index 8bf5fbd0..1ceb0e15 100644 --- a/docs/api/staggered.rst +++ b/docs/api/staggered.rst @@ -48,7 +48,6 @@ Results container for Callaway-Sant'Anna estimation. .. autosummary:: - ~CallawaySantAnnaResults.aggregate ~CallawaySantAnnaResults.summary ~CallawaySantAnnaResults.to_dataframe diff --git a/docs/api/trop.rst b/docs/api/trop.rst index d37c630c..743992a3 100644 --- a/docs/api/trop.rst +++ b/docs/api/trop.rst @@ -25,8 +25,6 @@ which combines three robustness components: **Reference:** Athey, S., Imbens, G. W., Qu, Z., & Viviano, D. (2025). Triply Robust Panel Estimators. *Working Paper*. `arXiv:2508.21536 `_ -.. module:: diff_diff.trop - TROP ---- @@ -52,7 +50,7 @@ TROPResults Results container for TROP estimation. -.. autoclass:: diff_diff.trop.TROPResults +.. autoclass:: diff_diff.TROPResults :no-index: :members: :undoc-members: diff --git a/docs/api/visualization.rst b/docs/api/visualization.rst index 7db5ba59..09ede641 100644 --- a/docs/api/visualization.rst +++ b/docs/api/visualization.rst @@ -188,6 +188,27 @@ Example # Grey out non-significant cells ax = plot_group_time_heatmap(results, mask_insignificant=True) +plot_bacon +---------- + +Visualize Goodman-Bacon decomposition results. + +.. autofunction:: diff_diff.plot_bacon + +Example +~~~~~~~ + +.. code-block:: python + + from diff_diff import BaconDecomposition, plot_bacon + + bd = BaconDecomposition() + results = bd.fit(data, outcome='y', unit='unit_id', + time='period', first_treat='first_treat') + + # Scatter of 2x2 comparisons by weight, colored by comparison type + ax = plot_bacon(results) + Plotly Backend -------------- diff --git a/docs/benchmarks.rst b/docs/benchmarks.rst index 2943eff2..3ad3b7ff 100644 --- a/docs/benchmarks.rst +++ b/docs/benchmarks.rst @@ -937,15 +937,3 @@ Known Differences Point estimates and unit/time weights are numerically identical since both implementations use the same Frank-Wolfe optimizer. -References ----------- - -.. [CS2021] Callaway, B., & Sant'Anna, P. H. (2021). Difference-in-Differences - with multiple time periods. *Journal of Econometrics*, 225(2), 200-230. - -.. [AHIW2021] Arkhangelsky, D., Athey, S., Hirshberg, D. A., Imbens, G. W., - & Wager, S. (2021). Synthetic Difference-in-Differences. *American Economic - Review*, 111(12), 4088-4118. - -.. [RR2023] Rambachan, A., & Roth, J. (2023). A More Credible Approach to - Parallel Trends. *Review of Economic Studies*, 90(5), 2555-2591. diff --git a/docs/index.rst b/docs/index.rst index f1922a1f..4f1435d4 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -79,6 +79,8 @@ Quick Links tutorials/17_brand_awareness_survey tutorials/18_geo_experiments + tutorials/19_dcdh_marketing_pulse + tutorials/20_had_brand_campaign .. toctree:: :maxdepth: 1 diff --git a/docs/tutorials/18_geo_experiments.ipynb b/docs/tutorials/18_geo_experiments.ipynb index 3a660470..1be2e26d 100644 --- a/docs/tutorials/18_geo_experiments.ipynb +++ b/docs/tutorials/18_geo_experiments.ipynb @@ -40,13 +40,7 @@ "cell_type": "markdown", "id": "t18-cell-005", "metadata": {}, - "source": [ - "**Why diff-diff.** The diff-diff library implements Synthetic Difference-in-Differences following [Arkhangelsky et al. (2021)](https://www.aeaweb.org/articles?id=10.1257/aer.20190159) - both the unit weights and the time weights, the placebo standard error procedure from the paper, and full panel-data interpretability. Implementation details and any documented deviations from the R `synthdid` reference are tracked in [`docs/methodology/REGISTRY.md`](../methodology/REGISTRY.html).\n", - "\n", - "This tutorial sits in SDiD's documented sweet spot: a small number of treated markets in a larger pool of donor controls, where basic DiD's averaging doesn't help and you need a counterfactual built specifically for your treated markets. The library's [practitioner decision tree](../practitioner_decision_tree.html#few-test-markets) puts SyntheticDiD on the \"Few Test Markets\" branch for exactly this reason.\n", - "\n", - "If you've been using GeoLift, CausalImpact, or rolling your own synthetic control in pandas, this tutorial gives you the canonical SDiD implementation in Python with the diagnostics, inference, and stakeholder packaging in one place." - ] + "source": "**Why diff-diff.** The diff-diff library implements Synthetic Difference-in-Differences following [Arkhangelsky et al. (2021)](https://www.aeaweb.org/articles?id=10.1257/aer.20190159) - both the unit weights and the time weights, the placebo standard error procedure from the paper, and full panel-data interpretability. Implementation details and any documented deviations from the R `synthdid` reference are tracked in `docs/methodology/REGISTRY.md`.\n\nThis tutorial sits in SDiD's documented sweet spot: a small number of treated markets in a larger pool of donor controls, where basic DiD's averaging doesn't help and you need a counterfactual built specifically for your treated markets. The library's [practitioner decision tree](../practitioner_decision_tree.rst) puts SyntheticDiD on the \"Few Test Markets\" branch for exactly this reason.\n\nIf you've been using GeoLift, CausalImpact, or rolling your own synthetic control in pandas, this tutorial gives you the canonical SDiD implementation in Python with the diagnostics, inference, and stakeholder packaging in one place." }, { "cell_type": "code", @@ -438,16 +432,7 @@ "cell_type": "markdown", "id": "t18-cell-015", "metadata": {}, - "source": [ - "Synthetic Difference-in-Differences finds two sets of weights:\n", - "\n", - "1. **Unit weights** ($\\omega_j$): a weighted blend of control markets whose pre-period trajectory matches the treated markets' pre-period trajectory.\n", - "2. **Time weights** ($\\lambda_t$): a weighting of pre-treatment periods that emphasizes the baseline weeks most informative for the comparison.\n", - "\n", - "The ATT estimator combines both: take the time-weighted average of (treated mean minus unit-weighted control mean), then subtract the same quantity computed in the pre-period. The unit weights make the synthetic control match the treated group; the time weights make the comparison robust to pre-treatment level differences.\n", - "\n", - "This is the method introduced in [Arkhangelsky, Athey, Hirshberg, Imbens, & Wager (2021)](https://www.aeaweb.org/articles?id=10.1257/aer.20190159). Algorithmic details and any documented deviations from the R `synthdid` reference live in [`docs/methodology/REGISTRY.md`](../methodology/REGISTRY.html)." - ] + "source": "Synthetic Difference-in-Differences finds two sets of weights:\n\n1. **Unit weights** ($\\omega_j$): a weighted blend of control markets whose pre-period trajectory matches the treated markets' pre-period trajectory.\n2. **Time weights** ($\\lambda_t$): a weighting of pre-treatment periods that emphasizes the baseline weeks most informative for the comparison.\n\nThe ATT estimator combines both: take the time-weighted average of (treated mean minus unit-weighted control mean), then subtract the same quantity computed in the pre-period. The unit weights make the synthetic control match the treated group; the time weights make the comparison robust to pre-treatment level differences.\n\nThis is the method introduced in [Arkhangelsky, Athey, Hirshberg, Imbens, & Wager (2021)](https://www.aeaweb.org/articles?id=10.1257/aer.20190159). Algorithmic details and any documented deviations from the R `synthdid` reference live in `docs/methodology/REGISTRY.md`." }, { "cell_type": "code", diff --git a/docs/tutorials/19_dcdh_marketing_pulse.ipynb b/docs/tutorials/19_dcdh_marketing_pulse.ipynb index f6e37fb0..37d1363e 100644 --- a/docs/tutorials/19_dcdh_marketing_pulse.ipynb +++ b/docs/tutorials/19_dcdh_marketing_pulse.ipynb @@ -14,15 +14,7 @@ "cell_type": "markdown", "id": "t19-cell-002", "metadata": {}, - "source": [ - "## 1. The Marketing Pulse Problem\n", - "\n", - "Your team runs paid-promo pulses across 60 markets. Some markets ran the promo at the start of the quarter and turned it off as the campaign budget rolled to the next geo (leavers); others started untreated and switched the promo on at some point during the quarter (joiners). Leadership wants the average lift on weekly checkout sessions while the promo was on.\n", - "\n", - "**Why dCDH.** This panel has *reversible* (non-absorbing) treatment in the dCDH sense: across the panel, the promo turns on in some markets and off in others - both directions appear in the same dataset. Every other modern staggered-DiD estimator in diff-diff (Callaway-Sant'Anna, Sun-Abraham, Wooldridge ETWFE, ImputationDiD, TwoStageDiD, EfficientDiD) assumes treatment is absorbing: once treated, always treated. They simply don't apply to a panel that contains leavers. dCDH does, following [de Chaisemartin & D'Haultfoeuille (2020)](https://www.aeaweb.org/articles?id=10.1257/aer.20181169) and the [dynamic companion paper](https://www.nber.org/papers/w29873).\n", - "\n", - "**Scope of this tutorial.** Each market in our panel switches *at most once* during the quarter (the dCDH paper's Assumption 5, which the default analytical SE path requires). So a market is either a stable-untreated unit, a joiner that turns the promo on exactly once, a leaver that turns it off exactly once, or a stable-treated unit. dCDH does support multi-switch within-market paths (e.g., on-off-on cycles) via `drop_larger_lower=False` plus `by_path=k` for per-path effects, but that's a separate scope - see the extensions section at the end. Implementation details and any documented deviations from R's `did_multiplegt_dyn` reference live in [`docs/methodology/REGISTRY.md`](../methodology/REGISTRY.html)." - ] + "source": "## 1. The Marketing Pulse Problem\n\nYour team runs paid-promo pulses across 60 markets. Some markets ran the promo at the start of the quarter and turned it off as the campaign budget rolled to the next geo (leavers); others started untreated and switched the promo on at some point during the quarter (joiners). Leadership wants the average lift on weekly checkout sessions while the promo was on.\n\n**Why dCDH.** This panel has *reversible* (non-absorbing) treatment in the dCDH sense: across the panel, the promo turns on in some markets and off in others - both directions appear in the same dataset. Every other modern staggered-DiD estimator in diff-diff (Callaway-Sant'Anna, Sun-Abraham, Wooldridge ETWFE, ImputationDiD, TwoStageDiD, EfficientDiD) assumes treatment is absorbing: once treated, always treated. They simply don't apply to a panel that contains leavers. dCDH does, following [de Chaisemartin & D'Haultfoeuille (2020)](https://www.aeaweb.org/articles?id=10.1257/aer.20181169) and the [dynamic companion paper](https://www.nber.org/papers/w29873).\n\n**Scope of this tutorial.** Each market in our panel switches *at most once* during the quarter (the dCDH paper's Assumption 5, which the default analytical SE path requires). So a market is either a stable-untreated unit, a joiner that turns the promo on exactly once, a leaver that turns it off exactly once, or a stable-treated unit. dCDH does support multi-switch within-market paths (e.g., on-off-on cycles) via `drop_larger_lower=False` plus `by_path=k` for per-path effects, but that's a separate scope - see the extensions section at the end. Implementation details and any documented deviations from R's `did_multiplegt_dyn` reference live in `docs/methodology/REGISTRY.md`." }, { "cell_type": "code", @@ -46,16 +38,7 @@ "cell_type": "markdown", "id": "t19-cell-004", "metadata": {}, - "source": [ - "## 2. The Data\n", - "\n", - "We'll simulate a panel that mirrors a marketing pulse campaign:\n", - "\n", - "- **60 markets**, each observed for **8 weeks**\n", - "- Some markets started the quarter with the promo on and switched it off (leavers); others started untreated and switched the promo on (joiners). Each market switches exactly once during the panel - the [A5 single-switch contract](../methodology/REGISTRY.html) the analytical SE is derived under.\n", - "- Outcome: weekly checkout sessions per market, baseline ~110\n", - "- True treatment effect: **+12 sessions per market-week** when the promo is on, with mild cell-level heterogeneity around that average." - ] + "source": "## 2. The Data\n\nWe'll simulate a panel that mirrors a marketing pulse campaign:\n\n- **60 markets**, each observed for **8 weeks**\n- Some markets started the quarter with the promo on and switched it off (leavers); others started untreated and switched the promo on (joiners). Each market switches exactly once during the panel - the A5 single-switch contract (see `docs/methodology/REGISTRY.md`) the analytical SE is derived under.\n- Outcome: weekly checkout sessions per market, baseline ~110\n- True treatment effect: **+12 sessions per market-week** when the promo is on, with mild cell-level heterogeneity around that average." }, { "cell_type": "code", @@ -101,8 +84,8 @@ "outputs": [], "source": [ "# Switcher-type counts. With pattern=\"single_switch\" every market\n", - "# switches exactly once, so we have only joiners (0 \u2192 1) and\n", - "# leavers (1 \u2192 0); no never-treated or always-treated markets by\n", + "# switches exactly once, so we have only joiners (0 → 1) and\n", + "# leavers (1 → 0); no never-treated or always-treated markets by\n", "# construction.\n", "df.groupby(\"switcher_type\").size()" ] @@ -146,8 +129,8 @@ "\n", "`DID_M` is the headline dCDH estimator: the average across periods of two pieces:\n", "\n", - "- **DID_+** (joiners): markets switching `0 \u2192 1` between consecutive periods, compared to *contemporaneously untreated* control cells.\n", - "- **DID_-** (leavers): markets switching `1 \u2192 0`, compared to *contemporaneously treated* control cells.\n", + "- **DID_+** (joiners): markets switching `0 → 1` between consecutive periods, compared to *contemporaneously untreated* control cells.\n", + "- **DID_-** (leavers): markets switching `1 → 0`, compared to *contemporaneously treated* control cells.\n", "\n", "Both pieces use only cells whose treatment status was stable across the two periods being compared - so no treated unit is ever used as a control for another treated unit. The library reports DID_+, DID_-, and their average DID_M separately, so you can see if the two halves agree." ] @@ -205,7 +188,7 @@ "id": "t19-cell-013", "metadata": {}, "source": [ - "**Reading joiners vs leavers.** Both halves should produce a positive lift in a healthy marketing-pulse design - turning the promo on increases sessions, and turning it off decreases them. Here DID_+ \u2248 12.1 (38 joiner cells) and DID_- \u2248 11.9 (22 leaver cells): both substantially positive, both within sampling uncertainty of each other and of the true effect of 12. If they had disagreed by sign or by a large margin (say one was 5 and the other was 20), that would be a heterogeneity signal worth investigating before reporting one number to leadership." + "**Reading joiners vs leavers.** Both halves should produce a positive lift in a healthy marketing-pulse design - turning the promo on increases sessions, and turning it off decreases them. Here DID_+ ≈ 12.1 (38 joiner cells) and DID_- ≈ 11.9 (22 leaver cells): both substantially positive, both within sampling uncertainty of each other and of the true effect of 12. If they had disagreed by sign or by a large margin (say one was 5 and the other was 20), that would be a heterogeneity signal worth investigating before reporting one number to leadership." ] }, { @@ -351,26 +334,14 @@ "id": "t19-cell-020", "metadata": {}, "source": [ - "Adapt this template for your own campaign by swapping in your numbers from `results.summary()`, your own market and switcher counts, your own validity diagnostics, and your own business translation. The pattern - **headline \u2192 sample size and design \u2192 validity evidence \u2192 business interpretation \u2192 practical significance** - is the part to keep." + "Adapt this template for your own campaign by swapping in your numbers from `results.summary()`, your own market and switcher counts, your own validity diagnostics, and your own business translation. The pattern - **headline → sample size and design → validity evidence → business interpretation → practical significance** - is the part to keep." ] }, { "cell_type": "markdown", "id": "t19-cell-021", "metadata": {}, - "source": [ - "## 6. Extensions and Where to Go Next\n", - "\n", - "This tutorial covered the core dCDH workflow on a reversible panel: `DID_M` with the joiners/leavers split, plus the `L_max` multi-horizon event study with multiplier bootstrap. The library also supports several extensions we did not demonstrate here:\n", - "\n", - "- **Per-trajectory disaggregation** (`by_path=k`): when joiners and leavers each follow a few common treatment paths (e.g., on-off-on vs on-on-off), `by_path=k` reports the event study separately for the top-k most common observed paths. Useful for pulse campaigns where the schedule varies across markets.\n", - "- **Group-specific linear trends** (`trends_linear=True`): allows each market to have its own pre-treatment slope, absorbing differential trends.\n", - "- **State-set-specific trends** (`trends_nonparam=...`): allows non-parametric trends shared within state-set strata.\n", - "- **HonestDiD sensitivity analysis** (`honest_did=True`): Rambachan-Roth (2023) bounds on the post-treatment effects under controlled parallel-trends violations, computed on the placebo event-study surface.\n", - "- **Survey-design support** (`survey_design=...`): Taylor-series linearization with sampling weights, strata, PSU, and FPC.\n", - "\n", - "See [`docs/api/chaisemartin_dhaultfoeuille.rst`](../api/chaisemartin_dhaultfoeuille.html) for the full parameter reference and [`docs/methodology/REGISTRY.md`](../methodology/REGISTRY.html) for the methodology contract on each surface." - ] + "source": "## 6. Extensions and Where to Go Next\n\nThis tutorial covered the core dCDH workflow on a reversible panel: `DID_M` with the joiners/leavers split, plus the `L_max` multi-horizon event study with multiplier bootstrap. The library also supports several extensions we did not demonstrate here:\n\n- **Per-trajectory disaggregation** (`by_path=k`): when joiners and leavers each follow a few common treatment paths (e.g., on-off-on vs on-on-off), `by_path=k` reports the event study separately for the top-k most common observed paths. Useful for pulse campaigns where the schedule varies across markets.\n- **Group-specific linear trends** (`trends_linear=True`): allows each market to have its own pre-treatment slope, absorbing differential trends.\n- **State-set-specific trends** (`trends_nonparam=...`): allows non-parametric trends shared within state-set strata.\n- **HonestDiD sensitivity analysis** (`honest_did=True`): Rambachan-Roth (2023) bounds on the post-treatment effects under controlled parallel-trends violations, computed on the placebo event-study surface.\n- **Survey-design support** (`survey_design=...`): Taylor-series linearization with sampling weights, strata, PSU, and FPC.\n\nSee [`docs/api/chaisemartin_dhaultfoeuille.rst`](../api/chaisemartin_dhaultfoeuille.html) for the full parameter reference and `docs/methodology/REGISTRY.md` for the methodology contract on each surface." }, { "cell_type": "markdown", @@ -416,4 +387,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} +} \ No newline at end of file diff --git a/tests/test_doc_snippets.py b/tests/test_doc_snippets.py index e03ced49..c9879140 100644 --- a/tests/test_doc_snippets.py +++ b/tests/test_doc_snippets.py @@ -358,7 +358,7 @@ def _restore_datasets_module(): "api_bacon:block2", "api_visualization:block2", "api_visualization:block3", - "api_visualization:block8", + "api_visualization:block9", "python_comparison:block5", "quickstart:block3", "quickstart:block9",