コード例 #1
0
ファイル: test_lme.py プロジェクト: zhangjiangyun/statsmodels
    def tester(p, q, r, s):

        d = q - r
        A = np.random.normal(size=(p, q))
        AtA = np.dot(A.T, A)

        B = np.zeros((q, q))
        c = np.random.normal(size=(r, r))
        B[0:r, 0:r] = np.dot(c.T, c)
        di = np.random.uniform(size=d)
        B[r:q, r:q] = np.diag(1 / di)
        Qi = np.linalg.inv(B[0:r, 0:r])
        s = 0.5

        _, d2 = np.linalg.slogdet(s * np.eye(p, p) + np.dot(A, np.dot(B, A.T)))

        _, bd = np.linalg.slogdet(B)
        d1 = _smw_logdet(s, A, AtA, Qi, di, bd)
        assert_allclose(d1, d2)
コード例 #2
0
ファイル: test_lme.py プロジェクト: ccJUN/statsmodels
def check_smw_logdet(p, q, r, s):
    # Helper to check that _smw_logdet results match non-optimized equivalent
    d = q - r
    A = np.random.normal(size=(p, q))
    AtA = np.dot(A.T, A)

    B = np.zeros((q, q))
    c = np.random.normal(size=(r, r))
    B[0:r, 0:r] = np.dot(c.T, c)
    di = np.random.uniform(size=d)
    B[r:q, r:q] = np.diag(1 / di)
    Qi = np.linalg.inv(B[0:r, 0:r])
    s = 0.5

    _, d2 = np.linalg.slogdet(s * np.eye(p, p) + np.dot(A, np.dot(B, A.T)))

    _, bd = np.linalg.slogdet(B)
    d1 = _smw_logdet(s, A, AtA, Qi, di, bd)
    assert_allclose(d1, d2)
コード例 #3
0
ファイル: test_lme.py プロジェクト: N-Wouda/statsmodels
def check_smw_logdet(p, q, r, s):
    # Helper to check that _smw_logdet results match non-optimized equivalent
    d = q - r
    A = np.random.normal(size=(p, q))
    AtA = np.dot(A.T, A)

    B = np.zeros((q, q))
    c = np.random.normal(size=(r, r))
    B[0:r, 0:r] = np.dot(c.T, c)
    di = np.random.uniform(size=d)
    B[r:q, r:q] = np.diag(1 / di)
    Qi = np.linalg.inv(B[0:r, 0:r])
    s = 0.5

    _, d2 = np.linalg.slogdet(s * np.eye(p, p) + np.dot(A, np.dot(B, A.T)))

    _, bd = np.linalg.slogdet(B)
    d1 = _smw_logdet(s, A, AtA, Qi, di, bd)
    assert_allclose(d1, d2)
コード例 #4
0
ファイル: test_lme.py プロジェクト: dieterv77/statsmodels
def test_smw_logdet():

    np.random.seed(23)
    p = 5
    q = 4
    r = 2
    s = 2

    A = np.random.normal(size=(p, q))
    AtA = np.dot(A.T, A)

    B = np.zeros((q, q))
    c = np.random.normal(size=(r, r))
    B[0:r, 0:r] = np.dot(c.T, c)
    di = np.random.uniform(size=s)
    B[r:q, r:q] = np.diag(1/di)
    Qi = np.linalg.inv(B[0:r, 0:r])
    s = 0.5

    _, d2 = np.linalg.slogdet(s*np.eye(p, p) + np.dot(A, np.dot(B, A.T)))

    _, bd = np.linalg.slogdet(B)
    d1 = _smw_logdet(s, A, AtA, Qi, di, bd)
    assert_allclose(d1, d2)