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)
    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)
Esempio n. 3
0
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()
Esempio n. 4
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()
Esempio n. 5
0
arr = np.empty((0,2))

arr2 = np.empty((0,2))
for c in [1.0,1.3,2.0,3.0]:
    print('c',c)

    log_normal = logg(c)

    for i in range(23):
        print(i)
        x= metropolis_hastings(log_normal, chain_size=500, thinning=15,x_prev=np.random.randn(2))



        me = GaussianQuadraticTest(grad_log_dens)
        qm = QuadraticMultiple(me)
        qm2 = QuadraticMultiple2(me)

        accept_null,p_val = qm.is_from_null(0.05, x, 0.1)
        p_val2 = qm2.is_from_null(0.05, x, 0.1)
        print(p_val2)
        arr = np.vstack((arr, np.array([c,min(p_val)])))
        arr2 = np.vstack((arr2, np.array([c,p_val2])))



df = DataFrame(arr)
pr = seaborn.boxplot(x=0,y=1,data=df)
seaborn.plt.show()

arr2 = np.empty((0, 2))
for c in [1.0, 1.3, 2.0, 3.0]:
    print('c', c)

    log_normal = logg(c)

    for i in range(23):
        print(i)
        x = metropolis_hastings(log_normal,
                                chain_size=500,
                                thinning=15,
                                x_prev=np.random.randn(2))

        me = GaussianQuadraticTest(grad_log_dens)
        qm = QuadraticMultiple(me)
        qm2 = QuadraticMultiple2(me)

        accept_null, p_val = qm.is_from_null(0.05, x, 0.1)
        p_val2 = qm2.is_from_null(0.05, x, 0.1)
        print(p_val2)
        arr = np.vstack((arr, np.array([c, min(p_val)])))
        arr2 = np.vstack((arr2, np.array([c, p_val2])))

df = DataFrame(arr)
pr = seaborn.boxplot(x=0, y=1, data=df)
seaborn.plt.show()

df = DataFrame(arr2)
pr = seaborn.boxplot(x=0, y=1, data=df)
seaborn.plt.show()