def test_sample_confidence_region(): """Test sampling of confidence region.""" random_state = check_random_state(42) mvn = MVN(mean=np.array([1.0, 2.0]), covariance=np.array([[1.0, 0.0], [0.0, 4.0]]), random_state=random_state) samples = mvn.sample_confidence_region(100, 0.9) for sample in samples: assert_true(mvn.is_in_confidence_region(sample, 0.9))
n_samples = 1000 plt.figure(figsize=(15, 5)) ax = plt.subplot(131) ax.set_title("Unconstrained Sampling") samples = mvn.sample(n_samples) ax.scatter(samples[:, 0], samples[:, 1], alpha=0.9, s=1, label="Samples") plot_error_ellipse(ax, mvn, factors=(1.0, 2.0), color="orange") ax.set_xlim((-5, 5)) ax.set_ylim((-10, 10)) ax = plt.subplot(132) ax.set_title(r"95.45 % Confidence Region ($2\sigma$)") samples = mvn.sample_confidence_region(n_samples, 0.9545) ax.scatter(samples[:, 0], samples[:, 1], alpha=0.9, s=1, label="Samples") plot_error_ellipse(ax, mvn, factors=(1.0, 2.0), color="orange") ax.set_xlim((-5, 5)) ax.set_ylim((-10, 10)) ax = plt.subplot(133) ax.set_title(r"68.27 % Confidence Region ($\sigma$)") samples = mvn.sample_confidence_region(n_samples, 0.6827) ax.scatter(samples[:, 0], samples[:, 1], alpha=0.9, s=1, label="Samples") plot_error_ellipse(ax, mvn, factors=(1.0, 2.0), color="orange") ax.set_xlim((-5, 5)) ax.set_ylim((-10, 10)) ax.legend() plt.show()