def test_probability_density_without_noise(): """Test probability density of MVN with not invertible covariance.""" random_state = check_random_state(0) n_samples = 10 x = np.linspace(0, 1, n_samples)[:, np.newaxis] y = np.ones((n_samples, 1)) samples = np.hstack((x, y)) mvn = MVN(random_state=random_state) mvn.from_samples(samples) assert_array_almost_equal(mvn.mean, np.array([0.5, 1.0]), decimal=2) assert_equal(mvn.covariance[1, 1], 0.0) p_training = mvn.to_probability_density(samples) p_test = mvn.to_probability_density(samples + 1) assert_true(np.all(p_training > p_test))
def test_probability_density(): """Test PDF of MVN.""" random_state = check_random_state(0) mvn = MVN(mean, covariance, random_state=random_state) x = np.linspace(-100, 100, 201) X = np.vstack(map(np.ravel, np.meshgrid(x, x))).T p = mvn.to_probability_density(X) approx_int = np.sum(p) * ((x[-1] - x[0]) / 201) ** 2 assert_less(np.abs(1.0 - approx_int), 0.01)
def test_probability_density(): """Test PDF of MVN.""" random_state = check_random_state(0) mvn = MVN(mean, covariance, random_state=random_state) x = np.linspace(-100, 100, 201) X = np.vstack(map(np.ravel, np.meshgrid(x, x))).T p = mvn.to_probability_density(X) approx_int = np.sum(p) * ((x[-1] - x[0]) / 201)**2 assert_less(np.abs(1.0 - approx_int), 0.01)
""" ======================================================== Confidence Interval of a 1D Standard Normal Distribution ======================================================== We plot the 0.6827 confidence interval of a standard normal distribution in one dimension. The confidence interval is marked by green lines and the region outside of the confidence interval is marked by red lines. """ print(__doc__) import matplotlib.pyplot as plt import numpy as np from gmr import MVN mvn = MVN(mean=[0.0], covariance=[[1.0]]) alpha = 0.6827 X = np.linspace(-3, 3, 101)[:, np.newaxis] P = mvn.to_probability_density(X) for x, p in zip(X, P): conf = mvn.is_in_confidence_region(x, alpha) color = "g" if conf else "r" plt.plot([x[0], x[0]], [0, p], color=color) plt.plot(X.ravel(), P) plt.xlabel("x") plt.ylabel("Probability Density $p(x)$") plt.show()