def test_uncertainties_backward(): n = 4 grid = NDGrid(n_bins_per_feature=n, min=-np.pi, max=np.pi) trajs = DoubleWell(random_state=0).get_cached().trajectories seqs = grid.fit_transform(trajs) model = PESContinuousTimeMSM(verbose=False).fit(seqs) sigma_ts = model.uncertainty_timescales() sigma_lambda = model.uncertainty_eigenvalues() sigma_pi = model.uncertainty_pi() sigma_K = model.uncertainty_K() yield lambda: np.testing.assert_array_almost_equal( sigma_ts, [9.508936, 0.124428, 0.117638]) yield lambda: np.testing.assert_array_almost_equal( sigma_lambda, [1.76569687e-19, 7.14216858e-05, 3.31210649e-04, 3.55556718e-04]) yield lambda: np.testing.assert_array_almost_equal( sigma_pi, [0.007496, 0.006564, 0.006348, 0.007863]) yield lambda: np.testing.assert_array_almost_equal( sigma_K, [[0.000339, 0.000339, 0., 0.], [0.000352, 0.000372, 0.000122, 0.], [0., 0.000103, 0.000344, 0.000329], [0., 0., 0.00029, 0.00029]]) yield lambda: np.testing.assert_array_almost_equal( model.ratemat_, [[-0.0254, 0.0254, 0., 0.], [0.02636, -0.029629, 0.003269, 0.], [0., 0.002764, -0.030085, 0.027321], [0., 0., 0.024098, -0.024098]])
def test_hessian_3(): grid = NDGrid(n_bins_per_feature=4, min=-np.pi, max=np.pi) trajs = DoubleWell(random_state=0).get_cached().trajectories seqs = grid.fit_transform(trajs) seqs = [seqs[i] for i in range(10)] lag_time = 10 model = PESContinuousTimeMSM(verbose=False, lag_time=lag_time) model.fit(seqs) msm = MarkovStateModel(verbose=False, lag_time=lag_time) print(model.summarize()) # print('MSM timescales\n', msm.fit(seqs).timescales_) print('Uncertainty K\n', model.uncertainty_K()) print('Uncertainty eigs\n', model.uncertainty_eigenvalues())