Results Classes
Dataclass containers for estimation results from various estimators.
DiDResults
Results from basic DifferenceInDifferences estimation.
- class diff_diff.DiDResults[source]
Bases:
objectResults from a Difference-in-Differences estimation.
Provides easy access to coefficients, standard errors, confidence intervals, and summary statistics in a Pythonic way.
Attributes
Check if the ATT is statistically significant at the alpha level.
Return significance stars based on p-value.
Methods
summary([alpha])Generate a formatted summary of the estimation results.
to_dict()Convert results to a dictionary.
Convert results to a pandas DataFrame.
- print_summary(alpha=None)[source]
Print the summary to stdout.
- Parameters:
alpha (float | None)
- Return type:
None
- to_dict()[source]
Convert results to a dictionary.
- Returns:
Dictionary containing all estimation results.
- Return type:
Dict[str, Any]
- to_dataframe()[source]
Convert results to a pandas DataFrame.
- Returns:
DataFrame with estimation results.
- Return type:
pd.DataFrame
- __init__(att, se, t_stat, p_value, conf_int, n_obs, n_treated, n_control, alpha=0.05, coefficients=None, vcov=None, residuals=None, fitted_values=None, r_squared=None, inference_method='analytical', n_bootstrap=None, n_clusters=None, bootstrap_distribution=None)
- Parameters:
att (float)
se (float)
t_stat (float)
p_value (float)
n_obs (int)
n_treated (int)
n_control (int)
alpha (float)
vcov (ndarray | None)
residuals (ndarray | None)
fitted_values (ndarray | None)
r_squared (float | None)
inference_method (str)
n_bootstrap (int | None)
n_clusters (int | None)
bootstrap_distribution (ndarray | None)
- Return type:
None
MultiPeriodDiDResults
Results from MultiPeriodDiD event study estimation.
- class diff_diff.MultiPeriodDiDResults[source]
Bases:
objectResults from a Multi-Period Difference-in-Differences estimation.
Provides access to period-specific treatment effects as well as an aggregate average treatment effect.
- period_effects
Dictionary mapping period identifiers to their PeriodEffect objects. Contains all estimated period effects (pre and post, excluding the reference period which is normalized to zero).
- Type:
dict[any, PeriodEffect]
- reference_period
The reference (omitted) period. Its coefficient is zero by construction and it is excluded from
period_effects.- Type:
any, optional
- interaction_indices
Mapping from period identifier to column index in the full variance-covariance matrix. Used internally for sub-VCV extraction (e.g., by HonestDiD and PreTrendsPower).
- Type:
dict, optional
Attributes
attPre-period effects only (for parallel trends assessment).
Post-period effects only.
- period_effects: Dict[Any, PeriodEffect]
- property pre_period_effects: Dict[Any, PeriodEffect]
Pre-period effects only (for parallel trends assessment).
- property post_period_effects: Dict[Any, PeriodEffect]
Post-period effects only.
- print_summary(alpha=None)[source]
Print the summary to stdout.
- Parameters:
alpha (float | None)
- Return type:
None
- get_effect(period)[source]
Get the treatment effect for a specific period.
- Parameters:
period (any) – The period identifier.
- Returns:
The treatment effect for the specified period.
- Return type:
- Raises:
KeyError – If the period is not found in post-treatment periods.
- to_dict()[source]
Convert results to a dictionary.
- Returns:
Dictionary containing all estimation results.
- Return type:
Dict[str, Any]
- to_dataframe()[source]
Convert period-specific effects to a pandas DataFrame.
- Returns:
DataFrame with one row per estimated period (pre and post).
- Return type:
pd.DataFrame
- property is_significant: bool
Check if the average ATT is statistically significant at the alpha level.
- __init__(period_effects, avg_att, avg_se, avg_t_stat, avg_p_value, avg_conf_int, n_obs, n_treated, n_control, pre_periods, post_periods, alpha=0.05, coefficients=None, vcov=None, residuals=None, fitted_values=None, r_squared=None, reference_period=None, interaction_indices=None)
- Parameters:
period_effects (Dict[Any, PeriodEffect])
avg_att (float)
avg_se (float)
avg_t_stat (float)
avg_p_value (float)
n_obs (int)
n_treated (int)
n_control (int)
alpha (float)
vcov (ndarray | None)
residuals (ndarray | None)
fitted_values (ndarray | None)
r_squared (float | None)
reference_period (Any | None)
- Return type:
None
PeriodEffect
Container for a single period’s treatment effect in event studies.
SyntheticDiDResults
Results from SyntheticDiD estimation.
- class diff_diff.SyntheticDiDResults[source]
Bases:
objectResults from a Synthetic Difference-in-Differences estimation.
Combines DiD with synthetic control by re-weighting control units to match pre-treatment trends of treated units.
Attributes
- print_summary(alpha=None)[source]
Print the summary to stdout.
- Parameters:
alpha (float | None)
- Return type:
None
- to_dict()[source]
Convert results to a dictionary.
- Returns:
Dictionary containing all estimation results.
- Return type:
Dict[str, Any]
- to_dataframe()[source]
Convert results to a pandas DataFrame.
- Returns:
DataFrame with estimation results.
- Return type:
pd.DataFrame
- get_unit_weights_df()[source]
Get unit weights as a pandas DataFrame.
- Returns:
DataFrame with unit IDs and their weights.
- Return type:
pd.DataFrame
- get_time_weights_df()[source]
Get time weights as a pandas DataFrame.
- Returns:
DataFrame with time periods and their weights.
- Return type:
pd.DataFrame
- __init__(att, se, t_stat, p_value, conf_int, n_obs, n_treated, n_control, unit_weights, time_weights, pre_periods, post_periods, alpha=0.05, variance_method='placebo', noise_level=None, zeta_omega=None, zeta_lambda=None, pre_treatment_fit=None, placebo_effects=None, n_bootstrap=None)
- Parameters:
att (float)
se (float)
t_stat (float)
p_value (float)
n_obs (int)
n_treated (int)
n_control (int)
alpha (float)
variance_method (str)
noise_level (float | None)
zeta_omega (float | None)
zeta_lambda (float | None)
pre_treatment_fit (float | None)
placebo_effects (ndarray | None)
n_bootstrap (int | None)
- Return type:
None