pflm.fpca.FpcaModelParams#

class FpcaModelParams(measurement_error_variance: float, eigen_results: dict[str, ndarray], select_num_pcs_criterion: ndarray | None = None, fpca_lambda: ndarray | None = None, fpca_phi: dict[str, ndarray] | None = None, fitted_covariance: dict[str, ndarray] | None = None, rho: float | None = None, eigenvalue_fit: ndarray | None = None, method_select_num_pcs: int | Literal['FVE', 'AIC', 'BIC'] | None = None, max_num_pcs: int | None = None, method_pcs: Literal['IN', 'CE'] | None = None, method_rho: Literal['truncated', 'ridge', 'vanilla'] | None = None, if_shrinkage: bool | None = None, fve_threshold: float | None = None)[source][source]#

Bases: object

FPCA parameters, artifacts, and tuning metadata.

Attributes:
measurement_error_variancefloat

Estimated noise variance (sigma^2).

eigen_resultsdict

Eigen decomposition results with keys like {“lambda”: np.ndarray, “vector”: np.ndarray}.

select_num_pcs_criterionnp.ndarray, optional

Criterion values used in selecting the number of PCs (e.g., FVE curve or information criteria).

fpca_lambdanp.ndarray, optional

Selected/processed eigenvalues for FPCA.

fpca_phidict, optional

Basis functions on different grids, e.g., {“obs”: …, “reg”: …}.

num_pcsint, optional

Number of retained PCs.

fitted_covariancedict, optional

Fitted covariance matrices by grid kind, e.g., {“obs”: …, “reg”: …}.

rhofloat, optional

Truncation/ridge/vanilla parameter used in CE scoring if applicable.

eigenvalue_fitnp.ndarray, optional

Alternative eigenvalue estimates from projection-based fitting.

method_select_num_pcsint or {“FVE”,”AIC”,”BIC”}, optional

Selection method or a fixed number of PCs.

max_num_pcsint, optional

Upper bound used when searching the number of PCs.

method_pcs{“IN”,”CE”}, optional

Score estimation method (In-sample or Conditional Expectation).

method_rho{“truncated”,”ridge”,”vanilla”}, optional

Strategy for rho selection in CE.

if_shrinkagebool, optional

Whether shrinkage was applied to IN scores.

fve_thresholdfloat, optional

Target FVE used when selecting the number of PCs.

Notes

This dataclass is a passive container; validation and consistency checks should be handled by the FPCA fitting pipeline.

Examples

>>> import numpy as np
>>> from pflm.fpca.fpca_result_class import FpcaModelParams
>>> params = FpcaModelParams(
...     measurement_error_variance=0.01,
...     eigen_results={'lambda': np.array([1.0, 0.5]), 'vector': np.eye(2)},
... )
>>> params.measurement_error_variance
0.01
eigen_results: dict[str, ndarray][source]#
eigenvalue_fit: ndarray | None = None[source]#
fitted_covariance: dict[str, ndarray] | None = None[source]#
fpca_lambda: ndarray | None = None[source]#
fpca_phi: dict[str, ndarray] | None = None[source]#
fve_threshold: float | None = None[source]#
if_shrinkage: bool | None = None[source]#
max_num_pcs: int | None = None[source]#
measurement_error_variance: float[source]#
method_pcs: Literal['IN', 'CE'] | None = None[source]#
method_rho: Literal['truncated', 'ridge', 'vanilla'] | None = None[source]#
method_select_num_pcs: int | Literal['FVE', 'AIC', 'BIC'] | None = None[source]#
rho: float | None = None[source]#
select_num_pcs_criterion: ndarray | None = None[source]#