function ck_test¶
- deeptime.util.validation.ck_test(models, observable: Observable, test_model=None, include_lag0=True, err_est=False, progress=None)¶
Performs a Chapman-Kolmogorov test: Under the assumption of Markovian dynamics some transfer operators such as the transition matrix of a Markov state model or a Koopman model possess the so-called Chapman-Kolmogorov property. It states that for lagtimes \(\tau_1, \tau_2\) the transfer operator behaves like \(\mathcal{T}_{\tau_1 + \tau_2} = \mathcal{T}_{\tau_1}\mathcal{T}_{\tau_2}\).
This method performs a test to verify the above identity by evaluating an observable \(\rho\) twice on a range of different lagtimes. The observable evaluated on each model (estimated at a different lagtime) is compared against the observable evaluated on the test model when it is propagated by the Chapman-Kolmogorov equation to the corresponding lagtime:
\[\mathcal{T}^\mathrm{test}_{k \tau}\rho \overset{!}{=} \mathcal{T}^{\mathrm{model}}_{\tilde{\tau}} \]such that \(k\tau = \tilde{\tau}\).
(Source code, png, hires.png, pdf)
- Parameters:
models (list of models) – List of models estimated at different lagtimes.
observable (Observable) – An observable. The choice mainly depends on what kind of models are compared. Observables are required to be callable with a model instance.
test_model (model, optional, default=None) – The test model. Per default this uses the model with the smallest lagtime of the models list.
include_lag0 (bool, optional, default=True) – Whether to include \(\tau = 0\) into the test.
err_est (bool, optional, default=False) – Whether to compute the observable on Bayesian samples of the estimated models.
progress (ProgressBar, optional, default=None) – An optional progress bar. Tested with tqdm.
- Returns:
ck_test – The results. Can be used with plot_ck_test <deeptime.plots.plot_ck_test>.
- Return type:
See also