SEC.Models.LkmEstimator#
SEC.Models.LkmEstimator.py
Estimate LKM (Lumped Kinetic Model) initial parameters from EGH component moments.
- The moment-matching approach follows the same design as SdmEstimator:
Compute numerical moments (M1, M2, M3) from each EGH component curve.
Match these to the LKM analytical cumulant expressions.
LKM analytical cumulants (per component; Pe and t0 are shared across components):
kappa1_i = t0 * R_i (mean = tR_i) kappa2_i = 2*tR_i**2/Pe + 2*t0*(R_i-1)/k_MT_i (variance) kappa3_i = 12*tR_i**3/Pe**2
12*tR_i*t0*(R_i-1)/(Pe*k_MT_i)
6*t0*(R_i-1)/k_MT_i**2 (third cumulant)
- Factored optimization:
Given (t0, Pe), R_i = tR_i/t0 is determined, and k_MT_i can be solved analytically from the kappa2_i equation. The outer optimization over (t0, Pe) then minimises the kappa3 residuals.
This construction guarantees that kappa1 and kappa2 are matched exactly by the returned parameters; kappa3 is matched as closely as possible.
In the large-Pe limit the factored solution reduces to the closed-form three-moment formulas:
k_MT_i ≈ 3 * M2_i / M3_i t0 ≈ M1_i - 3 * M2_i**2 / (2 * M3_i) R_i = M1_i / t0
which are derived from the compound-Poisson characteristic function of the kinetics-only model (see molass-essence/chapters/45/characteristic-function.ipynb).
- estimate_lkm_init_params(decomposition, **kwargs)#
Estimate LKM initial parameters from EGH component moments.
Follows the same upgrade design as
estimate_sdm_column_params(): numerical moments are computed from each EGH component curve (viaComponentCurve.get_xy()) and matched to the LKM analytical cumulant expressions.- Parameters:
decomposition (Decomposition) – Decomposition whose
xr_ccurveshold the EGH component curves.debug (bool, optional) – If True, print diagnostics (default False).
- Returns:
Pe (float) – Péclet number (shared column parameter).
t0 (float) – Dead time in frame units (shared column parameter).
k_MT_list (list of float) – Mass-transfer rate per component (same units as frame axis).
R_list (list of float) – Retention factor per component (R_i = tR_i / t0 ≥ 1).
scale_list (list of float) – Area scale per component (integral of EGH component curve).
Notes
The optimisation is factored:
Inner (analytic): for a given (t0, Pe), k_MT_i is solved exactly from the kappa2 equation, guaranteeing kappa1 and kappa2 are matched.
Outer (numeric, 2-D): L-BFGS-B over log(t0) and log(Pe) minimises the kappa3 residuals (sign-preserving cube roots, same as SdmEstimator).
In the large-Pe limit the result converges to the closed-form three-moment formulas derived from the compound-Poisson CF.