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 the transfer operator behaves like .
This method performs a test to verify the above identity by evaluating an observable 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:
such that .
(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 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