コード例 #1
0
    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)
コード例 #2
0
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()