def test_corr(self): np.random.seed(43) sigma = np.array([[1, 0.5], [0.5, 1]]) def grad_log_correleted(x): sigmaInv = np.linalg.inv(sigma) return -np.dot(sigmaInv.T + sigmaInv, x) / 2.0 me = GaussianQuadraticTest(grad_log_correleted) qm = QuadraticMultiple(me) X = np.random.multivariate_normal([0, 0], sigma, 200) reject, p_val = qm.is_from_null(0.05, X, 0.1) np.testing.assert_almost_equal([0.465, 0.465], p_val)
arr = [] me = GaussianSteinTest(grad_log_pob, 1) for time in times_we_look_at: chain_at_time = samples[:, time] # print(time) # pval = me.compute_pvalue(chain_at_time) # arr.append(pval) def grad_log_pob(t): a = np.sum(manual_grad(t[0], t[1], X), axis=0) + grad_log_prior(t) return a P_CHANGE = 0.1 me = GaussianQuadraticTest(grad_log_pob) qm = QuadraticMultiple(me) reject, p = qm.is_from_null(0.05, chain_at_time, 0.1) print(reject) # import matplotlib.pyplot as plt # # print(arr) # # plt.plot(arr) # # plt.show()