Skip to content

Conversation

@andreev-sergej
Copy link
Collaborator

Fix characteristic_function_normal for NMSemiParametricGEstimation

This commit unifies the sample generators for all mixture types (NMM, NMV, NV)
by integrating canonical form support directly into the main generator function.
Previously, each mixture type had separate classical and canonical generators.

Now, the generator checks mixture_form inside the function and switches behavior
accordingly. In canonical form, the beta parameter is not used. This simplifies
the generator API and reduces code duplication.

- Updated nm_generator.py, nmv_generator.py, nv_generator.py
- Remembered `mixture_form` in AbstractMixture class
- Updated tests and notebook to use the new unified API

BREAKING CHANGE: canonical_generate() methods were removed; use generate() instead.
@Desiment Desiment changed the title Semiparametric validation jupiter-examples Semiparametric validation jupyter-examples May 28, 2025
Ангелина and others added 24 commits May 31, 2025 15:45
* added base StatisticalProcedure protocol
* replaced NDArray[np.float64] with np.ndarray
* Rename NVSemiParametricGEstimationPostWidder → NVEstimationDensityPW
* Rename SemiParametricGEstimationPostWidder → NMVEstimationDensityPW
* Rename folders in src/procedures
* Rename tests/algorithms → tests/procedures

lgorithms/semiparametric_sigma_estimation/__init__.py -> tests/procedures/nm_procedures/semiparametric_sigma_estimation/__init__.py
In the previous commit "NVSemiParametricGEstimationPostWidder" were mistakenly replaced by "NMVEstimationDensityPW"
- Updated `moment`, `pdf`, `cdf`, and `logpdf` methods to support both scalar and list inputs for efficient batch computation.
- Extracted shared evaluation logic (e.g., `moment`, `pdf`, `cdf`, `logpdf`) into the `AbstractMixtures` base class to eliminate code duplication across subclasses.
- Centralized input validation, RQMC integration, and distribution handling within the base class for better maintainability.
- Fixed type annotations to align with abstract method signatures and resolve `mypy` type-checking issues.

These changes improve code clarity, enable vectorized evaluations, and make future extensions easier to implement.
feat: dynamic integrator selection
feat: unify mixture generators and support canonical forms
feat: add batch support and refactor mixture evaluation logic
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.

4 participants