Skip to content

Worked example: compositional AOI trajectories

import numpy as np
from eyetrajectoriespy import (
    fit_compositional_fpca,
    reconstruct_compositional_fpca,
    simulate_aoi_probability_trajectories,
)

probs = simulate_aoi_probability_trajectories(
    n_curves=80,
    n_time=101,
    n_aoi=4,
)

fit = fit_compositional_fpca(
    probs,
    reference_dimension=3,
    epsilon=1e-8,
    n_components=0.95,
)

reconstructed = reconstruct_compositional_fpca(fit)
assert np.allclose(reconstructed.sum(axis=2), 1.0)

The reconstruction remains a valid probability composition at every time point.