pflm.fpca.utils.get_fpca_in_score#

get_fpca_in_score(flatten_func_data: FlattenFunctionalData, mu: ndarray, num_pcs: int, fpca_lambda: ndarray, fpca_phi: ndarray, sigma2: float, if_shrinkage: bool = False) tuple[ndarray, list[ndarray], ndarray, list[ndarray]][source][source]#

Compute Numerical integration FPCA scores and fitted curves.

Parameters:
flatten_func_dataFlattenFunctionalData

Flattened data containing fields y, t, tid, unique_sid, sid_cnt.

munp.ndarray of shape (nt,)

Mean on the observation grid.

num_pcsint

Number of principal components to use (<= len(fpca_lambda)).

fpca_lambdanp.ndarray of shape (k,)

FPCA eigenvalues.

fpca_phinp.ndarray of shape (nt, k)

Basis on the observation grid (columns are components).

sigma2float

Measurement noise variance used in shrinkage (if enabled).

if_shrinkagebool, default=False

Whether to apply shrinkage to the IN scores.

Returns:
xinp.ndarray of shape (n_samples, num_pcs)

IN scores by subject.

xi_varList[np.ndarray]

Per-subject score covariance matrices or variance summaries.

fitted_y_matnp.ndarray of shape (nt, n_samples)

Fitted values on the observation grid.

fitted_yList[np.ndarray]

Fitted values at observed time points per subject.

Raises:
ValueError

If num_pcs exceeds available eigenvalues, fpca_phi has incompatible shape, or if_shrinkage is not a boolean.

See also

get_fpca_ce_score

Conditional expectation score computation.