Skip to content

Commit 48622a3

Browse files
igerberclaude
andcommitted
Document within_transform convergence warning for all affected estimators
AI review surfaced that the shared within_transform weighted path also affects WooldridgeDiD and survey-weighted TwoWayFixedEffects, SunAbraham, and BaconDecomposition, but the prior notes only covered ImputationDiD and TwoStageDiD. Adds one shared note under 'Absorbed Fixed Effects with Survey Weights' covering the cross-estimator behavior, plus a per-estimator note in the WooldridgeDiD section (since its path always routes through the weighted helper, regardless of whether survey weights are provided). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent ef388a0 commit 48622a3

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

docs/methodology/REGISTRY.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1301,6 +1301,7 @@ The saturated ETWFE regression includes:
13011301

13021302
The interaction coefficient `δ_{g,t}` identifies `ATT(g, t)` under parallel trends.
13031303
- **Note:** OLS path uses iterative alternating-projection within-transformation (uniform weights) for exact FE absorption on both balanced and unbalanced panels. One-pass demeaning (`y - ȳ_i - ȳ_t + ȳ`) is only exact for balanced panels.
1304+
- **Note:** The weighted within-transformation (`utils.within_transform` with `weights`) is invoked on every WooldridgeDiD fit (survey weights when provided, `np.ones` otherwise) and emits a `UserWarning` on non-convergence per the shared convention documented under *Absorbed Fixed Effects with Survey Weights*.
13041305

13051306
*Nonlinear extensions (Wooldridge 2023):*
13061307

@@ -2521,6 +2522,15 @@ unequal selection probabilities).
25212522
are rejected (single-pass sequential demeaning is not the correct weighted
25222523
FWL projection for N > 1 dimensions; iterative alternating projections are
25232524
needed but not yet implemented).
2525+
- **Note:** The shared weighted within-transformation path
2526+
(`diff_diff.utils.within_transform`, hit whenever `weights is not None`) emits
2527+
a `UserWarning` per call when any transformed variable exits the
2528+
alternating-projection loop without reaching `tol` within `max_iter`.
2529+
Defaults: `max_iter=100`, `tol=1e-8`. This signal applies uniformly across
2530+
TwoWayFixedEffects, SunAbraham, BaconDecomposition, and WooldridgeDiD whenever
2531+
they route through this helper (survey-weighted or otherwise). Silent return
2532+
of the current iterate was classified as a silent failure under the Phase 2
2533+
audit and replaced with this explicit signal.
25242534

25252535
### Survey Degrees of Freedom
25262536

0 commit comments

Comments
 (0)