Skip to content

fix: correct multi-factor IPCA solver - #12

Merged
stefan-jansen merged 2 commits into
mainfrom
fix/ipca-als-convergence
Jul 21, 2026
Merged

fix: correct multi-factor IPCA solver#12
stefan-jansen merged 2 commits into
mainfrom
fix/ipca-als-convergence

Conversation

@stefan-jansen

Copy link
Copy Markdown
Contributor

Summary

  • correct the multi-factor IPCA Gamma solve so vectorization and reshape use the same coefficient order
  • normalize the IPCA identification each ALS iteration and report rotation-invariant convergence diagnostics
  • raise the default iteration budget to 10,000 and add multi-factor regression coverage
  • prepare the 0.1.0a6 release

Impact

The previous implementation could permute coefficients when n_factors > 1. Existing one-factor recovery coverage could not detect this. Accepted IPCA predictions in four ML4T case studies will be regenerated after this release; PCA, CAE, SDF, and SAE paths are unaffected.

Verification

  • uv run ruff check src/ tests/
  • uv run ruff format --check src/ tests/
  • uv run ty check
  • uv run pytest tests/ -q (66 passed)
  • uv build

Copilot AI review requested due to automatic review settings July 21, 2026 09:30

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@stefan-jansen
stefan-jansen merged commit aa7b601 into main Jul 21, 2026
8 checks passed
@stefan-jansen
stefan-jansen deleted the fix/ipca-als-convergence branch July 21, 2026 09:38
stefan-jansen added a commit to stefan-jansen/machine-learning-for-trading that referenced this pull request Jul 27, 2026
The pre-existing >=0.1.0a6 pin already carried the fix for the
multi-factor (K>1) IPCA solver (PR ml4t/models#12), but the CI Docker
image was never rebuilt after that pin landed, so ml4t/ml4t:latest was
still running the pre-fix a4 solver. 0.1.0b0 is the current PyPI
release (beta readiness: docs, examples, additive exports, no core
solver changes since a6) and is what the next image rebuild should
pick up.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants