dfm-python 0.2.5__tar.gz → 0.2.6__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.
Files changed (37) hide show
  1. {dfm_python-0.2.5 → dfm_python-0.2.6}/PKG-INFO +13 -4
  2. {dfm_python-0.2.5 → dfm_python-0.2.6}/README.md +12 -3
  3. dfm_python-0.2.6/full_tutorial_example.ipynb +1503 -0
  4. {dfm_python-0.2.5 → dfm_python-0.2.6}/pyproject.toml +1 -1
  5. {dfm_python-0.2.5 → dfm_python-0.2.6}/src/dfm_python/__init__.py +1 -1
  6. {dfm_python-0.2.5 → dfm_python-0.2.6}/src/dfm_python/core/em.py +74 -10
  7. {dfm_python-0.2.5 → dfm_python-0.2.6}/src/dfm_python/core/numeric.py +17 -14
  8. dfm_python-0.2.6/src/test/test_stability.py +222 -0
  9. {dfm_python-0.2.5 → dfm_python-0.2.6}/.gitignore +0 -0
  10. {dfm_python-0.2.5 → dfm_python-0.2.6}/.python-version +0 -0
  11. {dfm_python-0.2.5 → dfm_python-0.2.6}/LICENSE +0 -0
  12. {dfm_python-0.2.5 → dfm_python-0.2.6}/MANIFEST.in +0 -0
  13. {dfm_python-0.2.5 → dfm_python-0.2.6}/config/blocks/default.yaml +0 -0
  14. {dfm_python-0.2.5 → dfm_python-0.2.6}/config/default.yaml +0 -0
  15. {dfm_python-0.2.5 → dfm_python-0.2.6}/config/series/default.yaml +0 -0
  16. {dfm_python-0.2.5 → dfm_python-0.2.6}/data/sample_data.csv +0 -0
  17. {dfm_python-0.2.5 → dfm_python-0.2.6}/data/sample_spec.csv +0 -0
  18. {dfm_python-0.2.5 → dfm_python-0.2.6}/src/dfm_python/api.py +0 -0
  19. {dfm_python-0.2.5 → dfm_python-0.2.6}/src/dfm_python/config.py +0 -0
  20. {dfm_python-0.2.5 → dfm_python-0.2.6}/src/dfm_python/config_sources.py +0 -0
  21. {dfm_python-0.2.5 → dfm_python-0.2.6}/src/dfm_python/core/__init__.py +0 -0
  22. {dfm_python-0.2.5 → dfm_python-0.2.6}/src/dfm_python/core/diagnostics.py +0 -0
  23. {dfm_python-0.2.5 → dfm_python-0.2.6}/src/dfm_python/core/helpers.py +0 -0
  24. {dfm_python-0.2.5 → dfm_python-0.2.6}/src/dfm_python/data.py +0 -0
  25. {dfm_python-0.2.5 → dfm_python-0.2.6}/src/dfm_python/dfm.py +0 -0
  26. {dfm_python-0.2.5 → dfm_python-0.2.6}/src/dfm_python/kalman.py +0 -0
  27. {dfm_python-0.2.5 → dfm_python-0.2.6}/src/dfm_python/news.py +0 -0
  28. {dfm_python-0.2.5 → dfm_python-0.2.6}/src/dfm_python/utils.py +0 -0
  29. {dfm_python-0.2.5 → dfm_python-0.2.6}/src/test/__init__.py +0 -0
  30. {dfm_python-0.2.5 → dfm_python-0.2.6}/src/test/test_api.py +0 -0
  31. {dfm_python-0.2.5 → dfm_python-0.2.6}/src/test/test_dfm.py +0 -0
  32. {dfm_python-0.2.5 → dfm_python-0.2.6}/src/test/test_factor.py +0 -0
  33. {dfm_python-0.2.5 → dfm_python-0.2.6}/src/test/test_kalman.py +0 -0
  34. {dfm_python-0.2.5 → dfm_python-0.2.6}/src/test/test_numeric.py +0 -0
  35. {dfm_python-0.2.5 → dfm_python-0.2.6}/tutorial/basic_tutorial.py +0 -0
  36. {dfm_python-0.2.5 → dfm_python-0.2.6}/tutorial/hydra_tutorial.py +0 -0
  37. {dfm_python-0.2.5 → dfm_python-0.2.6}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dfm-python
3
- Version: 0.2.5
3
+ Version: 0.2.6
4
4
  Summary: Dynamic Factor Model (DFM) estimation and nowcasting in Python
5
5
  Project-URL: Homepage, https://github.com/yourusername/dfm-python
6
6
  Project-URL: Documentation, https://github.com/yourusername/dfm-python#readme
@@ -709,12 +709,21 @@ Demonstrates:
709
709
 
710
710
  ## Project Status
711
711
 
712
- **Version**: 0.2.5
712
+ **Version**: 0.2.6
713
713
  **Status**: Stable and production-ready
714
714
  **Python**: 3.10+
715
715
  **PyPI**: https://pypi.org/project/dfm-python/
716
716
 
717
- ### Recent Improvements (v0.2.5)
717
+ ### Recent Improvements (v0.2.6)
718
+
719
+ - ✅ **Q matrix cap**: Factor innovation variances bounded above by 1.0 to prevent explosion
720
+ - ✅ **R matrix cap**: Observation error variances bounded above by 10.0 for standardized data
721
+ - ✅ **Improved C normalization**: C norm clipping prevents Q explosion during normalization
722
+ - ✅ **Enhanced initial values**: PCA loadings clipped to prevent extreme initial values
723
+ - ✅ **Bug fix**: Fixed `np.linalg.lu` error by using `np.linalg.slogdet` for determinant computation
724
+ - ✅ **Better stability**: Q and R caps ensure model convergence even with challenging data
725
+
726
+ ### Previous Improvements (v0.2.5)
718
727
 
719
728
  - ✅ **Q matrix floor**: Factor innovation variances bounded below by 0.01 to prevent scale issues
720
729
  - ✅ **C matrix normalization**: Clock-frequency factor loadings normalized (||C[:,j]|| = 1) for scale stability
@@ -749,7 +758,7 @@ If you use `dfm-python` in your research, please cite:
749
758
  author = {DFM Python Contributors},
750
759
  year = {2025},
751
760
  url = {https://pypi.org/project/dfm-python/},
752
- version = {0.2.5}
761
+ version = {0.2.6}
753
762
  }
754
763
  ```
755
764
 
@@ -663,12 +663,21 @@ Demonstrates:
663
663
 
664
664
  ## Project Status
665
665
 
666
- **Version**: 0.2.5
666
+ **Version**: 0.2.6
667
667
  **Status**: Stable and production-ready
668
668
  **Python**: 3.10+
669
669
  **PyPI**: https://pypi.org/project/dfm-python/
670
670
 
671
- ### Recent Improvements (v0.2.5)
671
+ ### Recent Improvements (v0.2.6)
672
+
673
+ - ✅ **Q matrix cap**: Factor innovation variances bounded above by 1.0 to prevent explosion
674
+ - ✅ **R matrix cap**: Observation error variances bounded above by 10.0 for standardized data
675
+ - ✅ **Improved C normalization**: C norm clipping prevents Q explosion during normalization
676
+ - ✅ **Enhanced initial values**: PCA loadings clipped to prevent extreme initial values
677
+ - ✅ **Bug fix**: Fixed `np.linalg.lu` error by using `np.linalg.slogdet` for determinant computation
678
+ - ✅ **Better stability**: Q and R caps ensure model convergence even with challenging data
679
+
680
+ ### Previous Improvements (v0.2.5)
672
681
 
673
682
  - ✅ **Q matrix floor**: Factor innovation variances bounded below by 0.01 to prevent scale issues
674
683
  - ✅ **C matrix normalization**: Clock-frequency factor loadings normalized (||C[:,j]|| = 1) for scale stability
@@ -703,7 +712,7 @@ If you use `dfm-python` in your research, please cite:
703
712
  author = {DFM Python Contributors},
704
713
  year = {2025},
705
714
  url = {https://pypi.org/project/dfm-python/},
706
- version = {0.2.5}
715
+ version = {0.2.6}
707
716
  }
708
717
  ```
709
718