-
Notifications
You must be signed in to change notification settings - Fork 1
fix: measure leftover-map distances on two Gabriel axes (v2.12.13) #508
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
seonghobae
merged 6 commits into
worktree-fix-frontend-build-break
from
feat/leftover-map-two-dimensional-distance-v21213
Aug 23, 2026
Merged
Changes from all commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
e1d0363
fix: measure leftover-map distances on two Gabriel axes (v2.12.13)
seonghobae 27fcccb
docs(adr): wrap ADR 0119 leftover-map sentence
seonghobae 5e1474f
fix(frontend): repair the inherited login/admin-panel build break
seonghobae f6b7dc6
Revert "fix(frontend): repair the inherited login/admin-panel build b…
seonghobae c9333bb
test(science): close leftover-map coverage edges
seonghobae 75565bf
merge: pull in App.tsx AdminPanel/oidcReturnUrl build fix from base
seonghobae File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| ## 2.12.13 — Two-dimensional leftover-map distances | ||
|
|
||
| - Measure closest and farthest leftover post–criterion distances on | ||
| the two-axis Jeon / Gabriel interaction map (ADR 0119). Hidden SVD | ||
| axes after the second no longer change `leftover_distance`. Rank-0 | ||
| and rank-1 maps still pad unused axes with zero. After `make seed`, | ||
| leftover pairs above the member list still open that post. Never | ||
| invent a leftover score or a theta. |
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,53 @@ | ||
| # ADR 0119 — Measure leftover-map distances on two Gabriel axes | ||
|
|
||
| **Decision status:** Accepted | ||
| **Date:** 2026-08-24 | ||
|
|
||
| Amends [ADR 0048](0048-persist-lsirm-leftover-pairs.md). | ||
|
|
||
| ## Context | ||
|
|
||
| ADR 0048 persists closest and farthest leftover post–criterion pairs | ||
| after IRT main effects. Jeon et al. (2021, eq. 3) place the leftover | ||
| interaction `−γ‖ξ_p − ζ_i‖` on a two-dimensional person–item map. | ||
| Gabriel (1971) supplies those coordinates from a residual biplot. | ||
|
|
||
| `leftover_pairs.py` previously measured Euclidean distance on every | ||
| kept SVD axis. A rank-3 residual therefore reported a leftover | ||
| distance that a buyer cannot read on the 2D interaction map, and | ||
| that would disagree with stored two-axis coordinates if those later | ||
| persist. Rank-1 seed fixtures still passed because unused axes were | ||
| absent, not because the estimator was two-dimensional. | ||
|
|
||
| ## Decision | ||
|
|
||
| Closest and farthest leftover distances are Euclidean on **exactly | ||
| two** leftover-map axes. `_leftover_map_positions` may still return | ||
| the full Gabriel factorization; `_pad_map_axes` pads a rank-0 or | ||
| rank-1 map with zeros and truncates hidden axes after the second. | ||
| Missing cells stay out of the factorization. Rank-0 residuals still | ||
| emit a stable pair with distance zero. Do not invent a leftover | ||
| score. Do not invent a theta. | ||
|
|
||
| This slice does not persist map coordinates or change leftover UI. | ||
| Those remain ADR 0048 / 0049, and persist-map tables stay on their | ||
| own PR stack. | ||
|
|
||
| ## Consequences | ||
|
|
||
| `leftover_distance` on `report_leftover_pair` matches the 2D Jeon | ||
| map. After `make seed`, closest and farthest pairs above the member | ||
| list still open that post. A rank-3 synthetic residual proves the | ||
| stored distance equals the two-axis hypot and is not the full-rank | ||
| norm. | ||
|
|
||
| ## References | ||
|
|
||
| Gabriel, K. R. (1971). The biplot graphic display of matrices with | ||
| application to principal component analysis. *Biometrika, 58*(3), | ||
| 453–467. https://doi.org/10.1093/biomet/58.3.453 | ||
|
|
||
| Jeon, M., Jin, I. H., Schweinberger, M., & Baugh, S. (2021). Mapping | ||
| unobserved item–respondent interactions: A latent space item response | ||
| model with interaction map. *Psychometrika, 86*(2), 378–403. | ||
| https://doi.org/10.1007/s11336-021-09762-5 |
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
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
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
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
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.