diff-diff 2.1.0__tar.gz → 2.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {diff_diff-2.1.0 → diff_diff-2.1.2}/PKG-INFO +1 -1
- {diff_diff-2.1.0 → diff_diff-2.1.2}/diff_diff/__init__.py +11 -1
- {diff_diff-2.1.0 → diff_diff-2.1.2}/diff_diff/_backend.py +16 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/diff_diff/prep.py +655 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/diff_diff/pretrends.py +104 -11
- {diff_diff-2.1.0 → diff_diff-2.1.2}/diff_diff/staggered.py +4 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/diff_diff/trop.py +516 -161
- {diff_diff-2.1.0 → diff_diff-2.1.2}/pyproject.toml +1 -1
- {diff_diff-2.1.0 → diff_diff-2.1.2}/rust/Cargo.lock +6 -81
- {diff_diff-2.1.0 → diff_diff-2.1.2}/rust/Cargo.toml +1 -1
- {diff_diff-2.1.0 → diff_diff-2.1.2}/rust/src/lib.rs +6 -0
- diff_diff-2.1.2/rust/src/trop.rs +861 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/README.md +0 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/diff_diff/bacon.py +0 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/diff_diff/datasets.py +0 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/diff_diff/diagnostics.py +0 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/diff_diff/estimators.py +0 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/diff_diff/honest_did.py +0 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/diff_diff/linalg.py +0 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/diff_diff/power.py +0 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/diff_diff/results.py +0 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/diff_diff/sun_abraham.py +0 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/diff_diff/synthetic_did.py +0 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/diff_diff/triple_diff.py +0 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/diff_diff/twfe.py +0 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/diff_diff/utils.py +0 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/diff_diff/visualization.py +0 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/rust/src/bootstrap.rs +0 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/rust/src/linalg.rs +0 -0
- {diff_diff-2.1.0 → diff_diff-2.1.2}/rust/src/weights.rs +0 -0
|
@@ -71,6 +71,11 @@ from diff_diff.prep import (
|
|
|
71
71
|
balance_panel,
|
|
72
72
|
create_event_time,
|
|
73
73
|
generate_did_data,
|
|
74
|
+
generate_ddd_data,
|
|
75
|
+
generate_event_study_data,
|
|
76
|
+
generate_factor_data,
|
|
77
|
+
generate_panel_data,
|
|
78
|
+
generate_staggered_data,
|
|
74
79
|
make_post_indicator,
|
|
75
80
|
make_treatment_indicator,
|
|
76
81
|
rank_control_units,
|
|
@@ -131,7 +136,7 @@ from diff_diff.datasets import (
|
|
|
131
136
|
load_mpdta,
|
|
132
137
|
)
|
|
133
138
|
|
|
134
|
-
__version__ = "2.1.
|
|
139
|
+
__version__ = "2.1.2"
|
|
135
140
|
__all__ = [
|
|
136
141
|
# Estimators
|
|
137
142
|
"DifferenceInDifferences",
|
|
@@ -190,6 +195,11 @@ __all__ = [
|
|
|
190
195
|
"validate_did_data",
|
|
191
196
|
"summarize_did_data",
|
|
192
197
|
"generate_did_data",
|
|
198
|
+
"generate_staggered_data",
|
|
199
|
+
"generate_factor_data",
|
|
200
|
+
"generate_ddd_data",
|
|
201
|
+
"generate_panel_data",
|
|
202
|
+
"generate_event_study_data",
|
|
193
203
|
"create_event_time",
|
|
194
204
|
"aggregate_to_cohorts",
|
|
195
205
|
"rank_control_units",
|
|
@@ -23,6 +23,10 @@ try:
|
|
|
23
23
|
project_simplex as _rust_project_simplex,
|
|
24
24
|
solve_ols as _rust_solve_ols,
|
|
25
25
|
compute_robust_vcov as _rust_compute_robust_vcov,
|
|
26
|
+
# TROP estimator acceleration
|
|
27
|
+
compute_unit_distance_matrix as _rust_unit_distance_matrix,
|
|
28
|
+
loocv_grid_search as _rust_loocv_grid_search,
|
|
29
|
+
bootstrap_trop_variance as _rust_bootstrap_trop_variance,
|
|
26
30
|
)
|
|
27
31
|
_rust_available = True
|
|
28
32
|
except ImportError:
|
|
@@ -32,6 +36,10 @@ except ImportError:
|
|
|
32
36
|
_rust_project_simplex = None
|
|
33
37
|
_rust_solve_ols = None
|
|
34
38
|
_rust_compute_robust_vcov = None
|
|
39
|
+
# TROP estimator acceleration
|
|
40
|
+
_rust_unit_distance_matrix = None
|
|
41
|
+
_rust_loocv_grid_search = None
|
|
42
|
+
_rust_bootstrap_trop_variance = None
|
|
35
43
|
|
|
36
44
|
# Determine final backend based on environment variable and availability
|
|
37
45
|
if _backend_env == 'python':
|
|
@@ -42,6 +50,10 @@ if _backend_env == 'python':
|
|
|
42
50
|
_rust_project_simplex = None
|
|
43
51
|
_rust_solve_ols = None
|
|
44
52
|
_rust_compute_robust_vcov = None
|
|
53
|
+
# TROP estimator acceleration
|
|
54
|
+
_rust_unit_distance_matrix = None
|
|
55
|
+
_rust_loocv_grid_search = None
|
|
56
|
+
_rust_bootstrap_trop_variance = None
|
|
45
57
|
elif _backend_env == 'rust':
|
|
46
58
|
# Force Rust mode - fail if not available
|
|
47
59
|
if not _rust_available:
|
|
@@ -61,4 +73,8 @@ __all__ = [
|
|
|
61
73
|
'_rust_project_simplex',
|
|
62
74
|
'_rust_solve_ols',
|
|
63
75
|
'_rust_compute_robust_vcov',
|
|
76
|
+
# TROP estimator acceleration
|
|
77
|
+
'_rust_unit_distance_matrix',
|
|
78
|
+
'_rust_loocv_grid_search',
|
|
79
|
+
'_rust_bootstrap_trop_variance',
|
|
64
80
|
]
|