Skip to content

eyetrajectoriespy 0.10.0rc2

Release candidate — 29 September 2026

eyetrajectoriespy 0.10.0rc2 is a corrective release candidate for the native sparse/irregular FPCA + PACE tranche. It adds no new estimator surface.

Why rc2 exists

Post-publication recovery validation of 0.10.0rc1 found that diagonal-difference measurement-noise estimation could be severely biased even when the latent functional subspace and PACE scores were recovered well.

The defect was isolated to the latent covariance diagonal used only for measurement-noise estimation. The generic two-dimensional local-linear covariance surface remains the fitted covariance object for FPCA and the full PACE conditional covariance system, but its diagonal is not the PACE-specific diagonal estimator.

Correction

For noise_variance_method="diagonal_difference", rc2 now:

  • constructs off-diagonal covariance products as before;
  • rotates those pairs by 45 degrees;
  • fits a local polynomial that is linear along the covariance diagonal and quadratic perpendicular to it;
  • uses the declared covariance bandwidth for this latent-diagonal fit;
  • smooths the observed/raw residual-square diagonal separately with the declared noise_bandwidth;
  • averages their signed difference only on the explicit noise_support=(a,b).

The generic covariance surface used for eigendecomposition and PACE scoring is unchanged.

Failure behavior and sensitivity

A non-positive estimated measurement-noise variance remains a structured noise_variance_invalid failure. It is not clipped to zero or replaced by a small positive constant.

The recovery matrix also shows that diagonal-difference noise recovery remains a finite-sample sensitivity problem. Bandwidth, support, sampling density and the noise-to-latent-variance ratio can materially change the estimate. The package therefore records signed recovery and failure frequency rather than claiming a universal bandwidth choice or widening qualification thresholds.

Release discipline

Published 0.10.0rc1 remains immutable. rc2 receives its own fresh performance, cross-platform, sparse-native, documentation, examples and release-readiness qualification. Only after exact-main qualification may publication readiness be armed in a separate reviewed change.

After publication, install explicitly with:

pip install --pre eyetrajectoriespy==0.10.0rc2

Final 0.10.0 should be prepared only after rc2 artifact-level qualification finds no blocking numerical, scientific or API defect.