def test_mahalanobis_errors(): effect = np.zeros((1, 2, 3)) cov = np.zeros((3, 3, 3)) with pytest.raises(ValueError): multiple_mahalanobis(effect, cov) cov = np.zeros((1, 2, 3)) with pytest.raises(ValueError): multiple_mahalanobis(effect, cov)
def test_mahalanobis(): n = 50 x = np.random.rand(n) / n A = np.random.rand(n, n) / n A = np.dot(A.transpose(), A) + np.eye(n) mah = np.dot(x, np.dot(spl.inv(A), x)) assert_almost_equal(mah, multiple_mahalanobis(x, A), decimal=1)
def test_mahalanobis(): rng = np.random.RandomState(42) n = 50 x = rng.uniform(size=n) / n A = rng.uniform(size=(n, n)) / n A = np.dot(A.transpose(), A) + np.eye(n) mah = np.dot(x, np.dot(spl.inv(A), x)) assert_almost_equal(mah, multiple_mahalanobis(x, A), decimal=1)
def test_mahalanobis2(): n = 50 x = np.random.randn(n, 3) Aa = np.zeros([n, n, 3]) for i in range(3): A = np.random.randn(120, n) A = np.dot(A.T, A) Aa[:, :, i] = A i = np.random.randint(3) mah = np.dot(x[:, i], np.dot(spl.inv(Aa[:, :, i]), x[:, i])) f_mah = (multiple_mahalanobis(x, Aa))[i] assert np.allclose(mah, f_mah)
def test_mahalanobis2(): rng = np.random.RandomState(42) n = 50 x = rng.standard_normal(size=(n, 3)) Aa = np.zeros([n, n, 3]) for i in range(3): A = rng.standard_normal(size=(120, n)) A = np.dot(A.T, A) Aa[:, :, i] = A i = rng.randint(3) mah = np.dot(x[:, i], np.dot(spl.inv(Aa[:, :, i]), x[:, i])) f_mah = (multiple_mahalanobis(x, Aa))[i] assert np.allclose(mah, f_mah)