Constrain certified cross-term gauge directions out of the solve space (#297) - #312
Open
schroedk wants to merge 1 commit into
Open
Constrain certified cross-term gauge directions out of the solve space (#297)#312schroedk wants to merge 1 commit into
schroedk wants to merge 1 commit into
Conversation
schroedk
force-pushed
the
feat/297-gauge-constraint
branch
from
August 25, 2026 13:15
4b97d1c to
14f958d
Compare
…the solve space (#297) The collinearity screen proposes directions; a backward-error test on the orthonormal basis certifies which are null; certified rows leave the solve space via P M⁻¹ P. NullSpace, owned by SlopeReparam, is the one description of what the solve excludes (whitening's drops and the certified rows), and each warning records its AliasVerdict. The LSMR audit also checks the plain-metric ‖Aᵀr‖ so a singular M⁻¹ cannot hide a component.
schroedk
force-pushed
the
feat/297-gauge-constraint
branch
from
August 25, 2026 14:00
14f958d to
130c848
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes part of #297 (goals 1 and 4; see below for 2 and 3). Stacked on #316.
A slope covariate another term reproduces per level puts an exact null in the design. The collinearity screen already finds it; here its warnings become proposals. After whitening,
SlopeReparambuilds aNullSpace— the one description of what the solve excludes: whitening's dropped columns plus the cross-term rows. Each proposal's direction is the per-level fitAᵀc / diag(AᵀA)on its own term minus the fit on the other, net of the constant both share; the proposals are orthonormalized (pivoted, so a duplicate is spent against the row it duplicates) and each rownis certified by the backward error‖An‖ ≤ 1e-11·√(nᵀdiag(AᵀA)n). Certified rows are projected out of the preconditioner apply (P M⁻¹ P); every warning records anAliasVerdictsaying whether its direction was constrained or kept.The LSMR audit measured
Aᵀrin the preconditioner's metric, which cannot see a component inker(M⁻¹)— exactly what the projector creates — so it now also requires the plain‖Aᵀr‖to have dropped.Measured, 200k worker/firm/year panel, slope covariate = the year index, spectral floor off:
Inert where the screen is silent (bit-identical), and declined where the direction carries information (
near_collinear: λmax 1.2e8 kept, honest at ridge 0). The verdict is independent of the preconditioner and of a uniform weight scale.Not in this PR:
Groundingon global energy): after the constraint, every remaining grounded block with a large response carries a real spectrum, so the local-surplus predicate is not load-bearing in any measured cell.None.