From 43122af0dffb5010ae3e6f8de4da5e8725d68144 Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Wed, 14 Nov 2018 10:34:09 -0500 Subject: [PATCH 01/60] Let pearsonr return a tuple instead of trying to convert to float and added test for 0 noise --- mgcpy/independence_tests/rv_corr.py | 3 +-- .../unit_tests/rv_corr_test.py | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/mgcpy/independence_tests/rv_corr.py b/mgcpy/independence_tests/rv_corr.py index f737186..e0fcf7f 100644 --- a/mgcpy/independence_tests/rv_corr.py +++ b/mgcpy/independence_tests/rv_corr.py @@ -80,7 +80,6 @@ def test_statistic(self, data_matrix_X=None, data_matrix_Y=None): if (self.which_test == 'pearson') and ((row_X == 1 or columns_X == 1) and (row_Y == 1 or columns_Y == 1)): corr, covar = pearsonr(data_matrix_X, data_matrix_Y) - corr, covar = corr[0], covar[0] elif (self.which_test == 'rv'): covar = np.trace(np.dot(covar, covar.T)) corr = np.divide(covar, np.sqrt(np.trace(np.dot(varX, varX)) @@ -97,4 +96,4 @@ def test_statistic(self, data_matrix_X=None, data_matrix_Y=None): independence_test_metadata = {"covariance": covar} - return corr, independence_test_metadata + return corr, independence_test_metadata \ No newline at end of file diff --git a/mgcpy/independence_tests/unit_tests/rv_corr_test.py b/mgcpy/independence_tests/unit_tests/rv_corr_test.py index 383e734..3bfe3d9 100644 --- a/mgcpy/independence_tests/unit_tests/rv_corr_test.py +++ b/mgcpy/independence_tests/unit_tests/rv_corr_test.py @@ -23,8 +23,6 @@ def test_local_corr(): assert np.round(test_stat2, decimals=2) == 0.95 assert np.round(test_stat3, decimals=2) == 0.90 - del X, Y, rvcorr, rvcorr2, rvcorr3, test_stat1, test_stat2, test_stat3 - # Against linear simulations np.random.seed(0) X, Y = sims.linear_sim(100, 1) @@ -40,6 +38,20 @@ def test_local_corr(): assert np.round(test_stat1, decimals=2) == 0.24 assert np.round(test_stat2, decimals=2) == 0.49 assert np.round(test_stat3, decimals=2) == 0.24 + + X, Y = sims.linear_sim(100, 1, noise=0) + #savemat('distance matrix data', {'X' : X, 'Y' : Y}) + rvcorr = RVCorr(X, Y, None) + rvcorr2 = RVCorr(X, Y, None, 'pearson') + rvcorr3 = RVCorr(X, Y, None, 'cca') + + test_stat1 = rvcorr.test_statistic()[0] + test_stat2 = rvcorr2.test_statistic()[0] + test_stat3 = rvcorr3.test_statistic()[0] + + assert np.round(test_stat1, decimals=2) == 1.00 + assert np.round(test_stat2, decimals=2) == 1.00 + assert np.round(test_stat3, decimals=2) == 1.00 test_local_corr() From 11a5961191710e11bd24ed7cb14e711605fb39f0 Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Wed, 14 Nov 2018 10:34:59 -0500 Subject: [PATCH 02/60] Fixed spacing caused by spyder --- mgcpy/independence_tests/rv_corr.py | 2 +- mgcpy/independence_tests/unit_tests/rv_corr_test.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mgcpy/independence_tests/rv_corr.py b/mgcpy/independence_tests/rv_corr.py index e0fcf7f..baf3d43 100644 --- a/mgcpy/independence_tests/rv_corr.py +++ b/mgcpy/independence_tests/rv_corr.py @@ -96,4 +96,4 @@ def test_statistic(self, data_matrix_X=None, data_matrix_Y=None): independence_test_metadata = {"covariance": covar} - return corr, independence_test_metadata \ No newline at end of file + return corr, independence_test_metadata diff --git a/mgcpy/independence_tests/unit_tests/rv_corr_test.py b/mgcpy/independence_tests/unit_tests/rv_corr_test.py index 3bfe3d9..25b5ab1 100644 --- a/mgcpy/independence_tests/unit_tests/rv_corr_test.py +++ b/mgcpy/independence_tests/unit_tests/rv_corr_test.py @@ -38,7 +38,7 @@ def test_local_corr(): assert np.round(test_stat1, decimals=2) == 0.24 assert np.round(test_stat2, decimals=2) == 0.49 assert np.round(test_stat3, decimals=2) == 0.24 - + X, Y = sims.linear_sim(100, 1, noise=0) #savemat('distance matrix data', {'X' : X, 'Y' : Y}) rvcorr = RVCorr(X, Y, None) From 0d0a991ea06a3214eb0dd89e19eec489a1b028c8 Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Thu, 15 Nov 2018 19:27:26 -0500 Subject: [PATCH 03/60] Add HHG test and simulations plot to verify simulations --- mgcpy/benchmarks/simulations.py | 29 ++-- mgcpy/benchmarks/simulations_test.py | 129 +++++++++++++++++- mgcpy/independence_tests/hhg.py | 13 +- .../independence_tests/unit_tests/hhg_test.py | 37 +++++ .../unit_tests/rv_corr_test.py | 4 - 5 files changed, 180 insertions(+), 32 deletions(-) create mode 100644 mgcpy/independence_tests/unit_tests/hhg_test.py diff --git a/mgcpy/benchmarks/simulations.py b/mgcpy/benchmarks/simulations.py index e281c20..8dbcd51 100644 --- a/mgcpy/benchmarks/simulations.py +++ b/mgcpy/benchmarks/simulations.py @@ -256,27 +256,18 @@ def spiral_sim(num_samp, num_dim, noise=0.4, low=0, high=5): :return: the data matrix and a response array """ - if num_dim > 1: - kappa = 1 - else: - kappa = 0 - x = gen_x_unif(num_samp, num_dim, low=low, high=high) - rx = gen_x_unif(num_samp, num_dim, low=low, high=high) - ry = rx - z = rx - sig = np.diag(np.ones(shape=(num_dim))) - gauss_noise = (np.random.multivariate_normal(cov=sig, - mean=np.zeros(num_dim), - size=num_samp)) + uniform_dist = gen_x_unif(num_samp, num_dim=1, low=low, high=high) + the_x = np.array(np.cos(np.pi * uniform_dist)).reshape(num_samp, 1) + y = uniform_dist * np.sin(np.pi * uniform_dist) + x = np.zeros(shape=(num_samp, num_dim)) - ry = np.ones((num_samp, num_dim)) - x[:, 0] = np.cos(z[:, 0].reshape((num_samp)) * np.pi) - for i in range(num_dim - 1): - x[:, i+1] = (x[:, i].reshape((num_samp)) * np.cos(z[:, i+1].reshape((num_samp)) * np.pi)) - x[:, i] = (x[:, i].reshape((num_samp)) * np.sin(z[:, i+1].reshape((num_samp)) * np.pi)) - x = rx * x + if num_dim > 1: + for i in range(num_dim - 1): + x[:, i] = np.squeeze((y * np.power(the_x, i))) + x[:, num_dim-1] = np.squeeze(uniform_dist * the_x) - y = ry * np.sin(z[:, 0].reshape((num_samp, 1)) * np.pi) + kappa*noise*ry*gauss_noise + gauss_noise = np.random.normal(loc=0, scale=1, size=(x.shape[0], 1)) + y = y + noise*num_dim*gauss_noise return x, y diff --git a/mgcpy/benchmarks/simulations_test.py b/mgcpy/benchmarks/simulations_test.py index 25585d4..e118b9e 100644 --- a/mgcpy/benchmarks/simulations_test.py +++ b/mgcpy/benchmarks/simulations_test.py @@ -1,82 +1,159 @@ import numpy as np from mgcpy.benchmarks import simulations as sims +import matplotlib.pyplot as plt def test_simulations(): - num_samps = 100 + num_samps = 1000 num_dim1 = 1 num_dim2 = 300 independent = True + np.random.seed(0) + fig1 = plt.figure(figsize = (50, 80)); + plt.axis('off') + # Linear Simulation returns_low_dim = sims.linear_sim(num_samps, num_dim1) returns_high_dim = sims.linear_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) + + x1, y1 = sims.linear_sim(num_samps, 1, noise=0) + ax1 = fig1.add_subplot(4, 5, 1); + ax1.scatter(x1, y1); + ax1.set_title('Linear', fontweight='bold') + ax1.axis('off'); # Exponential Simulation returns_low_dim = sims.exp_sim(num_samps, num_dim1) returns_high_dim = sims.exp_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) + + x1, y1 = sims.exp_sim(num_samps, 1, noise=0) + ax1 = fig1.add_subplot(4, 5, 2); + ax1.scatter(x1, y1); + ax1.set_title('Exponential', fontweight='bold') + ax1.axis('off'); # Cubic Simulation returns_low_dim = sims.cub_sim(num_samps, num_dim1) returns_high_dim = sims.cub_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) + + x1, y1 = sims.cub_sim(num_samps, 1, noise=0) + ax1 = fig1.add_subplot(4, 5, 3); + ax1.scatter(x1, y1); + ax1.set_title('Cubic', fontweight='bold') + ax1.axis('off'); # Joint-Normal Simulation returns_low_dim = sims.joint_sim(num_samps, num_dim1) returns_high_dim = sims.joint_sim(num_samps, num_dim2) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) + + x1, y1 = sims.joint_sim(num_samps, 1, noise=0) + ax1 = fig1.add_subplot(4, 5, 4); + ax1.scatter(x1, y1); + ax1.set_title('Joint Normal', fontweight='bold') + ax1.axis('off'); # Step Simulation returns_low_dim = sims.step_sim(num_samps, num_dim1) returns_high_dim = sims.step_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) + + x1, y1 = sims.step_sim(num_samps, 1, noise=0) + ax1 = fig1.add_subplot(4, 5, 5); + ax1.scatter(x1, y1); + ax1.set_title('Step', fontweight='bold') + ax1.axis('off'); # Quadratic Simulation returns_low_dim = sims.quad_sim(num_samps, num_dim1) returns_high_dim = sims.quad_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) + + x1, y1 = sims.quad_sim(num_samps, 1, noise=0) + ax1 = fig1.add_subplot(4, 5, 6); + ax1.scatter(x1, y1); + ax1.set_title('Quadratic', fontweight='bold') + ax1.axis('off'); # W Simulation returns_low_dim = sims.w_sim(num_samps, num_dim1) returns_high_dim = sims.w_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) + + x1, y1 = sims.w_sim(num_samps, 1, noise=0) + ax1 = fig1.add_subplot(4, 5, 7); + ax1.scatter(x1, y1); + ax1.set_title('W-Shaped', fontweight='bold') + ax1.axis('off'); # Spiral Simulation returns_low_dim = sims.spiral_sim(num_samps, num_dim1) returns_high_dim = sims.spiral_sim(num_samps, num_dim2) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) + + x1, y1 = sims.spiral_sim(num_samps, 1, noise=0) + ax1 = fig1.add_subplot(4, 5, 8); + ax1.scatter(x1, y1); + ax1.set_title('Spiral', fontweight='bold') + ax1.axis('off'); # Uncorrelated Bernoulli Simulation returns = sims.ubern_sim(num_samps, num_dim2) assert np.all(returns[0].shape == (num_samps, num_dim2)) + + x1, y1 = sims.ubern_sim(num_samps, 1, noise=0) + ax1 = fig1.add_subplot(4, 5, 9); + ax1.scatter(x1, y1); + ax1.set_title('Uncorrelated Bernoulli', fontweight='bold') + ax1.axis('off'); # Logarithmic Simulation returns_low_dim = sims.log_sim(num_samps, num_dim1) returns_high_dim = sims.log_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) + + x1, y1 = sims.log_sim(num_samps, 1, noise=0) + ax1 = fig1.add_subplot(4, 5, 10); + ax1.scatter(x1, y1); + ax1.set_title('Logarithmic', fontweight='bold') + ax1.axis('off'); # Nth Root Simulation returns_low_dim = sims.root_sim(num_samps, num_dim1) returns_high_dim = sims.root_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) + + x1, y1 = sims.root_sim(num_samps, 1, noise=0) + ax1 = fig1.add_subplot(4, 5, 11); + ax1.scatter(x1, y1); + ax1.set_title('Fourth Root', fontweight='bold') + ax1.axis('off'); # Sinusoidal Simulation (4*pi) returns_low_dim = sims.sin_sim(num_samps, num_dim1) returns_high_dim = sims.sin_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) + + x1, y1 = sims.sin_sim(num_samps, 1, noise=0) + ax1 = fig1.add_subplot(4, 5, 12); + ax1.scatter(x1, y1); + ax1.set_title('Sinusoidal (4\u03C0)', fontweight='bold') + ax1.axis('off'); # Sinusoidal Simulation (16*pi) returns_low_dim = sims.sin_sim(num_samps, num_dim1, period=16*np.pi) @@ -84,34 +161,84 @@ def test_simulations(): num_samps, num_dim2, period=16*np.pi, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) + + x1, y1 = sims.sin_sim(num_samps, 1, noise=0, period=16*np.pi) + ax1 = fig1.add_subplot(4, 5, 13); + ax1.scatter(x1, y1); + ax1.set_title('Sinusoidal (16\u03C0)', fontweight='bold') + ax1.axis('off'); # Square Simulation returns = sims.square_sim(num_samps, num_dim2, indep=independent) assert np.all(returns[0].shape == (num_samps, num_dim2)) + + x1, y1 = sims.square_sim(num_samps, 1, noise=0) + ax1 = fig1.add_subplot(4, 5, 14); + ax1.scatter(x1, y1); + ax1.set_title('Square', fontweight='bold') + ax1.axis('off'); # Two Parabolas Simulation returns_low_dim = sims.two_parab_sim(num_samps, num_dim1) returns_high_dim = sims.two_parab_sim(num_samps, num_dim2) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) + + x1, y1 = sims.two_parab_sim(num_samps, 1, noise=0) + ax1 = fig1.add_subplot(4, 5, 15); + ax1.scatter(x1, y1); + ax1.set_title('Two Parabolas', fontweight='bold') + ax1.axis('off'); # Circle Simulation returns = sims.circle_sim(num_samps, num_dim2) assert np.all(returns[0].shape == (num_samps, num_dim2)) + + x1, y1 = sims.circle_sim(num_samps, 1, noise=0) + ax1 = fig1.add_subplot(4, 5, 16); + ax1.scatter(x1, y1); + ax1.set_title('Circle', fontweight='bold') + ax1.axis('off'); # Ellipse Simulation returns = sims.circle_sim(num_samps, num_dim2, radius=5) assert np.all(returns[0].shape == (num_samps, num_dim2)) + + x1, y1 = sims.circle_sim(num_samps, 1, noise=0, radius=5) + ax1 = fig1.add_subplot(4, 5, 17); + ax1.scatter(x1, y1); + ax1.set_title('Ellipse', fontweight='bold') + ax1.axis('off'); # Diamond Simulation returns = sims.square_sim( num_samps, num_dim2, period=-np.pi/4, indep=independent) assert np.all(returns[0].shape == (num_samps, num_dim2)) + + x1, y1 = sims.square_sim(num_samps, 1, noise=0, period=-np.pi/4) + ax1 = fig1.add_subplot(4, 5, 18); + ax1.scatter(x1, y1); + ax1.set_title('Diamond', fontweight='bold') + ax1.axis('off'); # Multiplicative Noise Simulation returns = sims.multi_noise_sim(num_samps, num_dim2) assert np.all(returns[0].shape == (num_samps, num_dim2)) + + x1, y1 = sims.multi_noise_sim(num_samps, 1) + ax1 = fig1.add_subplot(4, 5, 19); + ax1.scatter(x1, y1); + ax1.set_title('Multiplicative Noise', fontweight='bold') + ax1.axis('off'); # Multimodal Independence Simulation returns = sims.multi_indep_sim(num_samps, num_dim2) assert np.all(returns[0].shape == (num_samps, num_dim2)) + + x1, y1 = sims.multi_indep_sim(num_samps, 1) + ax1 = fig1.add_subplot(4, 5, 20); + ax1.scatter(x1, y1); + ax1.set_title('Multimodal Independence', fontweight='bold') + ax1.axis('off'); + +test_simulations() \ No newline at end of file diff --git a/mgcpy/independence_tests/hhg.py b/mgcpy/independence_tests/hhg.py index 3ea0047..29e3d6e 100644 --- a/mgcpy/independence_tests/hhg.py +++ b/mgcpy/independence_tests/hhg.py @@ -1,6 +1,5 @@ import numpy as np from mgcpy.independence_tests.abstract_class import IndependenceTest -from scipy.spatial import distance_matrix class HHG(IndependenceTest): @@ -58,13 +57,11 @@ def test_statistic(self, data_matrix_X=None, data_matrix_Y=None): row_Y, columns_Y = data_matrix_Y.shape[0], data_matrix_Y.shape[1] # use the matrix shape and diagonal elements to determine if the given data is a distance matrix or not - if row_X != columns_X or sum(data_matrix_X.diagonal()**2) > 0: - dist_mtx_X = distance_matrix(data_matrix_X, data_matrix_X) + if (row_X != columns_X or sum(data_matrix_X.diagonal()**2) > 0) and \ + (row_Y != columns_Y or sum(data_matrix_Y.diagonal()**2) > 0): + dist_mtx_X, dist_mtx_Y = self.compute_distance_matrix(data_matrix_X, data_matrix_Y) else: dist_mtx_X = data_matrix_X - if row_Y != columns_Y or sum(data_matrix_Y.diagonal()**2) > 0: - dist_mtx_Y = distance_matrix(data_matrix_Y, data_matrix_Y) - else: dist_mtx_Y = data_matrix_Y n = dist_mtx_X.shape[0] @@ -87,12 +84,12 @@ def test_statistic(self, data_matrix_X=None, data_matrix_Y=None): return corr - def p_value(self, replication_factor=1000): + def p_value(self, replication_factor=100): """ Tests independence between two datasets using HHG and permutation test. :param replication_factor: specifies the number of replications to use for - the permutation test. Defaults to 1000. + the permutation test. Defaults to 100. :type replication_factor: int :return: P-value of HHG diff --git a/mgcpy/independence_tests/unit_tests/hhg_test.py b/mgcpy/independence_tests/unit_tests/hhg_test.py new file mode 100644 index 0000000..f1665a2 --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/hhg_test.py @@ -0,0 +1,37 @@ +import mgcpy.benchmarks.simulations as sims +import numpy as np +from scipy.spatial.distance import pdist, squareform +from mgcpy.independence_tests.hhg import HHG + + +def compute_distance_matrix(data_matrix_X, data_matrix_Y): + # obtain the pairwise distance matrix for X and Y + dist_mtx_X = squareform(pdist(data_matrix_X, metric='euclidean')) + dist_mtx_Y = squareform(pdist(data_matrix_Y, metric='euclidean')) + return (dist_mtx_X, dist_mtx_Y) + + +def test_hhg(): + # Against a randomly defined data set + X = np.array([1.1728, 2.4941, 2.4101, 0.1814, 1.1978, 1.5806, 1.2504, + 1.9706, 1.8839, 0.8760])[:, np.newaxis] + Y = np.array([3.2311, 12.1113, 11.1350, 1.1989, 3.3127, 4.8580, 3.4917, + 7.1748, 6.5792, 2.4012])[:, np.newaxis] + hhg = HHG(X, Y, compute_distance_matrix) + test_stat = hhg.test_statistic() + + assert np.round(test_stat, decimals=2) == 411.88 + + # Against linear simulations + np.random.seed(0) + X, Y = sims.linear_sim(100, 1) + hhg = HHG(X, Y, compute_distance_matrix) + test_stat = hhg.test_statistic() + + assert np.round(test_stat, decimals=2) == 28986.52 + + X, Y = sims.linear_sim(100, 1, noise=0) + hhg = HHG(X, Y, compute_distance_matrix) + test_stat = hhg.test_statistic() + + assert np.round(test_stat, decimals=2) == 950600.00 \ No newline at end of file diff --git a/mgcpy/independence_tests/unit_tests/rv_corr_test.py b/mgcpy/independence_tests/unit_tests/rv_corr_test.py index 25b5ab1..efdb89b 100644 --- a/mgcpy/independence_tests/unit_tests/rv_corr_test.py +++ b/mgcpy/independence_tests/unit_tests/rv_corr_test.py @@ -2,8 +2,6 @@ import numpy as np from mgcpy.independence_tests.rv_corr import RVCorr -#from scipy.io import savemat - def test_local_corr(): # Against a randomly defined data set @@ -26,7 +24,6 @@ def test_local_corr(): # Against linear simulations np.random.seed(0) X, Y = sims.linear_sim(100, 1) - #savemat('distance matrix data', {'X' : X, 'Y' : Y}) rvcorr = RVCorr(X, Y, None) rvcorr2 = RVCorr(X, Y, None, 'pearson') rvcorr3 = RVCorr(X, Y, None, 'cca') @@ -40,7 +37,6 @@ def test_local_corr(): assert np.round(test_stat3, decimals=2) == 0.24 X, Y = sims.linear_sim(100, 1, noise=0) - #savemat('distance matrix data', {'X' : X, 'Y' : Y}) rvcorr = RVCorr(X, Y, None) rvcorr2 = RVCorr(X, Y, None, 'pearson') rvcorr3 = RVCorr(X, Y, None, 'cca') From c09110cdf664cf86b4bb1b1ab8419004e2faced7 Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Fri, 16 Nov 2018 10:31:13 -0500 Subject: [PATCH 04/60] Removed Extraneous spacing --- mgcpy/independence_tests/hhg.py | 9 +++++---- mgcpy/independence_tests/unit_tests/hhg_test.py | 9 ++++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/mgcpy/independence_tests/hhg.py b/mgcpy/independence_tests/hhg.py index 29e3d6e..526fa3b 100644 --- a/mgcpy/independence_tests/hhg.py +++ b/mgcpy/independence_tests/hhg.py @@ -58,7 +58,7 @@ def test_statistic(self, data_matrix_X=None, data_matrix_Y=None): # use the matrix shape and diagonal elements to determine if the given data is a distance matrix or not if (row_X != columns_X or sum(data_matrix_X.diagonal()**2) > 0) and \ - (row_Y != columns_Y or sum(data_matrix_Y.diagonal()**2) > 0): + (row_Y != columns_Y or sum(data_matrix_Y.diagonal()**2) > 0): dist_mtx_X, dist_mtx_Y = self.compute_distance_matrix(data_matrix_X, data_matrix_Y) else: dist_mtx_X = data_matrix_X @@ -83,7 +83,7 @@ def test_statistic(self, data_matrix_X=None, data_matrix_Y=None): corr = np.sum(S) return corr - + def p_value(self, replication_factor=100): """ Tests independence between two datasets using HHG and permutation test. @@ -110,7 +110,8 @@ def p_value(self, replication_factor=100): test_stats_null = np.zeros(replication_factor) for rep in range(replication_factor): permuted_y = np.random.permutation(self.data_matrix_Y) - test_stats_null[rep] = self.test_statistic(data_matrix_X=self.data_matrix_X, data_matrix_Y=permuted_y) - + test_stats_null[rep] = self.test_statistic( + data_matrix_X=self.data_matrix_X, data_matrix_Y=permuted_y) + # p-value is the probability of observing more extreme test statistic under the null return np.where(test_stats_null >= test_stat)[0].shape[0] / replication_factor diff --git a/mgcpy/independence_tests/unit_tests/hhg_test.py b/mgcpy/independence_tests/unit_tests/hhg_test.py index f1665a2..dbc0730 100644 --- a/mgcpy/independence_tests/unit_tests/hhg_test.py +++ b/mgcpy/independence_tests/unit_tests/hhg_test.py @@ -1,7 +1,7 @@ import mgcpy.benchmarks.simulations as sims import numpy as np -from scipy.spatial.distance import pdist, squareform from mgcpy.independence_tests.hhg import HHG +from scipy.spatial.distance import pdist, squareform def compute_distance_matrix(data_matrix_X, data_matrix_Y): @@ -27,11 +27,14 @@ def test_hhg(): X, Y = sims.linear_sim(100, 1) hhg = HHG(X, Y, compute_distance_matrix) test_stat = hhg.test_statistic() - + assert np.round(test_stat, decimals=2) == 28986.52 X, Y = sims.linear_sim(100, 1, noise=0) hhg = HHG(X, Y, compute_distance_matrix) test_stat = hhg.test_statistic() - assert np.round(test_stat, decimals=2) == 950600.00 \ No newline at end of file + assert np.round(test_stat, decimals=2) == 950600.00 + + +test_hhg() From c0ff9750f2f167df6784cd07273949ad186a4f25 Mon Sep 17 00:00:00 2001 From: sundaysundya Date: Mon, 26 Nov 2018 16:35:58 -0500 Subject: [PATCH 05/60] add mdmr module --- mgcpy/independence_tests/mdmr/X_mdmr.csv | 500 ++++++++++++++++++ mgcpy/independence_tests/mdmr/Y_mdmr.csv | 500 ++++++++++++++++++ mgcpy/independence_tests/mdmr/__init__.py | 0 mgcpy/independence_tests/mdmr/mdmr.py | 115 ++++ .../independence_tests/mdmr/mdmrfunctions.py | 127 +++++ 5 files changed, 1242 insertions(+) create mode 100644 mgcpy/independence_tests/mdmr/X_mdmr.csv create mode 100644 mgcpy/independence_tests/mdmr/Y_mdmr.csv create mode 100644 mgcpy/independence_tests/mdmr/__init__.py create mode 100644 mgcpy/independence_tests/mdmr/mdmr.py create mode 100644 mgcpy/independence_tests/mdmr/mdmrfunctions.py diff --git a/mgcpy/independence_tests/mdmr/X_mdmr.csv b/mgcpy/independence_tests/mdmr/X_mdmr.csv new file mode 100644 index 0000000..c5712c2 --- /dev/null +++ b/mgcpy/independence_tests/mdmr/X_mdmr.csv @@ -0,0 +1,500 @@ +-0.035837605,-1.245650342,-0.255394461 +0.55357901,1.273226544,-0.069094322 +0.171180239,-0.501492732,0.317216651 +-0.064829833,1.217906326,1.41118878 +-0.633382654,0.306852368,0.29586932 +-0.06251656,0.341277834,1.617496932 +0.930777524,-0.91348191,-0.130632016 +0.076356533,-0.939735162,0.965922873 +-0.738758232,-0.018565065,0.76218871 +0.987715505,-0.571187228,0.563554869 +0.933805238,-0.859506127,-0.263682355 +-0.451631442,0.401956146,-0.684250581 +0.865634203,0.283462853,0.409703132 +1.974908315,-0.521019314,0.339253096 +0.957038278,0.955668585,-0.14827684 +-0.115996677,-1.968422536,0.799180686 +-0.999645451,-0.549589706,1.477917368 +-0.233489344,0.494150674,-0.964491477 +1.887110554,1.148694042,-1.51674057 +-0.037940339,-0.282093036,1.268643029 +-1.626852634,0.719318652,-0.195505168 +0.681985413,-1.266912994,0.425478946 +0.279653919,-0.727038151,-1.51835048 +-0.22104947,-0.557678662,-0.275617263 +0.367889837,1.389344882,0.917786465 +0.334044573,-0.188398399,-0.893185404 +0.404003616,-0.236703473,0.383562085 +0.379837427,-1.236396071,0.988891472 +-2.507920878,0.976942251,-0.977323369 +-0.882240561,1.014895058,0.922476443 +0.477359556,-1.604259081,0.01449627 +0.056738152,-0.314721395,-0.460972849 +-0.437183589,1.176669776,0.238980823 +-0.379735553,0.388049946,-1.594843972 +-1.230335976,-1.065728198,0.13951437 +0.005486242,1.76760797,0.48120644 +-0.998177084,-0.968617216,0.385584922 +-0.769164521,-0.367523575,-0.610515695 +0.722803921,-0.621725726,0.251380969 +1.182226676,-0.511829297,-0.579327684 +0.840837575,-0.514942823,-0.947173385 +0.742022012,0.568232454,-0.170254606 +-0.536345713,1.281528851,-1.442086043 +0.128082733,-1.064796668,1.357130717 +-0.431226735,-0.328757083,0.715842624 +-1.337850885,-0.532340403,-0.619330524 +-0.028430164,0.086172412,-0.120515562 +2.286943356,1.408113273,-1.310741216 +0.177051208,-0.301570422,0.630022947 +-0.417937891,0.133696002,-1.376686102 +1.382454077,0.98418836,-1.47605999 +0.600286953,0.122157897,-0.312487593 +-0.927244926,-0.101981088,-0.031310387 +0.324287213,0.82112801,-0.273567909 +1.860649292,0.559663328,0.344002982 +0.67276631,0.300567072,-1.38633638 +0.611787032,1.173269142,-0.298792813 +-0.125960635,0.178882715,0.390233925 +0.934923391,-2.137104158,-1.785740018 +0.918239818,0.231602573,0.076502142 +0.843984379,0.455964208,1.34861756 +-0.664519052,-0.86911937,-0.761765583 +-0.809893179,1.143641294,1.505712089 +-0.433989004,-0.133873052,-0.398700004 +-0.043901871,0.670356279,0.446759577 +-1.524563023,0.416708531,-0.007165769 +-0.073241131,0.772620001,-0.058101752 +1.22930021,0.898938993,0.684463454 +0.320265107,0.541389189,0.887913167 +1.676737463,0.351871637,-2.30628209 +-0.671057978,1.427058827,-0.253692323 +0.242571257,-0.214190582,-1.8195989 +-1.007691135,0.839819333,1.713162347 +1.355790752,0.952384872,-0.39638558 +0.047060747,-0.057777855,-0.611344527 +0.186353764,1.319003842,-0.264594815 +-0.179122312,1.195910925,0.071455152 +0.624872107,-0.705602876,0.50105767 +0.965908412,-0.34621433,-0.683437934 +-1.380278285,0.793879541,-0.476620661 +-0.591419381,-0.204968137,0.847058493 +0.287434947,-1.143599027,-0.718315836 +1.287013271,0.154087632,0.832095416 +1.505489716,0.863176911,-0.872781195 +-0.145141429,-0.226693693,-0.897384786 +-2.351686918,1.885900732,0.997414933 +-0.671686704,0.024263551,-0.816569561 +-0.302868817,0.655399601,0.412236671 +-1.170036277,-0.407274625,-0.081876569 +-0.620618144,0.993156602,1.246228598 +0.767372544,-0.246379178,-1.885350911 +1.156366073,-2.640851537,-0.068618076 +1.377143598,-0.851368443,0.121930104 +1.088905647,-0.926703063,-1.814438465 +0.178082926,-2.132058932,-0.561814445 +-0.539377417,-0.557358547,-1.058082523 +-0.765888709,0.742726155,-0.834929227 +-0.518769711,1.970878808,-0.78963336 +0.31405993,0.707796322,0.485590414 +-0.230747606,0.808834286,-1.039752523 +-0.683111784,0.051342203,-0.260087191 +-0.495425767,1.087140128,1.448800758 +-0.562903238,-1.477021689,-0.167766998 +-0.473349216,-0.464748324,-0.928041342 +1.436057779,0.462871606,0.274161193 +0.118418209,0.55006098,-1.017202902 +0.350482476,-0.558468028,-0.158463317 +-0.03748997,0.914262508,0.133137981 +-0.193763053,0.127521468,1.555432362 +-0.038477097,-0.187075295,0.751149579 +-0.482589717,-0.944374036,0.422323927 +-1.270381019,-1.204696343,1.740119952 +-0.325558413,0.016925629,0.280549908 +-0.078397886,0.045058548,-0.2121714 +-0.141313677,1.911710348,-1.09970007 +1.048723943,0.899876007,-0.699345467 +-2.695833012,-0.534067943,1.624392453 +-1.676863898,0.913795554,0.289753854 +-0.366176798,0.766671356,-1.363824959 +0.959119465,-1.291884558,0.234563134 +-0.850568888,-0.925917217,1.090922607 +-0.252342109,1.657284751,-0.15640926 +-0.670508726,0.315496258,0.628101608 +0.263942471,-0.008935227,0.352472192 +-0.224208509,-0.502428842,0.247927932 +-0.342831068,-0.25174929,-1.600232795 +0.558518837,-0.391486121,-0.939740501 +-0.085746824,-1.069387294,0.070487497 +-0.606565337,0.734242088,-1.252241197 +0.483480791,2.684188044,0.21142901 +1.035773195,-0.983744769,-2.20281206 +-0.329016025,-0.378692783,1.090209885 +-0.778867229,0.982861485,-1.36901981 +0.047190095,0.460678923,-0.088698304 +0.374049927,0.973688187,-0.360883323 +-0.434085411,0.456131857,1.103527097 +0.466410911,-2.419747771,-0.596174531 +1.058779202,-0.230334879,0.70375918 +-0.498443199,-0.942488033,0.116377878 +0.121118172,-0.08097871,0.367114047 +-1.507810092,0.26100052,-1.270389712 +0.441951403,-0.114145379,-0.015992112 +-0.33587441,0.802035279,0.196704679 +-0.696498494,0.824066312,0.031214838 +0.709362207,-1.002839483,-0.146657135 +0.089218536,0.945473149,-2.054789106 +1.045405778,2.00485179,-0.448914214 +0.444600368,-2.886399944,-1.26623201 +-0.106532984,0.419503944,-1.252900832 +-0.605796496,-1.811436044,1.049141291 +1.112530917,1.373156777,-0.302542953 +-0.721718048,0.350754083,1.154263297 +1.724907936,-0.624927883,-0.343022497 +-1.387870983,-0.610488785,0.729517444 +1.572483443,0.37498531,-0.026283104 +-0.35819169,0.693432932,-1.098261636 +0.739070134,0.429231764,1.003666859 +-0.936605769,-0.791242463,-0.499503792 +1.020664831,-0.030838463,-1.484186976 +-0.140593301,0.32757988,-0.918960582 +-0.302860059,-0.952996713,-1.597587642 +-0.864065898,0.423673938,0.421096355 +0.626607973,0.290337496,0.512126845 +-1.844005661,2.219207452,-1.415387196 +-0.849981613,-0.926556796,0.963497179 +0.38847837,0.619900671,2.346028378 +1.518401371,-1.691824591,2.419267462 +-0.32144567,0.375531864,-1.406001105 +0.680555634,0.773796168,1.200708968 +0.634883032,-2.03223319,0.452274037 +-1.409868975,-0.489357434,-1.437694317 +0.614801661,-1.315639362,-0.492307785 +0.565122295,0.414422323,0.932946635 +-0.456328335,0.515172241,-1.014044483 +-0.791425297,0.834400711,0.13004611 +0.618723854,0.795465193,-0.035249824 +-0.779379415,-2.123258093,0.565406455 +-0.488910932,-0.29448936,0.205259127 +0.779793362,0.150747543,-1.308337998 +0.398050746,1.393192818,-2.103395672 +-0.024557363,0.171750931,-0.254905449 +-1.041659687,-0.072027098,-0.658659948 +-0.777150124,0.962757163,-0.511617978 +0.587755551,-1.101045191,0.660590941 +1.040515073,-0.2731211,-0.414398686 +0.812611024,1.919689033,2.786268752 +-0.562073096,-0.499559098,0.912529547 +-0.009462618,0.598298389,-1.208303305 +0.666944164,0.67326956,-0.843486636 +0.521034404,-0.551355167,0.288477757 +-0.15905646,-0.457562791,-1.570863617 +-1.420256657,1.563745539,-0.201176423 +0.227409029,-0.430183817,0.733285944 +1.543784895,-1.204276168,1.313587049 +-0.926974648,-0.463554109,0.725913983 +-0.108357475,-1.614582744,0.642120315 +0.431926806,-0.470752237,1.087696898 +-0.345308645,-0.465884461,1.809173443 +0.177534449,-0.585548718,0.995013439 +0.305780533,-1.548648579,0.598924279 +0.923120084,-1.164773243,1.573677779 +-1.417839373,-0.11845522,0.491726961 +-1.895558597,-1.998090206,0.315098708 +0.134451498,-1.434980028,0.549439627 +-1.465178855,-0.314660055,1.938267017 +1.039409737,0.067818314,-0.623768424 +0.755177853,0.087826371,-0.383202838 +-0.334136922,0.17413025,-1.135920305 +1.150555463,-1.594275641,1.381254425 +0.084682598,-0.598123865,-0.974271918 +0.48266111,-0.943431924,-0.322150709 +-0.119250433,1.370590438,-0.193521912 +0.848741237,-0.69453833,0.362207268 +0.304867476,-0.431256838,-0.385385099 +-0.511574137,-0.889762102,-1.731686222 +-1.455707434,1.16511447,0.790286388 +-0.297091611,0.156984242,0.377460712 +2.25573768,0.031845698,-1.873713441 +-1.898252342,-0.835546325,1.009063641 +-0.841759262,-0.502423295,0.992738649 +0.539541073,0.881237576,-2.151314178 +-1.140464215,0.400138651,0.694929858 +1.152120937,-0.796270181,-0.40029632 +-0.848206087,0.736585628,-1.00419952 +-0.765591119,-0.715100025,-1.164137878 +0.141686322,1.711764408,0.673196653 +0.871084951,-2.04355832,-0.442633052 +-1.795530535,1.354930967,1.138558536 +0.203937491,-1.518975768,1.455967855 +-0.325925084,1.634154801,0.078642466 +-0.716751204,0.088063578,-0.002472929 +0.892690825,1.288362127,-0.326586434 +1.499651706,-0.72820328,-1.152292905 +-0.183495027,1.026758613,0.247281259 +-0.708071413,-0.709477631,0.549869656 +-0.458690155,-0.959927535,0.281057319 +0.148734348,0.143135455,0.783644199 +-0.599166469,-1.107655474,1.118085675 +0.138083416,-1.050566136,-0.285504887 +1.484625055,0.568548289,-0.413586017 +-0.651369203,1.124917142,-0.835976304 +-0.315888265,-0.045573891,0.002110386 +0.689768074,-2.054471493,-0.616881645 +-0.568200053,0.08309841,-0.668784733 +0.566369091,0.507122034,-1.854727921 +-0.400315122,0.989364218,0.584014678 +-0.321683691,0.253902692,-0.715720856 +0.38341479,-1.019797157,-0.219395757 +0.384499033,-3.143049772,-0.004747613 +2.419619627,0.150558445,0.956359668 +1.316678172,-0.923627756,-0.358653107 +-0.009058062,0.451454899,1.245943275 +0.243867726,1.347552395,-0.857694068 +-0.506706706,0.242904314,1.450334132 +0.230577874,0.971967361,0.647573938 +1.511188448,-0.663569288,-0.79739977 +-0.189400174,0.792143762,2.028516971 +0.84457937,0.043018165,0.758299377 +-1.042891522,0.667707729,-1.089657152 +1.303268972,0.985672275,-0.321043798 +0.82043099,-0.633105965,-0.816619025 +0.175526588,-0.946923688,-0.223240155 +-0.256479094,-1.927432752,-0.288436029 +-0.211975621,-0.109580784,0.192471354 +-0.863708547,-2.091585354,0.966388815 +1.022157379,-0.515819781,0.249793308 +-0.072850463,-0.636558364,-1.119711274 +-1.237316202,0.963828411,0.319852183 +0.551241621,0.593602105,0.477422337 +0.554826893,-0.213580754,-0.441131243 +-0.789745423,0.256316809,-1.42134757 +0.365008121,-0.664256476,-1.067642562 +0.434355184,-1.368576411,0.109473728 +0.175304031,0.202048458,-1.228986235 +-0.359543392,2.323411835,0.342500636 +-0.15578669,-1.405211024,1.118198281 +0.480112605,-0.643844347,0.020547234 +-0.377831101,1.733620053,-0.704326415 +-1.996025411,0.748346031,1.053262912 +-4.439589703,0.813835799,-0.224602522 +0.417053267,-0.139819121,-0.23514449 +1.17077437,-0.455757827,0.875902412 +0.917156229,-0.868432102,0.521536429 +-0.062844422,0.227396684,0.883886875 +-0.461545961,-1.228612533,1.017576347 +0.727566907,-2.034567884,0.466141431 +0.014648715,0.218773683,-2.282617181 +-1.198180892,-0.959018305,-0.695039129 +-0.97460325,1.179111674,0.28002693 +-0.400966742,1.233726274,-0.398156567 +0.559564482,1.049204225,-0.27744874 +0.936116668,-0.716266386,-0.30485374 +-0.585071405,-0.639931627,-0.520914933 +0.187001589,0.20606553,-0.353158052 +0.796710584,-1.432753306,0.724810357 +2.369655412,1.514295023,0.427261028 +-0.237114634,2.22285633,-0.009406426 +-0.122594054,1.107906458,-1.174641188 +0.160762399,-0.211745684,0.130718919 +0.05466604,0.302399124,-1.21382176 +0.866295543,-0.662238946,-0.1917221 +1.164431363,0.287280795,0.087131422 +-0.554537576,-0.067973086,-1.281700439 +2.586098121,0.890712922,-1.637263241 +-0.495649032,0.831856303,2.792095407 +0.760778044,-0.255053252,-0.274259297 +-0.916292767,0.026218926,-0.931088754 +-1.317272929,-2.376002156,-0.337335062 +0.432245739,0.302145761,-0.306492341 +-0.696910753,0.418258826,0.605477551 +-0.988648818,0.304189293,-3.385864871 +0.291954786,1.00818864,1.188260999 +0.144880534,-0.625565328,-2.674570591 +1.563031504,-0.391310538,1.077114169 +0.117198367,-0.009719212,1.084582541 +0.269656779,0.288607204,2.797957241 +-0.934321739,0.516098153,-1.090039219 +-1.63451634,0.974385444,0.533849827 +0.027151258,0.700008074,-0.492483503 +0.66856908,1.599262108,-1.134475553 +0.12358227,1.085172107,-1.781895468 +-0.159320363,0.393605699,-0.483126549 +0.622581027,-0.298349873,-0.483119625 +1.490697477,-2.192701984,-1.395122784 +0.882614169,-1.865841593,1.935228046 +0.752812384,0.893733087,0.623413194 +-0.412285072,-1.08024053,-0.226313316 +-0.754725425,2.076247781,-0.700323677 +-0.496450971,1.298632046,-1.38484963 +-0.329058761,1.950052463,-1.471374369 +0.590114722,1.152090763,3.140004535 +1.127849175,0.813121699,-0.162863425 +-0.652102603,0.564993779,1.112464493 +-0.976284184,-1.090984885,1.56541846 +-0.77168163,-1.305402571,-2.037334868 +-0.229860325,0.547085225,-0.762281542 +-0.604291886,0.112098464,1.9464392 +-0.339672133,-0.346041686,0.502615378 +0.09651618,-0.094625397,1.894360564 +0.172495409,1.297371515,0.942118331 +0.377360159,1.118251062,1.431501012 +-0.818316595,-0.814147842,2.156320654 +-1.108264207,0.928508683,-0.694350333 +-1.034425628,-0.101030836,0.753876595 +-2.057679942,-0.765527051,0.609126236 +1.122299801,-0.026076964,0.902237206 +0.232753199,0.428730275,-0.264637395 +1.906650699,0.481693548,-0.773888767 +2.030929232,0.539383541,1.174701521 +0.215394767,1.095821761,-1.137266728 +0.168449863,1.815041602,0.417706994 +-0.323490044,1.358417899,0.710385305 +0.787112089,-0.258784528,0.830443127 +1.360146668,-1.141175171,0.70576702 +-0.890211589,1.03415969,0.876559617 +0.541741752,-0.666865327,-0.323214847 +1.394505574,-0.550875001,1.778511137 +2.07498593,-0.367469541,1.571036139 +-1.060779586,-1.533310195,0.124998119 +-0.372457327,0.713963585,0.00447015 +0.353344237,0.62703879,-0.618092784 +2.077771776,0.090035418,1.200915598 +-0.970882196,0.937892817,-0.266515086 +0.614337827,-1.536677893,-1.237639653 +-0.646680857,-2.086876058,-0.16701445 +-1.175544115,0.156391651,-0.597170343 +-0.928182867,0.2771637,1.255968706 +-1.412637509,0.731728604,-1.21265769 +-2.306950603,-1.355527018,-0.355598324 +0.30003435,0.188673875,-1.255518806 +0.967791728,0.91393393,-1.653623183 +0.445644407,-0.542085772,1.609509537 +0.001583181,0.541363801,0.258912503 +-0.492971029,-1.017372667,0.350949053 +-0.30335484,-0.280060358,-1.815740854 +-1.334615437,1.458704573,0.041298983 +-0.193177532,-0.547240054,1.489415014 +1.575913642,-1.702300106,-0.932376456 +-0.145288382,-0.215032916,0.788425856 +1.19072625,-1.675243962,0.893069846 +-0.60300944,-0.199471814,-0.451498859 +-0.758577143,-0.925240707,-1.584728682 +0.46987073,-0.391060971,-0.089745211 +-0.171379278,0.373839771,-1.238422298 +0.294020944,-1.367013936,1.067850398 +-0.29351434,0.346098768,1.777362696 +0.446409073,-2.437126074,-0.050475913 +0.674759561,-0.152826735,0.428916728 +-1.860483072,-1.683473695,-0.296113774 +0.882426352,1.124916054,1.062772023 +-0.843066836,0.946273695,0.412436571 +0.06113887,0.871162437,-0.685751396 +-1.190646465,-1.150952591,-0.269849151 +0.757895215,1.041437029,0.482791741 +0.780981915,0.486314299,0.41547234 +-0.613960032,1.291334237,-0.966396811 +0.275395217,-1.087403334,1.047224247 +-1.290053161,0.327782801,-0.223779074 +0.63798025,0.117410442,-0.264538828 +0.385718285,-0.021466511,1.083426493 +-0.877647359,-0.23278129,1.814882872 +1.417891245,1.435445763,1.189341031 +1.560243656,0.375828876,0.640957923 +-1.161143252,0.90318539,0.486643117 +-0.985078968,-1.073296666,-0.28886374 +-0.480782282,1.047602768,-1.178390267 +-0.74895833,1.225244408,-0.210433089 +1.372481259,-0.807373316,-0.987711691 +0.883225104,-0.316839111,0.654261616 +0.067968969,0.001800252,2.058719491 +0.356357108,-0.418806442,0.070371566 +-1.580548001,-1.38248896,-0.744863949 +-0.494239538,0.099146432,0.646438931 +0.300639427,-0.914592324,1.618119343 +-0.873475627,-0.50749779,0.876077186 +0.39445888,-1.691904577,-0.62270981 +0.835154438,0.164111595,1.013678594 +-0.772383524,0.943624314,-1.374766141 +0.260397866,0.446919114,0.817827936 +0.696624441,-0.387798706,0.797503425 +1.712435409,-0.556455693,1.646303161 +0.84698702,-0.486903797,0.968938754 +-0.387013036,-0.122721943,0.505547089 +0.534542042,1.281354358,0.057356886 +-0.128459472,0.170830647,-0.570504352 +-0.657159456,1.113939929,1.196209579 +-0.705664506,-1.71304294,1.592445572 +-0.145440085,0.256709597,1.588134502 +1.23117467,2.059564618,0.249763177 +-1.83621537,0.154113645,-0.094952698 +-0.220711428,-0.000490847,0.206340149 +0.225166129,1.47016326,0.639571286 +-5.9000455,0.575914279,0.678061346 +-1.36930284,0.582778157,-0.416218672 +-0.441376698,-0.375185503,-0.05449671 +0.489073224,-0.119511984,-0.335456309 +-0.538758739,1.172950067,0.710426783 +-0.561022148,0.411910952,0.592709982 +0.740982246,-0.580576777,-0.119743808 +0.290740596,0.332915241,-0.201524556 +-1.2354147,-0.660103929,-0.357446902 +-0.455743793,0.822799516,-0.699730617 +0.666991333,-0.707619621,-0.227254248 +0.274980317,-0.192612012,-0.88103037 +-0.294076865,1.841554818,1.765702545 +-0.563343289,0.825960459,-1.805799224 +1.144051134,-0.820720332,-0.902801409 +2.464252579,0.662356722,-0.974087904 +-0.929016477,-2.171940726,0.208473502 +-0.087586943,1.575970381,-0.069674105 +-0.334470866,-1.075686019,-0.552129813 +-0.37771139,0.228443309,-1.795804049 +0.511904504,1.484581056,1.074971453 +0.896826498,1.614592071,0.197034247 +-0.670738734,0.129951743,-0.736712558 +1.201376048,0.439636509,1.238008522 +-0.494457705,1.290097392,-1.852677962 +0.309124911,-0.215880746,-0.332976956 +-0.824969049,-0.083626885,0.708232219 +0.234550244,-0.193668859,-0.019258294 +2.221185249,-0.850996888,0.65255637 +-2.117968575,-0.982180798,-0.970102762 +0.248526597,1.387471692,-0.090824384 +-0.544253896,0.50274122,1.227207911 +-2.064105594,-0.098483701,1.126857246 +-0.508051983,-1.379990755,-0.432589777 +0.681021136,0.212563353,0.555273363 +0.716103855,-0.76956813,-1.410416554 +0.206506269,-2.115551298,-0.372418236 +1.608760301,-0.259346745,-1.022369684 +-0.371740727,0.82313294,-0.51346684 +-0.03902904,-0.456366822,1.515425591 +1.690721793,-0.245504786,-1.172440067 +-0.638243171,-0.106765052,0.453757286 +-0.732309815,2.1949746,-0.507846761 +-1.278108876,-0.31483853,0.383750781 +0.612229717,0.154263509,-0.955161016 +-0.276113512,-1.301456061,-0.670084382 +0.228886583,0.274289776,-0.241573848 +-0.721367157,-1.438911915,1.010897899 +0.896652056,-0.674866186,0.321211831 +-1.147153629,0.011297699,-0.129014474 +-0.873109333,0.056440844,-0.231082267 +-0.141647825,-1.008554933,-1.131672821 +-0.568996409,-1.323658311,-0.262144876 +0.345226283,2.484535587,-0.29502438 +0.07725996,-0.150348384,0.623273186 +1.78061295,-1.116119568,0.91718137 +0.427916541,-0.04754609,-0.151092261 +2.185790953,-0.156053456,-0.417916346 +0.267319488,-0.324192761,-2.894023781 +-0.871174137,-1.606774582,0.225686721 +0.54875517,1.24619135,0.517030859 +0.677756483,-0.561914154,0.129873754 +-0.803784378,-0.553282466,0.867416114 +1.369275005,0.534241048,0.861639939 +-6.001641134,-0.030611037,0.693594772 +0.726442643,-0.89210315,-1.113296899 +-0.502785117,1.060286794,-0.638378337 +-0.769191795,0.670541524,-0.750911451 diff --git a/mgcpy/independence_tests/mdmr/Y_mdmr.csv b/mgcpy/independence_tests/mdmr/Y_mdmr.csv new file mode 100644 index 0000000..6572ce1 --- /dev/null +++ b/mgcpy/independence_tests/mdmr/Y_mdmr.csv @@ -0,0 +1,500 @@ +-1.069155389,-0.469798482,-0.236472477,0.398129522,0.278840816,0.266076591,-0.562805,-0.394191192,-1.047813405,-0.789104221 +0.650358931,0.760900849,1.114046692,0.780987049,1.315714324,0.610542117,0.350617774,0.101772947,-0.178330744,0.024695534 +1.331741625,0.39564305,0.413990826,0.618831466,1.525166048,0.019259576,-0.137401342,0.131055927,1.14143062,0.860245001 +-0.201289903,0.759370914,0.709082147,0.282974267,-1.402141216,0.485186013,-2.202863458,0.10667044,-0.979392657,0.288583097 +0.668001594,1.271747287,1.372365185,1.198840437,0.99838666,0.165807355,2.328979411,0.079139273,0.24039222,0.014937251 +0.370699824,0.236396542,-0.3660114,1.351160083,-0.304450661,0.531401541,2.017427792,0.971750463,0.169623689,-0.134078747 +-0.730364371,0.239624281,0.212283882,0.588699134,1.481253912,0.916061716,-0.503839465,-0.286219864,0.363365744,0.410787733 +-1.198159311,-1.548245574,-0.167785126,-2.229337142,-1.458859878,0.052790463,0.596586021,-0.675402308,-1.051608668,-0.774603633 +-1.071321989,0.450283957,0.777613711,-0.212951454,-0.206172209,0.757559836,-0.776476201,0.321953261,-1.051687417,-0.215344257 +0.746048606,-0.437334238,-0.101673783,-0.263478354,0.677338329,0.134040442,-0.549603509,-0.02506119,-0.096526464,-0.158505463 +-0.448124494,-0.826061921,1.023870994,-0.573844264,0.06224435,-0.828205796,-1.94891804,-0.772048702,-0.265975442,-0.332568853 +2.210825321,0.906702152,1.030500347,1.19419328,1.731029473,0.959506157,2.663830088,1.420740302,2.021498879,1.394762884 +1.744901418,2.531479025,0.948575837,1.431994514,0.983118618,-0.452617962,2.406157236,0.65164361,1.652166095,1.196030946 +0.235321859,1.168132588,1.245988953,1.80190747,1.894696744,0.436634174,-1.234195977,1.448716119,0.533533532,1.182838158 +0.94057368,0.727351722,1.303561807,0.368790984,1.190172529,1.667871698,0.723147787,0.17407964,-0.51807053,0.965351546 +-0.991930045,0.856443741,0.26872396,-0.642784632,0.211991819,-0.746776107,-1.651387302,1.049092457,0.462662915,0.028970392 +-0.014079727,0.81095303,0.238194189,0.483111371,-0.086583609,0.222549708,0.50548686,1.353623041,-1.451901743,-0.465941007 +-0.038003809,0.725304919,-0.203298097,1.07764802,-0.08081674,2.206205354,0.407947995,-0.019987507,0.797768226,-0.556558612 +-0.814670957,-1.4403075,-0.535708724,-0.591623529,0.280206716,-1.543098974,-0.537038964,-0.790772139,-1.007369178,-0.185668763 +-0.985905972,-0.113650253,-0.169714208,-1.730914403,0.571202363,-0.210514176,-0.016121251,1.50770812,-0.18952235,0.125864583 +-0.515656154,-1.867919255,0.105546549,-1.741101769,-2.209736968,-2.999543995,-0.8237305,-1.231119692,-0.351990713,-2.6716515 +-0.748269697,1.000376077,-1.730264958,-0.037431158,-0.081695698,-0.73903913,0.783583398,-0.083960209,0.253571784,1.741051997 +-0.458711604,-1.675784621,-0.646478827,-0.875499687,0.483787304,-1.94636367,-0.151764063,-1.009443404,-0.34516175,-2.291536804 +-1.31781288,1.386497736,1.169168004,-0.602802036,1.504073168,1.099345258,-1.209578951,1.090088205,0.924587595,-0.400308851 +0.596332871,0.586556925,0.359648097,0.675064872,0.748382006,0.863441743,2.374357618,1.101447053,0.972143587,1.341260203 +0.233240028,-0.377408318,1.758453765,1.416874968,0.153086183,0.86137649,0.488755483,0.188526715,0.139185935,0.387108477 +-1.098277096,-0.724926205,-0.951746597,-0.978041778,-1.503218547,-0.686085071,-2.012563076,-0.460190249,-0.85428551,-0.173263163 +0.350934175,0.489691592,1.033660898,-0.025601714,-1.079754129,-0.352460202,-0.932438733,0.975451975,-0.712919427,1.040908356 +1.310898294,-0.278505844,-0.191552022,-0.207067196,-0.472868215,-0.405641189,-0.300137652,0.204003488,0.220923076,-1.647888433 +-0.367266663,-0.793435193,-0.470500384,1.195241149,-1.086370852,-0.63248071,-0.100777648,0.815351269,-0.863018114,0.326121323 +0.616020556,1.453104176,1.34276423,1.465031125,1.733464254,1.346522074,0.255998147,1.087054426,0.898365545,1.339268136 +-0.197717848,-0.750762844,-0.838655897,0.138068516,0.255205541,-0.678784081,-0.616768393,0.295849602,-1.268451581,0.094678758 +0.976721783,0.46795689,0.549057848,0.342486499,0.231478187,-0.289614062,0.397539201,0.495295893,1.39508191,1.090191789 +-1.611415938,-0.364176198,-0.107642693,-3.284067838,-1.528208362,-0.452420107,-0.113581803,-2.026344808,0.041264332,-1.916134497 +1.019585989,0.601455097,1.475836683,0.940829227,1.642214815,1.438103522,0.108912741,0.802240083,1.013796273,1.193842828 +0.608856548,-0.045998475,1.515290211,0.272552813,-0.586762029,-0.027740444,-1.556373347,-0.257555263,-2.9536176,-1.037128946 +1.698236944,0.882379553,1.964710393,1.403910436,0.197373645,-0.652553735,2.489434775,2.128970295,0.58058296,0.610375833 +0.497423712,-0.770577588,-0.725557601,-0.530454764,-0.054179837,-1.249227303,1.22519098,-1.694225564,0.566964732,-1.124543173 +1.224426025,2.085272724,3.423882288,2.208741941,2.312623733,2.787511794,2.70988606,1.702324596,1.689377323,1.414978283 +-0.058874664,-0.771104202,-0.605049465,-0.258396156,0.657487936,-0.126636755,-0.642243504,-0.702498266,-1.085634571,0.727052682 +-0.872954432,0.010557158,-0.6731531,-0.943670652,-0.60889777,-0.325734437,-1.330654857,-0.563055027,0.166567762,-0.862193845 +0.107485707,0.791041853,0.732296697,1.024599364,0.364046211,1.224345437,0.680101204,-0.899070909,-0.431500514,0.461376013 +0.583076936,0.635067391,0.362705155,0.421116667,0.27325962,1.474594452,0.511269541,-0.812439422,1.389903714,-0.470702436 +0.131353895,0.846344775,0.019517816,1.021037764,-0.127524819,0.553240968,0.218857029,1.188714666,0.340416294,0.355925978 +0.589444605,0.185190608,0.075656994,1.075041259,-0.227256108,0.380875102,1.090864806,0.655781626,0.967369198,0.256091237 +0.500932544,1.055093447,0.835308171,-0.649313606,-0.191240697,0.741325841,1.912658016,-0.363853863,0.806188854,-0.125250736 +-0.361243235,-1.256375597,-1.74130526,-0.996887581,-0.216729843,-1.14075366,-1.422164798,-0.769946119,-1.209964198,-1.242712091 +-0.329432395,-0.2789295,0.271896305,2.549666938,1.336269799,0.223641023,-0.8114,-1.028014971,0.422713746,0.469385851 +-0.993837475,-0.847877452,-1.550496986,-0.320710207,1.500095301,-1.062036603,-0.752814892,0.156762834,-0.619078981,-1.627173213 +-0.594256587,-1.039835115,0.40913752,-0.237324595,-0.143904649,-0.893033693,0.444027286,-1.124741002,0.393504643,-0.938187706 +0.085203522,1.606282104,0.020995106,0.158708425,0.7191769,-0.295690178,-0.016588515,-0.289754171,0.152910929,-0.057414579 +0.326684737,1.985744459,-0.107441451,0.926503483,0.84355158,2.496278714,2.002776291,0.594826052,1.345742456,0.728582828 +0.506730408,0.23327625,0.014152214,0.286354033,-0.857748982,0.213503427,-0.585939393,0.179737103,0.909900392,-1.397359275 +0.497014366,0.390176382,1.428110768,0.257303366,0.895322938,0.695128924,0.930391906,-0.305385198,0.525197979,-0.100685342 +-0.177933948,-0.594398194,-1.424381067,-0.216648231,0.275805552,-0.601170308,-0.775741723,-0.016628011,-1.375547579,0.292759438 +-0.03484722,0.324113312,0.319349298,0.695810715,0.996655487,-0.223846244,-0.351883164,-0.263220909,-0.442133647,-0.546879434 +1.039063491,-0.096960409,-0.370589002,0.478433171,0.281289977,-1.512642313,-0.144742553,-0.07248955,-0.382272947,-1.322729082 +-2.104703571,-1.816781194,-1.426622409,-0.447133576,-0.838273753,-0.912010188,-0.844751871,0.406394644,-0.145594935,-0.904570362 +-1.522208494,-1.354439186,-1.767417414,-0.944933347,0.158706956,-0.986219673,-1.715680368,-1.862925147,0.213644189,-1.368424809 +-0.041072581,0.125210532,0.815236361,-0.367666665,-0.334772968,0.33421625,-0.50282625,-0.24174512,0.3921658,0.673099403 +0.299192532,0.250262466,-0.494903298,0.90216733,-0.907127739,1.108320005,0.17167696,1.331037261,-1.069881534,1.36299793 +-0.973521484,0.491808517,-0.577706241,0.301613943,-0.255752988,-0.239620494,0.777900942,-0.960080513,-0.332851976,-0.768349113 +-0.834149843,-0.973076986,0.226356814,0.85880957,-1.430871674,-0.657269688,-0.118645922,0.902952103,-1.056841432,0.781233407 +0.797936743,-1.097991088,0.279809566,0.831343465,0.827096747,0.386998911,0.623113076,0.196233667,-1.349689367,-0.309053277 +0.137404189,-0.289633219,0.200712057,0.956882213,-0.130822377,0.221972832,0.156281372,0.613826615,0.434538282,-0.357517923 +1.096300969,-0.799873103,-0.209481173,-0.590099824,-0.636370659,0.800669634,0.570427474,0.628802124,0.433012261,-1.004245632 +0.812857445,0.892490261,1.828093159,-0.757859641,-0.341066952,0.260042265,-0.612871982,0.192271171,-0.114302465,-0.081672764 +-0.099343646,0.52142665,0.014749814,1.119725844,0.918145596,-0.517270296,-1.331091458,0.741566109,0.934327167,1.168364105 +0.518847981,-0.735057675,-0.446715783,-1.027469664,0.261333473,-1.519506691,-0.745333425,0.405092857,-0.62008746,0.126168683 +1.683640777,0.034697593,0.172336255,1.524488419,2.014119459,1.543058587,0.603159115,-0.381124929,0.645285623,0.158333647 +1.337542678,-0.007304367,0.656747147,-0.184586907,-0.230624266,0.416179154,2.08073668,-1.375374858,0.145273384,-1.037549317 +-0.199614467,-0.224067963,1.097245485,0.89279313,-0.733184569,-1.109172426,0.031257933,-1.894465456,0.272243361,-0.524582444 +1.635939573,1.651238984,2.278473838,1.709008588,0.436994283,0.546282602,1.59178049,2.902194685,1.31052392,1.002406428 +0.676829207,-1.555225465,0.876233517,0.177464492,0.344013402,-0.826596437,0.197787113,-1.017555022,-1.756931901,-0.222995542 +0.599546835,-0.583172454,0.438975973,-0.477087203,-0.654619863,0.1740662,1.239869861,-0.32674769,-1.018195517,-0.734771717 +-0.15811808,-0.484154105,0.022037672,1.400600453,0.226700152,-1.109628834,0.640811083,-0.031219453,0.123521299,1.417550696 +-0.492610213,-1.614127027,-1.290712977,-1.630971348,-1.702137264,-0.737299009,-1.099687288,-1.44042674,-0.661983295,-0.797567584 +0.939538148,-0.108315015,1.707864438,0.917230066,0.490518111,1.554197982,0.697514931,1.263538962,-0.30629481,0.925107654 +0.777237676,-1.315878725,-0.30571234,-0.212855126,0.205353025,-1.097099423,-2.338634333,-0.824049576,-1.024038203,0.358521692 +0.522362408,0.757547642,0.386067037,-1.00220065,-0.185593283,0.745908084,0.661396061,-0.56031595,1.16306784,-0.792969112 +-1.761461209,-0.757607306,-1.097122027,-1.604614194,-0.800347971,-0.676383321,-0.67448715,-0.648475318,-0.068384815,-1.755741211 +-1.275611393,0.01699299,-1.142576889,1.109399888,-0.46912693,-0.681938313,-0.306803641,-0.644462287,-2.440052908,-0.444784333 +-0.184384716,-0.746967484,0.510016321,0.959873064,1.036514609,0.618498686,-0.781130648,0.759943238,-0.332434721,0.519980886 +-1.419339012,-0.801960236,-2.103895897,0.019099573,-0.122610335,-2.349675754,0.390753457,-1.486094641,0.159649784,-0.477842254 +0.030569519,-0.07930216,-0.088740138,-1.406210023,0.755921815,0.338059008,0.294140817,-0.46256868,-0.65902916,-0.173299163 +-0.570683599,-0.568114643,-0.915124402,-1.660612185,-2.382600641,-0.639240158,-0.936002099,-0.678647209,-0.50325707,-1.008316285 +1.053425831,0.07282793,0.153011633,0.269818085,-0.411194561,-0.080719531,1.546989324,-1.24485883,-0.357163131,-0.848238187 +0.297070169,2.14724194,-0.14810118,0.967921361,-0.46153253,0.522461207,0.013997189,1.038795535,0.561700653,0.92749107 +-0.742795608,0.548798055,-0.394070659,-0.90417884,-0.640945322,-0.643271416,0.318085138,-0.423177465,0.375279908,-0.644949656 +0.085464999,-1.78275342,-0.858969696,-0.95347174,-0.713726889,-1.888070447,-0.071937271,-0.924102342,-1.618611423,-1.123192159 +0.773523077,0.600045539,-0.396132262,0.808220004,0.556736028,1.064898355,-0.239599568,-0.47388105,-0.121177986,-0.055678741 +-1.890084746,-0.689399312,-1.883872604,0.090127882,-0.739386579,-1.100306628,-0.364033123,-0.282840983,-1.766854495,0.503688548 +-0.594859505,1.203178118,-0.681747594,-0.082373182,1.584479171,0.070019168,-0.157792443,-0.351673358,0.718708633,0.909422561 +0.721399261,1.173710115,-0.980036929,0.197829308,1.006560884,1.273660188,-0.830397287,0.224580099,0.599840585,0.872636535 +-0.264344829,0.842105895,-1.260265776,-0.107238404,-0.856967596,-0.114974689,0.24476298,-0.613098401,-0.96955034,1.132115309 +0.939793632,-0.491034106,-0.905179151,-0.183855017,-0.869477785,-0.204422522,-1.398290914,-0.833303171,-0.59651611,-0.346336563 +1.906725656,1.612411389,1.234085116,2.266265207,-0.440691413,1.237291593,2.118600704,-0.58096108,1.648066259,-0.547253451 +-0.304004549,-1.009004282,-1.536367752,-0.228929576,-1.066284843,0.777709515,0.637506846,-0.35184748,1.138378498,-0.262949674 +-0.076110233,-0.121962103,-1.345788655,-1.432197381,-0.031432874,-1.548217685,-2.211489683,-0.71156184,-1.096064273,-0.916309178 +-1.317346857,-0.715178124,-0.645089233,-0.482630651,-0.328340339,-0.315654282,-1.001110546,-0.832051232,-0.442706773,-0.920441251 +1.16614705,-2.064537991,-0.00786344,-0.377973016,-0.074561756,0.094915736,0.549789645,-0.092463727,-0.004848602,-0.88576104 +1.858393166,1.254951223,0.476182306,0.434458245,1.260375645,1.623144867,-0.116346751,1.790755895,0.69066296,0.060788631 +-0.807404683,0.10487155,0.291688343,0.849116341,-1.300905418,1.331957799,0.003408473,0.11134699,0.625536801,-0.33544056 +-1.060453522,0.01267561,-0.341537027,-1.018695411,-0.518362994,-1.232211306,-0.387088495,-0.852956123,-0.750961594,-1.262841243 +-0.031777033,-0.192168443,0.129640808,0.29002445,1.238231451,-0.921460722,-1.216245139,0.294567937,-0.290769757,1.381914523 +0.950605971,0.382868143,-0.071296969,0.072362607,1.447074058,1.763578081,1.411884772,0.928310327,1.151336445,0.933139082 +0.095756445,-1.122549416,-0.916595081,-0.803843104,-0.766603955,-0.833437827,-0.71542035,0.043770972,0.222030039,-0.312590435 +-0.216876815,0.07226032,-1.137848606,-0.451416078,0.402979959,0.118507538,0.748818658,-1.073695522,-1.383738283,0.41153631 +0.171806094,0.889561344,-0.387653996,-0.142406039,1.361781771,-0.552287092,-1.372623922,-0.198722283,-1.002522426,0.457644958 +0.539293142,-1.306145237,0.547222564,0.64258755,0.47844632,0.410127474,-0.227089891,0.308014898,0.750675188,0.965225186 +-0.037812035,0.272022079,0.04157201,1.012727355,0.29546285,-0.273705963,2.164965446,1.412808929,0.571435992,-0.333222363 +0.310861764,0.516622229,-0.293823669,0.115277411,0.65051759,-0.076407522,0.33372618,0.234056925,-0.022435343,0.271227186 +-1.541754442,-1.817107023,-0.749559604,-1.598089834,0.036776822,-1.028344643,0.159893369,-0.631030957,-0.825149158,0.303399459 +0.545262527,0.300486888,0.768885512,0.399622286,0.547583695,1.85421007,-0.092717728,-0.186979695,0.90927709,-0.718552736 +0.50557852,0.28703505,0.009506829,0.276446051,-0.613389264,1.930956628,1.112032638,0.02272552,-1.356625383,-0.316211677 +-0.484956846,-0.792888482,-0.266569395,0.628453113,-0.835782115,0.945161169,0.208062596,-0.550904234,0.713396889,0.134845607 +-0.545436154,-1.231255248,-0.698591595,-2.310471299,-2.364667644,-0.711486925,-1.245526449,-1.092737661,1.644394422,-0.934700127 +-0.094906309,-0.632101098,0.751611335,-0.89521888,-0.643486921,0.213815557,1.954009209,0.055450482,-0.910617141,-0.334752119 +0.565816573,-0.130840642,0.786585369,0.402912042,0.105889053,0.214645652,0.076918573,-0.495406304,0.409288722,-0.144743924 +-1.394829865,-0.658459573,-1.134349744,-1.101446668,0.497811222,-1.129825832,-1.918263065,0.180207342,-0.912812511,0.166026683 +0.170015199,-0.364897606,0.711046743,1.466140139,0.83509535,1.700599156,1.521060022,1.555818179,0.222620882,0.334863507 +0.128644073,0.472845222,-0.407150144,0.59822804,-1.162154776,-0.299443411,-0.646178013,-1.094193525,-0.598958972,-0.750875638 +0.609110937,-0.673477556,0.047302098,0.960574432,-0.307038905,-0.378037571,0.39124331,1.0259443,1.24786336,-0.385784905 +0.191868995,-1.080388458,-0.962980414,-0.445258039,-0.552825801,-1.136581804,-0.399983597,-0.315840114,-0.426101507,-1.127510934 +-0.429197375,0.525749812,0.020749168,-1.235817068,-0.864003975,1.065937374,-0.026329104,-1.349529068,-0.589945132,0.3845217 +-1.303723992,-0.658030547,-0.836773133,-1.671519675,-2.250182977,-0.608949423,-0.134999982,-2.043220903,-1.675166317,-1.712824134 +0.729745173,0.974864512,0.459348197,0.13090263,-0.198448822,-0.96019164,-0.22060667,0.09867729,0.646447714,-0.291564623 +0.119885712,0.33832364,1.04375974,-0.67818937,0.816224686,1.023082783,0.417637295,0.185341482,-0.307927005,0.579046036 +2.335354189,0.535340816,0.054491402,0.700196829,0.8191054,-0.776656774,0.31989763,-1.149880467,1.222173385,-0.437789198 +0.826651901,0.247933809,0.858473363,-0.157561011,-1.314558242,0.928090303,-1.342444448,0.288231042,-0.007982364,-1.35921943 +0.864026356,0.445351678,0.137632072,1.863766973,1.071321874,0.342588297,0.335570602,-0.737310351,-0.031734181,-1.103639779 +-1.033545483,1.244436606,-0.483551155,0.520610888,-0.771677292,0.480538485,0.118387407,1.312283372,0.674141133,-0.513164892 +1.502645146,0.271873674,0.785591245,1.08600243,0.030198134,1.513885776,0.78864612,0.098096762,0.776870499,0.261756172 +0.432934496,-0.186563011,-0.926045228,-0.928819366,1.324522457,-0.289713654,0.529800249,0.87471543,-1.23631739,0.467151418 +1.917960072,1.822391114,1.200972342,0.693320849,1.580370992,2.40613947,0.597237944,-0.0512303,-0.272269378,0.568887986 +-0.210922969,-0.350522773,-0.841697628,-0.227653654,0.173461022,-0.246983871,-0.401329544,2.225149689,-0.329596696,-0.159554254 +-0.462692395,-1.012512886,0.848775381,0.272029369,0.641218758,0.901256968,-0.872776917,-0.552043965,1.416305016,0.617617507 +0.099679873,1.413087628,1.028157223,1.468841741,1.055894289,0.958661743,1.678259556,0.929302784,0.181272027,2.124579881 +-0.784143851,-2.203762801,-1.16058159,-1.033703068,-1.246944076,-1.914067685,0.634610443,-1.277235203,-1.248081398,0.474033781 +1.037582433,0.469259598,0.506317744,0.574436279,0.902672967,2.350402021,0.026857085,1.602607217,1.573097371,1.511084143 +0.898019738,0.301373706,0.591744689,-1.274907794,-0.336743668,1.670107917,1.55651128,-0.836266479,0.901261644,-0.809022201 +-1.337296786,-1.281967434,-1.099687563,-2.726910829,-0.869196804,-1.180477465,-1.407609992,-1.42052826,0.176768299,-1.521728793 +0.834205206,-0.270033036,0.663886573,-0.316099867,-0.240088731,-0.126539444,-0.570458813,0.110443016,-0.075000176,-0.151113932 +1.617047356,0.00412613,0.073076595,1.966646934,0.494140421,1.021966694,1.326569309,0.126061907,1.803224945,-0.081748178 +0.346648606,-0.949154889,-0.21277866,0.690065301,1.658796723,0.132428717,0.906329043,0.17439041,-0.20524714,-0.130597117 +0.549424775,-0.639946903,-0.355027758,-1.038892982,0.170545255,-0.523351778,-0.330879204,-1.836977339,0.591806756,-0.108376148 +0.8626663,-0.400994167,-0.313351417,-0.014234811,0.888690924,-0.123031282,-0.412126934,0.104626662,-0.010078807,0.750750178 +-0.963216289,2.730802463,-0.052260553,-0.955023146,-1.034658415,-1.153399186,0.567638057,-0.88275959,0.262785533,0.576283264 +0.653351276,-1.513969856,0.34121206,0.425851237,-0.280000639,-0.110810426,0.127372667,-1.031373386,0.493483936,-0.305425955 +0.751107219,1.227117801,1.283409249,1.138786428,1.000963384,0.861398328,0.542516313,1.050327337,-0.677621889,0.627048269 +0.173862429,0.298914162,-1.506992566,0.632150153,0.454425911,-0.910101727,0.482557165,0.876882867,-0.518253646,-0.722221519 +-0.98175802,0.040354636,-1.082863985,-1.612433056,-0.832984701,0.613487916,-0.096999211,0.20000859,0.058992431,-0.722603332 +0.139220445,-1.43246014,-0.651820067,0.320789235,-0.440740632,-0.694295618,-0.240028552,-0.407793364,-0.746597027,0.166291086 +1.057782858,0.583786553,3.146607958,0.34014599,-0.003483058,-0.523525639,0.161034754,0.737207593,0.163915837,-0.019314134 +0.798842116,0.021290546,-0.214971849,1.041582108,2.135342552,0.674360656,0.210007509,0.701761251,0.669656127,0.984961037 +-0.868305016,-1.70647198,-0.980965727,-0.133079483,-1.337733356,0.333289966,-0.696198117,-2.302205118,-0.777197773,-1.627891666 +0.701466313,0.475443279,-0.178946105,0.726928727,-0.101947577,-0.528349939,0.706359801,0.239584213,0.6186462,1.131043763 +-0.980546356,-0.287523242,0.150032325,-0.33945705,-0.319020865,-1.493187557,-0.646977258,-1.653951577,-0.99159235,-1.354819642 +-0.030234396,0.13870653,-0.578749866,0.337997939,0.74811548,0.408330079,0.287016302,-1.087507526,0.338478514,0.344188028 +-2.099337209,-0.166676627,-0.630679341,-0.778268465,-0.858896805,1.226943986,-0.51421128,-0.741322694,-0.408124923,0.174552187 +0.441323755,-0.09100166,0.860615908,-0.384523855,0.054498939,-0.145068897,0.991998344,-0.440238018,1.138185076,-0.802165637 +-0.687591503,-1.932494829,-2.410053704,-0.264983569,-1.374465918,-1.358110091,-0.607673228,-0.346875071,0.637462824,-1.40719522 +0.987250505,1.407609452,0.13233713,-0.00768229,1.348816569,-0.881492513,0.496190827,1.582476828,1.133935245,1.497985358 +0.600224247,-0.617117485,-1.0855115,-1.102140136,-1.840080345,-0.574696241,-0.332051029,-1.787672783,1.266520217,-2.061317307 +-1.163948239,0.082838479,-1.149657691,-0.825193997,-1.154093332,-1.612077152,0.03083222,-0.470179718,-0.075389103,-0.475116909 +1.222238174,1.44583813,0.160373594,0.334959045,1.392212864,0.750520215,-0.629542546,2.372180264,0.881052306,1.941844579 +-2.087759729,-0.529875679,-1.425113017,-1.059257638,0.54094482,-1.476535569,-0.470727353,1.184887622,-0.863250687,0.477965764 +-0.13586452,0.005024656,-0.842349676,-0.080083754,0.987842038,-0.323242629,-0.554313237,-1.146237464,-1.154523842,-1.348813469 +0.421258003,-0.120646495,-0.402239414,1.011805156,0.199144745,-0.376715679,0.054784159,0.770323433,-0.356602832,0.965411605 +0.080367112,-0.433382542,-0.255786755,-0.550818997,1.625357249,-0.728178662,1.298473542,0.245487325,0.037334552,0.456939887 +0.936626384,2.254672002,1.694867891,-0.090251925,0.177886626,0.150169016,-0.860469664,-0.353963595,2.313491287,-0.004757407 +-0.464792996,1.166093722,0.749047279,1.464845449,0.996655898,0.267700088,1.209304432,0.49205639,2.102928119,0.285905398 +0.66624787,0.291519974,0.141063803,-0.959688234,-0.263195,0.845186645,-0.143504421,0.804399991,1.304517771,-1.070685331 +1.977930036,0.332285927,0.569923302,2.629769583,1.18040027,1.042725673,1.14021172,0.050918327,1.022141945,0.412399008 +-0.29630202,0.290831381,-2.613510032,0.330944937,-1.981306375,-2.400359301,-0.665517723,-1.0104504,-1.540680011,-1.529338985 +0.924065315,0.609413356,0.335461377,2.060662538,1.208195371,0.406780686,0.710370783,0.961100463,1.217459499,1.838359237 +-1.289625118,-1.174042865,-0.478351528,-1.714948009,-0.881803885,-1.577081754,-1.310501985,-1.024910963,-1.238284908,-0.542616935 +0.530334554,1.127099342,-0.208073479,-0.180105612,0.985106675,-0.379236982,0.37144811,0.043267872,0.626502888,-0.844239876 +0.105764943,-0.651088114,0.444086024,0.187240228,0.768283406,-0.764613499,-0.74683463,-1.42652573,0.229724021,-0.976907779 +0.349237511,0.51337103,0.897400229,1.181010343,0.260062564,1.246920782,-0.633242755,-0.974195405,0.376084005,-1.115763576 +2.310426737,1.012688916,1.227377404,-0.514515535,0.066057436,1.316679938,0.986901354,0.076658962,0.304186181,0.243512608 +-0.017734544,-0.333011436,-0.934789125,-1.086631455,-0.931677287,0.281760214,-0.247653407,-0.530998,1.077638181,-0.703402313 +1.269140429,0.800145261,1.089535483,0.45584821,0.633725611,0.128446879,1.215373676,0.778861334,1.673834498,-0.259335481 +-0.907840648,-0.017737389,-0.124604924,-0.282173354,-0.074343362,-0.724656423,-1.078838328,0.038188496,0.244652005,0.769927015 +-1.895014507,-1.897139646,-1.590068529,0.120851653,-0.046874928,-1.544648565,-1.504454453,-0.8514762,-0.336231823,0.595524088 +0.65948027,0.820003637,0.486448409,0.56453087,0.527742353,0.240869408,0.12309147,2.983422727,1.106808903,1.389767906 +-0.817883521,-0.680592104,-0.516164754,-1.224958465,-1.014769851,-1.049807748,-0.713845473,0.391555056,-0.644084109,-0.493972692 +-1.734303274,-0.636344512,-1.532977518,-1.169093761,-0.301543179,-0.890266035,-2.203195331,-1.81948291,-1.332890586,-1.338691778 +0.103801236,1.131062747,0.835308573,1.008592295,1.873838083,1.301370634,-0.186558352,-1.423264348,0.064589182,-0.243390537 +-0.603969438,0.54200946,-0.619395494,-0.411171133,-1.202011096,-0.692969375,-1.310102662,-0.165336284,-0.444431535,0.581706635 +-0.358116804,-0.888487762,-1.433145262,0.400786647,0.142266372,0.665791753,0.7612672,-1.338298358,0.293957448,-1.131742546 +0.999077929,-0.63776106,0.027624522,0.479430456,-0.677214381,0.742919052,1.209673233,0.398295068,-0.587494473,-0.170764075 +0.599632387,0.907824767,0.172659918,0.922051971,1.21303723,0.216807995,0.220368986,0.98725643,0.875064724,1.161309977 +-0.697692999,0.922555627,0.679381765,0.384200946,1.748790163,-0.386148473,-0.741372139,1.750931689,0.476442016,1.443044445 +-0.222454025,0.296754415,-0.486244057,-1.135014422,-1.672652508,0.019415889,-0.275300009,0.589859409,-0.374753416,0.072120327 +0.526976831,1.821301366,-0.025545031,-0.632644579,-0.501853348,0.755807037,1.391995304,0.930742831,0.667578957,-0.193725671 +1.248754548,2.228506212,2.280120085,-0.512561417,1.581106388,2.213362596,-0.492757508,1.976724732,0.419679104,1.641011388 +-0.918689881,-0.557464536,0.273259064,-2.364817209,-0.36571267,-1.174067972,0.280453973,1.233530614,0.188969918,0.414859674 +0.117797642,0.439463231,-0.333724372,1.366846839,0.143851325,0.620888605,1.059211674,-0.013980938,-1.198210113,1.771488336 +-0.673618421,-0.112935434,-0.40393114,-0.311875056,-0.18265548,-0.150543789,-0.13402302,0.147512984,-1.199795982,0.05346137 +0.257193825,0.052562198,1.525032703,1.249349644,0.432358899,-0.048258155,0.154413028,2.237106849,0.194720764,1.980089577 +-1.124257184,-1.627591301,0.048148979,-1.16156036,-1.713647337,-0.951694755,0.547363958,0.177241754,-0.77129584,-0.556274826 +0.298729418,-0.918565085,0.734236371,0.076631491,-1.892767525,-0.369609618,0.637686166,0.215299923,0.420683829,-1.637840224 +-0.995585529,0.651298488,0.517105646,0.004724188,-0.941373214,0.079074457,-0.639150119,0.243270787,0.920562872,-0.169150369 +0.538608529,0.063781724,-0.126638164,-1.192650917,-1.16181,0.612462066,0.208963189,1.224349425,-0.759632611,0.055722649 +0.746813003,0.83587699,0.064848856,1.397235815,1.835332207,0.308735242,1.360930099,-0.360365543,-0.528321248,0.554667514 +-0.266763425,0.877047203,0.751553467,0.007334639,-0.488223992,-1.219177475,-1.361631724,0.229766255,0.205756486,1.047167647 +0.568050527,-0.754150851,-0.048311776,-0.736181532,-0.442360503,-0.063205458,0.067482982,-1.158500695,-0.829832681,-1.017499886 +-1.608443477,0.440646792,0.969960853,-0.110374146,0.522397038,1.535129546,-0.084679312,2.052914238,0.393289827,2.141715515 +-0.892682239,-0.339061564,0.039267257,0.414785683,-1.375224804,-1.835351683,-0.955299862,-1.651792775,-0.241264443,-0.099559942 +0.304998695,-0.068503445,-0.523800159,0.745438135,-0.14938224,0.160497608,-0.409336848,0.248891886,0.558689414,0.699401759 +1.739120192,-0.415469181,0.007455432,1.576983945,0.911071342,-1.702306794,-0.420461015,-0.825071378,0.884127009,-0.600045647 +-0.858033416,0.022007575,0.091115329,-0.724201864,-0.560825464,0.668067157,0.459634823,0.191587652,-0.603230846,0.551169917 +1.048841996,-0.137690297,0.855817944,-1.857731647,-0.319301048,0.861538533,0.204676107,-0.490790852,0.736193659,-0.946794581 +0.134696905,-1.171119322,-0.803502925,-0.902464905,-0.330818575,-1.56932297,-0.636657305,-1.567776514,-1.930749229,-1.605906323 +-0.257471807,0.814251924,1.306624521,0.208965683,-0.599941154,0.587843183,1.526950869,0.187843822,1.545256254,-0.497496301 +-1.258867342,-0.462601187,0.082240232,-0.580852125,-1.424671623,-0.817788623,-0.441185864,-0.522019158,-0.545995905,0.273360798 +1.380228859,1.341202478,1.93320177,1.428648095,2.568008417,2.138866714,1.112101258,0.419879847,0.155439446,0.52200889 +0.182500919,0.858389542,0.278746255,-1.111853446,-1.284002742,-0.727634606,-0.202940633,1.59430259,0.526486386,0.09831651 +-1.473662431,1.099155312,1.178458303,-1.365668439,-0.673752268,0.932380166,-0.406695001,-0.095520123,-0.317383546,0.345696358 +-0.62637406,-0.555789497,-0.035677478,0.799266386,0.057995655,-0.411834948,0.307326927,-1.23016582,-0.267078799,-0.633294353 +0.219763039,1.898293281,0.613899152,1.404283249,-1.857253256,0.700478379,0.172468787,-0.049888431,0.164247575,0.394727726 +0.186432963,0.867856447,0.177601914,0.601552839,0.460848303,0.262312852,-0.351673935,0.771761489,0.60113042,0.963220778 +0.297951767,-1.053590286,-0.662235885,-0.091322337,-0.954842219,0.864132636,-2.408458775,-2.481706606,1.069310259,-0.340904443 +0.230221365,-0.551577274,0.108714671,-0.539268102,-1.204177932,-1.115997159,0.175246644,-1.627198517,-1.57549216,-1.341424801 +1.485054113,-0.210474674,-0.295550849,0.373770727,-0.197323911,-0.389472751,0.094329453,1.169118075,0.086133303,-0.035043121 +0.114143719,0.003250342,1.031346514,1.412581836,0.952424201,0.115569556,-0.405425511,0.335388919,0.259231859,0.666379077 +0.835189607,-0.425433104,0.121031372,0.067420448,-1.720007322,0.485773721,0.035723259,0.071172468,-0.393598868,0.187751977 +-1.116157368,-0.295788942,-0.148239109,-0.87140624,-0.05184541,-0.73095424,0.710963707,0.772255239,0.942350806,0.191086972 +1.351916618,0.710425808,0.463745865,0.291811369,-0.397368095,1.637720458,1.082013312,1.245865655,0.404677021,0.848830084 +0.319522708,-2.908675681,0.504811779,0.059809067,-0.644278039,0.993192576,-0.632669763,-0.754653132,1.275789025,-0.733450664 +0.128213434,-0.852846748,-0.226607154,1.444038588,-0.729002184,0.652301643,-0.289700884,-0.543935334,0.349515797,-0.222726683 +0.603351671,1.374991041,0.741096586,1.992878585,1.347855315,1.549740014,0.525953634,-0.021385655,2.495894971,-0.111907287 +1.746110201,1.386684913,1.370176973,-0.606614561,-0.869073426,0.61351828,1.424482986,2.142639613,0.656266295,0.105648247 +-0.374340181,0.958248537,0.683246904,1.477847558,0.827739654,1.760359012,1.102028841,1.741905956,0.603472431,0.390795406 +-0.647326392,-0.023241797,1.521563073,-0.015769648,0.572493888,-0.225888674,-0.071428621,0.555734107,0.676608062,-0.18647304 +-0.07803387,-0.323719124,-1.53167807,-0.934118637,-1.082546014,-0.87966085,-0.516753916,-0.622561719,-1.164415229,0.234593229 +0.49296888,2.095760413,1.993293846,0.06026496,-0.39082964,1.449633337,0.715298465,1.230484725,1.282273413,0.86255104 +-0.944681826,-0.877705694,-0.389287066,-0.175389476,0.26268261,0.059255013,0.968860474,-0.375314461,0.83875264,-0.88266389 +-0.386138534,1.218406958,1.06123819,0.510029457,0.57802475,0.715075799,0.417807248,0.688773423,0.814012746,1.835896546 +0.048053788,-0.767211341,0.726365583,-1.705396712,0.184330258,1.065245614,-0.920998433,-0.997471943,0.107086748,-0.687242676 +0.279658592,1.564241855,0.943926368,-0.637630299,0.179594021,0.558666684,0.152271375,0.001322268,1.382766944,-0.838735076 +0.589474087,0.088229533,-0.372885216,-0.028462954,-0.259160206,-0.247096247,-0.765130218,-0.000484248,-0.423311304,-0.797538654 +-1.024135505,-0.778782829,-0.421518051,-0.302132208,-1.025331178,-0.320793948,-0.829481039,-1.77217819,-0.977934674,-0.526720431 +0.841625278,0.475900789,0.148135397,1.320805565,0.426612572,0.28365006,0.197841369,-0.888981004,2.12682168,0.659085808 +-0.324822628,-0.096435817,1.268898886,0.263534986,0.84770561,-0.058327129,-0.596726735,0.338789746,0.798753789,0.013565707 +1.745662715,1.057883121,1.330753254,0.928421425,1.323040779,0.68979213,1.404989203,0.770575583,1.440293885,0.578370753 +0.850507605,0.489609499,-1.007941077,0.949590471,0.173432245,0.112472028,0.837532001,-0.736130505,-0.750541487,0.543414879 +-3.122294152,-2.197295091,-1.005758252,-0.59004131,-1.03499376,-1.330168477,-0.223163712,0.03866392,-0.958670109,-1.317672681 +0.508035272,-0.860034,0.777679267,0.144440321,1.613227938,1.666319586,-0.097783581,2.384111975,-0.519521301,1.126536919 +-0.508414445,0.351171617,-0.739526679,-0.612966512,-0.418466588,-0.047826826,-1.413199354,0.444182112,0.691428957,0.176580088 +0.471859509,0.080910998,-0.784539093,-1.674960279,0.003740295,0.014385629,-0.23923653,0.202108151,-1.340411352,-0.446414443 +2.01326025,1.233325415,0.275738262,1.394050054,-0.516237668,0.392071495,0.104666162,-0.371075248,-0.504377213,0.906337051 +1.26417813,2.726986962,1.147427884,0.901350215,0.237416092,0.738435691,1.721240833,0.8640727,0.687860984,0.409996932 +0.538518782,0.65569701,0.159346063,0.855776091,0.638075198,0.812547147,-1.199146442,0.771552459,1.886049162,1.053472551 +-0.872819511,-0.201247586,0.169597115,-0.357359436,0.808451501,0.473605167,-0.198088164,-0.754789895,-1.752658249,-0.131150206 +0.391569683,0.910821928,1.376400363,-0.010075423,0.707614771,-0.742443534,-0.455259531,0.773747745,0.597264211,1.331360379 +-0.741304223,-0.592813278,-2.114126374,0.772342767,-0.790681228,0.481748277,0.606035001,1.022073287,-0.735011527,0.142280221 +0.675096853,0.400991075,-0.825321484,-0.409717368,0.237717148,0.188450127,-0.332809072,-0.52736226,1.526949567,-0.159413546 +1.436786198,0.974766467,0.266731863,0.663445124,2.007120233,0.378416618,2.066610528,-0.039499305,-0.364814229,2.247332943 +1.548374283,0.608807456,-0.472422874,1.31018302,1.254791789,-0.255972842,0.784294795,-0.070322694,-0.164929443,0.773435428 +-0.452470557,-0.992259355,0.941935411,0.209346929,-0.431848173,-1.598299014,1.069385359,-0.694190583,-1.455547207,-0.579836468 +-1.370011608,-0.875062761,-1.115285688,-1.149372423,-1.012740179,-0.256154922,0.283937084,-0.049061495,-1.224579579,0.132315485 +-0.389912864,-0.029791198,-1.153090265,-1.300077457,-1.507844531,-0.190553155,-1.326922239,-0.270095255,-0.042596191,0.233390786 +0.855314949,2.190872119,-0.40341886,0.518516837,0.536035987,0.496097655,0.735933384,0.753411375,0.740908899,1.717394363 +-0.131165646,1.756174299,-0.401043415,0.492294787,0.380250625,0.201379336,0.111274766,1.189732891,1.748431795,1.072452459 +-0.333434626,-1.101377211,-0.331330128,0.059343083,0.074369493,-0.133610387,-1.591879157,-0.479518622,-0.465294472,-2.527432474 +0.694795385,0.303304266,0.960254045,-0.5665506,1.061195543,-0.114682651,0.256831097,0.61564894,-0.000918115,0.663180324 +0.569628043,0.686458957,-0.045649265,-0.28903625,-0.037561376,-0.520384703,-0.802505955,0.863803309,-0.166336796,0.090223538 +0.322477555,-1.120944353,-2.515555881,-0.719444114,-0.09751201,-0.660817996,-1.136450353,-1.138643365,-2.584446323,-1.345923038 +-1.938691231,-0.184789345,-1.060280095,-0.960977777,-1.871673511,-0.938859525,-1.341737041,-1.441523337,-1.190478223,-1.182723572 +0.298071539,-0.222257584,-0.057039949,-1.323185208,-1.261242221,-0.630116616,-0.238610949,-1.563546387,-1.072650789,-1.690158399 +0.363596841,1.322447613,1.418003882,2.218951533,1.077133024,3.134082371,2.537632784,0.989723108,1.905272379,0.594132993 +-0.916068199,-1.29418662,-1.547015536,0.181077393,0.627976372,0.298179246,0.091348377,0.116119719,-2.173545655,-0.359223711 +0.331071202,-0.134716692,0.061517007,-1.131905906,0.639824914,0.266455969,-1.230087356,-0.221226796,0.615230773,-0.927829294 +-0.695275764,-0.372556135,-1.131135231,-0.462773012,-1.155257336,-2.40175888,0.743123005,0.621635933,0.018472442,0.060096482 +0.809345433,-0.034559834,1.155721432,0.494556021,0.429393941,0.350123823,0.923957741,1.112755739,-1.3501304,0.657517169 +1.469119212,-1.015577585,-1.016388884,1.257616131,0.707780021,-0.954511287,0.332140548,-0.437723908,0.079377695,0.517082286 +-0.158341638,-1.463435925,-2.048110934,-0.85018627,-2.543177437,-1.075535341,-0.703218963,-0.784906675,-1.147067309,-1.269012915 +-4.012328546,-0.177240611,0.165815757,0.256255135,0.499588753,-0.444021601,-0.573682643,0.772158865,1.176320485,1.56584422 +0.150746533,0.062593894,-0.249901431,1.356633271,0.393397272,0.215102876,-0.222657303,-0.255392381,0.92618972,0.014911868 +0.361463557,-0.272571754,0.055155312,0.673787569,1.014447954,1.404349116,0.120479804,1.801886897,0.175261806,1.300688622 +-0.713730417,-0.426609027,0.311722117,-1.190542945,-0.328727223,-0.741506149,-0.545291176,0.620247845,-1.425245931,0.094417855 +1.155690671,0.890347122,0.812351937,0.705006365,0.758796269,1.194559617,1.899161776,1.662402775,0.096033502,1.852866737 +0.106571812,-0.604185841,-1.21805133,0.272480728,-0.872051689,0.330253211,-0.393365491,0.163580669,-0.386902696,-0.160971201 +-0.609830083,0.459650858,-0.717200145,-0.75346144,0.28478523,-0.273420876,0.804723453,-0.055505008,0.049632386,1.393366606 +0.821128613,0.676595915,1.28087291,1.644266513,1.979626185,2.02872917,1.904693957,0.268183761,2.59327233,1.945851234 +-0.635831379,0.038528059,-1.31967875,-1.552717046,-1.601892669,-3.874620782,-1.100265906,-1.066813259,0.352973046,-1.012673723 +-0.124963584,-1.108656439,-0.754261258,-1.45212697,-1.466669252,-0.471178462,-0.060805719,0.537402351,-0.490555157,-1.770910092 +1.558815406,-0.634093679,0.202758838,0.466430708,-0.075050384,0.061558784,0.475220468,-1.071481353,0.545364071,-0.332378541 +0.077869435,0.132747112,-0.067997083,0.815174941,-0.293039639,-0.473717963,0.555602961,1.066565668,0.458145274,0.265793405 +0.410124523,-1.491522989,-0.743788316,-0.345916067,1.946419909,-0.822881158,-0.913935513,-0.152824471,1.003998952,0.5519725 +-0.665796175,-0.917894071,-0.693263496,0.022933648,-0.868708531,0.612296502,0.229723876,-1.571024045,-0.325440498,-0.145855026 +1.910120709,0.919152616,0.587916539,2.02513503,1.284228736,0.674496044,1.761530612,0.827281581,1.497983129,1.558066878 +-0.872376435,-0.775148005,-1.183896693,0.203836631,-0.70894182,-1.370191048,-0.811983224,0.041607445,-1.445604152,0.330815817 +0.944252255,-0.419051865,-0.232311981,0.71124158,0.365492008,0.50848206,-1.741987647,1.331604159,-0.235996693,1.712223113 +0.917874342,-0.368018619,1.464464208,1.437622016,0.661663723,1.15138698,0.727310755,-0.185904228,0.80104683,0.806287743 +-0.29610892,1.005895797,0.161125913,-0.254605019,0.939785018,-0.043565099,1.1635627,-0.530436493,0.359456015,-0.814051783 +-0.090129022,-0.493429633,0.279150834,-0.55459872,0.320698718,0.047561602,-0.395096677,-0.522582405,-0.095521071,0.47929475 +-0.754371067,0.121615661,0.168822852,0.208356499,1.000987221,-0.585852399,-0.440758904,-1.517210398,0.758249942,-1.101446113 +-0.507560824,-1.209104594,-1.133227469,-0.584534424,0.191288879,-0.602160437,-0.683089554,-0.843449739,0.155774367,1.080416601 +-1.606289607,0.190120508,-1.510978721,0.498671364,0.863914638,-1.394631199,1.925745481,1.050472732,0.717841496,0.557647448 +-0.891449948,-1.655557934,0.118834779,-0.205082252,0.37238052,0.360751317,0.722869797,-2.010741416,-0.594786832,-2.016595424 +1.01244026,-0.789310531,-0.11895037,1.00809953,2.254396052,1.168433242,1.154463013,-0.325174643,0.574099524,0.981287321 +0.183612469,1.579509564,0.513697786,-0.561215465,0.033393428,-0.405033147,0.819386308,1.894946229,0.934725083,1.009836759 +0.719796311,-0.056484014,0.803129384,1.639128595,0.825778102,0.039458622,1.24620975,0.610169102,2.18207955,1.399867771 +1.237115084,-0.7193644,-1.851847818,-0.4999719,-1.045536898,-1.191519031,-1.051092971,-0.714463538,1.219717992,-1.222935913 +-1.155183715,-1.61769739,-0.701867578,-2.824805567,-1.534297849,0.927066973,-0.648520684,-1.113276011,-0.866153366,-1.139328231 +1.043111436,0.007203456,0.942944569,0.949427113,-0.233994289,0.480404903,0.719305606,-0.680996474,-1.056657369,0.658633159 +-0.276819671,-0.324877926,0.378999502,1.314504319,-0.211433562,0.532345433,0.075507135,-0.18817079,-0.250279536,-0.726858685 +0.595163313,0.520737058,0.675733843,0.65543751,-0.42142492,0.098117444,1.051426214,-2.730806795,0.151514968,-1.791411149 +0.779675575,-0.415541269,-0.425105414,-0.065430183,0.512750976,-1.285753765,-0.803875422,0.272079654,-1.483512106,1.119299334 +-0.698951872,-1.503948246,0.103222209,0.318025565,-1.079452822,1.238418919,-2.033216816,-2.706551434,-0.815586535,-1.821331156 +-0.61583833,0.638969882,0.638685796,0.667188101,0.270877585,0.238726299,0.468111843,1.048650968,0.988479717,2.209866621 +-0.295865805,1.284095019,0.328096759,-1.223826668,0.65026223,0.048470933,-0.068410269,0.558143087,-0.622973943,0.06233713 +-0.173188881,2.140602427,0.391319826,-0.931262778,0.0448292,-0.060328537,0.43179957,1.915856737,-0.811574703,1.725384388 +0.593723845,-0.807219735,0.528180038,-0.026307907,-0.583226083,-0.334492475,0.455798178,-1.288006056,0.587376906,-2.300124373 +1.023688744,0.324042481,0.484360817,-1.079502336,-0.812389759,0.128806211,0.095917688,-0.182334074,-0.138596951,-0.642873583 +-0.569563843,-1.640306644,-1.761778729,-1.60136237,-1.085676576,-1.523939482,-1.301676699,-1.841043458,-3.083128248,-2.490958443 +-0.830450955,0.002465754,0.454730374,1.490844022,-0.374192843,-0.680714429,-1.048643086,-0.992684739,-1.025567376,0.868001979 +0.563844668,0.698464556,0.295317134,0.477698338,0.397325498,1.73400824,1.061659182,-0.866739478,0.68129927,0.529104487 +-0.130359303,0.039418032,-0.254861672,-1.04480155,0.982212018,0.322737044,-0.623837208,-0.124683099,1.011657714,-0.040978377 +-0.544685236,-0.174976516,-2.177512071,-0.298294316,-0.432131576,-0.665817411,-1.081299761,-0.72528592,-0.590052797,0.557253013 +-0.239226768,0.447126501,0.998492083,0.247348061,-0.097916291,-0.151341695,-0.240627095,-0.534470993,-0.987480241,0.342833956 +0.004512656,0.763974979,-1.273176206,2.143121075,0.290826324,1.104813679,-1.002473103,1.438237823,0.183841993,1.308357156 +-0.503442869,-0.077245363,-2.184582746,0.004583226,-0.077004761,0.475021601,1.635753331,-0.536304966,0.470736725,0.65552022 +-1.376555891,-1.089835785,-1.029891569,-0.620966207,-0.621553246,-1.667081574,-0.567445145,0.047575513,-0.678480008,-1.0511363 +0.026111796,-0.184870656,0.144909874,0.377534879,0.356414852,0.14440258,0.55898206,-0.53509104,1.015210255,-0.964437885 +0.352254711,-1.16058847,-0.464857714,-0.660363501,-1.386004611,0.231753212,-0.653425298,-0.853041672,-0.473601893,-1.594739109 +0.938704654,1.103562601,0.088259894,0.652757791,0.065710088,-1.316917811,-0.225275449,-1.444159557,0.403849505,-0.992919893 +-0.301195192,-1.642141023,0.893613703,0.524808116,-0.032123789,0.006987292,-1.527340712,1.078703525,-2.467663696,1.948972257 +-0.80655373,-0.068367962,-0.782946569,-0.486781979,1.421388964,-0.383727744,-0.592859505,-0.234437131,-0.792159159,-0.413013004 +1.675198821,-1.389733521,1.305772692,1.287866344,2.079880048,1.322609194,1.515917763,1.492256764,2.546013057,0.869655816 +0.429455551,0.742984668,-0.496170667,-0.336113372,1.694137728,0.846929233,0.163537099,0.450071154,1.94E-05,0.75207165 +-0.839737138,0.342952852,-0.953308409,-1.163983828,0.235341076,-0.537144515,1.110554092,-1.105996107,0.456561267,-1.025268274 +0.085060765,1.704666285,0.364828891,0.751538586,-0.118687561,0.346566693,-0.182195473,-0.64094959,1.317076894,0.498589828 +0.345451226,0.929178671,-1.555017604,-0.315503986,-1.091138223,-0.168439585,0.695102602,2.012481429,-0.22377348,0.698739941 +-0.207798026,0.421102625,-0.182063111,-0.129235732,0.61930929,0.367515954,0.949854029,0.78742698,0.487073159,0.281374022 +-0.080562317,-0.636994381,-0.415099158,-1.307491364,-0.249834393,-1.056790744,-0.462615406,-0.201029527,0.849972275,0.350918518 +0.047361604,-0.63602062,-1.62469062,-1.304714064,0.160099973,-1.19915358,-1.249189191,0.326699803,-2.488008974,-1.20069264 +1.489819978,0.482657291,1.667723701,-0.032425836,0.349532434,1.523527378,-0.274849116,0.411308677,2.095208058,1.136389994 +-1.353497749,0.055235353,-0.192247461,-1.02575503,-0.943084547,-1.222388837,-0.138831412,1.003116932,-1.329934076,-0.138402228 +-0.33045853,-0.738721443,-0.603489292,-0.583989929,-1.732793684,-1.009312814,-1.089752198,-2.562597226,-0.44837889,-2.553810731 +-1.382631137,-1.849176974,-2.433951654,-2.10485758,-3.195592488,-2.094448779,-0.490685397,-0.580108501,-1.353894072,-1.155644501 +-0.948956377,-0.791329803,-0.963119947,-0.911438902,-0.817264721,0.087977233,0.390397324,-0.807902901,0.626451414,-0.586253788 +0.880377178,1.401957399,0.483282392,1.089955026,0.426931692,0.942265034,0.523209044,0.930081496,0.67850073,1.588299506 +2.091975245,0.59060742,-0.297216114,0.357247655,0.026820492,1.19929849,0.359890898,0.832244316,-0.712285249,0.957986395 +1.2789508,1.491931577,1.548421193,1.309035334,2.105978801,1.164122452,1.366818597,1.09754453,1.440746221,1.327806016 +1.311865651,0.227890504,1.388338605,-0.0532372,1.59346302,-0.041969506,1.00628067,1.263473658,1.531434476,1.333905192 +0.323516778,0.190960119,-1.18441094,0.074582578,-0.186020154,-1.16359029,-0.42061574,-0.281972542,-0.766154165,-0.412888004 +1.730320608,1.768366725,1.639892959,1.426238765,1.642930709,0.278697841,0.946684571,1.703305178,-0.031661023,-0.130468053 +1.28276617,-0.44316069,-0.524216343,-1.041880872,1.044214131,-0.014598816,-0.536864878,0.39268072,0.71555247,-0.097007585 +-0.442992161,0.464462429,0.991231456,0.863876327,0.871488399,0.698490733,0.464780771,0.978635539,-0.665845538,0.119962179 +0.348669623,-0.060790783,-0.218928455,0.985930457,2.47138023,1.615490383,0.921495125,1.810334225,0.073384475,1.704596588 +-0.142405716,-0.918445847,-1.103579982,0.673576778,-1.770800794,-0.581648463,-1.005585217,-0.252221661,-0.769899954,-0.06109463 +1.810639588,2.947724676,1.434679286,1.60343252,0.739923282,1.615968926,1.216047498,0.891417135,2.059318013,1.615138764 +-0.949697228,0.293895344,-0.138253343,-0.964867423,-0.645486673,-1.132758809,-1.82162476,0.104654891,-0.823100779,1.090985635 +0.266476768,-1.032941613,-0.363067086,0.121197461,0.633789119,1.294263896,-1.502557022,0.875379967,-2.203426308,1.738399936 +-1.277271189,-1.137908884,-2.144449183,-1.407868017,-1.538775713,0.02518826,-1.44441856,-0.368463205,-1.075257077,-1.858551538 +0.336024144,0.428701827,-0.748497705,-0.307094873,-0.556358763,-0.774231574,-0.92505181,0.403891047,0.026634847,-0.849584729 +-0.660662126,0.269202578,0.756704311,-0.306614365,1.358738148,0.155003938,0.198595095,-0.096138822,0.304374025,1.281839818 +0.474125117,2.449372494,1.520748497,1.980191444,2.018282301,1.684773328,0.692355307,1.765604222,0.112013492,1.417205846 +0.202927491,-0.16396497,0.239200253,0.390916046,-0.017255306,0.733408463,-1.249426146,-0.43581815,1.341455436,-1.531184912 +-1.559294153,-1.011044365,0.486295421,0.410609338,0.541247043,-0.302998412,1.588420357,0.47267285,-0.609853451,0.710358057 +-1.207316177,0.587656834,0.796738368,-0.570178764,-0.630902889,1.198087579,1.949201227,0.22675256,0.047639763,-0.27215308 +-0.473989096,1.934329577,0.282041128,0.51349131,-1.470785967,-0.721975054,0.084095614,0.706389159,0.346661641,-0.342319414 +-0.371239715,-0.155908525,-0.815336091,-1.401635402,-1.724939125,0.964933508,1.05386817,1.111077995,0.205306366,-0.241111125 +-0.011653365,-1.002263478,1.119957388,0.037337209,-0.885505529,-0.781970235,-0.057456365,-0.897273486,0.037658831,-0.600088593 +-0.466710748,-0.440524717,-0.501561785,-1.428755451,-0.694377139,-1.205658164,-0.136368385,-0.781417247,-0.547499604,-0.989520626 +0.491345263,-1.563575356,-0.296552524,0.453111168,-0.535046003,-0.121364734,0.056513131,-1.117134836,-2.688497185,-0.999746873 +0.564014371,0.149053514,0.480761635,0.671204763,-0.070806569,1.213293727,1.372300035,-0.342618219,-0.494711099,0.08125082 +-0.270664729,1.03851499,0.908201816,0.328654444,-0.208039176,0.12784961,0.586070121,0.378309101,0.216931473,1.104701648 +1.10828279,0.554999474,0.493954969,-0.5428594,0.465325552,0.626937786,-0.079046591,0.193522086,-0.872487713,0.430250286 +0.956676446,0.528296662,-1.137304919,-2.01481816,-0.353736843,-0.265404654,-1.129621051,-0.035225267,-0.782564541,1.267315221 +-1.327247025,-0.527833932,0.572989488,0.253933156,-1.647145537,-1.85515565,-0.438432798,-1.287642552,-0.504963015,-1.080905612 +1.398434455,-0.962475348,0.377615999,-0.377722686,-0.742810219,-0.093442562,-0.135519774,-0.775887777,0.117628628,0.246594746 +-0.180114787,-0.13212908,0.797714211,0.975074543,0.886773562,-0.112954613,1.544920867,1.424716361,0.00400018,0.494722747 +-2.181705198,0.12954005,1.079770384,-0.250357756,0.271694007,-0.350797831,1.443677691,0.202354074,-0.760062281,0.147522612 +-0.721699459,-0.64253189,0.173816086,0.123672418,-0.65502121,-0.209462893,-1.673499389,1.284445449,-0.782268103,0.738955658 +-1.433384271,-0.603939197,-0.327152347,0.663423547,0.394080545,-0.417103953,0.598974861,0.357190539,-0.398695398,1.164209303 +0.42308328,1.040022687,0.29640501,-0.700039192,-0.341838162,0.776591041,1.195069626,-0.402781106,-0.06327752,0.409364725 +-0.715207166,-0.132732651,-0.098196007,-0.543961381,-2.227770507,-1.250204,-0.748904202,-2.678701316,-0.174316405,-2.557823359 +0.186173827,2.638299948,1.498918784,2.13566482,0.375402884,0.474825254,1.79989012,1.358204568,1.274099892,-0.019608859 +0.069014204,-1.452059204,-0.88134597,-0.702176741,-0.908583513,-0.649938838,0.5613554,-1.021323692,0.025511369,-1.193644962 +-1.481686325,-0.119317197,-0.3512109,-1.271326998,-0.974267445,-1.827594156,-0.650451827,-0.153359681,-1.240323059,-0.005768381 +0.017355132,0.512211429,0.841586751,-0.028662336,-0.27235988,0.520505042,-2.193149031,0.48429744,0.102392563,1.528737833 +-2.158611185,-0.838947115,-1.242826678,-0.386075591,-0.194599327,0.094132754,-0.834570558,-0.960001972,-1.442882931,0.683764898 +0.184501748,-0.285036977,1.465603937,1.056820027,-0.671271889,1.282902779,0.080972896,1.164317003,-1.189652199,0.807552297 +-1.694597684,0.550653192,-0.006713277,-0.08108631,1.737794992,1.555714017,1.428163748,0.713856524,0.312962565,1.740808344 +1.307926953,-0.674070357,-1.646422097,0.275672669,-0.363976074,-0.260765106,-0.433404445,0.879111214,0.685192364,0.709938623 +-0.239041925,0.128238,-0.345611084,1.086846129,-1.424372431,0.470109876,-0.551236804,0.350896672,-0.486371677,-0.410673831 +0.879168441,-1.672854512,-0.068192516,-2.080743169,-0.792821412,-0.476320491,-1.037288677,0.03091118,-0.431509566,-0.858333418 +-1.480841704,-0.858102877,-1.190174976,-1.461521178,-2.018257576,-2.163490916,-1.275644665,-1.454309535,0.881455487,-1.536034116 +-0.809146596,-0.325491175,0.615544575,-0.411523576,-1.174357482,-0.08231543,-1.541383392,-0.297768088,-1.926731578,0.768905515 +-1.393857214,-0.125521094,-0.747686605,0.290850322,0.275059623,-2.189937238,0.046302141,-0.129673907,-0.664502309,-0.265132049 +0.11968914,0.552977866,-0.522796183,0.21235663,0.308575024,0.509387166,0.56222816,0.243038659,0.640113101,-0.344328271 +-0.370457736,-0.243990812,-0.79574832,0.762063932,0.739861623,0.152652266,0.67169053,1.508704652,-0.083717288,0.869124528 +0.869225017,1.546113938,1.626952955,0.008461904,-0.427057369,0.771968461,2.35366129,-0.440101684,0.533711597,-0.634327282 +0.807961341,1.569103297,0.945074645,1.044296338,1.400179409,-0.762326031,0.840212112,0.158557139,0.242998828,1.382452408 +-0.261765147,1.859114824,-0.239226018,0.346885815,1.129216906,-0.090358932,-1.129825981,0.027510902,1.197809821,1.63613816 +-0.903659638,-1.878161481,-2.26925677,-0.744684615,-1.795398669,-2.109328534,-1.433029029,0.403104152,-2.118869609,0.264981482 +0.636606941,1.777202241,0.878124548,0.957676943,1.718266406,0.949109878,0.063494218,1.147088874,-0.312656624,1.448819749 +0.758616004,1.448136711,0.517918934,0.765665005,0.53000239,0.064507726,0.043125019,0.590102012,0.619068668,0.618846649 +0.544542078,0.546210728,-0.352788409,-0.533572198,-1.180721826,0.320148881,0.202269736,-0.159583382,-0.568859976,-0.468443817 +-1.07927917,-0.497526368,-0.010826312,-2.026269191,-1.674905095,-1.216645057,-2.268654178,-0.790156512,0.257267941,-1.958894373 +0.542110947,-1.396480548,0.765238023,-0.369734462,-0.439359746,-0.956357499,-0.643222289,-1.058000907,-0.472312237,-1.435604821 +1.170381179,1.084646256,-1.007092598,-0.066086711,0.469086826,-0.263515562,0.127599663,-0.540229975,0.74099231,0.104175928 +-0.992727579,0.360329549,-0.987874687,0.334143381,0.711951024,0.275838461,-0.653496212,-0.768585794,-1.22131656,1.160786129 +0.114397938,0.337976728,-0.461916225,0.223083301,0.231424375,0.361768595,1.256886085,-0.270170254,0.579230526,0.32859113 +-1.712119618,-0.537877055,-1.217436937,-2.110680539,0.266569355,-0.238615112,-1.963451664,0.512286741,-0.123330178,0.157725708 +-0.368374278,-0.968979454,-1.997048468,-1.710344743,-1.498502497,-1.214557784,-0.81429618,-0.54552728,-1.941912624,0.422349926 +0.371491561,-1.610126567,0.156048669,-0.198832012,-1.206317063,-0.88377473,0.394430673,-0.652763229,-0.498236229,-0.763732104 +-0.605758465,-1.601559706,-1.566843898,-1.039253643,-0.737818592,-0.53924718,-0.149136849,0.166676794,-1.313565367,-1.790922371 +-0.241053426,0.463451024,0.44474524,0.446190418,-0.087527935,-0.215360023,0.131320571,1.04606342,1.440186644,1.934206424 +-0.014352978,-0.67823547,0.044797982,0.372033222,-1.379233933,-1.168543476,0.065436065,1.357562266,1.071641979,0.599953673 +-0.921547793,0.417706278,0.06224616,-0.148319167,-0.642655369,-0.845799616,0.36519761,-0.556304074,0.790960593,0.124087842 +0.104883346,1.897445744,1.156069509,1.377981437,1.52504534,0.399366242,1.695443845,0.670339444,0.924019398,1.353687976 +-0.481628073,-2.115982974,-1.526431108,-0.77096223,-1.455471963,-1.362540367,-1.483306372,-2.245329738,-0.545600421,-1.633357862 +-0.311282522,0.209859195,0.178969436,-0.61790921,-0.567676561,-0.837174612,-0.392497178,0.617384812,0.330717854,1.071185164 +0.105616886,0.574420739,-0.719184642,0.039599137,0.19782696,-0.71717411,0.052222012,1.17134824,0.312908956,1.297178689 +-0.610091352,-0.150239304,-1.501821669,-1.131958983,-0.949169707,-1.385922525,-0.68073056,0.137174771,-0.421788082,0.549587773 +-0.064364809,0.464401646,0.331684241,0.460758764,0.698417507,0.752766528,0.142475504,1.532539847,0.928039666,1.98999501 +-0.620558537,-0.887519398,-1.761824559,-0.996796876,-0.324050817,0.288320611,-0.581909073,-1.600283393,-2.022237316,-0.182903894 +0.329230151,-0.90068358,-0.650318826,-0.688547654,-1.08099037,-0.015917718,-1.009330893,-0.289343231,-1.22774228,0.070538706 +0.0601832,0.672218979,0.420495253,-1.350902772,-0.168601688,-0.418722623,1.01190745,0.979560248,-0.316627052,-0.755250982 +0.908449414,1.448546877,1.172917018,0.289859356,0.919213621,-0.159814047,-0.034814948,0.661185854,1.495644594,0.537549974 +-0.230146617,-0.172809758,0.209916456,-0.321228326,-1.47703563,-1.39157019,-0.998564341,-1.204548418,0.779147868,-0.031467268 +0.325620099,0.439484037,-0.932838144,-0.292692671,1.405421206,1.071823257,0.396318389,1.679643443,0.823153639,0.33331933 +0.786772271,0.177414586,0.536859656,0.301442984,-0.286641664,0.040157885,-1.834233711,0.016139809,-0.368625958,0.756541613 +0.817067364,-0.175546623,0.734409614,-0.903674147,0.591202802,-2.608092245,-1.515568167,-0.305637049,0.991789125,-1.566459517 +0.266542752,-0.596826132,0.00543176,1.486297688,-0.253119759,0.348584747,-0.023569457,-0.166505168,-0.853969578,0.268242125 +1.091608122,0.875032514,1.746382707,0.704721327,0.698918045,-0.333311558,0.33826037,0.786953189,1.525305938,0.121386787 +-5.253535162,-1.099829261,-2.115637522,-0.323990497,-1.235628045,0.19654677,-0.005410911,-1.278077892,0.197013761,-1.42761902 +-0.100319167,-0.071173616,0.314791132,-0.810804385,-0.760467944,-0.348360216,0.552127137,-1.176096085,2.059008885,-0.499842777 +-1.525989417,0.363183355,-0.071280293,-0.125254562,-1.384644013,-0.918822253,0.191709769,0.353313079,-1.466742553,-0.584452182 +-1.639263002,-0.327566843,0.588938841,1.927226285,0.883825236,1.4610763,-0.141725464,0.57988608,-1.329034036,-0.40285559 +0.988539701,0.456534449,1.018065319,-0.005290543,0.522094281,-0.763136883,1.574074183,1.432738043,0.968461805,-1.647165286 +-0.645225276,1.345005413,0.343129,-0.814167433,-2.242119189,-1.581319403,-0.639375795,-0.122027328,-1.128447964,-1.360682017 +1.119385314,0.764488129,2.897451758,2.765508778,1.832327846,1.944782605,0.989969509,1.622339121,0.868714259,1.217048649 +-0.355859321,-1.498889335,0.924584854,0.386095716,0.326075692,0.433818894,0.232323585,-0.517999379,-0.581424909,-0.029568281 +0.012616885,-1.084537676,-0.114137768,-0.651038738,-0.951769121,-2.280710395,-1.035689847,-0.700955298,-1.776090931,-3.269359975 +-1.334905279,-2.646075274,-1.90782737,-2.040013115,-1.791759044,-0.427466784,-0.833241234,-1.930548191,-0.580936799,-0.455960676 +-1.055375323,-1.104353327,-1.843880886,-1.572408698,-0.324744259,-1.665377567,-0.841338639,-0.785175779,-1.232022095,0.047674762 +1.485970915,1.621092014,1.424418551,2.362303451,1.355155883,1.455246152,0.626992984,0.11645694,0.923574993,0.545344061 +0.911914442,1.209744644,1.061145725,0.687071292,0.081233549,2.439261059,0.950062838,2.348237737,2.600769363,1.327634167 +0.701593727,0.088526547,0.751118322,-0.030255635,0.584466521,1.093150035,0.440267186,-1.041587379,0.128278178,-1.253546268 +0.480903215,1.195098972,0.741368622,1.319608761,1.737808107,0.849420589,0.33688473,-0.384905051,1.254913884,-0.223952049 +0.681066053,1.530814447,-0.398877329,0.255457007,0.632951034,-0.778448919,0.016385193,0.399132005,1.01164405,-0.251805538 +-2.801161175,-1.553126747,-1.334525321,-1.719414034,-2.122871056,-0.468914436,-2.179477237,-1.230810198,-1.992729552,-0.446659132 +0.024167951,0.982229253,3.080246997,1.342478562,0.864634491,2.340617001,1.575556743,1.673517265,1.239148286,0.963219501 +0.329580942,-1.206333506,-1.203058089,-0.876102627,-1.826597693,-0.882051482,0.084239979,-0.604249608,-1.300579117,-1.047671774 +-1.455122999,-2.310261628,-1.344188864,-1.611791165,-0.626182152,-0.476915079,-0.839429054,-1.838347556,-0.893654926,-1.71827945 +-0.125582911,1.087176922,-0.194594767,-1.067871217,-1.268578482,0.221997829,0.04829831,0.693935756,-1.088669554,-0.760434597 +0.022165547,-0.836017427,0.460482501,-1.118993033,1.382108472,0.925234306,0.072118192,-0.01479067,-0.471272353,-0.119801264 +-0.478542367,-0.907633373,-0.496328232,-0.242530931,-0.299448407,0.452123698,-1.092659122,-1.294969228,0.257828627,-0.034143554 +-0.803437863,0.747621469,-1.216283694,0.032954726,-0.025248456,0.071047262,-1.722654311,0.504036669,-0.851606303,0.973787028 +0.26158325,-0.796730637,0.421442654,0.722408787,0.605336873,-0.484530749,0.509886178,-1.015292697,0.756913796,-1.255623646 +-1.641725867,-1.161905058,-0.30315545,-1.032822692,0.220452373,-0.7105615,-1.160473476,-0.849903108,0.425163395,-0.281376093 +0.031298743,-0.304614468,-0.293477384,0.001640582,0.590927286,0.589107738,-0.660940461,0.856630117,0.125882537,-0.604009376 +0.42141082,1.362388553,1.476100499,0.32187802,0.6902546,1.17948421,2.804668888,0.816985571,1.806749988,1.347413335 +-0.15184731,-0.664230393,-1.345160035,0.38718003,0.798229888,-0.817502658,-4.206501188,0.025050026,-1.890315923,-0.031027402 +0.320804838,-0.067524958,1.14709936,-1.842178484,-0.23286339,0.173396814,0.596813362,-1.286201733,0.033239912,-1.737408461 +1.636666126,0.800915218,1.04364112,0.850241079,0.653068648,2.322055079,0.767020064,-0.082908524,0.671141617,-0.050940225 +1.578047507,1.819883739,0.702070241,-0.36407432,-0.306373082,1.03056506,0.45087683,1.467450387,-0.868258744,0.27076571 +1.140180868,0.052328129,0.890347636,0.838411126,-1.018596511,0.62284457,-0.18404961,0.829979422,0.775775572,-0.34178949 +-0.376740676,0.115743418,1.052603328,0.078743157,-0.385639176,-0.743453702,0.869439878,-0.749804284,-0.339508063,0.028063534 +1.370003621,-1.032356754,0.735369335,0.339242269,1.208928147,0.57289495,0.824114998,0.97214004,-0.368884799,0.642181103 +-0.22759367,-1.45633946,-2.570179806,0.438134792,0.921683537,0.200741979,0.373988558,-1.200750999,0.619675912,0.329864482 +-1.317803979,0.251930645,-0.632038206,-0.642135148,-0.010867827,-1.050758908,0.294256231,-0.754613266,-1.469226731,0.189221331 +-0.055409753,-0.876428925,-0.547363893,0.474026751,-0.165463288,-1.042709664,-1.004265876,-0.585553232,-0.135277377,0.633603125 +-0.11543898,0.691744067,0.333148251,-0.329862913,-0.463699213,0.716623013,-0.903538925,-0.224566708,1.366312356,-0.896021284 +0.016817347,-0.141703055,0.032363525,1.238401832,0.301331329,-0.114784585,0.114361334,1.391267038,0.939495476,0.741394163 +-1.330291734,-0.450134274,-0.301352854,-0.028264833,0.522709474,0.076095915,-1.141549223,-1.277537204,-0.614779796,0.162902311 +0.639384398,-1.151397102,0.179973234,0.725409915,0.922588984,-0.081771736,1.075276628,-0.35593661,-0.246914249,0.319422301 +1.247720862,-1.319175299,0.605627877,-0.601892015,-1.097536175,-0.380934645,-0.383849169,0.156214432,-0.1583534,-1.036749603 +-0.193341845,-1.587828102,0.666703546,2.132787916,-1.101343961,0.368187969,0.048553052,0.400965832,-0.179881066,-0.121809888 +-1.887388734,-1.353168255,-1.920645462,-1.476651288,-0.80662198,-0.12383742,-0.84184231,-1.929375717,-1.230394212,-1.424786053 +-0.260304644,1.39751565,1.315431574,-0.69574597,1.462183611,0.938273646,1.36797369,0.62543207,2.049646875,0.020028177 +-0.093921327,0.02330897,1.737196922,-0.152423564,0.090918921,0.465791668,-0.004220454,-0.41680674,1.243102379,0.080019578 +0.549925827,0.34819569,1.746840127,-1.398477182,0.670247616,-0.096320479,1.2247724,0.900750525,0.524938955,-0.304104037 +-0.862805711,-0.620082132,-2.692325202,-0.782982624,-0.438020765,-0.459130956,-0.671464237,0.756297782,-1.144499578,0.342379578 +0.280329644,0.480332227,-0.586225515,-1.867780707,-0.447018958,-0.994334509,-0.782446793,-0.407176533,0.592745311,-0.275393614 +-0.474676541,-0.227537702,1.696449889,-0.52420752,-0.913972703,0.51548638,-1.138685336,0.280551282,-0.276381215,-0.4818581 +-0.838750963,-1.284585842,-0.438908131,-1.569016992,0.64423823,-1.614747737,0.327878864,-1.165104582,-0.951269138,-0.688053987 +-0.480596152,0.229236004,1.365892016,-0.151538346,-0.579703254,0.283216815,-1.002335725,-1.097920481,0.514500332,-0.120459986 +-0.18074247,0.789718061,0.527384002,-0.019234724,0.393817333,2.008517524,0.387933407,0.17205132,-1.234113194,-1.243821706 +0.276895158,0.317670319,-0.900203127,-1.170718625,0.632410318,-0.165611981,-1.032661689,0.540463923,-0.152270253,-0.951878797 +-0.296815135,1.61716353,0.98358138,0.938412289,1.134289599,0.250685757,0.194287132,1.277031037,0.699801769,2.66537185 +-2.757763393,-2.037161037,-1.053163136,-1.989203519,-2.08432542,-1.092856261,-2.351879499,-1.69900805,-2.664173436,-1.811900829 +1.085121691,0.681640756,-0.663708061,1.836369164,1.318479952,0.477168729,-0.592601881,0.801132826,-0.990158614,2.199664334 +-0.119646928,-1.727131555,-1.230001451,0.331719941,-0.350420749,-0.335451727,-0.578919348,-1.959856958,-1.936682881,-2.4565841 +-1.437495323,-0.831610416,-1.138050749,-0.983645645,-0.444267618,-1.852450194,-1.308256747,-0.589814277,-0.973758739,-0.14019813 +1.522081797,0.519345055,2.531126531,0.871856257,0.675471477,1.52285505,1.558417944,0.992072367,1.477733475,1.672465802 +-0.635943551,-1.411420818,0.904472696,-0.188542999,1.823490296,0.406606109,0.012229401,-0.518039779,0.316294348,-0.426202743 +-0.109586087,0.280050267,0.096680091,0.262705682,-0.232377104,0.866702265,0.789015702,1.041669294,1.199624938,-0.686415894 +0.227845755,-0.344124322,-0.363728527,0.945729098,-0.32021499,0.363254375,-0.022804763,1.244087744,-0.253885666,1.303108598 +-5.497436984,1.064763714,2.029291825,0.361011787,2.071582664,1.410661841,1.584720781,1.568099393,1.110692367,0.671411469 +-0.673465564,-0.549773231,-0.37233368,-0.413871048,0.649072546,-0.068763025,-0.552346312,-0.016128918,0.735792499,0.502777137 +1.661913473,-0.12139557,-0.364046104,-1.069774229,-0.763443146,-1.58814893,0.328715089,-1.4210074,-1.444363196,-0.538179487 +-0.382985118,-0.804831888,0.538835566,-1.878055206,-0.160051584,0.988250333,-1.047210194,-0.760466689,-1.17954043,-1.698029196 diff --git a/mgcpy/independence_tests/mdmr/__init__.py b/mgcpy/independence_tests/mdmr/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/mgcpy/independence_tests/mdmr/mdmr.py b/mgcpy/independence_tests/mdmr/mdmr.py new file mode 100644 index 0000000..216a790 --- /dev/null +++ b/mgcpy/independence_tests/mdmr/mdmr.py @@ -0,0 +1,115 @@ +from mgcpy.independence_tests.abstract_class import IndependenceTest + +import copy +from mgcpy.independence_tests.mdmr.mdmrfunctions import * +#from mdmrfunctions import * + +class MDMR(IndependenceTest): + def __init__(self, data_matrix_X, data_matrix_Y, compute_distance_matrix): + ''' + :param data_matrix_X: is interpreted as: + - a [n*d] data matrix, a square matrix with n samples in d dimensions + :type data_matrix_X: 2D numpy.array + :param data_matrix_Y: is interpreted as either: + - a [n*d] data matrix, a square matrix with n samples in d dimensions + :type data_matrix_Y: 2D numpy.array + :param compute_distance_matrix: a function to compute the pairwise distance matrix, given a data matrix + :type compute_distance_matrix: FunctionType or callable() + ''' + IndependenceTest.__init__(self, data_matrix_X, data_matrix_Y, compute_distance_matrix) + + def get_name(self): + return "MDMR" + + def test_statistic(self, data_matrix_X=None, data_matrix_Y=None, permutations = 1000, individual = 0, disttype = 'cityblock'): + """ + Computes MDMR between two datasets. + - It first takes the distance matrix of Y (by ) + - Next it regresses X into a portion due to Y and a portion due to residual for each variable of X + - The p-value is for the null hypothesis that the variable of X is not correlated with Y's distance matrix + :param data_matrix_X: (optional, default picked from class attr) is interpreted as: + - a [n*d] data matrix, a square matrix with n samples in d dimensions + :type data_matrix_X: 2D numpy.array + :param data_matrix_Y: (optional, default picked from class attr) is interpreted as: + - a [n*d] data matrix, a square matrix with n samples in d dimensions + :type data_matrix_Y: 2D numpy.array + :parameter 'individual': + with value 0 tests the entire X matrix by (default), returns 2 values + with value 1 it tests the entire X matrix and then each column (variable) individually, returns 3 values + :return: with individual = 0, returns the test statistic of the entire X matrix and the associated p-value + with individual = 1, returns the above as well as an array with the + variable of X in the first column, the test statistic in the 2nd, and the permutation p-value in the 3rd + """ + if data_matrix_X is None and data_matrix_Y is None: + data_matrix_X = self.data_matrix_X + data_matrix_Y = self.data_matrix_Y + X = data_matrix_X + Y = data_matrix_Y + + D = self.compute_distance_matrix(Y, disttype) + D = scp.distance.squareform(D) + a = D.shape[0]**2 + D = D.reshape((a,1)) + + columns = np.arange(X.shape[1]) + columnsingle = X.shape[1] + check_rank(X) + + subjects = X.shape[0] + if subjects != np.sqrt(D.shape[0]): + raise Exception("# of subjects incompatible between X and D") + + X = np.hstack((np.ones((X.shape[0], 1)), X)) + col = copy.copy(columns) + col += 1 + + Gs = gower_center_many(D) + + df_among = float(col.shape[0]) + df_resid = float(subjects - X.shape[1]) + + permutation_indexes = np.zeros((permutations + 1, subjects), dtype=np.int) + permutation_indexes[0, :] = range(subjects) + for i in range(1, permutations + 1): + permutation_indexes[i,:] = np.random.permutation(subjects) + + H2perms = gen_H2_perms(X, col, permutation_indexes) + IHperms = gen_IH_perms(X, col, permutation_indexes) + + F_perms = calc_ftest(H2perms, IHperms, Gs, + df_among, df_resid) + + p_vals = fperms_to_pvals(F_perms) + F_permtotal = F_perms[0, :] + pvaltotal = p_vals + if individual == 0: + return F_permtotal, pvaltotal + if individual == 1: + results = np.zeros((columnsingle,3)) + for col in range(1, columnsingle+1): + col = copy.copy(col) + # columns += 1 + + Gs = gower_center_many(D) + + df_among = float(col) + df_resid = float(subjects - X.shape[1]) + + permutation_indexes = np.zeros((permutations + 1, subjects), dtype=np.int) + permutation_indexes[0, :] = range(subjects) + for i in range(1, permutations + 1): + permutation_indexes[i,:] = np.random.permutation(subjects) + + H2perms = gen_H2_perms_single(X, col, permutation_indexes) + IHperms = gen_IH_perms_single(X, col, permutation_indexes) + + F_perms = calc_ftest(H2perms, IHperms, Gs, + df_among, df_resid) + + p_vals = fperms_to_pvals(F_perms) + results[col-1,0] = col + results[col-1,1] = F_perms[0, :] + results[col-1,2] = p_vals + + + return F_permtotal, pvaltotal, results diff --git a/mgcpy/independence_tests/mdmr/mdmrfunctions.py b/mgcpy/independence_tests/mdmr/mdmrfunctions.py new file mode 100644 index 0000000..9032464 --- /dev/null +++ b/mgcpy/independence_tests/mdmr/mdmrfunctions.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +""" +Created on Thu Oct 25 16:09:14 2018 + +@author: sunda +""" +import numpy as np +import scipy.spatial as scp + +DTYPE = np.float64 +ITYPE = np.int32 + +def check_rank(X): + k = X.shape[1] + rank = np.linalg.matrix_rank(X) + if rank < k: + raise Exception("matrix is rank deficient (rank %i vs cols %i)" % (rank, k)) + +def compute_distance_matrix(X, disttype): + D = scp.distance.pdist(X, disttype) + return D + +def hatify(X): + Q1, _ = np.linalg.qr(X) + H = Q1.dot(Q1.T) + return H + +def gower_center(Y): + n = Y.shape[0] + I = np.eye(n,n) + uno = np.ones((n, 1)) + + A = -0.5 * (Y ** 2) + C = I - (1.0 / n) * uno.dot(uno.T) + G = C.dot(A).dot(C) + + return G + +def gower_center_many(Ys): + observations = int(np.sqrt(Ys.shape[0])) + tests = Ys.shape[1] + Gs = np.zeros_like(Ys) + + for i in range(tests): +# print(type(observations)) + D = Ys[:, i].reshape(observations, observations) + Gs[:, i] = gower_center(D).flatten() + + return Gs + + +def gen_h(x, columns, permutations): + return hatify(x[permutations][:, np.array(columns)]) + +def gen_H2_perms_single(X, columns, permutation_indexes): + permutations, observations = permutation_indexes.shape + variables = X.shape[1] + + H2_permutations = np.zeros((observations ** 2, permutations)) + for i in range(permutations): + perm_X = X[permutation_indexes[i, :]] + cols_X = perm_X[:, columns] + fix = cols_X.shape[0] + cols_X = cols_X.reshape((fix,1)) + H = hatify(cols_X) +# H = hatify(perm_X) + other_columns = [i for i in range(variables) if i != columns] + H2 = H - hatify(X[:, other_columns]) +# H2 = H + H2_permutations[:, i] = H2.flatten() + + return H2_permutations + +def gen_IH_perms_single(X, columns, permutation_indexes): + permutations, observations = permutation_indexes.shape + I = np.eye(observations, observations) + + IH_permutations = np.zeros((observations ** 2, permutations)) + for i in range(permutations): + cols_X = X[permutation_indexes[i, :]][:, columns] + fix = cols_X.shape[0] + cols_X = cols_X.reshape((fix,1)) + IH = I - hatify(cols_X) +# IH = I - hatify(X[permutation_indexes[i, :]]) + IH_permutations[:,i] = IH.flatten() + + return IH_permutations + +def gen_H2_perms(X, columns, permutation_indexes): + permutations, observations = permutation_indexes.shape + variables = X.shape[1] + + H2_permutations = np.zeros((observations ** 2, permutations)) + for i in range(permutations): + perm_X = X[permutation_indexes[i, :]] + cols_X = perm_X[:, columns] + H = hatify(cols_X) + other_columns = [i for i in range(variables) if i not in columns] + H2 = H - hatify(X[:, other_columns]) + H2_permutations[:, i] = H2.flatten() + + return H2_permutations + +def gen_IH_perms(X, columns, permutation_indexes): + permutations, observations = permutation_indexes.shape + I = np.eye(observations, observations) + + IH_permutations = np.zeros((observations ** 2, permutations)) + for i in range(permutations): + IH = I - hatify(X[permutation_indexes[i, :]][:, columns]) + IH_permutations[:,i] = IH.flatten() + + return IH_permutations + +def calc_ftest(Hs, IHs, Gs, m2, nm): + N = Hs.T.dot(Gs) + D = IHs.T.dot(Gs) + F = (N / m2) / (D / nm) + return F + +def fperms_to_pvals(F_perms): + permutations, tests = F_perms.shape + pvals = np.zeros(tests) + for i in range(tests): + j = (F_perms[:, i] >= F_perms[0, i]).sum().astype('float') + pvals[i] = j / permutations + return pvals From 1b1d09d47fbb800bd6bc60a649a42278464fb2e8 Mon Sep 17 00:00:00 2001 From: sundaysundya Date: Mon, 26 Nov 2018 18:27:12 -0500 Subject: [PATCH 06/60] add mdmr unit test --- .../{mdmr => unit_tests/mdmr/data}/X_mdmr.csv | 0 .../{mdmr => unit_tests/mdmr/data}/Y_mdmr.csv | 0 .../unit_tests/mdmr/mdmr_test.py | 24 +++++++++++++++++++ 3 files changed, 24 insertions(+) rename mgcpy/independence_tests/{mdmr => unit_tests/mdmr/data}/X_mdmr.csv (100%) rename mgcpy/independence_tests/{mdmr => unit_tests/mdmr/data}/Y_mdmr.csv (100%) create mode 100644 mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py diff --git a/mgcpy/independence_tests/mdmr/X_mdmr.csv b/mgcpy/independence_tests/unit_tests/mdmr/data/X_mdmr.csv similarity index 100% rename from mgcpy/independence_tests/mdmr/X_mdmr.csv rename to mgcpy/independence_tests/unit_tests/mdmr/data/X_mdmr.csv diff --git a/mgcpy/independence_tests/mdmr/Y_mdmr.csv b/mgcpy/independence_tests/unit_tests/mdmr/data/Y_mdmr.csv similarity index 100% rename from mgcpy/independence_tests/mdmr/Y_mdmr.csv rename to mgcpy/independence_tests/unit_tests/mdmr/data/Y_mdmr.csv diff --git a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py new file mode 100644 index 0000000..392ecb3 --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py @@ -0,0 +1,24 @@ +from mgcpy.independence_tests.mdmr.mdmr import MDMR +from mgcpy.independence_tests.mdmr.mdmrfunctions import compute_distance_matrix +import numpy as np + + +def test_mdmr(): + #load data from csv files + csv1 = np.genfromtxt('data/X_mdmr.csv', delimiter=",") + X = csv1 + + csv1 = np.genfromtxt('data/Y_mdmr.csv', delimiter=",") + Y = csv1 + + mdmr = MDMR(csv1, csv2, compute_distance_matrix) + + #test get_name + assert mdmr.get_name() == 'MDMR' + + #test statistic + assert np.allclose(mdmr.test_statistic()[0], 25.03876688) + + #p-value + assert np.allclose(mdmr.test_statistic()[1], 0.000999) + \ No newline at end of file From 49d86fb5f71236f18fd6e6399ac91bdcb770167c Mon Sep 17 00:00:00 2001 From: sundaysundya Date: Mon, 26 Nov 2018 18:29:44 -0500 Subject: [PATCH 07/60] correct data location --- mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py index 392ecb3..82ee0f8 100644 --- a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py +++ b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py @@ -5,10 +5,10 @@ def test_mdmr(): #load data from csv files - csv1 = np.genfromtxt('data/X_mdmr.csv', delimiter=",") + csv1 = np.genfromtxt('./mgcpy/independence_tests/unit_tests/mdmr/data/X_mdmr.csv', delimiter=",") X = csv1 - csv1 = np.genfromtxt('data/Y_mdmr.csv', delimiter=",") + csv1 = np.genfromtxt('./mgcpy/independence_tests/unit_tests/mdmr/data/Y_mdmr.csv', delimiter=",") Y = csv1 mdmr = MDMR(csv1, csv2, compute_distance_matrix) From cdf5d1a3ed76886fd0e282acb933f3708494febd Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Tue, 27 Nov 2018 20:46:35 -0500 Subject: [PATCH 08/60] Added simulations edits --- mgcpy/benchmarks/simulations.py | 8 +- mgcpy/benchmarks/simulations_test.py | 190 ++++++++++++++++++--------- 2 files changed, 135 insertions(+), 63 deletions(-) diff --git a/mgcpy/benchmarks/simulations.py b/mgcpy/benchmarks/simulations.py index 8dbcd51..92a332d 100644 --- a/mgcpy/benchmarks/simulations.py +++ b/mgcpy/benchmarks/simulations.py @@ -147,8 +147,12 @@ def joint_sim(num_samp, num_dim, noise=0.5): samp = (np.random.multivariate_normal(cov=sig, mean=np.zeros(2*num_dim), size=num_samp)) - y = samp[:, num_dim: (2*num_dim)] + kappa*noise*gauss_noise - x = samp[:, 0:num_dim] + if num_dim == 1: + y = samp[:, (num_dim):(2*num_dim)] + kappa*noise*gauss_noise + x = samp[:, 0:num_dim] + else: + y = samp[:, (num_dim+1):(2*num_dim)] + kappa*noise*gauss_noise + x = samp[:, 0:num_dim] return x, y diff --git a/mgcpy/benchmarks/simulations_test.py b/mgcpy/benchmarks/simulations_test.py index e118b9e..ac8861a 100644 --- a/mgcpy/benchmarks/simulations_test.py +++ b/mgcpy/benchmarks/simulations_test.py @@ -1,6 +1,7 @@ import numpy as np from mgcpy.benchmarks import simulations as sims import matplotlib.pyplot as plt +from mpl_toolkits.mplot3d import Axes3D def test_simulations(): @@ -10,8 +11,9 @@ def test_simulations(): independent = True np.random.seed(0) - fig1 = plt.figure(figsize = (50, 80)); + fig1 = plt.figure(figsize = (50, 80)) plt.axis('off') + fig2 = plt.figure(figsize = (50, 80)) # Linear Simulation returns_low_dim = sims.linear_sim(num_samps, num_dim1) @@ -20,10 +22,16 @@ def test_simulations(): assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) x1, y1 = sims.linear_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 1); - ax1.scatter(x1, y1); + ax1 = fig1.add_subplot(4, 5, 1) + ax1.scatter(x1, y1) ax1.set_title('Linear', fontweight='bold') - ax1.axis('off'); + ax1.axis('off') + + x2, y2 = sims.linear_sim(num_samps, 2, noise=0) + ax2 = fig2.add_subplot(4, 5, 1, projection = '3d'); + ax2.scatter(x2[:, 0], x2[:, 1], y2) + ax2.set_title('Linear', fontweight='bold') + ax2.axis('off') # Exponential Simulation returns_low_dim = sims.exp_sim(num_samps, num_dim1) @@ -32,10 +40,16 @@ def test_simulations(): assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) x1, y1 = sims.exp_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 2); - ax1.scatter(x1, y1); + ax1 = fig1.add_subplot(4, 5, 2) + ax1.scatter(x1, y1) ax1.set_title('Exponential', fontweight='bold') - ax1.axis('off'); + ax1.axis('off') + + x2, y2 = sims.exp_sim(num_samps, 2, noise=0) + ax2 = fig2.add_subplot(4, 5, 2, projection = '3d'); + ax2.scatter(x2[:, 0], x2[:, 1], y2) + ax2.set_title('Exponential', fontweight='bold') + ax2.axis('off') # Cubic Simulation returns_low_dim = sims.cub_sim(num_samps, num_dim1) @@ -44,10 +58,16 @@ def test_simulations(): assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) x1, y1 = sims.cub_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 3); - ax1.scatter(x1, y1); + ax1 = fig1.add_subplot(4, 5, 3) + ax1.scatter(x1, y1) ax1.set_title('Cubic', fontweight='bold') - ax1.axis('off'); + ax1.axis('off') + + x2, y2 = sims.cub_sim(num_samps, 2, noise=0) + ax2 = fig2.add_subplot(4, 5, 3, projection = '3d'); + ax2.scatter(x2[:, 0], x2[:, 1], y2) + ax2.set_title('Cubic', fontweight='bold') + ax2.axis('off') # Joint-Normal Simulation returns_low_dim = sims.joint_sim(num_samps, num_dim1) @@ -56,10 +76,16 @@ def test_simulations(): assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) x1, y1 = sims.joint_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 4); - ax1.scatter(x1, y1); + ax1 = fig1.add_subplot(4, 5, 4) + ax1.scatter(x1, y1) ax1.set_title('Joint Normal', fontweight='bold') - ax1.axis('off'); + ax1.axis('off') + + x2, y2 = sims.joint_sim(num_samps, 2, noise=0) + ax2 = fig2.add_subplot(4, 5, 4, projection = '3d'); + ax2.scatter(x2[:, 0], x2[:, 1], y2) + ax2.set_title('Joint Normal', fontweight='bold') + ax2.axis('off') # Step Simulation returns_low_dim = sims.step_sim(num_samps, num_dim1) @@ -68,10 +94,16 @@ def test_simulations(): assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) x1, y1 = sims.step_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 5); - ax1.scatter(x1, y1); + ax1 = fig1.add_subplot(4, 5, 5) + ax1.scatter(x1, y1) ax1.set_title('Step', fontweight='bold') - ax1.axis('off'); + ax1.axis('off') + + x2, y2 = sims.step_sim(num_samps, 2, noise=0) + ax2 = fig2.add_subplot(4, 5, 5, projection = '3d'); + ax2.scatter(x2[:, 0], x2[:, 1], y2) + ax2.set_title('Step', fontweight='bold') + ax2.axis('off') # Quadratic Simulation returns_low_dim = sims.quad_sim(num_samps, num_dim1) @@ -80,10 +112,16 @@ def test_simulations(): assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) x1, y1 = sims.quad_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 6); - ax1.scatter(x1, y1); + ax1 = fig1.add_subplot(4, 5, 6) + ax1.scatter(x1, y1) ax1.set_title('Quadratic', fontweight='bold') - ax1.axis('off'); + ax1.axis('off') + + x2, y2 = sims.quad_sim(num_samps, 2, noise=0) + ax2 = fig2.add_subplot(4, 5, 6, projection = '3d'); + ax2.scatter(x2[:, 0], x2[:, 1], y2) + ax2.set_title('Quadratic', fontweight='bold') + ax2.axis('off') # W Simulation returns_low_dim = sims.w_sim(num_samps, num_dim1) @@ -92,10 +130,16 @@ def test_simulations(): assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) x1, y1 = sims.w_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 7); - ax1.scatter(x1, y1); + ax1 = fig1.add_subplot(4, 5, 7) + ax1.scatter(x1, y1) ax1.set_title('W-Shaped', fontweight='bold') - ax1.axis('off'); + ax1.axis('off') + + x2, y2 = sims.w_sim(num_samps, 2, noise=0) + ax2 = fig2.add_subplot(4, 5, 7, projection = '3d'); + ax2.scatter(x2[:, 0], x2[:, 1], y2) + ax2.set_title('W-Shaped', fontweight='bold') + ax2.axis('off') # Spiral Simulation returns_low_dim = sims.spiral_sim(num_samps, num_dim1) @@ -104,20 +148,32 @@ def test_simulations(): assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) x1, y1 = sims.spiral_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 8); - ax1.scatter(x1, y1); + ax1 = fig1.add_subplot(4, 5, 8) + ax1.scatter(x1, y1) ax1.set_title('Spiral', fontweight='bold') - ax1.axis('off'); + ax1.axis('off') + + x2, y2 = sims.spiral_sim(num_samps, 2, noise=0) + ax2 = fig2.add_subplot(4, 5, 8, projection = '3d'); + ax2.scatter(x2[:, 0], x2[:, 1], y2) + ax2.set_title('Spiral', fontweight='bold') + ax2.axis('off') # Uncorrelated Bernoulli Simulation returns = sims.ubern_sim(num_samps, num_dim2) assert np.all(returns[0].shape == (num_samps, num_dim2)) x1, y1 = sims.ubern_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 9); - ax1.scatter(x1, y1); + ax1 = fig1.add_subplot(4, 5, 9) + ax1.scatter(x1, y1) ax1.set_title('Uncorrelated Bernoulli', fontweight='bold') - ax1.axis('off'); + ax1.axis('off') + + x2, y2 = sims.ubern_sim(num_samps, 2, noise=0) + ax2 = fig2.add_subplot(4, 5, 9, projection = '3d'); + ax2.scatter(x2[:, 0], x2[:, 1], y2) + ax2.set_title('Uncorrelated Bernoulli', fontweight='bold') + ax2.axis('off') # Logarithmic Simulation returns_low_dim = sims.log_sim(num_samps, num_dim1) @@ -126,10 +182,16 @@ def test_simulations(): assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) x1, y1 = sims.log_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 10); - ax1.scatter(x1, y1); + ax1 = fig1.add_subplot(4, 5, 10) + ax1.scatter(x1, y1) ax1.set_title('Logarithmic', fontweight='bold') - ax1.axis('off'); + ax1.axis('off') + + x2, y2 = sims.log_sim(num_samps, 2, noise=0) + ax2 = fig2.add_subplot(4, 5, 10, projection = '3d'); + ax2.scatter(x2[:, 0], x2[:, 1], y2) + ax2.set_title('Logarithmic', fontweight='bold') + ax2.axis('off') # Nth Root Simulation returns_low_dim = sims.root_sim(num_samps, num_dim1) @@ -138,10 +200,16 @@ def test_simulations(): assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) x1, y1 = sims.root_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 11); - ax1.scatter(x1, y1); + ax1 = fig1.add_subplot(4, 5, 11) + ax1.scatter(x1, y1) ax1.set_title('Fourth Root', fontweight='bold') - ax1.axis('off'); + ax1.axis('off') + + x2, y2 = sims.root_sim(num_samps, 2, noise=0) + ax2 = fig2.add_subplot(4, 5, 11, projection = '3d'); + ax2.scatter(x2[:, 0], x2[:, 1], y2) + ax2.set_title('Fourth Root', fontweight='bold') + ax2.axis('off') # Sinusoidal Simulation (4*pi) returns_low_dim = sims.sin_sim(num_samps, num_dim1) @@ -150,10 +218,10 @@ def test_simulations(): assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) x1, y1 = sims.sin_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 12); - ax1.scatter(x1, y1); + ax1 = fig1.add_subplot(4, 5, 12) + ax1.scatter(x1, y1) ax1.set_title('Sinusoidal (4\u03C0)', fontweight='bold') - ax1.axis('off'); + ax1.axis('off') # Sinusoidal Simulation (16*pi) returns_low_dim = sims.sin_sim(num_samps, num_dim1, period=16*np.pi) @@ -163,20 +231,20 @@ def test_simulations(): assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) x1, y1 = sims.sin_sim(num_samps, 1, noise=0, period=16*np.pi) - ax1 = fig1.add_subplot(4, 5, 13); - ax1.scatter(x1, y1); + ax1 = fig1.add_subplot(4, 5, 13) + ax1.scatter(x1, y1) ax1.set_title('Sinusoidal (16\u03C0)', fontweight='bold') - ax1.axis('off'); + ax1.axis('off') # Square Simulation returns = sims.square_sim(num_samps, num_dim2, indep=independent) assert np.all(returns[0].shape == (num_samps, num_dim2)) x1, y1 = sims.square_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 14); - ax1.scatter(x1, y1); + ax1 = fig1.add_subplot(4, 5, 14) + ax1.scatter(x1, y1) ax1.set_title('Square', fontweight='bold') - ax1.axis('off'); + ax1.axis('off') # Two Parabolas Simulation returns_low_dim = sims.two_parab_sim(num_samps, num_dim1) @@ -185,30 +253,30 @@ def test_simulations(): assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) x1, y1 = sims.two_parab_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 15); - ax1.scatter(x1, y1); + ax1 = fig1.add_subplot(4, 5, 15) + ax1.scatter(x1, y1) ax1.set_title('Two Parabolas', fontweight='bold') - ax1.axis('off'); + ax1.axis('off') # Circle Simulation returns = sims.circle_sim(num_samps, num_dim2) assert np.all(returns[0].shape == (num_samps, num_dim2)) x1, y1 = sims.circle_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 16); - ax1.scatter(x1, y1); + ax1 = fig1.add_subplot(4, 5, 16) + ax1.scatter(x1, y1) ax1.set_title('Circle', fontweight='bold') - ax1.axis('off'); + ax1.axis('off') # Ellipse Simulation returns = sims.circle_sim(num_samps, num_dim2, radius=5) assert np.all(returns[0].shape == (num_samps, num_dim2)) x1, y1 = sims.circle_sim(num_samps, 1, noise=0, radius=5) - ax1 = fig1.add_subplot(4, 5, 17); - ax1.scatter(x1, y1); + ax1 = fig1.add_subplot(4, 5, 17) + ax1.scatter(x1, y1) ax1.set_title('Ellipse', fontweight='bold') - ax1.axis('off'); + ax1.axis('off') # Diamond Simulation returns = sims.square_sim( @@ -216,29 +284,29 @@ def test_simulations(): assert np.all(returns[0].shape == (num_samps, num_dim2)) x1, y1 = sims.square_sim(num_samps, 1, noise=0, period=-np.pi/4) - ax1 = fig1.add_subplot(4, 5, 18); - ax1.scatter(x1, y1); + ax1 = fig1.add_subplot(4, 5, 18) + ax1.scatter(x1, y1) ax1.set_title('Diamond', fontweight='bold') - ax1.axis('off'); + ax1.axis('off') # Multiplicative Noise Simulation returns = sims.multi_noise_sim(num_samps, num_dim2) assert np.all(returns[0].shape == (num_samps, num_dim2)) x1, y1 = sims.multi_noise_sim(num_samps, 1) - ax1 = fig1.add_subplot(4, 5, 19); - ax1.scatter(x1, y1); + ax1 = fig1.add_subplot(4, 5, 19) + ax1.scatter(x1, y1) ax1.set_title('Multiplicative Noise', fontweight='bold') - ax1.axis('off'); + ax1.axis('off') # Multimodal Independence Simulation returns = sims.multi_indep_sim(num_samps, num_dim2) assert np.all(returns[0].shape == (num_samps, num_dim2)) x1, y1 = sims.multi_indep_sim(num_samps, 1) - ax1 = fig1.add_subplot(4, 5, 20); - ax1.scatter(x1, y1); + ax1 = fig1.add_subplot(4, 5, 20) + ax1.scatter(x1, y1) ax1.set_title('Multimodal Independence', fontweight='bold') - ax1.axis('off'); + ax1.axis('off') test_simulations() \ No newline at end of file From 923857e26a308854e27fc3e2a45f56d8cc40a11c Mon Sep 17 00:00:00 2001 From: sundaysundya Date: Wed, 28 Nov 2018 10:22:02 -0500 Subject: [PATCH 09/60] rename csv1 to csv2 --- mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py index 82ee0f8..1c1614e 100644 --- a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py +++ b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py @@ -8,8 +8,8 @@ def test_mdmr(): csv1 = np.genfromtxt('./mgcpy/independence_tests/unit_tests/mdmr/data/X_mdmr.csv', delimiter=",") X = csv1 - csv1 = np.genfromtxt('./mgcpy/independence_tests/unit_tests/mdmr/data/Y_mdmr.csv', delimiter=",") - Y = csv1 + csv2 = np.genfromtxt('./mgcpy/independence_tests/unit_tests/mdmr/data/Y_mdmr.csv', delimiter=",") + Y = csv2 mdmr = MDMR(csv1, csv2, compute_distance_matrix) From a04d73d361ce241253cdd0fa8de74778d9ac1039 Mon Sep 17 00:00:00 2001 From: sundaysundya Date: Wed, 28 Nov 2018 15:40:16 -0500 Subject: [PATCH 10/60] add p_value function to MDMR class --- mgcpy/independence_tests/mdmr/mdmr.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/mgcpy/independence_tests/mdmr/mdmr.py b/mgcpy/independence_tests/mdmr/mdmr.py index 216a790..fd96d5d 100644 --- a/mgcpy/independence_tests/mdmr/mdmr.py +++ b/mgcpy/independence_tests/mdmr/mdmr.py @@ -113,3 +113,11 @@ def test_statistic(self, data_matrix_X=None, data_matrix_Y=None, permutations = return F_permtotal, pvaltotal, results + + def p_value(self, data_matrix_X=None, data_matrix_Y=None, permutations = 1000, individual = 0, disttype = 'cityblock'): + """ + Computes the p-value of the pseudo-F test statistic. + """ + p_value = self.test_statistic()[1] + + return p_value From 1b7f68b8893fe4b3a30ec25efa030400ee066368 Mon Sep 17 00:00:00 2001 From: sundaysundya Date: Wed, 28 Nov 2018 16:30:36 -0500 Subject: [PATCH 11/60] fix mdmr unit tests --- mgcpy/independence_tests/mdmr/mdmr.py | 15 ++++++--------- .../unit_tests/mdmr/mdmr_test.py | 14 ++++++-------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/mgcpy/independence_tests/mdmr/mdmr.py b/mgcpy/independence_tests/mdmr/mdmr.py index fd96d5d..8a99f46 100644 --- a/mgcpy/independence_tests/mdmr/mdmr.py +++ b/mgcpy/independence_tests/mdmr/mdmr.py @@ -5,7 +5,7 @@ #from mdmrfunctions import * class MDMR(IndependenceTest): - def __init__(self, data_matrix_X, data_matrix_Y, compute_distance_matrix): + def __init__(self, compute_distance_matrix): ''' :param data_matrix_X: is interpreted as: - a [n*d] data matrix, a square matrix with n samples in d dimensions @@ -16,12 +16,12 @@ def __init__(self, data_matrix_X, data_matrix_Y, compute_distance_matrix): :param compute_distance_matrix: a function to compute the pairwise distance matrix, given a data matrix :type compute_distance_matrix: FunctionType or callable() ''' - IndependenceTest.__init__(self, data_matrix_X, data_matrix_Y, compute_distance_matrix) + IndependenceTest.__init__(self, compute_distance_matrix) def get_name(self): return "MDMR" - def test_statistic(self, data_matrix_X=None, data_matrix_Y=None, permutations = 1000, individual = 0, disttype = 'cityblock'): + def test_statistic(self, data_matrix_X, data_matrix_Y, permutations = 1000, individual = 0, disttype = 'cityblock'): """ Computes MDMR between two datasets. - It first takes the distance matrix of Y (by ) @@ -40,9 +40,6 @@ def test_statistic(self, data_matrix_X=None, data_matrix_Y=None, permutations = with individual = 1, returns the above as well as an array with the variable of X in the first column, the test statistic in the 2nd, and the permutation p-value in the 3rd """ - if data_matrix_X is None and data_matrix_Y is None: - data_matrix_X = self.data_matrix_X - data_matrix_Y = self.data_matrix_Y X = data_matrix_X Y = data_matrix_Y @@ -107,17 +104,17 @@ def test_statistic(self, data_matrix_X=None, data_matrix_Y=None, permutations = df_among, df_resid) p_vals = fperms_to_pvals(F_perms) - results[col-1,0] = col + results[col-1,0] = colg results[col-1,1] = F_perms[0, :] results[col-1,2] = p_vals return F_permtotal, pvaltotal, results - def p_value(self, data_matrix_X=None, data_matrix_Y=None, permutations = 1000, individual = 0, disttype = 'cityblock'): + def p_value(self, data_matrix_X, data_matrix_Y, permutations = 1000, individual = 0, disttype = 'cityblock'): """ Computes the p-value of the pseudo-F test statistic. """ - p_value = self.test_statistic()[1] + p_value = self.test_statistic(data_matrix_X, data_matrix_Y)[1] return p_value diff --git a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py index 1c1614e..6efcc85 100644 --- a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py +++ b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py @@ -5,20 +5,18 @@ def test_mdmr(): #load data from csv files - csv1 = np.genfromtxt('./mgcpy/independence_tests/unit_tests/mdmr/data/X_mdmr.csv', delimiter=",") - X = csv1 + X = np.genfromtxt('./mgcpy/independence_tests/unit_tests/mdmr/data/X_mdmr.csv', delimiter=",") - csv2 = np.genfromtxt('./mgcpy/independence_tests/unit_tests/mdmr/data/Y_mdmr.csv', delimiter=",") - Y = csv2 - - mdmr = MDMR(csv1, csv2, compute_distance_matrix) + Y = np.genfromtxt('./mgcpy/independence_tests/unit_tests/mdmr/data/Y_mdmr.csv', delimiter=",") + + mdmr = MDMR(compute_distance_matrix) #test get_name assert mdmr.get_name() == 'MDMR' #test statistic - assert np.allclose(mdmr.test_statistic()[0], 25.03876688) + assert np.allclose(mdmr.test_statistic(X, Y)[0], 25.03876688) #p-value - assert np.allclose(mdmr.test_statistic()[1], 0.000999) + assert np.allclose(mdmr.test_statistic(X, Y)[1], 0.000999) \ No newline at end of file From 2d43457d05b19f250fe36a11fb84557bfa8d1307 Mon Sep 17 00:00:00 2001 From: sundaysundya Date: Thu, 29 Nov 2018 16:12:32 -0500 Subject: [PATCH 12/60] add unit test for individual statistics --- mgcpy/independence_tests/mdmr/mdmr.py | 2 +- .../unit_tests/mdmr/mdmr_test.py | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/mgcpy/independence_tests/mdmr/mdmr.py b/mgcpy/independence_tests/mdmr/mdmr.py index 8a99f46..b749244 100644 --- a/mgcpy/independence_tests/mdmr/mdmr.py +++ b/mgcpy/independence_tests/mdmr/mdmr.py @@ -104,7 +104,7 @@ def test_statistic(self, data_matrix_X, data_matrix_Y, permutations = 1000, indi df_among, df_resid) p_vals = fperms_to_pvals(F_perms) - results[col-1,0] = colg + results[col-1,0] = col results[col-1,1] = F_perms[0, :] results[col-1,2] = p_vals diff --git a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py index 6efcc85..399534d 100644 --- a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py +++ b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py @@ -10,13 +10,22 @@ def test_mdmr(): Y = np.genfromtxt('./mgcpy/independence_tests/unit_tests/mdmr/data/Y_mdmr.csv', delimiter=",") mdmr = MDMR(compute_distance_matrix) + a, b, results = mdmr.test_statistic(X, Y, individual=1) #test get_name assert mdmr.get_name() == 'MDMR' #test statistic - assert np.allclose(mdmr.test_statistic(X, Y)[0], 25.03876688) + assert np.allclose(a, 25.03876688) #p-value - assert np.allclose(mdmr.test_statistic(X, Y)[1], 0.000999) - \ No newline at end of file + assert np.allclose(b, 0.000999) + assert np.allclose(mdmr.p_value(X, Y)[0], 0.000999) + + #individual statistics + assert np.allclose(results[0,1], -13.702988) + assert np.allclose(results[0,2], 0.000999) + assert np.allclose(results[1,1], -22.6870867) + assert np.allclose(results[1,2], 0.000999) + assert np.allclose(results[2,1], -13.702988) + assert np.allclose(results[2,2], -2.70117626) \ No newline at end of file From 221460ab29fa7762db7f947befe6fad214217dd9 Mon Sep 17 00:00:00 2001 From: sundaysundya Date: Thu, 29 Nov 2018 16:28:13 -0500 Subject: [PATCH 13/60] fix mdmr individual unit test --- mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py index 399534d..e699764 100644 --- a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py +++ b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py @@ -27,5 +27,5 @@ def test_mdmr(): assert np.allclose(results[0,2], 0.000999) assert np.allclose(results[1,1], -22.6870867) assert np.allclose(results[1,2], 0.000999) - assert np.allclose(results[2,1], -13.702988) - assert np.allclose(results[2,2], -2.70117626) \ No newline at end of file + assert np.allclose(results[2,1], -2.70117626) + assert np.allclose(results[2,2], 0.000999) \ No newline at end of file From 9f04009060525e3fa63550bbe17703430f50791c Mon Sep 17 00:00:00 2001 From: sundaysundya Date: Fri, 30 Nov 2018 01:45:21 -0500 Subject: [PATCH 14/60] add docstrings and correct mdmr.test_statistic --- mgcpy/independence_tests/mdmr/mdmr.py | 4 +- .../independence_tests/mdmr/mdmrfunctions.py | 46 ++++++++++++++++--- 2 files changed, 42 insertions(+), 8 deletions(-) diff --git a/mgcpy/independence_tests/mdmr/mdmr.py b/mgcpy/independence_tests/mdmr/mdmr.py index b749244..16d3abf 100644 --- a/mgcpy/independence_tests/mdmr/mdmr.py +++ b/mgcpy/independence_tests/mdmr/mdmr.py @@ -21,7 +21,7 @@ def __init__(self, compute_distance_matrix): def get_name(self): return "MDMR" - def test_statistic(self, data_matrix_X, data_matrix_Y, permutations = 1000, individual = 0, disttype = 'cityblock'): + def test_statistic(self, data_matrix_X, data_matrix_Y, permutations = 0, individual = 0, disttype = 'cityblock'): """ Computes MDMR between two datasets. - It first takes the distance matrix of Y (by ) @@ -115,6 +115,6 @@ def p_value(self, data_matrix_X, data_matrix_Y, permutations = 1000, individual """ Computes the p-value of the pseudo-F test statistic. """ - p_value = self.test_statistic(data_matrix_X, data_matrix_Y)[1] + p_value = self.test_statistic(data_matrix_X, data_matrix_Y, permutations)[1] return p_value diff --git a/mgcpy/independence_tests/mdmr/mdmrfunctions.py b/mgcpy/independence_tests/mdmr/mdmrfunctions.py index 9032464..7a19f9a 100644 --- a/mgcpy/independence_tests/mdmr/mdmrfunctions.py +++ b/mgcpy/independence_tests/mdmr/mdmrfunctions.py @@ -11,6 +11,9 @@ ITYPE = np.int32 def check_rank(X): + """ + This function checks if X is rank deficient. + """ k = X.shape[1] rank = np.linalg.matrix_rank(X) if rank < k: @@ -21,11 +24,17 @@ def compute_distance_matrix(X, disttype): return D def hatify(X): + """ + Returns the "hat" matrix, X*(X.T *X)^-1 *X.T + """ Q1, _ = np.linalg.qr(X) H = Q1.dot(Q1.T) return H def gower_center(Y): + """ + Computes Gower's centered similarity matrix. + """ n = Y.shape[0] I = np.eye(n,n) uno = np.ones((n, 1)) @@ -37,6 +46,9 @@ def gower_center(Y): return G def gower_center_many(Ys): + """ + Gower centers each matrix in the input. + """ observations = int(np.sqrt(Ys.shape[0])) tests = Ys.shape[1] Gs = np.zeros_like(Ys) @@ -49,10 +61,13 @@ def gower_center_many(Ys): return Gs -def gen_h(x, columns, permutations): - return hatify(x[permutations][:, np.array(columns)]) - def gen_H2_perms_single(X, columns, permutation_indexes): + """ + Return H2 for each permutation of X indices, where H2 is the hat matrix + minus the hat matrix of the untested columns. + + The function calculates this correctly for single column tests. + """ permutations, observations = permutation_indexes.shape variables = X.shape[1] @@ -63,15 +78,18 @@ def gen_H2_perms_single(X, columns, permutation_indexes): fix = cols_X.shape[0] cols_X = cols_X.reshape((fix,1)) H = hatify(cols_X) -# H = hatify(perm_X) other_columns = [i for i in range(variables) if i != columns] H2 = H - hatify(X[:, other_columns]) -# H2 = H H2_permutations[:, i] = H2.flatten() return H2_permutations def gen_IH_perms_single(X, columns, permutation_indexes): + """ + Return I-H where H is the hat matrix and I is the identity matrix. + + The function calculates this correctly for single column tests. + """ permutations, observations = permutation_indexes.shape I = np.eye(observations, observations) @@ -81,12 +99,17 @@ def gen_IH_perms_single(X, columns, permutation_indexes): fix = cols_X.shape[0] cols_X = cols_X.reshape((fix,1)) IH = I - hatify(cols_X) -# IH = I - hatify(X[permutation_indexes[i, :]]) IH_permutations[:,i] = IH.flatten() return IH_permutations def gen_H2_perms(X, columns, permutation_indexes): + """ + Return H2 for each permutation of X indices, where H2 is the hat matrix + minus the hat matrix of the untested columns. + + The function calculates this correctly for multiple column tests. + """ permutations, observations = permutation_indexes.shape variables = X.shape[1] @@ -102,6 +125,11 @@ def gen_H2_perms(X, columns, permutation_indexes): return H2_permutations def gen_IH_perms(X, columns, permutation_indexes): + """ + Return I-H where H is the hat matrix and I is the identity matrix. + + The function calculates this correctly for multiple column tests. + """ permutations, observations = permutation_indexes.shape I = np.eye(observations, observations) @@ -113,12 +141,18 @@ def gen_IH_perms(X, columns, permutation_indexes): return IH_permutations def calc_ftest(Hs, IHs, Gs, m2, nm): + """ + This function calculates the pseudo-F statistic. + """ N = Hs.T.dot(Gs) D = IHs.T.dot(Gs) F = (N / m2) / (D / nm) return F def fperms_to_pvals(F_perms): + """ + This function calculates the permutation p-value from the test statistics of all permutations. + """ permutations, tests = F_perms.shape pvals = np.zeros(tests) for i in range(tests): From e5fcf980eb9bf5555f50f01bc31ae272e5bb1a23 Mon Sep 17 00:00:00 2001 From: sundaysundya Date: Fri, 30 Nov 2018 01:59:34 -0500 Subject: [PATCH 15/60] correct mdmr unit test --- mgcpy/independence_tests/mdmr/mdmr.py | 14 ++++++++----- .../unit_tests/mdmr/mdmr_test.py | 20 +++++++++---------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/mgcpy/independence_tests/mdmr/mdmr.py b/mgcpy/independence_tests/mdmr/mdmr.py index 16d3abf..9cfe4e8 100644 --- a/mgcpy/independence_tests/mdmr/mdmr.py +++ b/mgcpy/independence_tests/mdmr/mdmr.py @@ -19,7 +19,7 @@ def __init__(self, compute_distance_matrix): IndependenceTest.__init__(self, compute_distance_matrix) def get_name(self): - return "MDMR" + return "mdmr" def test_statistic(self, data_matrix_X, data_matrix_Y, permutations = 0, individual = 0, disttype = 'cityblock'): """ @@ -113,8 +113,12 @@ def test_statistic(self, data_matrix_X, data_matrix_Y, permutations = 0, individ def p_value(self, data_matrix_X, data_matrix_Y, permutations = 1000, individual = 0, disttype = 'cityblock'): """ - Computes the p-value of the pseudo-F test statistic. + Computes the permutation p-value of the pseudo-F test statistic. """ - p_value = self.test_statistic(data_matrix_X, data_matrix_Y, permutations)[1] - - return p_value + if individual = 0: + p_value = self.test_statistic(data_matrix_X, data_matrix_Y, permutations)[1] + return p_value + if individual = 1: + p_value = self.test_statistic(data_matrix_X, data_matrix_Y, permutations)[1] + results = self.test_statistic(data_matrix_X, data_matrix_Y, permutations)[2] + return p_value, results diff --git a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py index e699764..d27c2d0 100644 --- a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py +++ b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py @@ -10,22 +10,22 @@ def test_mdmr(): Y = np.genfromtxt('./mgcpy/independence_tests/unit_tests/mdmr/data/Y_mdmr.csv', delimiter=",") mdmr = MDMR(compute_distance_matrix) - a, b, results = mdmr.test_statistic(X, Y, individual=1) + a, b1, results1 = mdmr.test_statistic(X, Y, individual=1) + b2, results2 = mdmr.test_statistic(X, Y, individual = 1) #test get_name - assert mdmr.get_name() == 'MDMR' + assert mdmr.get_name() == 'mdmr' #test statistic assert np.allclose(a, 25.03876688) #p-value - assert np.allclose(b, 0.000999) - assert np.allclose(mdmr.p_value(X, Y)[0], 0.000999) + assert np.allclose(b2, 0.000999) #individual statistics - assert np.allclose(results[0,1], -13.702988) - assert np.allclose(results[0,2], 0.000999) - assert np.allclose(results[1,1], -22.6870867) - assert np.allclose(results[1,2], 0.000999) - assert np.allclose(results[2,1], -2.70117626) - assert np.allclose(results[2,2], 0.000999) \ No newline at end of file + assert np.allclose(results1[0,1], -13.702988) + assert np.allclose(results2[0,2], 0.000999) + assert np.allclose(results1[1,1], -22.6870867) + assert np.allclose(results2[1,2], 0.000999) + assert np.allclose(results1[2,1], -2.70117626) + assert np.allclose(results2[2,2], 0.000999) \ No newline at end of file From 1973d4ebc196baf33e6b9e164a6e48ea2cf608ff Mon Sep 17 00:00:00 2001 From: sundaysundya Date: Fri, 30 Nov 2018 02:06:55 -0500 Subject: [PATCH 16/60] changed '=' to '==' --- mgcpy/independence_tests/mdmr/mdmr.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mgcpy/independence_tests/mdmr/mdmr.py b/mgcpy/independence_tests/mdmr/mdmr.py index 9cfe4e8..6af7f1e 100644 --- a/mgcpy/independence_tests/mdmr/mdmr.py +++ b/mgcpy/independence_tests/mdmr/mdmr.py @@ -115,10 +115,10 @@ def p_value(self, data_matrix_X, data_matrix_Y, permutations = 1000, individual """ Computes the permutation p-value of the pseudo-F test statistic. """ - if individual = 0: + if individual == 0: p_value = self.test_statistic(data_matrix_X, data_matrix_Y, permutations)[1] return p_value - if individual = 1: + if individual == 1: p_value = self.test_statistic(data_matrix_X, data_matrix_Y, permutations)[1] results = self.test_statistic(data_matrix_X, data_matrix_Y, permutations)[2] return p_value, results From 6887e585dec9ac6b02ee79268ce66a51c66fa406 Mon Sep 17 00:00:00 2001 From: sundaysundya Date: Fri, 30 Nov 2018 02:20:05 -0500 Subject: [PATCH 17/60] correct mdmr unit test --- mgcpy/independence_tests/mdmr/mdmr.py | 4 ++-- mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mgcpy/independence_tests/mdmr/mdmr.py b/mgcpy/independence_tests/mdmr/mdmr.py index 6af7f1e..9f96101 100644 --- a/mgcpy/independence_tests/mdmr/mdmr.py +++ b/mgcpy/independence_tests/mdmr/mdmr.py @@ -119,6 +119,6 @@ def p_value(self, data_matrix_X, data_matrix_Y, permutations = 1000, individual p_value = self.test_statistic(data_matrix_X, data_matrix_Y, permutations)[1] return p_value if individual == 1: - p_value = self.test_statistic(data_matrix_X, data_matrix_Y, permutations)[1] - results = self.test_statistic(data_matrix_X, data_matrix_Y, permutations)[2] + p_value = self.test_statistic(data_matrix_X, data_matrix_Y, permutations, individual)[1] + results = self.test_statistic(data_matrix_X, data_matrix_Y, permutations, individual)[2] return p_value, results diff --git a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py index d27c2d0..b1bcc15 100644 --- a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py +++ b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py @@ -11,7 +11,7 @@ def test_mdmr(): mdmr = MDMR(compute_distance_matrix) a, b1, results1 = mdmr.test_statistic(X, Y, individual=1) - b2, results2 = mdmr.test_statistic(X, Y, individual = 1) + b2, results2 = mdmr.p_value(X, Y, individual = 1) #test get_name assert mdmr.get_name() == 'mdmr' From 04d5ea8aeda966c986ec070d7f6abc784d59c4f8 Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Fri, 30 Nov 2018 08:12:39 -0500 Subject: [PATCH 18/60] Add test back --- mgcpy/independence_tests/hhg.py | 131 ++++++++++++++++++ mgcpy/independence_tests/rv_corr.py | 131 ++++++++++++++++++ .../unit_tests/rv_corr_test.py | 49 +++++++ 3 files changed, 311 insertions(+) create mode 100644 mgcpy/independence_tests/hhg.py create mode 100644 mgcpy/independence_tests/rv_corr.py create mode 100644 mgcpy/independence_tests/unit_tests/rv_corr_test.py diff --git a/mgcpy/independence_tests/hhg.py b/mgcpy/independence_tests/hhg.py new file mode 100644 index 0000000..307782e --- /dev/null +++ b/mgcpy/independence_tests/hhg.py @@ -0,0 +1,131 @@ +import numpy as np +from mgcpy.independence_tests.abstract_class import IndependenceTest +from scipy.spatial import distance_matrix + + +class HHG(IndependenceTest): + def __init__(self, compute_distance_matrix=None): + """ + :param compute_distance_matrix: a function to compute the pairwise distance matrix, given a data matrix + :type compute_distance_matrix: FunctionType or callable() + """ + IndependenceTest.__init__(compute_distance_matrix) + + def get_name(self): + ''' + :return: the name of the independence test + :rtype: string + ''' + return 'hhg' + + def test_statistic(self, matrix_X, matrix_Y): + """ + Computes the HHG correlation measure between two datasets. + + :param matrix_X: a [n*p] data matrix, a square matrix with n samples in p dimensions + :type matrix_X: 2D `numpy.array` + + :param matrix_Y: a [n*q] data matrix, a square matrix with n samples in q dimensions + :type matrix_Y: 2D `numpy.array` + + :param replication_factor: specifies the number of replications to use for + the permutation test. Defaults to 1000. + :type replication_factor: int + + :return: returns a list of two items, that contains: + - :test_statistic_: test statistic + - :test_statistic_metadata_: (optional) a ``dict`` of metadata other than the p_value, + that the independence tests computes in the process + :rtype: float, dict + + **Example:** + >>> import numpy as np + >>> from mgcpy.independence_tests.hhg import HHG + + >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, + 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) + >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, + 1.35857623, -0.06729464, 0.16168344, -0.61048226, 0.41711113]).reshape(-1, 1) + >>> hhg = HHG() + >>> hhg_test_stat = hhg.test_statistic(X, Y) + """ + row_X, columns_X = matrix_X.shape[0], matrix_X.shape[1] + row_Y, columns_Y = matrix_Y.shape[0], matrix_Y.shape[1] + + # use the matrix shape and diagonal elements to determine if the given data is a distance matrix or not + if row_X != columns_X or sum(matrix_X.diagonal()**2) > 0: + dist_mtx_X = distance_matrix(matrix_X, matrix_X) + else: + dist_mtx_X = matrix_X + if row_Y != columns_Y or sum(matrix_Y.diagonal()**2) > 0: + dist_mtx_Y = distance_matrix(matrix_Y, matrix_Y) + else: + dist_mtx_Y = matrix_Y + + n = dist_mtx_X.shape[0] + S = np.zeros((n, n)) + + for i in range(n): + for j in range(n): + if i != j: + tmp1 = dist_mtx_X[i, :] <= dist_mtx_X[i, j] + tmp2 = dist_mtx_Y[i, :] <= dist_mtx_Y[i, j] + t11 = np.sum(tmp1 * tmp2) - 2 + t12 = np.sum(tmp1 * (1-tmp2)) + t21 = np.sum((1-tmp1) * tmp2) + t22 = np.sum((1-tmp1) * (1-tmp2)) + denom = (t11+t12) * (t21+t22) * (t11+t21) * (t12+t22) + if denom > 0: + S[i, j] = (n-2) * \ + np.power((t12*t21 - t11*t22), 2) / denom + corr = np.sum(S) + + # no metadata for HHG + self.test_statistic_metadata_ = {} + self.test_statistic_ = corr + + return self.test_statistic_, self.test_statistic_metadata_ + + def p_value(self, matrix_X=None, matrix_Y=None, replication_factor=1000): + """ + Tests independence between two datasets using HHG and permutation test. + + :param matrix_X: a [n*p] data matrix, a square matrix with n samples in p dimensions + :type matrix_X: 2D `numpy.array` + + :param matrix_Y: a [n*q] data matrix, a square matrix with n samples in q dimensions + :type matrix_Y: 2D `numpy.array` + + :param replication_factor: specifies the number of replications to use for + the permutation test. Defaults to 1000. + :type replication_factor: int + + :return: returns a list of two items, that contains: + - :p_value_: P-value + - :p_value_metadata_: (optional) a ``dict`` of metadata other than the p_value, + that the independence tests computes in the process + :rtype: float, dict + + **Example:** + >>> import numpy as np + >>> from mgcpy.independence_tests.hhg import HHG + + >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, + 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) + >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, + 1.35857623, -0.06729464, 0.16168344, -0.61048226, 0.41711113]).reshape(-1, 1) + >>> hhg = HHG() + >>> hhg_p_value = hhg.p_value(X, Y) + """ + test_stat = self.test_statistic() + # estimate the null by a permutation test + test_stats_null = np.zeros(replication_factor) + for rep in range(replication_factor): + permuted_y = np.random.permutation(self.matrix_Y) + test_stats_null[rep] = self.test_statistic(matrix_X=self.matrix_X, matrix_Y=permuted_y) + + # p-value is the probability of observing more extreme test statistic under the null + self.p_value_ = np.where(test_stats_null >= test_stat)[0].shape[0] / replication_factor + self.p_value_metadata_ = {} + + return self.p_value_, self.p_value_metadata_ diff --git a/mgcpy/independence_tests/rv_corr.py b/mgcpy/independence_tests/rv_corr.py new file mode 100644 index 0000000..a207bb4 --- /dev/null +++ b/mgcpy/independence_tests/rv_corr.py @@ -0,0 +1,131 @@ +import numpy as np +from mgcpy.independence_tests.abstract_class import IndependenceTest +from numpy import matlib as mb +from scipy.sparse.linalg import svds +from scipy.stats import pearsonr + + +class RVCorr(IndependenceTest): + def __init__(self, compute_distance_matrix=None, which_test='rv'): + """ + :param compute_distance_matrix: a function to compute the pairwise distance matrix, given a data matrix + :type compute_distance_matrix: FunctionType or callable() + + :param which_test: specifies which test to use, including 'rv', 'pearson', and 'cca'. + :type which_test: str + """ + IndependenceTest.__init__(self, compute_distance_matrix) + self.which_test = which_test + + def get_name(self): + ''' + :return: the name of the independence test + :rtype: string + ''' + return self.which_test + + def test_statistic(self, matrix_X=None, matrix_Y=None): + """ + Computes the Pearson/RV/CCa correlation measure between two datasets. + - Default computes linear correlation for RV + - Computes pearson's correlation + - Calculates local linear correlations for CCa + + :param matrix_X: a [n*p] data matrix, a square matrix with n samples in p dimensions + :type matrix_X: 2D `numpy.array` + + :param matrix_Y: a [n*q] data matrix, a square matrix with n samples in q dimensions + :type matrix_Y: 2D `numpy.array` + + :param replication_factor: specifies the number of replications to use for + the permutation test. Defaults to 1000. + :type replication_factor: int + + :return: returns a list of two items, that contains: + - :test_statistic_: test statistic + - :test_statistic_metadata_: (optional) a ``dict`` of metadata other than the p_value, + that the independence tests computes in the process + :rtype: float, dict + + **Example:** + >>> import numpy as np + >>> from mgcpy.independence_tests.rv_corr import RVCorr + + >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, + 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) + >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, + 1.35857623, -0.06729464, 0.16168344, -0.61048226, 0.41711113]).reshape(-1, 1) + >>> rvcorr = RVCorr() + >>> rvcorr_test_stat = rvcorr.test_statistic(X, Y) + """ + row_X, columns_X = matrix_X.shape[0], matrix_X.shape[1] + row_Y, columns_Y = matrix_Y.shape[0], matrix_Y.shape[1] + + mat1 = matrix_X - mb.repmat(np.mean(matrix_X, axis=0), + matrix_X.shape[0], 1) + mat2 = matrix_Y - mb.repmat(np.mean(matrix_Y, axis=0), + matrix_Y.shape[0], 1) + + covar = np.dot(mat1.T, mat2) + varX = np.dot(mat1.T, mat1) + varY = np.dot(mat2.T, mat2) + + if (self.which_test == 'pearson') and ((row_X == 1 or columns_X == 1) and (row_Y == 1 or columns_Y == 1)): + corr, covar = pearsonr(matrix_X, matrix_Y) + elif (self.which_test == 'rv'): + covar = np.trace(np.dot(covar, covar.T)) + corr = np.divide(covar, np.sqrt(np.trace(np.dot(varX, varX)) + * np.trace(np.dot(varY, varY)))) + else: + if varX.size == 1 or varY.size == 1 or covar.size == 1: + covar = np.sum(np.power(covar, 2)) + corr = np.divide(covar, np.sqrt(np.sum(np.power(varX, 2)) + * np.sum(np.power(varY, 2)))) + else: + covar = np.sum(np.power(svds(covar, 1)[1], 2)) + corr = np.divide(covar, np.sqrt(np.sum(np.power(svds(varX, 1)[1], 2)) + * np.sum(np.power(svds(varY, 1)[1], 2)))) + self.test_statistic_ = corr + self.test_statistic_metadata_ = {"covariance": covar} + + return self.test_statistic_, self.test_statistic_metadata_ + + def p_value(self, matrix_X, matrix_Y, replication_factor=1000): + """ + Tests independence between two datasets using the independence test. + + :param matrix_X: a [n*p] data matrix, a square matrix with n samples in p dimensions + :type matrix_X: 2D `numpy.array` + + :param matrix_Y: a [n*q] data matrix, a square matrix with n samples in q dimensions + :type matrix_Y: 2D `numpy.array` + + :param replication_factor: specifies the number of replications to use for + the permutation test. Defaults to 1000. + :type replication_factor: int + + :return: returns a list of two items, that contains: + - :p_value_: P-value + - :p_value_metadata_: (optional) a ``dict`` of metadata other than the p_value, + that the independence tests computes in the process + :rtype: float, dict + + **Example:** + >>> import numpy as np + >>> from mgcpy.independence_tests.rv_corr import RVCorr + + >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, + 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) + >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, + 1.35857623, -0.06729464, 0.16168344, -0.61048226, 0.41711113]).reshape(-1, 1) + >>> rvcorr = RVCorr() + >>> rvcorr_p_value = rvcorr.p_value(X, Y) + """ + if matrix_X is None: + matrix_X = self.matrix_X + if matrix_Y is None: + matrix_Y = self.matrix_Y + self.p_value_ = self.test_statistic(matrix_X, matrix_Y) + self.p_value_metadata_ = {} + + return self.p_value_, self.p_value_metadata_ diff --git a/mgcpy/independence_tests/unit_tests/rv_corr_test.py b/mgcpy/independence_tests/unit_tests/rv_corr_test.py new file mode 100644 index 0000000..27b3e2b --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/rv_corr_test.py @@ -0,0 +1,49 @@ +import mgcpy.benchmarks.simulations as sims +import numpy as np +from mgcpy.independence_tests.rv_corr import RVCorr + +# from scipy.io import savemat + + +def test_local_corr(): + # Against a randomly defined data set + X = np.array([1.1728, 2.4941, 2.4101, 0.1814, 1.1978, 1.5806, 1.2504, + 1.9706, 1.8839, 0.8760])[:, np.newaxis] + Y = np.array([3.2311, 12.1113, 11.1350, 1.1989, 3.3127, 4.8580, 3.4917, + 7.1748, 6.5792, 2.4012])[:, np.newaxis] + rvcorr = RVCorr(None) + rvcorr2 = RVCorr(None, 'pearson') + rvcorr3 = RVCorr(None, 'cca') + + test_stat1 = rvcorr.test_statistic(X, Y)[0] + test_stat2 = rvcorr2.test_statistic(X, Y)[0] + test_stat3 = rvcorr3.test_statistic(X, Y)[0] + + assert np.round(test_stat1, decimals=2) == 0.90 + assert np.round(test_stat2, decimals=2) == 0.95 + assert np.round(test_stat3, decimals=2) == 0.90 + + del X, Y, rvcorr, rvcorr2, rvcorr3, test_stat1, test_stat2, test_stat3 + + # Against linear simulations + np.random.seed(0) + X, Y = sims.linear_sim(100, 1) + # savemat('distance matrix data', {'X' : X, 'Y' : Y}) + rvcorr = RVCorr(None) + rvcorr2 = RVCorr(None, 'pearson') + rvcorr3 = RVCorr(None, 'cca') + + assert rvcorr.get_name() == 'rv' + assert rvcorr2.get_name() == 'pearson' + assert rvcorr3.get_name() == 'cca' + + test_stat1 = rvcorr.test_statistic(X, Y)[0] + test_stat2 = rvcorr2.test_statistic(X, Y)[0] + test_stat3 = rvcorr3.test_statistic(X, Y)[0] + + assert np.round(test_stat1, decimals=2) == 0.24 + assert np.round(test_stat2, decimals=2) == 0.49 + assert np.round(test_stat3, decimals=2) == 0.24 + + +test_local_corr() From ae83c07365ae91606ea3e9b977482aa6c355ba82 Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Fri, 30 Nov 2018 11:15:29 -0500 Subject: [PATCH 19/60] Edited the test and added demo --- demos/mcorr_dcorr_mantel.ipynb | 2 +- demos/rv_cca_hhg.ipynb | 264 ++++++++++++++++++ mgcpy/independence_tests/hhg.py | 15 +- mgcpy/independence_tests/kendall_spearman.py | 38 ++- mgcpy/independence_tests/rv_corr.py | 21 +- .../independence_tests/unit_tests/hhg_test.py | 27 +- .../unit_tests/kendall_spearman_test.py | 35 +++ .../unit_tests/rv_corr_test.py | 17 +- 8 files changed, 347 insertions(+), 72 deletions(-) create mode 100644 demos/rv_cca_hhg.ipynb create mode 100644 mgcpy/independence_tests/unit_tests/kendall_spearman_test.py diff --git a/demos/mcorr_dcorr_mantel.ipynb b/demos/mcorr_dcorr_mantel.ipynb index 1f7727b..04fff1d 100644 --- a/demos/mcorr_dcorr_mantel.ipynb +++ b/demos/mcorr_dcorr_mantel.ipynb @@ -435,7 +435,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.6.6" } }, "nbformat": 4, diff --git a/demos/rv_cca_hhg.ipynb b/demos/rv_cca_hhg.ipynb new file mode 100644 index 0000000..3a064f3 --- /dev/null +++ b/demos/rv_cca_hhg.ipynb @@ -0,0 +1,264 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 174, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from scipy.spatial.distance import pdist, squareform\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 175, + "metadata": {}, + "outputs": [], + "source": [ + "from mgcpy import RVCorr, HHG\n", + "from mgcpy.benchmarks.power import power\n", + "from mgcpy.benchmarks.simulations import linear_sim, quad_sim, ubern_sim, exp_sim, w_sim, joint_sim, spiral_sim" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Test Statistic" + ] + }, + { + "cell_type": "code", + "execution_count": 176, + "metadata": {}, + "outputs": [], + "source": [ + "def test_stats_vs_dimension(corr_type, simulation_type, dim_range):\n", + " test_stats = []\n", + " for d in range(1, dim_range+1):\n", + " x, y = simulation_type(num_samp=100, num_dim=d, noise=0)\n", + " if corr_type == 'rv' or corr_type == 'cca':\n", + " corr = RVCorr(which_test=corr_type)\n", + " #else:\n", + " #corr = HHG()\n", + " test_stats.append(corr.test_statistic(x, y)[0])\n", + " return test_stats" + ] + }, + { + "cell_type": "code", + "execution_count": 177, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_test_stats(simulation_type, dim_range, simulation_name):\n", + " rv_test_stats = test_stats_vs_dimension('rv', simulation_type, dim_range)\n", + " cca_test_stats = test_stats_vs_dimension('cca', simulation_type, dim_range)\n", + " #hhg_test_stats = test_stats_vs_dimension('hhg', simulation_type, dim_range) \n", + " plt.plot(rv_test_stats, label='RV')\n", + " plt.plot(cca_test_stats, label='CCA')\n", + " #plt.plot(hhg_test_stats, label='HHG')\n", + " plt.xlabel('Dimensions')\n", + " plt.ylabel('Test Statistics')\n", + " plt.legend()\n", + " plt.gca().set_xlim(1, dim_range+1)\n", + " plt.xticks(np.arange(0, dim_range+1, 5))\n", + " plt.title('Test Statistics \\n Data: {} Simulation, 100 samples, noise=0'.format(simulation_name))\n", + " plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 178, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAElCAYAAAALP/6mAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzs3Xd4lGXWwOHfSYfQk1BC79KDoohUO2DBLthW14pi3/WzrYu6a1u3WFBXXXWtiG0FRcCCgiAICEjvIKEEEiCEhJB2vj+eN2EIKZNkJo1zX9dcmXnrmZI58z5VVBVjjDEGIKSqAzDGGFN9WFIwxhhTwJKCMcaYApYUjDHGFLCkYIwxpoAlBWOMMQUsKRhTBUTkLRG5rxz7dRGRfcGIyRiwpGCqMRE54HPLE5GDPo+vrMBx54nIVaVsM1ZE1nrn2ikiU0Skjrduoog8XIbz3SIi3/guU9VrVfUZP/bdKSKDfPZbq6qN/D23MWUVVtUBGFMcVa2Xf19ENgM3qOo3xe8RGCJyNvAwMFxVl4lIDDAq2Oc1pjqwKwVTY4lIqIj8SUQ2ikiyiLwnIo28ddHeL/o9IrJPROaLSGMR+TtwIvC6dxXw9yIOfSIwW1WXAahqiqq+oaoHReQO4GLgT97+H3nne0RENolImogsF5FzvOV9gX8Bw/KvOrzlBVcbItJcRKZ5caaIyHfe8o+ApsAMb987ROQ4EcnxeQ1iReRt74pir4h8WNIxjSmNJQVTk/0ROAsYBLQCsoF/eutuwF0JtwRigXFAlqreCyzAXXXU8x4XNg843/uiHyAiEfkrVPV54BPgcW//S71Va4BTgIbA08BEEYlV1cXAXcD33vbNizjf/3n7xwItgPHeuS4FdgFnefs+X8S+HwICHAc0AyaUdExjSmNJwdRkNwP3q+p2Vc0EHgUuFxHBJYg4oKOq5qjqAlVN9+egXhHVaKA/MB1IFpGnRaTY/xdV/VBVd6hqnqq+A2wDTvDzeWQD8UAbVc1S1Vn+7CQi7YHBwK2quq/QvuU6pjGWFEyN5H3xtwamekUk+4DFuM90DPAf4AfgYxFJFJEnRCTU3+Or6mRVPQdoBFwKjAWuLiGe60XkV59YOuF+pfvjr8B2YKaIrBeRe/zcrzWwS1XTAnhMc4yzpGBqJHXD+24DTlPVRj63KFVNVtVDqvqIqh4HDMF9sY/O370M58lT1enALKBnUfuLSBfgBeAmoInXOmg9rlin1POpaqqq3qmqbXH1FQ+LyEA/9t0KNBWReoVXlHJMY4plScHUZK8AT4lIawARaSoi53n3zxCR7l6Rz34gB8j19ksCOhR3UBG5REQuFZFG4pwCDMTVNRS1fz0gD9gNhIjILbgrBXy2by0i4cWc73wRae9d/aR6cZYaq6puwiWrF0WkoYhEiMgQP45pTLEsKZia7BngG+A7EUkD5gLHe+taAp8DacByYCowyVv3T+Aar7VOUX0F9gK3AhtwCeUN4FFV/cRb/ypwoldUNFFVf8ElqIXADqC9dz/fNGAzsEtEEos4Xzfgey/WWcCzqpqfgP4K/NU717gi9h0DhAPrgJ24Yq7SjmlMscQm2THGGJPPrhSMMcYUsKRgjDGmgCUFY4wxBSwpGGOMKWBJoZYRkQdF5PWqjqM0IjJYRNYE6djjReTdCuy/QkSGBTCkY56IDCum5VW1ICKviMifqjqO6sCSgh9EREUk3RuULEVEvhWRy8uwf0D/IUSknRfTUaPcquoTqnpDoM5VESLSQ0RmeE0/94nIIhEZCaCqs1W1azWI8S0R+YvvMlXtoarfV8K5HxeRZSKSIyLji1h/hYhs8T57/xORJj7rmojIZ966LSJyRbDjrc1U9RZVfbyyzicid3uDGKaKyBsiEllZ5y6NJQX/9fGGcu4KvIXrMPTnqg2p+ihmCIkpwNe4gdqaAnfg2v0bZz1wH/Bl4RUi0gP4N25ojWZABvCSzyYTgCxv3ZXAy94+ppoTNzT7/cDpQDtc58RHqzKmI6iq3Uq54YYa6FRo2SVAJhDjPb4OWIXrLLQRuNlbHg0cxPV4PeDd4oGTgJ+AfbgOTy8CEX7G086LKayIdeOBdwtt9zvgNyAZeMhn2xDch3MDkILr3NXEZ/1HuA5RqbgOUD181r0FvIzrFJYOnFEojljv3I2KeQ7DgESfx5txo57+6h3vP7gvvK+81/QboHFR+/rsf0bh16Ck54EbliIb9+V6AJhSxLEicUNfb/du/wIifeMA7sWNZroDuK4cn693gfGFlj0BvO/zuKMXZ33vM5UFdPFZ/w7wVDHHPwnXmW4/rof0P8rwHr/kvQcHgDlAc+812AusBvoWeg8eAFZ6698Eoop5v+Nxo83uBjYBd/gTbymv43jcZ/ht7zOzAujnsz6/Q98+b935hZ7rX3w+u1942+0BZgMhpcVdhvf7feAJn8enAzsD9X1V0ZtdKZTf57ihmU/yHu8CzgUa4BLEP0XkeHUjc44Atqsb/rieqm7HDTlwN+4DOAD3wbg1/+Ai8oWI3B+gWAfhrnBOBx4RkW7e8juAC4ChuA/7Xg4PvQzuy6Az7lf+L8B7hY57Ba7HbX3gx0LrUnC/hN8VkQtEpJkfcV4MnAl0Ac7zzv8g7jUK8eItjyKfh6q+6t1/xntfziti34eAk4EEoA/u/fadda05brjslsD1wAQRaVzOOH31AJbmP1DVDXiJwLvlqupan+2XevsU5TngOVVtgEsuk3zWlfYeX4Z7vrHAIdwPmV+8xx8D/yi0/ZXA2d55unDkawWAN/TIFC/mlrjP5V3eL+jS4i3N+cBE3ECGk3E/tvCGGJkCzPCe6+3AeyJSVBHmvbhkH4f7YfIgoKXF7RX37Svh1sY7/hHvrXe/mbjJnKqcJYVyUtVs3C/vJt7jL1V1gzo/4D58g0vYf5GqzlM3rPNmXFHBUJ/156rqUwEK91FVPaiqS3EfwD7e8ptxVw6JqnoI90vrkvy6CnUTy6T5rOsjIg19jvu5qs5RN2hcZqHnp8CpuF+Pfwd2iMgsEelcQpwvqGqSqm7D/Tqbr6qLvfN/BvQtz5P343mU5ErgMVXdpaq7cZf5vqOlZnvrs1V1Ku4XdSDqSurhfr37SsUl4JLWFSUb6CRufocD6jPchR+vzWfeZzUT9x5kqurbqpqLm8uh8HvyoqpuVdU9uB8MY4qI50QgTlUfUzes90bgNQ4PWFhsvH74UVWnevG9w+HP+sm41+0p75zf4a4GioovGzcHRVvvfZ3tfZ5LjFtV39cjB2csfPvNO37h9y//fnHvX6WypFBO3i+PONzlJSIyQtzcv3vEDZ08khKGThY3AfsXXmXTflxxgb9DLZfVTp/7GbgPJUBb4DM5PNzzKtwVTDNxs5o9JSIbvPg2e/v4xri1pJN6yWacqnb0zpWOu7QvTpLP/YNFPD5qNNDS+Pk8ShIPbPF5vMVbli9FVXN8Hvu+vhVxAHfV6asBrlikpHVFuR73q321iCwQkXPB79emrO+J72ei8GuVry0Q7/srGvdrPP9qssh4/VT4sx7l/ciJB7aqal6h+FoWcYy/4a5yZ4ib1S//ir20uP1V+P3Lv1/c+1epLCmU3yjcyJs/ey0HPgGeBZqpGzp5KiUPnfwyrky2s3eZ/KDP9pVlKzBCjx56ehuuaGgUcAaueKSdt49vjGUZgnorrmiqZ2nb+iEdqJv/wKvkjitm29KeR2nPYTvuyyBfG29ZsK3g8K9cRKQDrn5jrXcLK3TV1cfb5yiquk5Vx+CKTZ7GzTERjX/vcVm19rlf3Gu1FdhU6HNXX1XzW6YVF29FbMeNVOv7ndcGN/z6Ebwrp3tVtQOuGPMeETm9tLhF5EqvhWJxt/zioyPeW+9+kqqmVPA5BoQlhTLymgJeifuCe9p7IyNw/7C7gRwRGYGbJjJfEhBT6LK8Pq4i7YCIHMfh0S3LIlJEonxuZX0/X8GNwNnWe25xIpI/QX19XBlyCu4L+ImyHFjcfMiPikgnEQkRkVjg9xwefroi1uJ+AZ7jXbE9jHv9i1La8yhxGG3gA9xcBHHec3gEVzFcKhG5VkQ2l7A+XESicP+HYd57mN+K6z3gPHH9OaKBx4BPvS+sdOBT4DFxc1EPxH25v1PMea4SkTjvV/I+b3EuFXyPi3GbiLQS13z2QVwRU2E/A/tF5P9EpI53xdJTRE4sJV5EZLOIXFuOuObjfkzc573uw3Bf+BMLbygi53qfW8H9j+YPO15i3Kr6nk+9YVG3/OKjt4HrxQ3t3hj3+X2rHM8pKCwp+G+piBzAXVbeANytqo+A+2WBqwSdhKusvQJXyYW3fjXuy2Wjd9kZD/zB2y4NVy55xD+PiHwlIg+WEtMB3CV8/u20Mj6n57w4Z4gbenoebgpKcB/cLbhfUisp+5d5Fu6X5ze4f6zluC+ga8t4nKOoaiquUv51L750XMVgUUp7Hv8Bunvvy/+K2P8vuJYwvwLLcJWsfyliu6K0xrXYKc5ruPdtDK5C+yBefYWqrgBuwSWHXbgv8Ft99r0VqOOt+wAY6+1TlOHACu/z+xww2qsjqOh7XJT3cfVpG73bUa+VV95/Hq7yfhOubu513NVKsfGKmys7pjxxqmoWrhJ6hHe+l4BrvP/NwjrjPrcHcBXrL6nq937E7W8s03DDvs/Evf5bgGrTvN2GzjYmSERkBnCnqq6q6lgqg3dVdIO6Oa6DcfxBwG1e0ZIJkqN6xBpjAkNVzyp9K+MvVf2Ro5s+mwCz4iNjjDEFrPjIGGNMAbtSMMYYU6DG1SnExsZqu3btqjoMY4ypURYtWpSsqsX15ylQ45JCu3btWLhwYVWHYYwxNYqIbCl9Kys+MsYY48OSgjHGmAKWFIwxxhSocXUKxhhTEdnZ2SQmJpKZmVn6xjVQVFQUrVq1Ijw8vFz7W1IwxhxTEhMTqV+/Pu3atcONeVd7qCopKSkkJibSvn37ch0jaMVH4iaj3iUiy4tZLyLyvIisF5FfReT4YMVijDH5MjMziYmJqXUJAUBEiImJqdBVUDDrFN7CjXZYnBG40Qg74+bKfTmIsRhjTIHamBDyVfS5BS0pqOosvFnJijEKeFudeUAjEWlR2nHT9+wsbRNjjDHlVJWtj1py5NR9iRQ9NR4icpOILBSRhRGZu8nLs/GajDE1V2hoKAkJCfTs2ZPzzjuPffvcXELt27dnzZo1R2x711138cwzz1RabFWZFIq6xiny215VX1XVfqraL5wc1m3aFOTQjDEmeOrUqcOSJUtYvnw5TZo0YcKECQCMHj2aiRMPTwaXl5fHxx9/zOWXX15psVVlUkjkyPlcW+Hn3LebfrUh1Y0xtcOAAQPYts1NFT1mzJgjksKsWbNo164dbdu2LW73gKvKJqmTgXEiMhE3BWSqqu7wZ8f0zYuAa4IZmzHmGPDolBWs3L4/oMfsHt+AP5/Xw69tc3Nz+fbbb7n++usB6N27NyEhISxdupQ+ffowceJExoyp3Inmgtkk9QPc/KZdRSRRRK4XkVtE5BZvk6m4OVzX4+aqvbWYQx0hJySCBvtWkJWTF5S4jTEm2A4ePEhCQgIxMTHs2bOHM888s2Bd/tVCTk4On3/+OZdeemmlxha0K4XS5lFVN7vPbWU+blhdurGJxb/tpX+HmHLHZ4wx/v6iD7T8OoXU1FTOPfdcJkyYwB133AG4pHDWWWcxdOhQevfuTdOmTSs1tho39lFoZF1aSTKLVm+o6lCMMaZCGjZsyPPPP8+zzz5LdnY2AB07diQmJob777+/0ouOoAYmhZCIugAkr51fxZEYY0zF9e3bt6D+IN+YMWNYvXo1F154YaXHU+OSAuEuKdRJXkZaZnYVB2OMMWV34MCBIx5PmTKFq6++uuDx3XffTWZmJg0bNqzs0GpgUggJ5WD9NvSQTczfWFKHaWOMMWVV85ICENHqeHqFbGbOhuSqDsUYY2qVGpkUQlsm0Fp28eta69lsjDGBVCOTAi0SAIhKWc6u/bVzogxjjKkKNTQp9AGgl2yyIiRjjAmgmpkU6jZBG7Whb/gW5qxPqepojDGm1qiZSQGQFgleUkjGdY42xpiaY+fOnYwePZqOHTvSvXt3Ro4cydq1a1m7di0jR46kU6dOdOvWjcsuu4ykpKSC/e68805atmxJXl5whvqpsUmB+ASaZm8nPTWFjcnpVR2NMcb4TVW58MILGTZsGBs2bGDlypU88cQTJCUlcc455zB27FjWr1/PqlWrGDt2LLt37wbcUNqfffYZrVu3ZtasWUGJreYmBa9eoUfIZuast3oFY0zNMXPmTMLDw7nlllsKliUkJLBu3ToGDBjAeeedV7D81FNPpWfPngX79ezZk7Fjx/LBBx8EJbaqHDq7Ylr0BWBQ3UTmrE/mmgHtqjYeY0zN89X9sHNZYI/ZvBeMeKrETZYvX84JJ5zg9/J8H3zwAWPGjGHUqFE8+OCDZGdnEx4eXuGQfdXcK4XoGGjYmoHRiczdkEKuTdFpjKnFsrKymDp1KhdccAENGjSgf//+zJgxI+DnqblXCgAt+tApcTlpmTks25ZKQutGVR2RMaYmKeUXfbD06NGDjz/+uMjlP/zwQ5H7TJs2jdTUVHr16gVARkYGdevW5ZxzzglobDX3SgGgRQL1DmymHhlWr2CMqTFOO+00Dh06xGuvvVawbMGCBXTq1Im5c+fy5ZdfFiyfNm0ay5Yt44MPPuD1119n8+bNbN68mU2bNjFjxgwyMjICGltQk4KIDBeRNSKyXkTuL2J9WxH5VkR+FZHvRaRVmU4Q73o2j4zdbUnBGFNjiAifffYZX3/9NR07dqRHjx6MHz+e+Ph4vvjiC1544QU6d+5M9+7deeutt2jQoAHTp08/4qogOjqaQYMGMWXKlIDGFrTiIxEJBSYAZwKJwAIRmayqK302exZ4W1X/KyKnAU8CVx99tGJ4LZDObLSD2zbt5WBWLnUiQgP1FIwxJmji4+OZNGlSkeumTZt21LI9e44eFfrTTz8NeFzBvFI4CVivqhtVNQuYCIwqtE134Fvv/swi1pesXlOoH0+v0M1k5eaxcIsNpW2MMRURzKTQEtjq8zjRW+ZrKXCxd/9CoL6IHDXxsojcJCILRWRhfieOAvEJND2wivBQ4UcrQjLGmAoJZlKQIpYVbjf6B2CoiCwGhgLbgJyjdlJ9VVX7qWq/uLi4I1e2SCAkZT0DWkYy18ZBMsb4oTYPjVPR5xbMpJAItPZ53ArY7ruBqm5X1YtUtS/wkLcstUxnadEHUM5rtofl21PZm55VsaiNMbVaVFQUKSkptTIxqCopKSlERUWV+xjB7KewAOgsIu1xVwCjgSt8NxCRWGCPquYBDwBvlPksXgukk+v8hupx/LQxhZG9WlQwdGNMbdWqVSsSExM5qii6loiKiqJVq7I15PQVtKSgqjkiMg6YDoQCb6jqChF5DFioqpOBYcCTIqLALOC2Mp+ofnOo15yWB9dQL7Inc9YnW1IwxhQrPDyc9u3bV3UY1VZQezSr6lRgaqFlj/jc/xg4ultfWbXoQ8jOpfRvf6P1VzDGmAqo2T2a88UnQPJahraPZnNKBlv3BLaHnzHGHCtqR1JokQCax7BGbiKKuTZFpzHGlEvtSApeZXPrg2uIqx9pU3QaY0w51Y6kUL8FRMchO39lYMcY5qxPJs+G0jbGmDKrHUlBxBUhbV/CwE6xpKRnsSYpraqjMsaYGqd2JAVwRUi7VzOwXTSAtUIyxphyqD1JoUUf0FziMzfSIS7akoIxxpRDLUoKrrKZ7YsZ2DGW+Zv2kJWTV7UxGWNMDVN7kkLDVlA3Bna4eoWMrFyWbN1X1VEZY0yNUnuSgogrQtq+lAEdYggRbChtY4wpo9qTFMAVIe1eRcPwXHq1bMhcSwrGGFMmtSspxCdAXg7sWsHATrEs3rqPtMzsqo7KGGNqjNqVFLw5m9m+hEGdYsnNU37eZFN0GmOMv2pXUmjUFqIawY6lHN+2MZFhIVavYIwxZVC7koKIK0LasYSo8FBObNfEpug0xpgyCGpSEJHhIrJGRNaLyP1FrG8jIjNFZLGI/CoiIyt80hYJkLQScg4xsFMsa5LS2JWWWeHDGmPMsSBoSUFEQoEJwAigOzBGRLoX2uxhYJI3R/No4KUKn7hFH8jLhl2rGNQpFsCuFowxxk/BvFI4CVivqhtVNQuYCIwqtI0CDbz7DYHtFT6rN4w2O5bQPb4BjeqGW72CMcb4KZhJoSWw1edxorfM13jgKhFJxE3beXtRBxKRm0RkoYgsLHWy7cbtIbIhbF9CaIgwoEMMc9cno2pDaRtjTGmCmRSkiGWFv5nHAG+paitgJPCOiBwVk6q+qqr9VLVfXFxcKWcVaNEbdiwBYGCnWLanZrIpOb08z8EYY44pwUwKiUBrn8etOLp46HpgEoCq/gREAbEVPnN8AiStgNzsgnoFGzXVGGNKF8yksADoLCLtRSQCV5E8udA2vwGnA4hIN1xSKKV8yA8tEiA3C3atom1MXVo2qmNTdBpjjB+ClhRUNQcYB0wHVuFaGa0QkcdE5Hxvs3uBG0VkKfABcK0GovC/xeHKZhFhYKcY5m5IJtem6DTGmBKFBfPgqjoVV4Hsu+wRn/srgYEBP3GTDhBRH3YsBVy9wqSFiSzflkqf1o0CfjpjjKktaleP5nwhId4w2q6y+ZSOrl7BmqYaY0zJamdSAJcUkpZDbg5x9SM5rnl95m6wpGCMMSWpvUkhPgFyMiF5DeCKkBZs3ktmdm4VB2aMMdVX7U0KBXM2uyKkQZ1iycrJY+HmvVUYlDHGVG+1NynEdIKIegWd2E5q34SwELF6BWOMKUHtTQohIdC8V8GVQnRkGH3bNOLH9RXvBmGMMbVV7U0K4IqQdi6DPFePMLhzHCu27yflwKEqDswYY6qn2p0U4hMg5yAkrwVgSJc4VK1pqjHGFKd2JwWfOZsBerVsSKO64fyw1oqQjDGmKLU7KcR2gfC6BT2bQ0OEQZ1imb3OhtI2xpii1O6kEBLqKpu9FkjgipB2px1i1Y60KgzMGGOqp1KTgoicLCJ1vftjROQZEWld2n7VRos+sOPXgsrmIZ3dfAyz11kRkjHGFObPlcKrwEER6Q08CCQB7wY1qkBqkQDZ6ZCyAYDmDaPo2qw+sywpGGPMUfxJCjnecNajgOdU9e9A/eCGFUA+czbnG9w5lgWb9pKRlVNFQRljTPXkT1JIF5E/AlcBX3rTZYYHN6wAiu0KYVEFLZDA1Stk5eYxf+OeKgzMGGOqH3+SwuW4+ZZvUdUduGk1/+HPwUVkuIisEZH1InJ/Eev/KSJLvNtaEdlXpuj9ERoGzXoecaVwUvsmRIaFWNNUY4wpxJ9JdsKAF1T1oPd4N/BNaTuJSCgwATgTN1/zAhGZ7E2sA4Cq3u2z/e1A3zLE7r/4BFj6IeTlQUgIUeGh9O8QY/UKxhhTiD9XCp8CvuNN5wGf+LHfScB6Vd2oqlnARFy9RHHG4KbkDLwWCZCVBns2Fiwa0jmWjbvTSdybEZRTGmNMTeRPUgjzvtQBUNVDQKQf+7UEtvo8TvSWHUVE2gLtge/8OG7Z5fds9ilCGtolv2mqDXlhjDH5/EkKKSIyMv+BiJwL+FNDK0UsK64b8WjgY1UtcgYcEblJRBaKyMLdu8tR5NO0G4RGHpEUOjWtR4uGUcyyegVjjCngT1IYCzwmIptEZBPwCHCzH/slAr6d3FoB24vZdjQlFB2p6quq2k9V+8XFxflx6kJCw6FZjyNaIIkIgzvH8uP6ZHJy88p+TGOMqYVKTQqqulZV++Eqgfuq6kmqutaPYy8AOotIexGJwH3xTy68kYh0BRoDP5Ut9DLK79nsM+bRkC5xpGXmsDQx8I2ejDGmJiq29ZGIjFHVD0TkjkLLAVDV50s6sKrmiMg4YDoQCryhqitE5DFgoarmJ4gxwEQN9gh18Qmw6E3YuwmadADcFJ0hAj+sTeaEtk2CenpjjKkJSmqS2tj7W1R5jV9f4Ko6FZhaaNkjhR6P9+dYFeY7Z7OXFBrVjaB3q0bMWrube87sUilhGGNMdVZsUlDVl7y7X6rqPN91InJyUKMKhqbdICTcVTb3vKhg8ZAucbz43Tr2ZWTRqG5EFQZojDFVz5+K5peKWDYh0IEEXVikq2xe9gls/KFg8dAuseQpzFmfUoXBGWNM9VBsUhCRk0TkTiBORO7wuT1MTRr7yNfwJyEkBN4+HyZdA/u20qdVI+pHhVnTVGOMoeQrhWggFlfEFOdzywIuDX5oQdD2FLjtZzj1IVg7A148kbDZf2NYezeUts3GZow51pVUpzATmCkib6rqRgBxTY/qqmp6ZQUYcOF1YOh90Gc0zPgTfP8ET9Zpyb1pl7E+6UQ6N29Q1REaY0yV8adOYbyINPBmX1sBbBKRe4IcV/A1agOX/ReumUxk3Xr8O+Kf1Jl0KexeU9WRGWNMlfEnKfRS1f3ABcAMXM/ka4MZVKXqMJTwW+fyQuSNNN67HF4+BaY/BJmpVR2ZMcZUOn+SQoSIhOFGOP2fNzhe7RoXIjSMlB7XcUbOP8jpfQX8NAFe6AeL33PDbRtjzDHCn6TwOvAbrjPbDyLSBjgQ1KiqwNAucezIrsdPPR6BG7+Dxm3h81vhP2fCtkVVHZ4xxlQKf8Y++qeqxqvqWd5QFFuB04IfWuXq36EJEaEhrmlqy+Ph9zPgglcgdSu8djp8Pg4OWLNVY0ztVuaxj3yUOPZRTVM3Iox+7Roza20yD52D68+QMAaOOwdm/Q3mvQwrJ8OoF6B7SXMFGWNMzVXSlYLv2EeFb7FBjqtKDOkSx5qkNHamZh5eGNUAznocbv0JGrV2ldDWn8EYU0sVmxQKjX30J98bhQa5qy2GdHZj/xU5d3NsZxgwzhUnWR2DMaaWOnbGPvJDtxb1iasfWfwUnV1HuEH1VnxWuYEZY0wlKalO4SRgAN7YRz6rGlBTxz4qRf5sbDNX7yI3TwkNKTSjaJ1G0Ol0WPE/OOsvIEXNOGqMMTXXsTX2kR+Gdoljb0Y2y7cV03mtx4WwPxESF1ZuYMYYUwnKNPZRWYnIcOA53Mxrr6vqU0VscxkwHjdxz1JVvaI85wqUQZ1iEYFZa3fTp3XHUDHfAAAgAElEQVSjozfoOgJCI2Dl/6D1iZUfoDHGBJE/dQr7ReRJEZksIjPyb6XtJCKhuLqHEUB3YIyIdC+0TWfgAWCgqvYA7ir7UwismHqR9IxvWHRlM0BUQ+joFSFZb2djTC3jT1J4F9gMdAGeBnYCS/zY7yRgvapu9IbGmIgbKsPXjcAEVd0LoKq7/Iw7qAZ3juWX3/axPzO76A3yi5C2WRGSMaZ28ScpxKnqv4EsVf0W+B3uC780LXG9n/Mlest8dQG6iMgcEZnnFTcdRURuEpGFIrJw9+7g9yoe0iWO3Dzlpw3FzMbWdQSERlorJGNMreNPUsj/ubxTRM4GegKt/divqKY5hXt9hQGdgWHAGOB1ETmqIF9VX1XVfqraLy4uzo9TV8zxbRoTHRFa/GxsUQ1cK6SVn1sRkjGmVvEnKTwhIg2BPwAP44qT/uDHfokcmTxaAduL2OZzVc1W1U3AGlySqFIRYSEM6Bhb8mxsPS6E/dsgcUHlBmeMMUHkT1LYpaqpqvqrqg5W1T7ADj/2WwB0FpH2IhIBjAYmF9rmf8CpACISiytOKldLp0Ab2iWWrXsOsjklo+gNugy3IiRjTK0TtB7NqpoDjAOmA6uASaq6QkQeE5Hzvc2mAykishKYCfxRVYspyK9cQ7p4Q16UWIR0hhUhGWNqlaD2aFbVqRQaJ0lVH/G5r8A93q1aaRsTTduYusxau5vfndKu6I16XAhrvoTEn6HNyZUanzHGBIP1aC7B4M6x/LQxhaycYq4EuloRkjGmdilTj2YRqa+qaZUWXRUb0jmOd+f9xqItexnQMeboDSLrQ+czXRHS2U+6ORiMMaYGK/ZbTEQeEpHjVHWjiER4vZgTRSRJRGrdzGtFGdAxhrAQKb53M7gipLQdsHV+5QVmjDFBUtJP2ytwTUQBrgEigRjcVJxPBjmuaqF+VDjHt21cfGUzQJezISzKipCMMbVCSUkhSw830h8OfKCqOaq6glo6dHZRhnaJY8X2/exOO1T0Br5FSNYKyRhTw5WUFA6JSDcRyb868B0Er25ww6o+8mdj+3F9CVcL3S+AAzth67xKisoYY4KjpKRwL66z2XrgeZ/K5pHAr5UQW7XQI74BTaIjmLW2mNnYwHVksyIkY0wtUNIczXNUtbOqNlbV8T7Lp6rqZZUSXTUQEiIM6hTL7HXJ5OUVM+RFZD3ofJZXhJRbuQEaY0wAWRtKPwzpEkfygUOs2rm/+I16XAgHkuC3nyovMGOMCTBLCn4Y0jkWoJQipLMhrI6bfMcYY2qoUpOCiBzVwa2oZbVZ0wZRHNe8fslNUyOioUuQi5CWfwK7Vgfn2MYYg39XCj/7uaxWG9oljoVb9pB+KKf4jXpcCOm7YMvcwAew5iv4+Pcw5c7AH9sYYzwl9WhuKiJ9gDoi0ktEenu3QRxDTVLzDekSR3auMm9jCYO4dj7LFSGtDHAR0oFd8Pk4CI1wzV6T1wf2+MYY4ynpSuEc4EXc5DgTfG4PAn8KfmjVS792jYkKD+Gr5TuLn3gnItrVLQSyCEkVPr8Nsg7AlR+BhMKS9wJzbGOMKaSkJqlvqupg4HpVHeJNsDNYVUeq6keVGGO1EBkWysXHt+LjRYk88vkKcnKL6b3c40JI3w1b5gTmxAteh3Uz4MzHocMwN4fD0onW9NUYExT+1Ck0FZEGACLyioj8LCKn+3NwERkuImtEZL2I3F/E+mtFZLeILPFuN5Qx/kr1+Kie3Dy0A+/M28J1by0g9WD20Rt1PgvC6wamI9uu1TDjYeh0Jpx0o1vW90pI2w4bZlb8+MYYU4g/SeEmVd0vImfhipLGAs+UtpOIhOKKm0YA3YExItK9iE0/VNUE7/Z6GWKvdCEhwgMjuvH0xb34aUMKF788l98KT9cZUdcVIa2aArklVEqXJucQfHqDK5IaNQFE3PIuI6BOE1jybvmPbYwxxfAnKeQXoI8A3lTVRX7udxKwXlU3qmoWMBEYVb4wq5fLT2zDO9f3Z3faIS54aQ4LNu85coNAFCF99xfYucwlhPrNDi8Pi4Del8HqLyFjT/H7G2NMOfjz5b5URKYC5wFfiUg9DieKkrQEtvo8TvSWFXaxiPwqIh+LSOuiDiQiN4nIQhFZuHt3CX0FKtGAjjH877aBNKwTzpWvzefTXxIPr+x0JoRHl78IaeMPMPcFOOE66Dri6PUJV0Buluu3YIwxAeRPUrgOGA+cpKoZQBRwvR/7SRHLCieTKUA7Ve0NfAP8t6gDqeqrqtpPVfvFxcX5cerK0T42ms9uPYXj2zbinklLeXb6Gjc+UkWKkDL2wGe3QExHOPuvRW/Tog806wWLrQjJGBNYpSYFVc0FOuDqEgDq+LMf7srA95d/K2B7oWOnqGr+RAWvASf4cdxqpVHdCN7+fX8u69eKF2eu5/YPFnMwK9cVIWUkw5Yf/T+YKnxxt+sAd/Hrrj6hOH2vhB1LIGlFxZ+EMcZ4/Bnm4kXgVOAqb1E68Iofx14AdBaR9iISAYzGDcXte+wWPg/PB1b5E3R1ExEWwtMX9+bBkccxdfkORr/6E7uaDy57EdLSD1zHt1MfhPi+JW/b6zIICYfF1mfBGBM4/vziP0VVbwYyAVR1DxBR2k6qmgOMA6bjvuwnqeoKEXlMRM73NrtDRFaIyFLgDuDacjyHakFEuGlIR1656gTWJh3ggn//Qmqb0/0vQtqzCab+EdoOhIF3lb59dAx0HQ6/fgi5RTSNNcaYcvAnKWSLSAhefYA3E5tf8056cy90UdWOqvpXb9kjqjrZu/+AqvZQ1T6qeqqq1vjR3s7u0ZyPbhlAnsKf1nWGjBTYPLvknXJz4NObXG/lC1+BkFD/TpZwlSuiWjej9G2NMcYPJY19lD8S6gTgEyBORB4FfgSeroTYaqyeLRvy+biBbIsdyAGNYvW3bxc/NAbA7L9D4s9w7j+gURv/T9TpDKjXzIqQjDEBU9KVws8Aqvo28DDwLLAXuFRVJ1ZCbDVaswZRvHvLMFbWH0jTbTN4+NMlZBc1NMbWBfDD066OoNclZTtJaBj0vhzWTYcD1aOprjGmZitpXoSCJqWqugKwZi5lVCcilH4jryNk0rf8tmga1+49xB/O6kp2rpKZnUt2Rionf/17iGrGlLg7SJu1kUM5uWRm55GZnUum7/3sPLJy87iyfxvO7tH88En6XgVzn3d1C6eMq7ona4ypFaS4Yg0RSQT+UdyOqlrsumDq16+fLly4sCpOXT7ZmfC3jmxsfjZnb7iE7NzDr/fTYa9ySegPjM76Ewv0uILlIQJR4aHuFhZCVHgokeGhpGZkkZKexeRxg+javP7hc7x2OmRnwNi5h4fDMMYYHyKySFX7lbZdSVcKoUA9iu6EZvwVHgVdR9Jh/dd8Ne7vbNqbRVR4CC22f02nmd+z5/jb+cegsUSGh3hJIJTwUEGK+HLfnXaIEc/NZtz7vzB53CDqRHgV0n2vdP0bti+GlsdX8hM0xtQmJSWFHar6WKVFUpv1uACWTaJT+iI6dT8D9m+HT11fhCbn/JkmoeF+HSaufiT/ujyBq9+Yz6NTVvDUxb3dip4Xw7QH3DwLlhSMMRVQUkWzXSEESsfTIaI+rPgf5OXB/8a6UVAveh38TAj5BnWOZezQjkxcsJXJS70O4lENodt5sOwjV1xljDHlVFJS8GvOBOOH8Cg4bqTryDb3edj4PZz9BMR2Ktfh7j6zCye0bcyDny5jS0q6W5hwBWSmwpovAxe3MeaYU9LMazYucyB1vwAy98E3f4au58AJ15b7UOGhITw3OoEQgds/WExWTh60HwoNWlmfBWNMhfjTo9kEQsfTILKB62x2/vMVbiXUqnFdnrmkD78mpvLMtNWuF3TCGNjwHaRuC1DQxphjjSWFyhIeBZe/C1d9AtGxATnk8J7NuWZAW17/cRPfrU5yRUioG1jPGGPKwZJCZeowFJr3CughHxzZjW4tGnDvpKXsDI13A+otec8Nw22MMWVkSaGGiwoP5cUr+nIoJ487Jy4mr88VsGcj/DavqkMzxtRAlhRqgY5x9XhsVE/mb9rDK7t7uXkcltisbMaYsrOkUEtcckIrLurbkme/T2RXmxGuT0RWelWHZYypYSwp1CKPXdCTtjHR/GlLAmQdgJWfV3VIxpgaJqhJQUSGi8gaEVkvIveXsN0lIqIiUupgTaZ49SLDeGFMX2Ye7EhSWEt0sRUhGWPKJmhJQURCcRP0jAC6A2NEpHsR29XHTcU5P1ixHEt6tmzIgyO78fbBgciWOW6aT2OM8VMwrxROAtar6kZVzQImAqOK2O5x4Bm8OaBNxf3ulHbs7ngheSokzX6zqsMxxtQgwUwKLYGtPo8TvWUFRKQv0FpVvyjpQCJyk4gsFJGFu3fbDGOlEREeHH0GC0L6kLfkfdIOHqrqkJyDe63/hDHVXDCTQlHjOBR8I4hICPBP4N7SDqSqr6pqP1XtFxcXF8AQa69GdSOIHXwdLXQ3/33vnZLniA6mrAxY+iG8dS483Q6++0vVxGGM8Uswk0Ii0NrncStgu8/j+kBP4HsR2QycDEy2yubA6Tj4cg6F1qPllk/5aGFi5Z1YFRIXwZS74O9d4bObIDUR2g6C2X93o8QaY6qlkibZqagFQGcRaQ9sA0YDV+SvVNVUoGAQIBH5HviDqtaguTarufA6hCdcxjmL3uWUyT/Tt00jOjerX/p+5ZWe7OaKXvwu7FoJYXXcBEN9r3LDb2RnwKvD4NObYeycgI0BZYwJnKBdKahqDjAOmA6sAiap6goReUxEzg/Wec2RQvpeRQRZXBA2n3HvLyYzOzewJ8jNgbUz4MOr4O/HwfQHIbwunPsv+MMauPAVaDfIjQobEQ2XvOHqFv43tlLrFzYnp/PolBVMW76D3Dyr16hxFvwHPrnRTVJlgkqqrKy5nPr166cLF9rFhN9U4aWTSc2Los+2+2hUN5wT2zWhf/smnNS+Cd1bNCAstBy/DVI2uIH3lrwPaTugbiz0Ge2uCpp2K3nf+a/CV3+Es5+EAbeW73n5SVX5aFEi4yevICPLJcR2MXW5fnAHLj2hFVHhoUE9vwmA7Yvh9TMgLwcueMUNEW/KTEQWqWqpxfOWFI4Fc56Hr//EvBFT+eS3evy8eQ9bUjIAiI4I5QSfJNG7VUMiw4r5osxKd72kF78LW+aAhEDns1wi6Hw2hEX4F48qTLwC1n0NN3wD8QkBeqJHSs3I5sHPlvHlsh2c3KEJz17q5p/496yNLN26jybREVwzoC3XDGhHk2g/YzeVKzsTXh3qZhWs1xQO7IbbF7qrTlMmlhTMYWlJ8I9ucMo4OPMxAHamZvLz5j38vCmFnzftYW3SAQAiwkLo3yqKs5vu58R6yXQgkfC962D3Wjf6al42NOnoEkGfMdCgRfliytgDLw+E8Dpw8yyIrBeoZwvAvI0p3PPhEnalHeKes7pw85COhIa4BnGqys+b9vDa7I18s2oXUeEhXHJCK24Y1IF2sfZlU63MeBjmvuDmIYmoB2+cDcMehGH/V9WR1TiWFMyR3h8N23+Bu1dCqNe+IGMPJK+F3Ws4uGMVBxKXE75nHY2ydhbslqMhJIW1IL1+RyJaHEeLfqOI7DCwwjPHAbBpNvz3PDc50AUvVfx4QHZuHv/6Zi0vfb+BdjHR/OvyBPq0blTs9ut3pfHarE18tngb2Xl5DO/RnJuGdKBvm8YBicdUwOY58NY50O86OPefbtmk38G6GXD7L+X/QXKMsqRgjrRqiqsMPu5cOLgPktdAuk9HwLAoiO0MsV0hrisHG3ZkWVZzZifX56ctB1iauI/sXKVFwyhuP60zl/ZrRXh56iIK++6vMOsZuOh16H1phQ61OTmdOycuZmliKpf1a8Wfz+tBdKR/Dex27c/krbmbeXfeFvZn5nBSuybcOKQDpx/XlJCQACRAUzaH0tyVpAjcMufwleSeTTDhJOh1GVwwoWpjrGEsKZgj5WS5f6aDe7wv/i4Qd9zh+w3bQEjxX/KZ2bn8tCGF579bx+Lf9tE2pi53ndGZ8/u0LCiWKZfcHPdrMGkF3DILmnQo8yF8K5PDQoSnLu7NyF7l+xWZfiiHDxds5T8/bmLbvoN0jIvmxsEduKBvS6uUrkxT7oRF/4XfT4M2Jx+5bsafXJHSzT9Aiz5VE18NZEnBHC0vz/3yqkDRj6ry3epdPDtjLat27KdLs3rcc2YXzu7RHCnvcff9Bq8McnUVv5/uf4U1R1Ym92/fhH9enkB8ozrli8NHTm4eXy7bwauzNrJi+35i60Vy3cB2XD+ovSWHYFv3Nbx3CQy8s6AO7AgH98ELx0PT7vC7KYEpyjwG+JsUbD6FY0lISIX/gUSE07s148vbB/HiFX3JyVNuefcXzn9xDt+v2VW+4TQatYHzX3B1HjP9HwZj/sYURjw3i+krdnLf8K68f+PJRScEVVj4BvyrN6yZ5texw0JDGJXQki9uH8T7N/SnR3wD/jZ9Dee/+COrd+73O8ZqY/knrv7m4N6qjqRkGXvg83HuC//Uh4repk4jGPYAbJ4Na76q3PiOAXalYCokJzePzxZv47lv15G49yAntmvMH87qSv8OMWU/2JS7YNGbcNWn0On0YjfzrUxu26Quz43uW3xl8r6tMHmcG1ojPNo1o73xW4jrWubwfli7m3snLWV/ZjYPjezGNQPalv/qqDKtnQ4fjAHNhZNugpF/q+qIivfx72HlZLjxO2jRu/jtcnPg5VNc34Vb55Xp6vJYZVcKplKEhYZwab/WfHfvMB4f1YMtKRlc/uo8rv7PfJZu3Ve2g539BMR1g89ugQO7itxkc3I6l7zyExNmbuDSE1rx5R2Di04IqvDL2/DSAEhc6Fqv3DYfwqPcF+TBMsYGDO0Sx7S7BjOwYwx/nryC6/+7kOQD1WQE2uJsmQuTroHmvSDhKljwOuxcXtVRFW35J+427P9KTgjgWtCd9RfYswEW/qdy4jtG2JWCCaiDWbm8M28zL3+/gb0Z2ZzVvRn3ntWVrs39HHMpaSW8dqobK+nKjzmUp+xJzyLlQBaLt+7jqamrCA0RnryoN+f0LqYyOXUbTLkD1n8D7QbDqAnQuK1bt+UnV4zSYRhc8SGElL1+QFX579zNPPHVahpEhfP3y/owtEs1HL135zJ48xzX6ev309xV0gsnuB7n135Zvcri03bCSycfrlcK9aPVmCq8c6Hr8XzHYqjbJPhx1mBW0WyqVFpmNm/8uJnXZ2/kQFYO5/eJ5+4zutCycR32pmeR4n3Rp6QfKvi7Jz2L5ANZ9Nv1KTcfmMDf9GomHBpxxHFLrExWdcNuTHvAdbI78zHod/3RraoWvgFf3A2D7oYzxpf7Oa7euZ87PljM2qQD3DCoPX8c3rX43uCVbc9GeGM4hIS5L9lG3oDFC9+EL+6Ci/8DvS6p2hjzqcL7l7l+K7fMdk2j/ZW0wjVS6H8LDH8yeDHWApYUTLWwLyOLf8/ayFtzNpOZk1vsGHihIUKT6AhioiOIiQ7nvtS/0jP9Jz5JeIOc5n2JqRdB0/qR9G7VqOgmsPt3uGaM66a7q4xRL5bcvDW//uKSN6DnxeV+fpnZuTwxdRVv/7SF7i0a8PyYvnRqGtje2WWWttP1/M3c764QfOtP8nLdlVh1Gi5i0X/dld2IZ6D/zWXff/IdbhyuW+dDbKfAx1dLWFIw1cqutEw+/HkreQpN6kUQGx3hkkC9SGLrRdAgKvzITmIZe+CVwRAa7obBiGpQ9IFV3XDdX93n+mKcMd5VppbQ5wJw2759PmxfAtdPr3B7969XJnHfx0s5mJ3Ln8/rwegTW1dNJfTBva7IaO9m11yz1QlHb/PbfHjjLBh8L5z+SKWHeIS9m10ntZbHw9Wfl/6+FSUtyTVR7TAMRr8X4ABrD0sKpubbMtd1bOt1KVz06tHr05JcUciaqdD6ZDdURkxH/49/YJeb30FC4KbvKzy/Q9L+TO6dtJQf1yczvEdznrq4F43qVmKrmKwMV8a+bRFc+RF0PLX4bT+9GVZ86lrulOU1C6S8PPjvua7uY+zcw0Vc5THrWfjucfjdF9B+cOBirEWs9ZGp+dqeAkP/z10JLPng8HJVWPYxvNQfNnwHZ/0Vrpta9i+3ek3h8nfdcB+Tfge52RUKt1mDKN7+/Uk8OPI4vl2dxPB/zeanDSkVOqbfcrPho9/B1vlw8eslJwSAMx+F0Eg3/0VVmfeSG213+FMVSwgAA26Dhq3d87E5FyokqElBRIaLyBoRWS8i9xex/hYRWSYiS0TkRxHpHsx4TA005I+ujuDLeyF5vSsLn3Q1fHK9a6ly82w3+ms5WhEBrtjivOdhy48B+YIMCRFuGtKRT8cOpG5EKFe8Po9npq0mO9e/L6q8PGVXWiZLt+5j2vIdvPHjJv765Upue/8Xbn5nIcu3pRa1E/zvVjdQ3Ln/dLPdlaZ+cxh6H6yd5iZJqmy7VsO3j0HXc9yAiBUVXscVHe78FX6dWPHjHcOCVnwkIqHAWuBM3HzNC4AxqrrSZ5sGqrrfu38+cKuqDi/puFZ8dAxKTXTlzvWaQkYKHDoApz4Ip9xe/mRQ2PSH4KcX4fwX4firA3LI9EM5PDZlJR8u3Eqf1o147vIEGtQJZ/u+g+xMzWRH6kG2p2ayY5/3N/UgSamHyCqUQCLCQohvGEXqwWz2Z+Zwy9AO3H5aZzfchip89X/w879d/cDge/0PMCfLdQDTXK8DWGRAnnepcrPdpDmpW13lcL0ANedVdcfdvw1uX1Q9KtGrEX+Lj4I5R/NJwHpV3egFNBEYBRQkhfyE4IkGalYFh6kcDVu5+oKJV0D88XDBy9D0uMCe44xHXfPGL+9xAwW2PrHCh4yODOPpS3ozpEscD3z6K8Oe/f6obcJChOYNo4hvWIe+rRvTope736JhFPGN3N8m0RGICPsysnj8i1VMmLmB6SuSeOaS3hy/6TWXEAaMg0H3lC3AsAgY8TS8exH8NAEGl3H/8pr1LOxYApe9E7iEAK7fxdlPuEr0uS/AsKMKJ4wfgnmlcAkwXFVv8B5fDfRX1XGFtrsNuAeIAE5T1XVFHOsm4CaANm3anLBly5agxGyquT0b3Wiu/nRsKo+MPa65Znamq3gO4Hj92/YdZNKCrTSoE058wyhaNKpDfMMoYutFlnlo7plrdvHQp8s4/cAUHg9/k5xeYwi78KXytdwBmHglbJjpmqg2iC/fMfy17Rf3a77XJUU3HgiEj651Q3vcvij4z6cGqQ4VzUV90o/KQKo6QVU7Av8HPFzUgVT1VVXtp6r94uKqYc9RUzmadAheQgDXI3b0B24s/w+vcskhQFo2qsPdZ3bh+kHtGdGrBQmtG9G0QVS55mo4tWtTvj07mUfD3+Lr3BM4c/0lzN20p/zBnf1XN4bQjD+V/xj+yD7ohjCp18z1SQiWM8a75/Od/4MrmsOCmRQSAd8mBa2A7SVsPxHwo4bMmCBq1h0u+jdsW+gqt6tjk+1131Dni1sJaXsKDa56h7yQUK54bT4PfbaMtMxytKBq3M4NU738YzfbWbB8+7ib3OmCCW6k02Bp3A5OHut6t29fErzz1FLBTAoLgM4i0l5EIoDRwGTfDUTEtz/7OcBRRUfGVLpu57mmsEvehZ+DVMRRXlt/dq2v4rrBmA/o37Ul0+4cwg2D2vP+z79x9j9nMXNN0YMJlmjQ3a5J51f3uRFIA0hVWf79R+i8l8g94XroeFpAj1+kwfe6K78ZD1fPxF6NBS0pqGoOMA6YDqwCJqnqChF5zGtpBDBORFaIyBJcvcLvghWPMWUy9H7XXHLaA7BpVlVH4ySthPcudc1Jr/4UohoCUCcilIfP7c4nY0+hbmQY1725gHsmLWFfRpb/x46o60YdTVruhv8IgEM5uXz88ybee+oWus+8kTV5rTh39Vn8sHZ36TtXVFRD10Jt82zXudH4zXo0G1OczP2uUjR9N9w00xVL+CMv1w3fsGsV7F7l/u5a7ZZJiBu6IzTC3cK8vwXLIn3ue3/DvGX5/Qmun15sLIdycnnh2/W8/MMGGteN4C8X9GB4Tz8rzFXd0B87foXbf4HocsyJAexNz+K9+Vv4au4vPJL1D/qHrGZzq1Fs6T+e8dN/Y1NyOiN6Nufhc7vTMgCz5BWrYM6FbNf09Rifc8GGuTAmEFI2uBZJDVvD9TOObPuu6tra71p1+LZ7FexeAzk+ldQN27jhqvN7XOdmebds9zfn0OH7BX99l3nLoxrCJW+6eo9SLN+Wyn0f/8rKHfs5p1cLxp/fg7j6fvRD2LXK9Qk5/mo477kyvVQbdx/gjTmb+HhRIqfkLuS5qFepG5JDyLn/QBLGAC5pvT57Ey98tw5BGHdaJ24Y3D54o8vmT+159pMw4NbgnKOGsKRgTKCs/8YV23QZAe0G+iSANZCVdni7+vGu/0RcN5cEmnZzI5RG+jmXRIBl5+bx6qyNPPfNOupGhnL/8OMY3CWO+IZRJQ/WN+0BmPeyuzqK71viOVSV+Zv28PrsjXy7ehd1Q/J4pfnnDE75yE3sc8lbRY5cmrg3g8e/WMn0FUm0j41m/Pk9gjMnharrh7HtlwrNuaCqNWOWvRJYUjAmkOY8B197I4pGx7kObk27uyTQtLv78q/TuGpjLMa6pDTu++RXFv/mZptrEBVGtxYN6NaiAd29v52b1XM9pAEyU91kPI3bu7kYiuj/kJ2bx9RlO3ht9kaWb9tPk+gIxvUJ4eptjxKetNSNVHvm426muxJ8v2YX4yevYHNKRvCKlPLnXOgyHHpcBDEd3BApRbSAUlV2px1iTVIaa3amsTYpjTVJB1iXlEaP+Aa8ed1J1IsMZp/f4LGkYEygpWxwRTgVHE21KuTmKUu27mPljv2s8m5rdqaRkZULuPksOsRGFySLUw9O57j5D6AXvIz4jE2UejCbiT//xltzN7MjNZMOcdHcMKgDl0TOI6GJW1kAAAtWSURBVGLqPW7YkVEToNu5fsd2KCeX12Zt5MWZ64NXpPTtYzD7H/h2lcqrE0NGvTYkhbdkc15zlmXGMj+1EcsPxpJGXQBi60XQpVl9Wjeuy8e/JDKwUyz/+V0/wkNr3liilhSMMSXKy1O27MkoSBLulsa2fQcR8vgs4s+0Cknhgfg3adeyOVk5eXy8KJH0rFwGdIjhxiHtGdYumpDp98Pid6B1fzejWzlHPC1cpPTo+T0YEoAipX0ZWWxKTmfjjhSSt67h4M51hOzdQOyhRNrJTtqF7CRejuz8lx3ZBGI6Eh7X2XWajOnAlOTm3D5tH6NPbM2TF/WqccVJlhSMMeWSmpHNqp372b16Duf9fDWfRl3E/QcuIy9POb9PPL8f1J6eLRu6JrIfXQvJa924ScMecK2kKqg8RUoZWTlsSk5nU3I6m5PT2ehzf2/G4Q59kWEhdG5Wjy7N6tO1WX26NHd/W9TNQ/ZugT0b3BXhng2QstH9TdtRsP/O6G68tu94Wg26gutGDKrwc61MlhSMMRX3+W2wdCI5N8/hUKNOREeGucrbRW/BtPshsoHrAR7gDmn/396dx1hVnnEc//4cQGBQVBjrArIoaHGpCNIqLqDUYNuIO9qSWG1ibTUt2sQQaWpjYrXaWou1UmtFY1GjAmqta62CcamgIpuyBK2yQ6osyjo8/eMcruP1Mgwzc++ZA79PMrn3nnPPOc+8OXOfue857/OW6lK65MTuLFu9If3wX8cHqz5PHz9j+ZqNX9r+gL3b0qNzNT1qqunRqZoenavpWVNNt07Vpadzrc+mz5K6WwtfJmY+hpYmo6RXdepH529eDH3Obt7CfmXipGBmTbduZXLRuUs/GDERNq5J5sKePQl6Dk6K2nXYv2yHr9ulVGy/6jZ079SeHp070LOmmu7ph3/3zu1p36Z8F4M3rZjP4w/cQd81/6KXFoOqoOepyVzfR3yvvCU8msBJwcyaxxt3Jd8KBo+Gd/6ezG9x2i9h4MjGV2bdSVPmreTtjz6hW6f2hQ//ik51WmT1+s1cMPY1qj+dxz3H/ZdOH/4jGZxY1QYOG5IkiMPPbFFzOjgpmFnzqN0MY09OBuZ17Arn3wtdB2QdVeYWf7qec+58lao9xKSfnMgBn82BWROTn7VLoHX75DbYo85LEsUObs8tNycFM2s+S2fAzEeTC8otdDxGFmYvWc2FY1/nkE7VPHrFCckYhq1b4aPXYdYEmPN4MlvgnntD3xEw9KbMYnVSMDOrgMnzVnLZfVNLj2Go3QIfTE4SRLt9k7krMtISJtkxM9vlndq7ht+ccxRT5q1k9KSZfOkf7apWcNjpyXSyGSaEnZHP8dpmZi3I8OMPYfEn6xnz7wV02bc9Pzu91443aqGcFMzMmsHV3+7Nok/Wc9sL8zhon3ac369L1iE1ipOCmVkzkMTN5x3D8rUbGDVhBgd2bMvAw/JXJ6us1xQkDZU0V9ICSaNKrL9G0hxJMyS9KKlbOeMxMyunNq324K4R/Ti0pgNXPPAW7y9bk3VIO61sSUFSFXAncCbQB7hYUvHsIO8A/SPiGOAx4JZyxWNmVgl7t23NuEuPp/2eVVw6bipLV6/POqSdUs5vCgOABRGxMCI2AQ8Dw+q+ISJeiojP05dvAPnshDMzq+Ogfdox7ocDWLthC5eOm8raDZt3vFELUc6kcDDwcZ3Xi9Jl2/Mj4JlSKyRdLmmapGkrV1Zg0m8zsybqc9De/PkHxzF/xTp+Ov5tNtduzTqkBilnUihVirDkSDlJI4D+wK2l1kfE3RHRPyL619S0/GqEZmYAp/Su4aZzj+aV+au4bmLRGIYWqpx3Hy0C6s620QVYUvwmSUOA0cCpEbGxeL2ZWZ5d2L8rSz5d37wzyZVROZPCVKCXpB7AYuAi4Pt13yCpL/AXYGhErChjLGZmmRk5pHfWITRY2bqPImILcBXwHPAe8EhEzJZ0g6Sz0rfdCnQAHpU0XdKT5YrHzMx2rKyD1yLiaeDpomW/qvN8SDmPb2ZmO8cF8czMrMBJwczMCpwUzMyswEnBzMwKnBTMzKzAScHMzApyN0ezpLXA3KzjyLHOwKqsg8gxt1/jue2apqnt1y0idlgnKI+T7MxtyOTTVpqkaW6/xnP7NZ7brmkq1X7uPjIzswInBTMzK8hjUrg76wByzu3XNG6/xnPbNU1F2i93F5rNzKx88vhNwczMysRJwczMCnKVFCQNlTRX0gJJo7KOJ08kfShpZjpvxbSs42npJN0raYWkWXWW7SfpBUnz08d9s4yxJdtO+/1a0uL0HJwu6TtZxthSSeoq6SVJ70maLenn6fKKnH+5SQqSqoA7gTOBPsDFkvpkG1XuDI6IY32veIPcBwwtWjYKeDEiegEvpq+ttPv4avsB/CE9B49N51uxr9oC/CIivg58C7gy/ayryPmXm6QADAAWRMTCiNgEPAwMyzgm20VFxBTgf0WLhwH3p8/vB86uaFA5sp32swaIiKUR8Xb6fC3JzJUHU6HzL09J4WDg4zqvF6XLrGECeF7SW5IuzzqYnPpaRCyF5A8X2D/jePLoKkkz0u4ld7/tgKTuQF/gP1To/MtTUlCJZb6ftuEGRsRxJN1vV0o6JeuAbLdzF3AocCywFPh9tuG0bJI6ABOAkRGxplLHzVNSWAR0rfO6C7Ako1hyJyKWpI8rgEkk3XG2c5ZLOhAgfVyRcTy5EhHLI6I2IrYCf8Xn4HZJak2SEMZHxMR0cUXOvzwlhalAL0k9JLUBLgKezDimXJBULWmvbc+BM4BZ9W9lJTwJXJI+vwR4IsNYcmfbB1rqHHwOliRJwN+A9yLitjqrKnL+5WpEc3oL2+1AFXBvRNyYcUi5IKknybcDSCrjPui2q5+kh4BBJOWKlwPXA48DjwCHAB8BF0SEL6aWsJ32G0TSdRTAh8CPt/WR2xcknQS8AswEtqaLryO5rlD28y9XScHMzMorT91HZmZWZk4KZmZW4KRgZmYFTgpmZlbgpGBmZgVOCrbLklSbVuOcLeldSddI2iNd11/SmIziei2L45o1hG9JtV2WpHUR0SF9vj/wIPBqRFyfbWRmLZe/KdhuIS3vcTlJQTZJGiTpKSjU+b9f0vPpvBPnSrolnX/i2bTkAJL6SZqcFhV8rk7JgZcl/VbSm5LmSTo5XX5kumx6WgSuV7p8XfooSbdKmpUea3i6fFC6z8ckvS9pfDrKFUk3S5qT7u93lW5H2/W1yjoAs0qJiIVp91Gp6pKHAoNJ5up4HTgvIq6VNAn4rqR/AncAwyJiZfoBfiNwWbp9q4gYkI66vx4YAlwB/DEixqelWaqKjnkuyQjfb5CM/J0qaUq6ri9wJEl9r1eBgZLmkJSHOCIiQtI+TW4UsyJOCra7KVVtF+CZiNgsaSbJh/ez6fKZQHfgcOAo4IX0n/Yqkkqf22wrWvZW+n5IkstoSV2AiRExv+iYJwEPRUQtSbGzycDxwBrgzYhYBCBperrPN4ANwD1pknpqp35zswZw95HtNtIaULWUri65ESCt4Lk5vrjYtpXknycBs+vMGnZ0RJxRvH26/1bpvh4EzgLWA89JOq04pHrC3VjneS3JN5EtJJVFJ5BMsPJsqQ3NmsJJwXYLkmqAscCfonF3V8wFaiSdkO6vtaQjd3DMnsDCiBhDUuHymKK3TAGGS6pK4zsFeLOe/XUAOqbTWI4k6Xoya1buPrJdWbu066U1yby3DwC31b9JaRGxSdL5wBhJHUn+dm4HZtez2XBghKTNwDLghqL1k4ATgHdJKodeGxHLJB2xnf3tBTwhqS3Jt4yrG/O7mNXHt6SamVmBu4/MzKzAScHMzAqcFMzMrMBJwczMCpwUzMyswEnBzMwKnBTMzKzg/+vbpHju4xWeAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_test_stats(linear_sim, 20, 'Linear')" + ] + }, + { + "cell_type": "code", + "execution_count": 179, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_test_stats(spiral_sim, 20, 'Spiral')" + ] + }, + { + "cell_type": "code", + "execution_count": 180, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_test_stats(quad_sim, 20, 'Quadratic')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## P-value" + ] + }, + { + "cell_type": "code", + "execution_count": 184, + "metadata": {}, + "outputs": [], + "source": [ + "def pvalue_vs_dimension(corr_type, simulation_type, dim_range):\n", + " p_value = []\n", + " for d in range(1, dim_range+1):\n", + " x, y = simulation_type(num_samp=100, num_dim=d, noise=0)\n", + " if corr_type == 'rv' or corr_type == 'cca':\n", + " corr = RVCorr(which_test=corr_type)\n", + " #else:\n", + " #corr = HHG()\n", + " p_value.append(corr.p_value(x, y)[0])\n", + " return p_value" + ] + }, + { + "cell_type": "code", + "execution_count": 185, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_p_value(simulation_type, dim_range, simulation_name):\n", + " rv_pvalue = pvalue_vs_dimension('rv', simulation_type, dim_range)\n", + " cca_pvalue = pvalue_vs_dimension('cca', simulation_type, dim_range)\n", + " #hhg_pvalue = pvalue_vs_dimension('hhg', simulation_type, dim_range)\n", + " plt.plot(rv_pvalue, label='RV')\n", + " plt.plot(cca_pvalue, label='CCA')\n", + " #plt.plot(hhg_pvalue, label='HHG')\n", + " plt.xlabel('Dimensions')\n", + " plt.ylabel('pvalue')\n", + " plt.legend()\n", + " plt.gca().set_xlim(1, dim_range+1)\n", + " plt.xticks(np.arange(0, dim_range+1, 5))\n", + " plt.title('P-value \\n Data: {} Simulation, 100 samples, noise=0'.format(simulation_name))\n", + " plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 186, + "metadata": {}, + "outputs": [ + { + "ename": "TypeError", + "evalue": "float() argument must be a string or a number, not 'dict'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mplot_p_value\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlinear_sim\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m20\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'Linear'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m\u001b[0m in \u001b[0;36mplot_p_value\u001b[0;34m(simulation_type, dim_range, simulation_name)\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mcca_pvalue\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpvalue_vs_dimension\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'cca'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msimulation_type\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdim_range\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;31m#hhg_pvalue = pvalue_vs_dimension('hhg', simulation_type, dim_range)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrv_pvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'RV'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcca_pvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'CCA'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;31m#plt.plot(hhg_pvalue, label='HHG')\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/matplotlib/pyplot.py\u001b[0m in \u001b[0;36mplot\u001b[0;34m(scalex, scaley, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 2747\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscalex\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscaley\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2748\u001b[0m return gca().plot(\n\u001b[0;32m-> 2749\u001b[0;31m *args, scalex=scalex, scaley=scaley, data=data, **kwargs)\n\u001b[0m\u001b[1;32m 2750\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2751\u001b[0m \u001b[0;31m# Autogenerated by boilerplate.py. Do not edit as changes will be lost.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/matplotlib/__init__.py\u001b[0m in \u001b[0;36minner\u001b[0;34m(ax, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1783\u001b[0m \u001b[0;34m\"the Matplotlib list!)\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mlabel_namer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__name__\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1784\u001b[0m RuntimeWarning, stacklevel=2)\n\u001b[0;32m-> 1785\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1786\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1787\u001b[0m inner.__doc__ = _add_data_doc(inner.__doc__,\n", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_axes.py\u001b[0m in \u001b[0;36mplot\u001b[0;34m(self, scalex, scaley, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1603\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1604\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mline\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_lines\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1605\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_line\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1606\u001b[0m \u001b[0mlines\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1607\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36madd_line\u001b[0;34m(self, line)\u001b[0m\n\u001b[1;32m 1883\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_clip_path\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpatch\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1884\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1885\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_line_limits\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1886\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_label\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1887\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_label\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'_line%d'\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlines\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m_update_line_limits\u001b[0;34m(self, line)\u001b[0m\n\u001b[1;32m 1905\u001b[0m \u001b[0mFigures\u001b[0m \u001b[0mout\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mdata\u001b[0m \u001b[0mlimit\u001b[0m \u001b[0mof\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mgiven\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mupdating\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataLim\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1906\u001b[0m \"\"\"\n\u001b[0;32m-> 1907\u001b[0;31m \u001b[0mpath\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_path\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1908\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvertices\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msize\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1909\u001b[0m \u001b[0;32mreturn\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/matplotlib/lines.py\u001b[0m in \u001b[0;36mget_path\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 943\u001b[0m \"\"\"\n\u001b[1;32m 944\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_invalidy\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_invalidx\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 945\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecache\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 946\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_path\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 947\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/matplotlib/lines.py\u001b[0m in \u001b[0;36mrecache\u001b[0;34m(self, always)\u001b[0m\n\u001b[1;32m 643\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0malways\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_invalidy\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 644\u001b[0m \u001b[0myconv\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconvert_yunits\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_yorig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 645\u001b[0;31m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_to_unmasked_float_array\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0myconv\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mravel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 646\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 647\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_y\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/matplotlib/cbook/__init__.py\u001b[0m in \u001b[0;36m_to_unmasked_float_array\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 1363\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfilled\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnan\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1364\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1365\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1366\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1367\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/numpy/core/numeric.py\u001b[0m in \u001b[0;36masarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 499\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 500\u001b[0m \"\"\"\n\u001b[0;32m--> 501\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 502\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 503\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mTypeError\u001b[0m: float() argument must be a string or a number, not 'dict'" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_p_value(linear_sim, 20, 'Linear')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/mgcpy/independence_tests/hhg.py b/mgcpy/independence_tests/hhg.py index 307782e..4edb962 100644 --- a/mgcpy/independence_tests/hhg.py +++ b/mgcpy/independence_tests/hhg.py @@ -1,6 +1,5 @@ import numpy as np from mgcpy.independence_tests.abstract_class import IndependenceTest -from scipy.spatial import distance_matrix class HHG(IndependenceTest): @@ -54,11 +53,11 @@ def test_statistic(self, matrix_X, matrix_Y): # use the matrix shape and diagonal elements to determine if the given data is a distance matrix or not if row_X != columns_X or sum(matrix_X.diagonal()**2) > 0: - dist_mtx_X = distance_matrix(matrix_X, matrix_X) + dist_mtx_X = self.compute_distance_matrix(matrix_X) else: dist_mtx_X = matrix_X if row_Y != columns_Y or sum(matrix_Y.diagonal()**2) > 0: - dist_mtx_Y = distance_matrix(matrix_Y, matrix_Y) + dist_mtx_Y = self.compute_distance_matrix(matrix_Y) else: dist_mtx_Y = matrix_Y @@ -84,7 +83,7 @@ def test_statistic(self, matrix_X, matrix_Y): self.test_statistic_metadata_ = {} self.test_statistic_ = corr - return self.test_statistic_, self.test_statistic_metadata_ + return corr, {} def p_value(self, matrix_X=None, matrix_Y=None, replication_factor=1000): """ @@ -117,15 +116,15 @@ def p_value(self, matrix_X=None, matrix_Y=None, replication_factor=1000): >>> hhg = HHG() >>> hhg_p_value = hhg.p_value(X, Y) """ - test_stat = self.test_statistic() + test_stat = self.test_statistic(matrix_X=matrix_X, matrix_Y=matrix_Y)[0] # estimate the null by a permutation test test_stats_null = np.zeros(replication_factor) for rep in range(replication_factor): - permuted_y = np.random.permutation(self.matrix_Y) - test_stats_null[rep] = self.test_statistic(matrix_X=self.matrix_X, matrix_Y=permuted_y) + permuted_y = np.random.permutation(matrix_Y) + test_stats_null[rep] = self.test_statistic(matrix_X=matrix_X, matrix_Y=permuted_y)[0] # p-value is the probability of observing more extreme test statistic under the null self.p_value_ = np.where(test_stats_null >= test_stat)[0].shape[0] / replication_factor self.p_value_metadata_ = {} - return self.p_value_, self.p_value_metadata_ + return np.where(test_stats_null >= test_stat)[0].shape[0] / replication_factor, {} \ No newline at end of file diff --git a/mgcpy/independence_tests/kendall_spearman.py b/mgcpy/independence_tests/kendall_spearman.py index acf2b68..10c0cce 100644 --- a/mgcpy/independence_tests/kendall_spearman.py +++ b/mgcpy/independence_tests/kendall_spearman.py @@ -49,30 +49,27 @@ def test_statistic(self, matrix_X, matrix_Y): >>> kendall_spearman = KendallSpearman() >>> kendall_spearman_stat = kendall_spearman.test_statistic(X, Y) """ - if matrix_X is None: - matrix_X = self.matrix_X - if matrix_Y is None: - matrix_Y = self.matrix_Y assert matrix_X.shape[1] == 1, "Data matrix should be (n, 1) shape" assert matrix_Y.shape[1] == 1, "Data matrix should be (n, 1) shape" - - if self.which_test == 'kendall': - self.test_statistic_ = kendalltau(matrix_X, matrix_Y)[0] + + if self.which_test == 'kendall': + test_statistic_ = kendalltau(matrix_X, matrix_Y)[0] else: - self.test_statistic_ = spearmanr(matrix_X, matrix_Y)[0] + test_statistic_ = spearmanr(matrix_X, matrix_Y)[0] + self.test_statistic_ = test_statistic_ self.test_statistic_metadata_ = {} - return self.test_statistic_, self.test_statistic_metadata_ + return test_statistic_, {} def p_value(self, matrix_X, matrix_Y, replication_factor=1000): """ Tests independence between two datasets using the independence test. - :param matrix_X: a [n*p] data matrix, a square matrix with n samples in p dimensions + :param matrix_X: a [n*1] data matrix, a square matrix with n samples in p dimensions :type matrix_X: 2D `numpy.array` - :param matrix_Y: a [n*q] data matrix, a square matrix with n samples in q dimensions + :param matrix_Y: a [n*1] data matrix, a square matrix with n samples in q dimensions :type matrix_Y: 2D `numpy.array` :param replication_factor: specifies the number of replications to use for @@ -96,18 +93,17 @@ def p_value(self, matrix_X, matrix_Y, replication_factor=1000): >>> kendall_spearman = KendallSpearman() >>> kendall_spearman_p_value = kendall_spearman.p_value(X, Y) """ - if matrix_X is None: - matrix_X = self.matrix_X - if matrix_Y is None: - matrix_Y = self.matrix_Y - assert matrix_X.shape[1] == 1, "Data matrix should be (n, 1) shape" - assert matrix_Y.shape[1] == 1, "Data matrix should be (n, 1) shape" - + row_X, columns_X = matrix_X.shape[0], matrix_X.shape[1] + row_Y, columns_Y = matrix_Y.shape[0], matrix_Y.shape[1] + assert row_X == 1 or columns_X == 1, "Data matrix should be (n, 1) shape" + assert row_Y == 1 or columns_Y == 1, "Data matrix should be (n, 1) shape" + if self.which_test == 'kendall': - self.p_value_ = kendalltau(matrix_X, matrix_Y)[1] + p_value_ = kendalltau(matrix_X, matrix_Y)[1] else: - self.p_value_ = spearmanr(matrix_X, matrix_Y)[1] + p_value_ = spearmanr(matrix_X, matrix_Y)[1] + self.p_value_ = p_value_ self.p_value_metadata_ = {} - return self.p_value_, self.p_value_metadata_ + return p_value_, {} \ No newline at end of file diff --git a/mgcpy/independence_tests/rv_corr.py b/mgcpy/independence_tests/rv_corr.py index a207bb4..1ac1b27 100644 --- a/mgcpy/independence_tests/rv_corr.py +++ b/mgcpy/independence_tests/rv_corr.py @@ -70,7 +70,9 @@ def test_statistic(self, matrix_X=None, matrix_Y=None): varX = np.dot(mat1.T, mat1) varY = np.dot(mat2.T, mat2) - if (self.which_test == 'pearson') and ((row_X == 1 or columns_X == 1) and (row_Y == 1 or columns_Y == 1)): + if (self.which_test == 'pearson'): + assert row_X == 1 or columns_X == 1, "Data matrix should be (n, 1) shape" + assert row_Y == 1 or columns_Y == 1, "Data matrix should be (n, 1) shape" corr, covar = pearsonr(matrix_X, matrix_Y) elif (self.which_test == 'rv'): covar = np.trace(np.dot(covar, covar.T)) @@ -88,9 +90,9 @@ def test_statistic(self, matrix_X=None, matrix_Y=None): self.test_statistic_ = corr self.test_statistic_metadata_ = {"covariance": covar} - return self.test_statistic_, self.test_statistic_metadata_ + return corr, {"covariance": covar} - def p_value(self, matrix_X, matrix_Y, replication_factor=1000): + def p_value(self, matrix_X, matrix_Y, replication_factor=None): """ Tests independence between two datasets using the independence test. @@ -101,7 +103,7 @@ def p_value(self, matrix_X, matrix_Y, replication_factor=1000): :type matrix_Y: 2D `numpy.array` :param replication_factor: specifies the number of replications to use for - the permutation test. Defaults to 1000. + the permutation test. Defaults to None. :type replication_factor: int :return: returns a list of two items, that contains: @@ -121,11 +123,8 @@ def p_value(self, matrix_X, matrix_Y, replication_factor=1000): >>> rvcorr = RVCorr() >>> rvcorr_p_value = rvcorr.p_value(X, Y) """ - if matrix_X is None: - matrix_X = self.matrix_X - if matrix_Y is None: - matrix_Y = self.matrix_Y - self.p_value_ = self.test_statistic(matrix_X, matrix_Y) + test_stat = self.test_statistic(matrix_X, matrix_Y)[0] + self.p_value_ = np.abs(test_stat) self.p_value_metadata_ = {} - - return self.p_value_, self.p_value_metadata_ + + return np.abs(test_stat), {} diff --git a/mgcpy/independence_tests/unit_tests/hhg_test.py b/mgcpy/independence_tests/unit_tests/hhg_test.py index dbc0730..5379450 100644 --- a/mgcpy/independence_tests/unit_tests/hhg_test.py +++ b/mgcpy/independence_tests/unit_tests/hhg_test.py @@ -1,14 +1,7 @@ import mgcpy.benchmarks.simulations as sims import numpy as np -from mgcpy.independence_tests.hhg import HHG -from scipy.spatial.distance import pdist, squareform - - -def compute_distance_matrix(data_matrix_X, data_matrix_Y): - # obtain the pairwise distance matrix for X and Y - dist_mtx_X = squareform(pdist(data_matrix_X, metric='euclidean')) - dist_mtx_Y = squareform(pdist(data_matrix_Y, metric='euclidean')) - return (dist_mtx_X, dist_mtx_Y) +from mgcpy import HHG +import pytest def test_hhg(): @@ -17,24 +10,22 @@ def test_hhg(): 1.9706, 1.8839, 0.8760])[:, np.newaxis] Y = np.array([3.2311, 12.1113, 11.1350, 1.1989, 3.3127, 4.8580, 3.4917, 7.1748, 6.5792, 2.4012])[:, np.newaxis] - hhg = HHG(X, Y, compute_distance_matrix) - test_stat = hhg.test_statistic() + hhg = HHG() + test_stat = hhg.test_statistic(X, Y) assert np.round(test_stat, decimals=2) == 411.88 # Against linear simulations np.random.seed(0) X, Y = sims.linear_sim(100, 1) - hhg = HHG(X, Y, compute_distance_matrix) - test_stat = hhg.test_statistic() + hhg = HHG() + test_stat = hhg.test_statistic(X, Y) assert np.round(test_stat, decimals=2) == 28986.52 X, Y = sims.linear_sim(100, 1, noise=0) - hhg = HHG(X, Y, compute_distance_matrix) - test_stat = hhg.test_statistic() + hhg = HHG() + test_stat = hhg.test_statistic(X, Y) assert np.round(test_stat, decimals=2) == 950600.00 - - -test_hhg() +test_hhg() \ No newline at end of file diff --git a/mgcpy/independence_tests/unit_tests/kendall_spearman_test.py b/mgcpy/independence_tests/unit_tests/kendall_spearman_test.py new file mode 100644 index 0000000..c9fa50f --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/kendall_spearman_test.py @@ -0,0 +1,35 @@ +import mgcpy.benchmarks.simulations as sims +import numpy as np +from mgcpy import KendallSpearman +import pytest + + +def test_kendall_spearman(): + # Against a randomly defined data set + X = np.array([1.1728, 2.4941, 2.4101, 0.1814, 1.1978, 1.5806, 1.2504, + 1.9706, 1.8839, 0.8760])[:, np.newaxis] + Y = np.array([3.2311, 12.1113, 11.1350, 1.1989, 3.3127, 4.8580, 3.4917, + 7.1748, 6.5792, 2.4012])[:, np.newaxis] + kspear = KendallSpearman(None) + kspear2 = KendallSpearman(None, 'spearman') + + test_stat1 = kspear.test_statistic(X, Y)[0] + test_stat2 = kspear2.test_statistic(X, Y)[0] + + assert np.round(test_stat1, decimals=2) == 1.00 + assert np.round(test_stat2, decimals=2) == 1.00 + + # Against linear simulations + np.random.seed(0) + X, Y = sims.linear_sim(100, 1) + kspear = KendallSpearman(None) + kspear2 = KendallSpearman(None, 'spearman') + + assert kspear.get_name() == 'kendall' + assert kspear2.get_name() == 'spearman' + + test_stat1 = kspear.test_statistic(X, Y)[0] + test_stat2 = kspear2.test_statistic(X, Y)[0] + + assert np.round(test_stat1, decimals=2) == 0.33 + assert np.round(test_stat2, decimals=2) == 0.48 \ No newline at end of file diff --git a/mgcpy/independence_tests/unit_tests/rv_corr_test.py b/mgcpy/independence_tests/unit_tests/rv_corr_test.py index 27b3e2b..439e3ee 100644 --- a/mgcpy/independence_tests/unit_tests/rv_corr_test.py +++ b/mgcpy/independence_tests/unit_tests/rv_corr_test.py @@ -1,8 +1,7 @@ import mgcpy.benchmarks.simulations as sims import numpy as np -from mgcpy.independence_tests.rv_corr import RVCorr - -# from scipy.io import savemat +from mgcpy import RVCorr +import pytest def test_local_corr(): @@ -14,21 +13,17 @@ def test_local_corr(): rvcorr = RVCorr(None) rvcorr2 = RVCorr(None, 'pearson') rvcorr3 = RVCorr(None, 'cca') - + test_stat1 = rvcorr.test_statistic(X, Y)[0] test_stat2 = rvcorr2.test_statistic(X, Y)[0] test_stat3 = rvcorr3.test_statistic(X, Y)[0] - assert np.round(test_stat1, decimals=2) == 0.90 assert np.round(test_stat2, decimals=2) == 0.95 assert np.round(test_stat3, decimals=2) == 0.90 - del X, Y, rvcorr, rvcorr2, rvcorr3, test_stat1, test_stat2, test_stat3 - # Against linear simulations np.random.seed(0) X, Y = sims.linear_sim(100, 1) - # savemat('distance matrix data', {'X' : X, 'Y' : Y}) rvcorr = RVCorr(None) rvcorr2 = RVCorr(None, 'pearson') rvcorr3 = RVCorr(None, 'cca') @@ -40,10 +35,6 @@ def test_local_corr(): test_stat1 = rvcorr.test_statistic(X, Y)[0] test_stat2 = rvcorr2.test_statistic(X, Y)[0] test_stat3 = rvcorr3.test_statistic(X, Y)[0] - assert np.round(test_stat1, decimals=2) == 0.24 assert np.round(test_stat2, decimals=2) == 0.49 - assert np.round(test_stat3, decimals=2) == 0.24 - - -test_local_corr() + assert np.round(test_stat3, decimals=2) == 0.24 \ No newline at end of file From 574ad5f96617d4146ea91dfdc0f5b086988858ff Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Fri, 30 Nov 2018 11:31:11 -0500 Subject: [PATCH 20/60] Fixed docstrings --- mgcpy/independence_tests/hhg.py | 22 +++++++-------- mgcpy/independence_tests/kendall_spearman.py | 28 +++++++++++--------- mgcpy/independence_tests/rv_corr.py | 24 ++++++++++------- 3 files changed, 41 insertions(+), 33 deletions(-) diff --git a/mgcpy/independence_tests/hhg.py b/mgcpy/independence_tests/hhg.py index 4edb962..80751c9 100644 --- a/mgcpy/independence_tests/hhg.py +++ b/mgcpy/independence_tests/hhg.py @@ -1,3 +1,7 @@ +""" + **HHG Class** +""" + import numpy as np from mgcpy.independence_tests.abstract_class import IndependenceTest @@ -6,7 +10,7 @@ class HHG(IndependenceTest): def __init__(self, compute_distance_matrix=None): """ :param compute_distance_matrix: a function to compute the pairwise distance matrix, given a data matrix - :type compute_distance_matrix: FunctionType or callable() + :type compute_distance_matrix: ``FunctionType`` or ``callable()`` """ IndependenceTest.__init__(compute_distance_matrix) @@ -21,16 +25,12 @@ def test_statistic(self, matrix_X, matrix_Y): """ Computes the HHG correlation measure between two datasets. - :param matrix_X: a [n*p] data matrix, a square matrix with n samples in p dimensions + :param matrix_X: a ``[n*p]`` data matrix, a square matrix with ``n`` samples in ``p`` dimensions :type matrix_X: 2D `numpy.array` - :param matrix_Y: a [n*q] data matrix, a square matrix with n samples in q dimensions + :param matrix_Y: a ``[n*q]`` data matrix, a square matrix with ``n`` samples in ``q`` dimensions :type matrix_Y: 2D `numpy.array` - :param replication_factor: specifies the number of replications to use for - the permutation test. Defaults to 1000. - :type replication_factor: int - :return: returns a list of two items, that contains: - :test_statistic_: test statistic - :test_statistic_metadata_: (optional) a ``dict`` of metadata other than the p_value, @@ -89,21 +89,21 @@ def p_value(self, matrix_X=None, matrix_Y=None, replication_factor=1000): """ Tests independence between two datasets using HHG and permutation test. - :param matrix_X: a [n*p] data matrix, a square matrix with n samples in p dimensions + :param matrix_X: a ``[n*p]`` data matrix, a square matrix with ``n`` samples in ``p`` dimensions :type matrix_X: 2D `numpy.array` - :param matrix_Y: a [n*q] data matrix, a square matrix with n samples in q dimensions + :param matrix_Y: a ``[n*q]`` data matrix, a square matrix with ``n`` samples in ``q`` dimensions :type matrix_Y: 2D `numpy.array` :param replication_factor: specifies the number of replications to use for the permutation test. Defaults to 1000. - :type replication_factor: int + :type replication_factor: integer :return: returns a list of two items, that contains: - :p_value_: P-value - :p_value_metadata_: (optional) a ``dict`` of metadata other than the p_value, that the independence tests computes in the process - :rtype: float, dict + :rtype: list **Example:** >>> import numpy as np diff --git a/mgcpy/independence_tests/kendall_spearman.py b/mgcpy/independence_tests/kendall_spearman.py index 10c0cce..16a583b 100644 --- a/mgcpy/independence_tests/kendall_spearman.py +++ b/mgcpy/independence_tests/kendall_spearman.py @@ -1,3 +1,7 @@ +""" + **Kendall and Spearman Class** +""" + from mgcpy.independence_tests.abstract_class import IndependenceTest from scipy.stats import kendalltau, spearmanr @@ -6,10 +10,10 @@ class KendallSpearman(IndependenceTest): def __init__(self, compute_distance_matrix=None, which_test='kendall'): """ :param compute_distance_matrix: a function to compute the pairwise distance matrix, given a data matrix - :type compute_distance_matrix: FunctionType or callable() + :type compute_distance_matrix: ``FunctionType`` or ``callable()`` - :param which_test: specifies which test to use, including 'kendall' or 'spearman' - :type which_test: str + :param which_test: specifies which test to use, including ``'kendall'`` or ``'spearman'`` + :type which_test: string """ IndependenceTest.__init__(self, compute_distance_matrix) self.which_test = which_test @@ -26,17 +30,17 @@ def test_statistic(self, matrix_X, matrix_Y): Computes the Spearman's rho or Kendall's tau measure between two datasets. - Implments scipy.stats's implementation for both - :param matrix_X: a [n*1] data matrix, a square matrix with n samples in 1 dimension - :type matrix_X: 1D numpy.array + :param matrix_X: a ``[n*1]`` data matrix, a square matrix with ``n`` samples in ``1`` dimension + :type matrix_X: 1D `numpy.array` - :param matrix_Y: a [n*1] data matrix, a square matrix with n samples in 1 dimension - :type matrix_Y: 1D numpy.array + :param matrix_Y: a ``[n*1]`` data matrix, a square matrix with ``n`` samples in ``1`` dimension + :type matrix_Y: 1D `numpy.array` :return: returns a list of two items, that contains: - :test_stat_: test statistic - :test_statistic_metadata_: (optional) a ``dict`` of metadata other than the p_value, that the independence tests computes in the process - :rtype: float, dict + :rtype: list **Example:** >>> import numpy as np @@ -66,21 +70,21 @@ def p_value(self, matrix_X, matrix_Y, replication_factor=1000): """ Tests independence between two datasets using the independence test. - :param matrix_X: a [n*1] data matrix, a square matrix with n samples in p dimensions + :param matrix_X: a ``[n*1]`` data matrix, a square matrix with ``n`` samples in ``1`` dimension :type matrix_X: 2D `numpy.array` - :param matrix_Y: a [n*1] data matrix, a square matrix with n samples in q dimensions + :param matrix_Y: a ``[n*1] data`` matrix, a square matrix with ``n`` samples in ``1`` dimensions :type matrix_Y: 2D `numpy.array` :param replication_factor: specifies the number of replications to use for the permutation test. Defaults to 1000. - :type replication_factor: int + :type replication_factor: integer :return: returns a list of two items, that contains: - :p_value_: P-value - :p_value_metadata_: (optional) a ``dict`` of metadata other than the p_value, that the independence tests computes in the process - :rtype: float, dict + :rtype: list **Example:** >>> import numpy as np diff --git a/mgcpy/independence_tests/rv_corr.py b/mgcpy/independence_tests/rv_corr.py index 1ac1b27..61afb14 100644 --- a/mgcpy/independence_tests/rv_corr.py +++ b/mgcpy/independence_tests/rv_corr.py @@ -1,3 +1,7 @@ +""" + **RVCorr Class** +""" + import numpy as np from mgcpy.independence_tests.abstract_class import IndependenceTest from numpy import matlib as mb @@ -9,10 +13,10 @@ class RVCorr(IndependenceTest): def __init__(self, compute_distance_matrix=None, which_test='rv'): """ :param compute_distance_matrix: a function to compute the pairwise distance matrix, given a data matrix - :type compute_distance_matrix: FunctionType or callable() + :type compute_distance_matrix: ``FunctionType`` or ``callable()`` - :param which_test: specifies which test to use, including 'rv', 'pearson', and 'cca'. - :type which_test: str + :param which_test: specifies which test to use, including ``'rv'``, ``'pearson'``, and ``'cca'``. + :type which_test: string """ IndependenceTest.__init__(self, compute_distance_matrix) self.which_test = which_test @@ -31,10 +35,10 @@ def test_statistic(self, matrix_X=None, matrix_Y=None): - Computes pearson's correlation - Calculates local linear correlations for CCa - :param matrix_X: a [n*p] data matrix, a square matrix with n samples in p dimensions + :param matrix_X: a ``[n*p]`` data matrix, a square matrix with ``n`` samples in ``p`` dimensions :type matrix_X: 2D `numpy.array` - :param matrix_Y: a [n*q] data matrix, a square matrix with n samples in q dimensions + :param matrix_Y: a ``[n*q]`` data matrix, a square matrix with ``n`` samples in ``q`` dimensions :type matrix_Y: 2D `numpy.array` :param replication_factor: specifies the number of replications to use for @@ -45,7 +49,7 @@ def test_statistic(self, matrix_X=None, matrix_Y=None): - :test_statistic_: test statistic - :test_statistic_metadata_: (optional) a ``dict`` of metadata other than the p_value, that the independence tests computes in the process - :rtype: float, dict + :rtype: list **Example:** >>> import numpy as np @@ -96,21 +100,21 @@ def p_value(self, matrix_X, matrix_Y, replication_factor=None): """ Tests independence between two datasets using the independence test. - :param matrix_X: a [n*p] data matrix, a square matrix with n samples in p dimensions + :param matrix_X: a ``[n*p]`` data matrix, a square matrix with ``n`` samples in ``p``` dimensions :type matrix_X: 2D `numpy.array` - :param matrix_Y: a [n*q] data matrix, a square matrix with n samples in q dimensions + :param matrix_Y: a ``[n*q]`` data matrix, a square matrix with ``n`` samples in ``q`` dimensions :type matrix_Y: 2D `numpy.array` :param replication_factor: specifies the number of replications to use for the permutation test. Defaults to None. - :type replication_factor: int + :type replication_factor: integer :return: returns a list of two items, that contains: - :p_value_: P-value - :p_value_metadata_: (optional) a ``dict`` of metadata other than the p_value, that the independence tests computes in the process - :rtype: float, dict + :rtype: list **Example:** >>> import numpy as np From acf1d66afa3af0e12b3198c0e92d9e34a3a89d2f Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Fri, 30 Nov 2018 11:38:16 -0500 Subject: [PATCH 21/60] Fixed docstrings --- mgcpy/independence_tests/hhg.py | 6 +++--- mgcpy/independence_tests/kendall_spearman.py | 5 +++-- mgcpy/independence_tests/rv_corr.py | 6 +++--- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/mgcpy/independence_tests/hhg.py b/mgcpy/independence_tests/hhg.py index 80751c9..42365e1 100644 --- a/mgcpy/independence_tests/hhg.py +++ b/mgcpy/independence_tests/hhg.py @@ -1,5 +1,5 @@ """ - **HHG Class** + **HHG Independence Test Module** """ import numpy as np @@ -38,9 +38,9 @@ def test_statistic(self, matrix_X, matrix_Y): :rtype: float, dict **Example:** + >>> import numpy as np >>> from mgcpy.independence_tests.hhg import HHG - >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, @@ -106,9 +106,9 @@ def p_value(self, matrix_X=None, matrix_Y=None, replication_factor=1000): :rtype: list **Example:** + >>> import numpy as np >>> from mgcpy.independence_tests.hhg import HHG - >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, diff --git a/mgcpy/independence_tests/kendall_spearman.py b/mgcpy/independence_tests/kendall_spearman.py index 16a583b..9ee438b 100644 --- a/mgcpy/independence_tests/kendall_spearman.py +++ b/mgcpy/independence_tests/kendall_spearman.py @@ -1,5 +1,5 @@ """ - **Kendall and Spearman Class** + **Kendall and Spearman ndependence Test Module** """ from mgcpy.independence_tests.abstract_class import IndependenceTest @@ -43,6 +43,7 @@ def test_statistic(self, matrix_X, matrix_Y): :rtype: list **Example:** + >>> import numpy as np >>> from mgcpy.independence_tests.kendall_spearman import KendallSpearman @@ -87,9 +88,9 @@ def p_value(self, matrix_X, matrix_Y, replication_factor=1000): :rtype: list **Example:** + >>> import numpy as np >>> from mgcpy.independence_tests.kendall_spearman import KendallSpearman - >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, diff --git a/mgcpy/independence_tests/rv_corr.py b/mgcpy/independence_tests/rv_corr.py index 61afb14..ac0c70e 100644 --- a/mgcpy/independence_tests/rv_corr.py +++ b/mgcpy/independence_tests/rv_corr.py @@ -1,5 +1,5 @@ """ - **RVCorr Class** + **RVCorr Independence Test Module** """ import numpy as np @@ -52,9 +52,9 @@ def test_statistic(self, matrix_X=None, matrix_Y=None): :rtype: list **Example:** + >>> import numpy as np >>> from mgcpy.independence_tests.rv_corr import RVCorr - >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, @@ -117,9 +117,9 @@ def p_value(self, matrix_X, matrix_Y, replication_factor=None): :rtype: list **Example:** + >>> import numpy as np >>> from mgcpy.independence_tests.rv_corr import RVCorr - >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, From 3d0e977a7d11694972b1dc3ce33d7717907d7145 Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Fri, 30 Nov 2018 12:03:46 -0500 Subject: [PATCH 22/60] Pep8 --- mgcpy/independence_tests/hhg.py | 10 +++++----- mgcpy/independence_tests/kendall_spearman.py | 12 ++++++------ mgcpy/independence_tests/rv_corr.py | 12 ++++++------ mgcpy/independence_tests/unit_tests/hhg_test.py | 6 ++++-- .../unit_tests/kendall_spearman_test.py | 4 ++-- mgcpy/independence_tests/unit_tests/rv_corr_test.py | 6 +++--- 6 files changed, 26 insertions(+), 24 deletions(-) diff --git a/mgcpy/independence_tests/hhg.py b/mgcpy/independence_tests/hhg.py index 42365e1..7d9998b 100644 --- a/mgcpy/independence_tests/hhg.py +++ b/mgcpy/independence_tests/hhg.py @@ -38,7 +38,7 @@ def test_statistic(self, matrix_X, matrix_Y): :rtype: float, dict **Example:** - + >>> import numpy as np >>> from mgcpy.independence_tests.hhg import HHG >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, @@ -82,7 +82,7 @@ def test_statistic(self, matrix_X, matrix_Y): # no metadata for HHG self.test_statistic_metadata_ = {} self.test_statistic_ = corr - + return corr, {} def p_value(self, matrix_X=None, matrix_Y=None, replication_factor=1000): @@ -106,7 +106,7 @@ def p_value(self, matrix_X=None, matrix_Y=None, replication_factor=1000): :rtype: list **Example:** - + >>> import numpy as np >>> from mgcpy.independence_tests.hhg import HHG >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, @@ -126,5 +126,5 @@ def p_value(self, matrix_X=None, matrix_Y=None, replication_factor=1000): # p-value is the probability of observing more extreme test statistic under the null self.p_value_ = np.where(test_stats_null >= test_stat)[0].shape[0] / replication_factor self.p_value_metadata_ = {} - - return np.where(test_stats_null >= test_stat)[0].shape[0] / replication_factor, {} \ No newline at end of file + + return np.where(test_stats_null >= test_stat)[0].shape[0] / replication_factor, {} diff --git a/mgcpy/independence_tests/kendall_spearman.py b/mgcpy/independence_tests/kendall_spearman.py index 9ee438b..096bb13 100644 --- a/mgcpy/independence_tests/kendall_spearman.py +++ b/mgcpy/independence_tests/kendall_spearman.py @@ -43,7 +43,7 @@ def test_statistic(self, matrix_X, matrix_Y): :rtype: list **Example:** - + >>> import numpy as np >>> from mgcpy.independence_tests.kendall_spearman import KendallSpearman @@ -56,8 +56,8 @@ def test_statistic(self, matrix_X, matrix_Y): """ assert matrix_X.shape[1] == 1, "Data matrix should be (n, 1) shape" assert matrix_Y.shape[1] == 1, "Data matrix should be (n, 1) shape" - - if self.which_test == 'kendall': + + if self.which_test == 'kendall': test_statistic_ = kendalltau(matrix_X, matrix_Y)[0] else: test_statistic_ = spearmanr(matrix_X, matrix_Y)[0] @@ -88,7 +88,7 @@ def p_value(self, matrix_X, matrix_Y, replication_factor=1000): :rtype: list **Example:** - + >>> import numpy as np >>> from mgcpy.independence_tests.kendall_spearman import KendallSpearman >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, @@ -102,7 +102,7 @@ def p_value(self, matrix_X, matrix_Y, replication_factor=1000): row_Y, columns_Y = matrix_Y.shape[0], matrix_Y.shape[1] assert row_X == 1 or columns_X == 1, "Data matrix should be (n, 1) shape" assert row_Y == 1 or columns_Y == 1, "Data matrix should be (n, 1) shape" - + if self.which_test == 'kendall': p_value_ = kendalltau(matrix_X, matrix_Y)[1] else: @@ -111,4 +111,4 @@ def p_value(self, matrix_X, matrix_Y, replication_factor=1000): self.p_value_ = p_value_ self.p_value_metadata_ = {} - return p_value_, {} \ No newline at end of file + return p_value_, {} diff --git a/mgcpy/independence_tests/rv_corr.py b/mgcpy/independence_tests/rv_corr.py index ac0c70e..3dca185 100644 --- a/mgcpy/independence_tests/rv_corr.py +++ b/mgcpy/independence_tests/rv_corr.py @@ -1,7 +1,7 @@ """ **RVCorr Independence Test Module** """ - + import numpy as np from mgcpy.independence_tests.abstract_class import IndependenceTest from numpy import matlib as mb @@ -52,7 +52,7 @@ def test_statistic(self, matrix_X=None, matrix_Y=None): :rtype: list **Example:** - + >>> import numpy as np >>> from mgcpy.independence_tests.rv_corr import RVCorr >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, @@ -66,9 +66,9 @@ def test_statistic(self, matrix_X=None, matrix_Y=None): row_Y, columns_Y = matrix_Y.shape[0], matrix_Y.shape[1] mat1 = matrix_X - mb.repmat(np.mean(matrix_X, axis=0), - matrix_X.shape[0], 1) + matrix_X.shape[0], 1) mat2 = matrix_Y - mb.repmat(np.mean(matrix_Y, axis=0), - matrix_Y.shape[0], 1) + matrix_Y.shape[0], 1) covar = np.dot(mat1.T, mat2) varX = np.dot(mat1.T, mat1) @@ -117,7 +117,7 @@ def p_value(self, matrix_X, matrix_Y, replication_factor=None): :rtype: list **Example:** - + >>> import numpy as np >>> from mgcpy.independence_tests.rv_corr import RVCorr >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, @@ -130,5 +130,5 @@ def p_value(self, matrix_X, matrix_Y, replication_factor=None): test_stat = self.test_statistic(matrix_X, matrix_Y)[0] self.p_value_ = np.abs(test_stat) self.p_value_metadata_ = {} - + return np.abs(test_stat), {} diff --git a/mgcpy/independence_tests/unit_tests/hhg_test.py b/mgcpy/independence_tests/unit_tests/hhg_test.py index 5379450..9c65b9b 100644 --- a/mgcpy/independence_tests/unit_tests/hhg_test.py +++ b/mgcpy/independence_tests/unit_tests/hhg_test.py @@ -1,7 +1,7 @@ import mgcpy.benchmarks.simulations as sims import numpy as np -from mgcpy import HHG import pytest +from mgcpy import HHG def test_hhg(): @@ -28,4 +28,6 @@ def test_hhg(): test_stat = hhg.test_statistic(X, Y) assert np.round(test_stat, decimals=2) == 950600.00 -test_hhg() \ No newline at end of file + + +test_hhg() diff --git a/mgcpy/independence_tests/unit_tests/kendall_spearman_test.py b/mgcpy/independence_tests/unit_tests/kendall_spearman_test.py index c9fa50f..1937704 100644 --- a/mgcpy/independence_tests/unit_tests/kendall_spearman_test.py +++ b/mgcpy/independence_tests/unit_tests/kendall_spearman_test.py @@ -1,7 +1,7 @@ import mgcpy.benchmarks.simulations as sims import numpy as np -from mgcpy import KendallSpearman import pytest +from mgcpy import KendallSpearman def test_kendall_spearman(): @@ -32,4 +32,4 @@ def test_kendall_spearman(): test_stat2 = kspear2.test_statistic(X, Y)[0] assert np.round(test_stat1, decimals=2) == 0.33 - assert np.round(test_stat2, decimals=2) == 0.48 \ No newline at end of file + assert np.round(test_stat2, decimals=2) == 0.48 diff --git a/mgcpy/independence_tests/unit_tests/rv_corr_test.py b/mgcpy/independence_tests/unit_tests/rv_corr_test.py index 439e3ee..4aee659 100644 --- a/mgcpy/independence_tests/unit_tests/rv_corr_test.py +++ b/mgcpy/independence_tests/unit_tests/rv_corr_test.py @@ -1,7 +1,7 @@ import mgcpy.benchmarks.simulations as sims import numpy as np -from mgcpy import RVCorr import pytest +from mgcpy import RVCorr def test_local_corr(): @@ -13,7 +13,7 @@ def test_local_corr(): rvcorr = RVCorr(None) rvcorr2 = RVCorr(None, 'pearson') rvcorr3 = RVCorr(None, 'cca') - + test_stat1 = rvcorr.test_statistic(X, Y)[0] test_stat2 = rvcorr2.test_statistic(X, Y)[0] test_stat3 = rvcorr3.test_statistic(X, Y)[0] @@ -37,4 +37,4 @@ def test_local_corr(): test_stat3 = rvcorr3.test_statistic(X, Y)[0] assert np.round(test_stat1, decimals=2) == 0.24 assert np.round(test_stat2, decimals=2) == 0.49 - assert np.round(test_stat3, decimals=2) == 0.24 \ No newline at end of file + assert np.round(test_stat3, decimals=2) == 0.24 From 8f3f39f6be9048a65b206a9d30d4da685271fac0 Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Mon, 3 Dec 2018 14:24:39 -0500 Subject: [PATCH 23/60] Fix rv_corr permutation test --- mgcpy/independence_tests/rv_corr.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/mgcpy/independence_tests/rv_corr.py b/mgcpy/independence_tests/rv_corr.py index 3dca185..024481a 100644 --- a/mgcpy/independence_tests/rv_corr.py +++ b/mgcpy/independence_tests/rv_corr.py @@ -127,8 +127,15 @@ def p_value(self, matrix_X, matrix_Y, replication_factor=None): >>> rvcorr = RVCorr() >>> rvcorr_p_value = rvcorr.p_value(X, Y) """ - test_stat = self.test_statistic(matrix_X, matrix_Y)[0] - self.p_value_ = np.abs(test_stat) + test_stat = self.test_statistic(matrix_X=matrix_X, matrix_Y=matrix_Y)[0] + # estimate the null by a permutation test + test_stats_null = np.zeros(replication_factor) + for rep in range(replication_factor): + permuted_y = np.random.permutation(matrix_Y) + test_stats_null[rep] = self.test_statistic(matrix_X=matrix_X, matrix_Y=permuted_y)[0] + + # p-value is the probability of observing more extreme test statistic under the null + self.p_value_ = np.where(test_stats_null >= test_stat)[0].shape[0] / replication_factor self.p_value_metadata_ = {} - return np.abs(test_stat), {} + return np.where(test_stats_null >= test_stat)[0].shape[0] / replication_factor, {} From e04b1deafe128a3b6a8328eb790541507820712f Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Mon, 3 Dec 2018 14:39:38 -0500 Subject: [PATCH 24/60] Removed old tests --- mgcpy/independence_tests/hhg.py | 130 ----------------- mgcpy/independence_tests/kendall_spearman.py | 114 --------------- mgcpy/independence_tests/rv_corr.py | 141 ------------------- 3 files changed, 385 deletions(-) delete mode 100644 mgcpy/independence_tests/hhg.py delete mode 100644 mgcpy/independence_tests/kendall_spearman.py delete mode 100644 mgcpy/independence_tests/rv_corr.py diff --git a/mgcpy/independence_tests/hhg.py b/mgcpy/independence_tests/hhg.py deleted file mode 100644 index 7d9998b..0000000 --- a/mgcpy/independence_tests/hhg.py +++ /dev/null @@ -1,130 +0,0 @@ -""" - **HHG Independence Test Module** -""" - -import numpy as np -from mgcpy.independence_tests.abstract_class import IndependenceTest - - -class HHG(IndependenceTest): - def __init__(self, compute_distance_matrix=None): - """ - :param compute_distance_matrix: a function to compute the pairwise distance matrix, given a data matrix - :type compute_distance_matrix: ``FunctionType`` or ``callable()`` - """ - IndependenceTest.__init__(compute_distance_matrix) - - def get_name(self): - ''' - :return: the name of the independence test - :rtype: string - ''' - return 'hhg' - - def test_statistic(self, matrix_X, matrix_Y): - """ - Computes the HHG correlation measure between two datasets. - - :param matrix_X: a ``[n*p]`` data matrix, a square matrix with ``n`` samples in ``p`` dimensions - :type matrix_X: 2D `numpy.array` - - :param matrix_Y: a ``[n*q]`` data matrix, a square matrix with ``n`` samples in ``q`` dimensions - :type matrix_Y: 2D `numpy.array` - - :return: returns a list of two items, that contains: - - :test_statistic_: test statistic - - :test_statistic_metadata_: (optional) a ``dict`` of metadata other than the p_value, - that the independence tests computes in the process - :rtype: float, dict - - **Example:** - - >>> import numpy as np - >>> from mgcpy.independence_tests.hhg import HHG - >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, - 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) - >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, - 1.35857623, -0.06729464, 0.16168344, -0.61048226, 0.41711113]).reshape(-1, 1) - >>> hhg = HHG() - >>> hhg_test_stat = hhg.test_statistic(X, Y) - """ - row_X, columns_X = matrix_X.shape[0], matrix_X.shape[1] - row_Y, columns_Y = matrix_Y.shape[0], matrix_Y.shape[1] - - # use the matrix shape and diagonal elements to determine if the given data is a distance matrix or not - if row_X != columns_X or sum(matrix_X.diagonal()**2) > 0: - dist_mtx_X = self.compute_distance_matrix(matrix_X) - else: - dist_mtx_X = matrix_X - if row_Y != columns_Y or sum(matrix_Y.diagonal()**2) > 0: - dist_mtx_Y = self.compute_distance_matrix(matrix_Y) - else: - dist_mtx_Y = matrix_Y - - n = dist_mtx_X.shape[0] - S = np.zeros((n, n)) - - for i in range(n): - for j in range(n): - if i != j: - tmp1 = dist_mtx_X[i, :] <= dist_mtx_X[i, j] - tmp2 = dist_mtx_Y[i, :] <= dist_mtx_Y[i, j] - t11 = np.sum(tmp1 * tmp2) - 2 - t12 = np.sum(tmp1 * (1-tmp2)) - t21 = np.sum((1-tmp1) * tmp2) - t22 = np.sum((1-tmp1) * (1-tmp2)) - denom = (t11+t12) * (t21+t22) * (t11+t21) * (t12+t22) - if denom > 0: - S[i, j] = (n-2) * \ - np.power((t12*t21 - t11*t22), 2) / denom - corr = np.sum(S) - - # no metadata for HHG - self.test_statistic_metadata_ = {} - self.test_statistic_ = corr - - return corr, {} - - def p_value(self, matrix_X=None, matrix_Y=None, replication_factor=1000): - """ - Tests independence between two datasets using HHG and permutation test. - - :param matrix_X: a ``[n*p]`` data matrix, a square matrix with ``n`` samples in ``p`` dimensions - :type matrix_X: 2D `numpy.array` - - :param matrix_Y: a ``[n*q]`` data matrix, a square matrix with ``n`` samples in ``q`` dimensions - :type matrix_Y: 2D `numpy.array` - - :param replication_factor: specifies the number of replications to use for - the permutation test. Defaults to 1000. - :type replication_factor: integer - - :return: returns a list of two items, that contains: - - :p_value_: P-value - - :p_value_metadata_: (optional) a ``dict`` of metadata other than the p_value, - that the independence tests computes in the process - :rtype: list - - **Example:** - - >>> import numpy as np - >>> from mgcpy.independence_tests.hhg import HHG - >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, - 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) - >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, - 1.35857623, -0.06729464, 0.16168344, -0.61048226, 0.41711113]).reshape(-1, 1) - >>> hhg = HHG() - >>> hhg_p_value = hhg.p_value(X, Y) - """ - test_stat = self.test_statistic(matrix_X=matrix_X, matrix_Y=matrix_Y)[0] - # estimate the null by a permutation test - test_stats_null = np.zeros(replication_factor) - for rep in range(replication_factor): - permuted_y = np.random.permutation(matrix_Y) - test_stats_null[rep] = self.test_statistic(matrix_X=matrix_X, matrix_Y=permuted_y)[0] - - # p-value is the probability of observing more extreme test statistic under the null - self.p_value_ = np.where(test_stats_null >= test_stat)[0].shape[0] / replication_factor - self.p_value_metadata_ = {} - - return np.where(test_stats_null >= test_stat)[0].shape[0] / replication_factor, {} diff --git a/mgcpy/independence_tests/kendall_spearman.py b/mgcpy/independence_tests/kendall_spearman.py deleted file mode 100644 index 096bb13..0000000 --- a/mgcpy/independence_tests/kendall_spearman.py +++ /dev/null @@ -1,114 +0,0 @@ -""" - **Kendall and Spearman ndependence Test Module** -""" - -from mgcpy.independence_tests.abstract_class import IndependenceTest -from scipy.stats import kendalltau, spearmanr - - -class KendallSpearman(IndependenceTest): - def __init__(self, compute_distance_matrix=None, which_test='kendall'): - """ - :param compute_distance_matrix: a function to compute the pairwise distance matrix, given a data matrix - :type compute_distance_matrix: ``FunctionType`` or ``callable()`` - - :param which_test: specifies which test to use, including ``'kendall'`` or ``'spearman'`` - :type which_test: string - """ - IndependenceTest.__init__(self, compute_distance_matrix) - self.which_test = which_test - - def get_name(self): - ''' - :return: the name of the independence test - :rtype: string - ''' - return self.which_test - - def test_statistic(self, matrix_X, matrix_Y): - """ - Computes the Spearman's rho or Kendall's tau measure between two datasets. - - Implments scipy.stats's implementation for both - - :param matrix_X: a ``[n*1]`` data matrix, a square matrix with ``n`` samples in ``1`` dimension - :type matrix_X: 1D `numpy.array` - - :param matrix_Y: a ``[n*1]`` data matrix, a square matrix with ``n`` samples in ``1`` dimension - :type matrix_Y: 1D `numpy.array` - - :return: returns a list of two items, that contains: - - :test_stat_: test statistic - - :test_statistic_metadata_: (optional) a ``dict`` of metadata other than the p_value, - that the independence tests computes in the process - :rtype: list - - **Example:** - - >>> import numpy as np - >>> from mgcpy.independence_tests.kendall_spearman import KendallSpearman - - >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, - 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) - >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, - 1.35857623, -0.06729464, 0.16168344, -0.61048226, 0.41711113]).reshape(-1, 1) - >>> kendall_spearman = KendallSpearman() - >>> kendall_spearman_stat = kendall_spearman.test_statistic(X, Y) - """ - assert matrix_X.shape[1] == 1, "Data matrix should be (n, 1) shape" - assert matrix_Y.shape[1] == 1, "Data matrix should be (n, 1) shape" - - if self.which_test == 'kendall': - test_statistic_ = kendalltau(matrix_X, matrix_Y)[0] - else: - test_statistic_ = spearmanr(matrix_X, matrix_Y)[0] - - self.test_statistic_ = test_statistic_ - self.test_statistic_metadata_ = {} - - return test_statistic_, {} - - def p_value(self, matrix_X, matrix_Y, replication_factor=1000): - """ - Tests independence between two datasets using the independence test. - - :param matrix_X: a ``[n*1]`` data matrix, a square matrix with ``n`` samples in ``1`` dimension - :type matrix_X: 2D `numpy.array` - - :param matrix_Y: a ``[n*1] data`` matrix, a square matrix with ``n`` samples in ``1`` dimensions - :type matrix_Y: 2D `numpy.array` - - :param replication_factor: specifies the number of replications to use for - the permutation test. Defaults to 1000. - :type replication_factor: integer - - :return: returns a list of two items, that contains: - - :p_value_: P-value - - :p_value_metadata_: (optional) a ``dict`` of metadata other than the p_value, - that the independence tests computes in the process - :rtype: list - - **Example:** - - >>> import numpy as np - >>> from mgcpy.independence_tests.kendall_spearman import KendallSpearman - >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, - 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) - >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, - 1.35857623, -0.06729464, 0.16168344, -0.61048226, 0.41711113]).reshape(-1, 1) - >>> kendall_spearman = KendallSpearman() - >>> kendall_spearman_p_value = kendall_spearman.p_value(X, Y) - """ - row_X, columns_X = matrix_X.shape[0], matrix_X.shape[1] - row_Y, columns_Y = matrix_Y.shape[0], matrix_Y.shape[1] - assert row_X == 1 or columns_X == 1, "Data matrix should be (n, 1) shape" - assert row_Y == 1 or columns_Y == 1, "Data matrix should be (n, 1) shape" - - if self.which_test == 'kendall': - p_value_ = kendalltau(matrix_X, matrix_Y)[1] - else: - p_value_ = spearmanr(matrix_X, matrix_Y)[1] - - self.p_value_ = p_value_ - self.p_value_metadata_ = {} - - return p_value_, {} diff --git a/mgcpy/independence_tests/rv_corr.py b/mgcpy/independence_tests/rv_corr.py deleted file mode 100644 index 024481a..0000000 --- a/mgcpy/independence_tests/rv_corr.py +++ /dev/null @@ -1,141 +0,0 @@ -""" - **RVCorr Independence Test Module** -""" - -import numpy as np -from mgcpy.independence_tests.abstract_class import IndependenceTest -from numpy import matlib as mb -from scipy.sparse.linalg import svds -from scipy.stats import pearsonr - - -class RVCorr(IndependenceTest): - def __init__(self, compute_distance_matrix=None, which_test='rv'): - """ - :param compute_distance_matrix: a function to compute the pairwise distance matrix, given a data matrix - :type compute_distance_matrix: ``FunctionType`` or ``callable()`` - - :param which_test: specifies which test to use, including ``'rv'``, ``'pearson'``, and ``'cca'``. - :type which_test: string - """ - IndependenceTest.__init__(self, compute_distance_matrix) - self.which_test = which_test - - def get_name(self): - ''' - :return: the name of the independence test - :rtype: string - ''' - return self.which_test - - def test_statistic(self, matrix_X=None, matrix_Y=None): - """ - Computes the Pearson/RV/CCa correlation measure between two datasets. - - Default computes linear correlation for RV - - Computes pearson's correlation - - Calculates local linear correlations for CCa - - :param matrix_X: a ``[n*p]`` data matrix, a square matrix with ``n`` samples in ``p`` dimensions - :type matrix_X: 2D `numpy.array` - - :param matrix_Y: a ``[n*q]`` data matrix, a square matrix with ``n`` samples in ``q`` dimensions - :type matrix_Y: 2D `numpy.array` - - :param replication_factor: specifies the number of replications to use for - the permutation test. Defaults to 1000. - :type replication_factor: int - - :return: returns a list of two items, that contains: - - :test_statistic_: test statistic - - :test_statistic_metadata_: (optional) a ``dict`` of metadata other than the p_value, - that the independence tests computes in the process - :rtype: list - - **Example:** - - >>> import numpy as np - >>> from mgcpy.independence_tests.rv_corr import RVCorr - >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, - 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) - >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, - 1.35857623, -0.06729464, 0.16168344, -0.61048226, 0.41711113]).reshape(-1, 1) - >>> rvcorr = RVCorr() - >>> rvcorr_test_stat = rvcorr.test_statistic(X, Y) - """ - row_X, columns_X = matrix_X.shape[0], matrix_X.shape[1] - row_Y, columns_Y = matrix_Y.shape[0], matrix_Y.shape[1] - - mat1 = matrix_X - mb.repmat(np.mean(matrix_X, axis=0), - matrix_X.shape[0], 1) - mat2 = matrix_Y - mb.repmat(np.mean(matrix_Y, axis=0), - matrix_Y.shape[0], 1) - - covar = np.dot(mat1.T, mat2) - varX = np.dot(mat1.T, mat1) - varY = np.dot(mat2.T, mat2) - - if (self.which_test == 'pearson'): - assert row_X == 1 or columns_X == 1, "Data matrix should be (n, 1) shape" - assert row_Y == 1 or columns_Y == 1, "Data matrix should be (n, 1) shape" - corr, covar = pearsonr(matrix_X, matrix_Y) - elif (self.which_test == 'rv'): - covar = np.trace(np.dot(covar, covar.T)) - corr = np.divide(covar, np.sqrt(np.trace(np.dot(varX, varX)) - * np.trace(np.dot(varY, varY)))) - else: - if varX.size == 1 or varY.size == 1 or covar.size == 1: - covar = np.sum(np.power(covar, 2)) - corr = np.divide(covar, np.sqrt(np.sum(np.power(varX, 2)) - * np.sum(np.power(varY, 2)))) - else: - covar = np.sum(np.power(svds(covar, 1)[1], 2)) - corr = np.divide(covar, np.sqrt(np.sum(np.power(svds(varX, 1)[1], 2)) - * np.sum(np.power(svds(varY, 1)[1], 2)))) - self.test_statistic_ = corr - self.test_statistic_metadata_ = {"covariance": covar} - - return corr, {"covariance": covar} - - def p_value(self, matrix_X, matrix_Y, replication_factor=None): - """ - Tests independence between two datasets using the independence test. - - :param matrix_X: a ``[n*p]`` data matrix, a square matrix with ``n`` samples in ``p``` dimensions - :type matrix_X: 2D `numpy.array` - - :param matrix_Y: a ``[n*q]`` data matrix, a square matrix with ``n`` samples in ``q`` dimensions - :type matrix_Y: 2D `numpy.array` - - :param replication_factor: specifies the number of replications to use for - the permutation test. Defaults to None. - :type replication_factor: integer - - :return: returns a list of two items, that contains: - - :p_value_: P-value - - :p_value_metadata_: (optional) a ``dict`` of metadata other than the p_value, - that the independence tests computes in the process - :rtype: list - - **Example:** - - >>> import numpy as np - >>> from mgcpy.independence_tests.rv_corr import RVCorr - >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, - 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) - >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, - 1.35857623, -0.06729464, 0.16168344, -0.61048226, 0.41711113]).reshape(-1, 1) - >>> rvcorr = RVCorr() - >>> rvcorr_p_value = rvcorr.p_value(X, Y) - """ - test_stat = self.test_statistic(matrix_X=matrix_X, matrix_Y=matrix_Y)[0] - # estimate the null by a permutation test - test_stats_null = np.zeros(replication_factor) - for rep in range(replication_factor): - permuted_y = np.random.permutation(matrix_Y) - test_stats_null[rep] = self.test_statistic(matrix_X=matrix_X, matrix_Y=permuted_y)[0] - - # p-value is the probability of observing more extreme test statistic under the null - self.p_value_ = np.where(test_stats_null >= test_stat)[0].shape[0] / replication_factor - self.p_value_metadata_ = {} - - return np.where(test_stats_null >= test_stat)[0].shape[0] / replication_factor, {} From 3b0015ad6b060e6a8f391ddf420cc8962ac085d1 Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Wed, 5 Dec 2018 07:43:37 -0500 Subject: [PATCH 25/60] Fix pre-commit hook issue in Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index f610c71..2aa957f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -86,7 +86,7 @@ RUN pip install pycodestyle COPY . /root/workspace/ # setup pep8 guidelines (restricts push when pep8 is violated) -RUN rm ./.git/hooks/pre-commit +RUN rm -f ./.git/hooks/pre-commit RUN chmod 777 install-hooks.sh RUN ./install-hooks.sh From 9ad895ee5ca901335a682a20e9245e679278d4d9 Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Wed, 5 Dec 2018 14:51:11 -0500 Subject: [PATCH 26/60] Add pandas and seaborn to the Docker image --- Dockerfile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2aa957f..33e6fff 100644 --- a/Dockerfile +++ b/Dockerfile @@ -78,9 +78,7 @@ WORKDIR /root/workspace/ # install python requirements COPY requirements.txt /root/workspace/requirements.txt RUN pip install -r requirements.txt -RUN pip install jupyter -RUN pip install matplotlib -RUN pip install pycodestyle +RUN pip install matplotlib seaborn pandas jupyter pycodestyle # copy the mgcpy code into the container COPY . /root/workspace/ From 30225c633bdd815881d299da924814f1531761c5 Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Wed, 5 Dec 2018 14:54:39 -0500 Subject: [PATCH 27/60] Update version from 0.0.3 to 0.0.4 --- docs/source/conf.py | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index feefb97..d193053 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -26,7 +26,7 @@ # The short X.Y version version = '' # The full version, including alpha/beta/rc tags -release = 'v0.0.3' +release = 'v0.0.4' # -- General configuration --------------------------------------------------- diff --git a/setup.py b/setup.py index b444058..cad9111 100644 --- a/setup.py +++ b/setup.py @@ -21,7 +21,7 @@ REQUIRED_PACKAGES = ["numpy>=1.14.5", "scipy>=1.1.0", "pytest>=3.8.0", "pycodestyle>=2.3.1", "Cython==0.29", "flake8>=3.5.0", "pytest-cov>=2.6.0", "coveralls>=1.5.1", "Sphinx>=1.8.2"] -VERSION = '0.0.3' +VERSION = '0.0.4' def check_python_version(): From 7607105ea95b94956cf50801f07d7a6bc43c7e64 Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Wed, 5 Dec 2018 15:16:21 -0500 Subject: [PATCH 28/60] Pull code from github than copying from local | Docker --- Dockerfile | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 33e6fff..8369a0c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -75,14 +75,13 @@ RUN ln -s /usr/bin/python3.6 /usr/local/bin/python RUN mkdir /root/workspace/ WORKDIR /root/workspace/ +# clone the mgcpy code into the container +RUN git clone https://github.com/NeuroDataDesign/mgcpy.git . + # install python requirements -COPY requirements.txt /root/workspace/requirements.txt RUN pip install -r requirements.txt RUN pip install matplotlib seaborn pandas jupyter pycodestyle -# copy the mgcpy code into the container -COPY . /root/workspace/ - # setup pep8 guidelines (restricts push when pep8 is violated) RUN rm -f ./.git/hooks/pre-commit RUN chmod 777 install-hooks.sh From 9ee13b40a4f4c86eab921073dff61c11ffc8aa39 Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Wed, 5 Dec 2018 17:00:37 -0500 Subject: [PATCH 29/60] Add code and workspace dirs in Docker for mounting and add Vim --- Dockerfile | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8369a0c..fd65d2b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -71,9 +71,15 @@ RUN ln -s /usr/bin/python3.6 /usr/local/bin/python # cd .. && \ # rm -rf * -# change working directory +# make a directory for mounting local files into docker RUN mkdir /root/workspace/ -WORKDIR /root/workspace/ + +# add vim in docker +RUN apt-get install -y vim + +# change working directory +RUN mkdir /root/code/ +WORKDIR /root/code/ # clone the mgcpy code into the container RUN git clone https://github.com/NeuroDataDesign/mgcpy.git . @@ -91,7 +97,7 @@ RUN ./install-hooks.sh RUN python setup.py build_ext --inplace # add mgcpy to PYTHONPATH for dev purposes -RUN echo "export PYTHONPATH='${PYTHONPATH}:/root/workspace'" >> ~/.bashrc +RUN echo "export PYTHONPATH='${PYTHONPATH}:/root/code'" >> ~/.bashrc # test if mgcpy is correctly installed RUN py3clean . From 9f02fca4c6e05894e996f10baee42d892d840c01 Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Wed, 5 Dec 2018 17:12:45 -0500 Subject: [PATCH 30/60] Update readme for Docker usage --- README.md | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 83d57e1..3650b48 100644 --- a/README.md +++ b/README.md @@ -29,10 +29,27 @@ python3 setup.py install - `python3 setup.py build_ext --inplace # for cython`, if you want to test in-place, first execute this ## Setting up the development environment: -- Install [docker](https://docs.docker.com/install/) -- Build the docker image, `docker build -t mgcpy-dev:latest .` - - This takes 10 to 15 mins to build -- Launch the container to go into mgcpy's dev env, `docker run -it --rm --name mgcpy-dev-env mgcpy-dev` +- To build image and run from scratch: + - Install [docker](https://docs.docker.com/install/) + - Build the docker image, `docker build -t mgcpy-dev:latest .` + - This takes 20-30 mins to build + - Launch the container to go into mgcpy's dev env, `docker run -it --rm --name mgcpy-dev-env mgcpy-dev` +- Pull master branch image from Dockerhub and run: + - `docker pull tpsatish95/mgcpy-dev:latest` + - `docker run -it --rm -p 8888:8888 --name mgcpy-dev-env tpsatish95/mgcpy-dev` + + +- To run demo notebooks (from within Docker): + - `cd demos` + - `jupyter notebook --ip 0.0.0.0 --no-browser --allow-root` + - Then copy the url it generates, it looks something like this: `http://(0de284ecf0cd or 127.0.0.1):8888/?token=e5a2541812d85e20026b1d04983dc8380055f2d16c28a6ad` + - Edit this: `(0de284ecf0cd or 127.0.0.1)` to: `127.0.0.1`, in the above link and open it in your browser + - Then open `mgc.ipynb` + +- To mount/load local files into docker container: + - Do `docker run -it --rm -v :/root/workspace/ -p 8888:8888 --name mgcpy-dev-env tpsatish95/mgcpy-dev`, replace `` with your local dir path. + - Do `cd ../workspace` when you are inside the container to view the mounted files. The **mgcpy** package code will be in `/root/code` directory. + ## MGC Algorithm's Flow ![MGCPY Flow](MGCPY.png) From 104608f1df6a1a2490aa06d5ae14a4d3e111d498 Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Wed, 5 Dec 2018 22:21:24 -0500 Subject: [PATCH 31/60] Finish implementing fast mgc --- mgcpy/independence_tests/mgc/fast_mgc.py | 57 ++++++++++++++++++++---- 1 file changed, 48 insertions(+), 9 deletions(-) diff --git a/mgcpy/independence_tests/mgc/fast_mgc.py b/mgcpy/independence_tests/mgc/fast_mgc.py index ee1a98a..bc2e46b 100644 --- a/mgcpy/independence_tests/mgc/fast_mgc.py +++ b/mgcpy/independence_tests/mgc/fast_mgc.py @@ -1,14 +1,17 @@ """ - **Faster version of MGC** + **Fast version of MGC** """ +import math +import warnings import numpy as np from mgcpy.independence_tests.mgc.mgc import MGC from mgcpy.independence_tests.mgc.threshold_smooth import (smooth_significant_local_correlations, threshold_local_correlations) +from scipy.stats import norm -def faster_mgc(matrix_X, matrix_Y, sub_samples=100, null_only=True, alpha=0.01): +def fast_mgc(matrix_X, matrix_Y, sub_samples=100, null_only=True, alpha=0.01): ''' MGC test statistic computation and permutation test by fast subsampling. Note that trivial amount of noise is added to matrix_X and matrix_Y, @@ -43,15 +46,17 @@ def faster_mgc(matrix_X, matrix_Y, sub_samples=100, null_only=True, alpha=0.01): this is is used to derive the confidence interval and estimate required sample size to achieve power 1. :type alpha: float - :return: a ``dict`` of results with the following keys: + :return: returns a list of two items, that contains: - :p_value: P-value of MGC - - :test_statistic: the sample MGC statistic within ``[-1, 1]`` - - :local_correlation_matrix: a 2D matrix of all local correlations within ``[-1,1]`` - - :optimal_scale: the estimated optimal scale as an ``[x, y]`` pair. - - :confidence_interval: a ``[1*2]`` matrix representing the confidence_interval for the local correlation with 1-alpha confidence. - - :required_size: the required estimated sample size to have power 1 at level alpha - :rtype: dictionary + - :metadata: a ``dict`` of metadata with the following keys: + + - :test_statistic: the sample MGC statistic within ``[-1, 1]`` + - :local_correlation_matrix: a 2D matrix of all local correlations within ``[-1,1]`` + - :optimal_scale: the estimated optimal scale as an ``[x, y]`` pair. + - :confidence_interval: a ``[1*2]`` matrix representing the confidence_interval for the local correlation with 1-alpha confidence. + - :required_size: the required estimated sample size to have power 1 at level alpha + :rtype: list ''' total_samples = matrix_Y.shape[0] num_samples = total_samples // sub_samples @@ -98,3 +103,37 @@ def faster_mgc(matrix_X, matrix_Y, sub_samples=100, null_only=True, alpha=0.01): result = smooth_significant_local_correlations( significant_connected_region, local_correlation_matrix) mgc_statistic, optimal_scale = result["mgc_statistic"], result["optimal_scale"] + + k, l = optimal_scale + k = math.ceil((k - 1)/(sub_samples - 1) * (total_samples - 1)) + 1 + l = math.ceil((l - 1)/(sub_samples - 1) * (total_samples - 1)) + 1 + optimal_scale = [k, l] + + # the observed statistic uses the full data + if null_only: + mgc_statistic, test_statistic_metadata = mgc.test_statistic(matrix_X, matrix_Y) + mgc_statistic = test_statistic_metadata["local_correlation_matrix"][optimal_scale[0]][optimal_scale[1]] + optimal_scale = test_statistic_metadata["optimal_scale"] + sigma /= math.sqrt(num_samples) + + p_value = 1 - norm.cdf(mgc_statistic, 0, sigma) + threshold = norm.ppf(1 - alpha, 0, 1) + confidence_interval = [mgc_statistic - (threshold * sigma), mgc_statistic + (threshold * sigma)] + + if mgc_statistic < 0: + required_size = np.Inf + else: + required_size = math.ceil(threshold * sigma * total_samples / mgc_statistic / 10) * 10 + + # The results are not statistically significant + if p_value > 0.05: + warnings.warn("The p-value is greater than 0.05, implying that the results are not statistically significant.\n" + + "Use results such as test_statistic and optimal_scale, with caution!") + + p_value_metadata = {"test_statistic": mgc_statistic, + "local_correlation_matrix": test_statistic_metadata["local_correlation_matrix"], + "optimal_scale": optimal_scale, + "confidence_interval": confidence_interval, + "required_size": required_size} + + return p_value, p_value_metadata From 28dafbcc669b9846775bc6e1cff907a07765d6a0 Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Wed, 5 Dec 2018 22:21:48 -0500 Subject: [PATCH 32/60] Integrate fast_mgc with MGC --- mgcpy/independence_tests/mgc/mgc.py | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/mgcpy/independence_tests/mgc/mgc.py b/mgcpy/independence_tests/mgc/mgc.py index 5fb155e..08afb7d 100644 --- a/mgcpy/independence_tests/mgc/mgc.py +++ b/mgcpy/independence_tests/mgc/mgc.py @@ -2,11 +2,8 @@ **Main MGC Independence Test Module** """ -import time -import warnings - -import numpy as np from mgcpy.independence_tests.abstract_class import IndependenceTest +from mgcpy.independence_tests.mgc.fast_mgc import fast_mgc from mgcpy.independence_tests.mgc.local_correlation import local_correlations from mgcpy.independence_tests.mgc.threshold_smooth import (smooth_significant_local_correlations, threshold_local_correlations) @@ -96,7 +93,7 @@ def test_statistic(self, matrix_X, matrix_Y): self.test_statistic_metadata_ = test_statistic_metadata return mgc_statistic, test_statistic_metadata - def p_value(self, matrix_X, matrix_Y, replication_factor=1000): + def p_value(self, matrix_X, matrix_Y, replication_factor=1000, is_fast=False, fast_mgc_data={}): """ Tests independence between two datasets using MGC and permutation test. @@ -116,10 +113,22 @@ def p_value(self, matrix_X, matrix_Y, replication_factor=1000): the permutation test. Defaults to ``1000``. :type replication_factor: integer + :param is_fast: is a boolean flag which specifies if the p_value should be computed (approximated) + using the fast version of mgc. This defaults to False. + :type is_fast: boolean + + :param fast_mgc_data: a ``dict`` of fast mgc params, refer: mgcpy.independence_tests.mgc.fast_mgc + + - :sub_samples: specifies the number of subsamples. + - :null_only: specifies if subsampling is to be used for estimating the null only. + - :alpha: specifies the type 1 error level. + :type fast_mgc_data: dictonary + :return: returns a list of two items, that contains: - :p_value: P-value of MGC - :metadata: a ``dict`` of metadata with the following keys: + - :test_statistic: the sample MGC statistic within ``[-1, 1]`` - :p_local_correlation_matrix: a 2D matrix of the P-values of the local correlations - :local_correlation_matrix: a 2D matrix of all local correlations within ``[-1,1]`` @@ -138,4 +147,10 @@ def p_value(self, matrix_X, matrix_Y, replication_factor=1000): >>> mgc = MGC() >>> p_value, metadata = mgc.p_value(X, Y, replication_factor = 100) """ - return super(MGC, self).p_value(matrix_X, matrix_Y) + if is_fast: + p_value, p_value_metadata = fast_mgc(matrix_X, matrix_Y, **fast_mgc_data) + self.p_value_ = p_value + self.p_value_metadata_ = p_value_metadata + return p_value, p_value_metadata + else: + return super(MGC, self).p_value(matrix_X, matrix_Y) From 9df3a8676f5a083b6988c8164d33312bc6de5c1f Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Thu, 6 Dec 2018 05:31:20 -0500 Subject: [PATCH 33/60] Refactor MGC class to include FastMGC and remove circular dependency issue --- mgcpy/independence_tests/mgc/fast_mgc.py | 139 ----------------------- mgcpy/independence_tests/mgc/mgc.py | 133 +++++++++++++++++++++- 2 files changed, 131 insertions(+), 141 deletions(-) delete mode 100644 mgcpy/independence_tests/mgc/fast_mgc.py diff --git a/mgcpy/independence_tests/mgc/fast_mgc.py b/mgcpy/independence_tests/mgc/fast_mgc.py deleted file mode 100644 index bc2e46b..0000000 --- a/mgcpy/independence_tests/mgc/fast_mgc.py +++ /dev/null @@ -1,139 +0,0 @@ -""" - **Fast version of MGC** -""" -import math -import warnings - -import numpy as np -from mgcpy.independence_tests.mgc.mgc import MGC -from mgcpy.independence_tests.mgc.threshold_smooth import (smooth_significant_local_correlations, - threshold_local_correlations) -from scipy.stats import norm - - -def fast_mgc(matrix_X, matrix_Y, sub_samples=100, null_only=True, alpha=0.01): - ''' - MGC test statistic computation and permutation test by fast subsampling. - Note that trivial amount of noise is added to matrix_X and matrix_Y, - to break possible ties in data for MGC. - - :param matrix_X: is interpreted as either: - - - a ``[n*n]`` distance matrix, a square matrix with zeros on diagonal for n samples OR - - a ``[n*d]`` data matrix, a square matrix with n samples in d dimensions - :type matrix_X: 2D numpy.array - - :param matrix_Y: is interpreted as either: - - - a ``[n*n]`` distance matrix, a square matrix with zeros on diagonal for n samples OR - - a ``[n*d]`` data matrix, a square matrix with n samples in d dimensions - :type matrix_Y: 2D numpy.array - - :param sub_samples: specifies the number of subsamples. - generally total_samples/sub_samples should be more than 4, - and ``sub_samples`` should be large than 30. - :type sub_samples: integer - - :param null_only: specifies if subsampling is to be used for estimating the null only OR to compute the observed statistic as well - - - *True:* uses subsampled statistics for estimating the null only and computes the observed statistic by full data, - this runs in ``O(total_samples^2 + sub_samples * total_samples)`` - - *False:* uses subsampled statistics for estimating the null and also computes the observed statistic by subsampling, - this runs in ``O(sub_samples*total_samples)`` - :type null_only: boolean - - :param alpha: specifies the type 1 error level. - this is is used to derive the confidence interval and estimate required sample size to achieve power 1. - :type alpha: float - - :return: returns a list of two items, that contains: - - - :p_value: P-value of MGC - - :metadata: a ``dict`` of metadata with the following keys: - - - :test_statistic: the sample MGC statistic within ``[-1, 1]`` - - :local_correlation_matrix: a 2D matrix of all local correlations within ``[-1,1]`` - - :optimal_scale: the estimated optimal scale as an ``[x, y]`` pair. - - :confidence_interval: a ``[1*2]`` matrix representing the confidence_interval for the local correlation with 1-alpha confidence. - - :required_size: the required estimated sample size to have power 1 at level alpha - :rtype: list - ''' - total_samples = matrix_Y.shape[0] - num_samples = total_samples // sub_samples - - # if full data size (total_samples) is not more than 4 times of sub_samples, split to 4 samples - # too few samples will fail the normal approximation and cause the test to be invalid - - if total_samples < 4 * sub_samples: - sub_samples = total_samples // 4 - num_samples = 4 - - # the observed statistics by subsampling - test_statistic_sub_sampling = np.zeros((1, num_samples)) - - # add trivial noise to break any ties - matrix_X += 1e-10 * np.random.uniform(size=matrix_X.shape) - matrix_Y += 1e-10 * np.random.uniform(size=matrix_Y.shape) - - # the local correlations by subsampling - local_correlation_matrix_sub_sampling = np.zeros((sub_samples, sub_samples, num_samples)) - - # create MGC object - mgc = MGC() - - # subsampling computation - for i in range(num_samples): - sub_matrix_X = matrix_X[(sub_samples*i):(sub_samples*(i+1)-1)] - sub_matrix_Y = matrix_Y[(sub_samples*i):(sub_samples*(i+1)-1)] - - mgc_statistic, test_statistic_metadata = mgc.test_statistic(sub_matrix_X, sub_matrix_Y) - test_statistic_sub_sampling[i], local_correlation_matrix_sub_sampling[:, :, i] = \ - mgc_statistic, test_statistic_metadata["local_correlation_matrix"] - - local_correlation_matrix = np.mean(local_correlation_matrix_sub_sampling, axis=2) - sigma = np.std(test_statistic_sub_sampling) / np.sqrt(num_samples) - - sample_size = len(matrix_X) - 1 # sample size minus 1 - - # find a connected region of significant local correlations, by thresholding - significant_connected_region = threshold_local_correlations( - local_correlation_matrix, sample_size) - - # find the maximum within the significant region - result = smooth_significant_local_correlations( - significant_connected_region, local_correlation_matrix) - mgc_statistic, optimal_scale = result["mgc_statistic"], result["optimal_scale"] - - k, l = optimal_scale - k = math.ceil((k - 1)/(sub_samples - 1) * (total_samples - 1)) + 1 - l = math.ceil((l - 1)/(sub_samples - 1) * (total_samples - 1)) + 1 - optimal_scale = [k, l] - - # the observed statistic uses the full data - if null_only: - mgc_statistic, test_statistic_metadata = mgc.test_statistic(matrix_X, matrix_Y) - mgc_statistic = test_statistic_metadata["local_correlation_matrix"][optimal_scale[0]][optimal_scale[1]] - optimal_scale = test_statistic_metadata["optimal_scale"] - sigma /= math.sqrt(num_samples) - - p_value = 1 - norm.cdf(mgc_statistic, 0, sigma) - threshold = norm.ppf(1 - alpha, 0, 1) - confidence_interval = [mgc_statistic - (threshold * sigma), mgc_statistic + (threshold * sigma)] - - if mgc_statistic < 0: - required_size = np.Inf - else: - required_size = math.ceil(threshold * sigma * total_samples / mgc_statistic / 10) * 10 - - # The results are not statistically significant - if p_value > 0.05: - warnings.warn("The p-value is greater than 0.05, implying that the results are not statistically significant.\n" + - "Use results such as test_statistic and optimal_scale, with caution!") - - p_value_metadata = {"test_statistic": mgc_statistic, - "local_correlation_matrix": test_statistic_metadata["local_correlation_matrix"], - "optimal_scale": optimal_scale, - "confidence_interval": confidence_interval, - "required_size": required_size} - - return p_value, p_value_metadata diff --git a/mgcpy/independence_tests/mgc/mgc.py b/mgcpy/independence_tests/mgc/mgc.py index 08afb7d..e7d8255 100644 --- a/mgcpy/independence_tests/mgc/mgc.py +++ b/mgcpy/independence_tests/mgc/mgc.py @@ -1,12 +1,15 @@ """ **Main MGC Independence Test Module** """ +import math +import warnings +import numpy as np from mgcpy.independence_tests.abstract_class import IndependenceTest -from mgcpy.independence_tests.mgc.fast_mgc import fast_mgc from mgcpy.independence_tests.mgc.local_correlation import local_correlations from mgcpy.independence_tests.mgc.threshold_smooth import (smooth_significant_local_correlations, threshold_local_correlations) +from scipy.stats import norm class MGC(IndependenceTest): @@ -148,9 +151,135 @@ def p_value(self, matrix_X, matrix_Y, replication_factor=1000, is_fast=False, fa >>> p_value, metadata = mgc.p_value(X, Y, replication_factor = 100) """ if is_fast: - p_value, p_value_metadata = fast_mgc(matrix_X, matrix_Y, **fast_mgc_data) + p_value, p_value_metadata = self._fast_mgc_p_value(matrix_X, matrix_Y, **fast_mgc_data) self.p_value_ = p_value self.p_value_metadata_ = p_value_metadata return p_value, p_value_metadata else: return super(MGC, self).p_value(matrix_X, matrix_Y) + + def _fast_mgc_p_value(self, matrix_X, matrix_Y, sub_samples=100, null_only=True, alpha=0.01): + ''' + Fast version of MGC's p-value computation + + MGC test statistic computation and permutation test by fast subsampling. + Note that trivial amount of noise is added to matrix_X and matrix_Y, + to break possible ties in data for MGC. + + :param matrix_X: is interpreted as either: + + - a ``[n*n]`` distance matrix, a square matrix with zeros on diagonal for n samples OR + - a ``[n*d]`` data matrix, a square matrix with n samples in d dimensions + :type matrix_X: 2D numpy.array + + :param matrix_Y: is interpreted as either: + + - a ``[n*n]`` distance matrix, a square matrix with zeros on diagonal for n samples OR + - a ``[n*d]`` data matrix, a square matrix with n samples in d dimensions + :type matrix_Y: 2D numpy.array + + :param sub_samples: specifies the number of subsamples. + generally total_samples/sub_samples should be more than 4, + and ``sub_samples`` should be large than 30. + :type sub_samples: integer + + :param null_only: specifies if subsampling is to be used for estimating the null only OR to compute the observed statistic as well + + - *True:* uses subsampled statistics for estimating the null only and computes the observed statistic by full data, + this runs in ``O(total_samples^2 + sub_samples * total_samples)`` + - *False:* uses subsampled statistics for estimating the null and also computes the observed statistic by subsampling, + this runs in ``O(sub_samples*total_samples)`` + :type null_only: boolean + + :param alpha: specifies the type 1 error level. + this is is used to derive the confidence interval and estimate required sample size to achieve power 1. + :type alpha: float + + :return: returns a list of two items, that contains: + + - :p_value: P-value of MGC + - :metadata: a ``dict`` of metadata with the following keys: + + - :test_statistic: the sample MGC statistic within ``[-1, 1]`` + - :local_correlation_matrix: a 2D matrix of all local correlations within ``[-1,1]`` + - :optimal_scale: the estimated optimal scale as an ``[x, y]`` pair. + - :confidence_interval: a ``[1*2]`` matrix representing the confidence_interval for the local correlation with 1-alpha confidence. + - :required_size: the required estimated sample size to have power 1 at level alpha + :rtype: list + ''' + total_samples = matrix_Y.shape[0] + num_samples = total_samples // sub_samples + + # if full data size (total_samples) is not more than 4 times of sub_samples, split to 4 samples + # too few samples will fail the normal approximation and cause the test to be invalid + + if total_samples < 4 * sub_samples: + sub_samples = total_samples // 4 + num_samples = 4 + + # the observed statistics by subsampling + test_statistic_sub_sampling = np.zeros((1, num_samples)) + + # add trivial noise to break any ties + matrix_X += 1e-10 * np.random.uniform(size=matrix_X.shape) + matrix_Y += 1e-10 * np.random.uniform(size=matrix_Y.shape) + + # the local correlations by subsampling + local_correlation_matrix_sub_sampling = np.zeros((sub_samples, sub_samples, num_samples)) + + # subsampling computation + for i in range(num_samples): + sub_matrix_X = matrix_X[(sub_samples*i):(sub_samples*(i+1)-1)] + sub_matrix_Y = matrix_Y[(sub_samples*i):(sub_samples*(i+1)-1)] + + mgc_statistic, test_statistic_metadata = self.test_statistic(sub_matrix_X, sub_matrix_Y) + test_statistic_sub_sampling[i], local_correlation_matrix_sub_sampling[:, :, i] = \ + mgc_statistic, test_statistic_metadata["local_correlation_matrix"] + + local_correlation_matrix = np.mean(local_correlation_matrix_sub_sampling, axis=2) + sigma = np.std(test_statistic_sub_sampling) / np.sqrt(num_samples) + + sample_size = len(matrix_X) - 1 # sample size minus 1 + + # find a connected region of significant local correlations, by thresholding + significant_connected_region = threshold_local_correlations( + local_correlation_matrix, sample_size) + + # find the maximum within the significant region + result = smooth_significant_local_correlations( + significant_connected_region, local_correlation_matrix) + mgc_statistic, optimal_scale = result["mgc_statistic"], result["optimal_scale"] + + k, l = optimal_scale + k = math.ceil((k - 1)/(sub_samples - 1) * (total_samples - 1)) + 1 + l = math.ceil((l - 1)/(sub_samples - 1) * (total_samples - 1)) + 1 + optimal_scale = [k, l] + + # the observed statistic uses the full data + if null_only: + mgc_statistic, test_statistic_metadata = self.test_statistic(matrix_X, matrix_Y) + mgc_statistic = test_statistic_metadata["local_correlation_matrix"][optimal_scale[0]][optimal_scale[1]] + optimal_scale = test_statistic_metadata["optimal_scale"] + sigma /= math.sqrt(num_samples) + + p_value = 1 - norm.cdf(mgc_statistic, 0, sigma) + threshold = norm.ppf(1 - alpha, 0, 1) + confidence_interval = [mgc_statistic - (threshold * sigma), mgc_statistic + (threshold * sigma)] + + if mgc_statistic < 0: + required_size = np.Inf + else: + required_size = math.ceil(threshold * sigma * total_samples / mgc_statistic / 10) * 10 + + # The results are not statistically significant + if p_value > 0.05: + warnings.warn("The p-value is greater than 0.05, implying that the results are not statistically significant.\n" + + "Use results such as test_statistic and optimal_scale, with caution!") + + p_value_metadata = {"test_statistic": mgc_statistic, + "local_correlation_matrix": test_statistic_metadata["local_correlation_matrix"], + "optimal_scale": optimal_scale, + "confidence_interval": confidence_interval, + "required_size": required_size} + + return p_value, p_value_metadata From 0d6a63d11c592b2706d78dc3cc0fefba5285db87 Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Thu, 6 Dec 2018 11:17:28 -0500 Subject: [PATCH 34/60] Add /bin/bash directive to pre-commit hook --- git-hooks/pre-commit | 2 ++ 1 file changed, 2 insertions(+) diff --git a/git-hooks/pre-commit b/git-hooks/pre-commit index 2ef69e1..8a74422 100755 --- a/git-hooks/pre-commit +++ b/git-hooks/pre-commit @@ -1,3 +1,5 @@ +#!/bin/bash + # Code slightly modified from: # https://benmccormick.org/2017/02/26/running-jest-tests-before-each-git-commit/ From c5ab3ef8593e2fff08f74513feeed5c6bb30835b Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Thu, 6 Dec 2018 12:29:39 -0500 Subject: [PATCH 35/60] Fix bugs in Fast MGC Use statistic.stdev instead of np.std Fix shape issue for test_statistic_sub_sampling Remove mgc_statistic computation based on sub sampled optim scale --- mgcpy/independence_tests/mgc/mgc.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mgcpy/independence_tests/mgc/mgc.py b/mgcpy/independence_tests/mgc/mgc.py index e7d8255..4045805 100644 --- a/mgcpy/independence_tests/mgc/mgc.py +++ b/mgcpy/independence_tests/mgc/mgc.py @@ -3,6 +3,7 @@ """ import math import warnings +from statistics import stdev import numpy as np from mgcpy.independence_tests.abstract_class import IndependenceTest @@ -218,7 +219,7 @@ def _fast_mgc_p_value(self, matrix_X, matrix_Y, sub_samples=100, null_only=True, num_samples = 4 # the observed statistics by subsampling - test_statistic_sub_sampling = np.zeros((1, num_samples)) + test_statistic_sub_sampling = np.zeros(num_samples) # add trivial noise to break any ties matrix_X += 1e-10 * np.random.uniform(size=matrix_X.shape) @@ -229,15 +230,15 @@ def _fast_mgc_p_value(self, matrix_X, matrix_Y, sub_samples=100, null_only=True, # subsampling computation for i in range(num_samples): - sub_matrix_X = matrix_X[(sub_samples*i):(sub_samples*(i+1)-1)] - sub_matrix_Y = matrix_Y[(sub_samples*i):(sub_samples*(i+1)-1)] + sub_matrix_X = matrix_X[(sub_samples*i):sub_samples*(i+1), :] + sub_matrix_Y = matrix_Y[(sub_samples*i):sub_samples*(i+1), :] mgc_statistic, test_statistic_metadata = self.test_statistic(sub_matrix_X, sub_matrix_Y) test_statistic_sub_sampling[i], local_correlation_matrix_sub_sampling[:, :, i] = \ mgc_statistic, test_statistic_metadata["local_correlation_matrix"] local_correlation_matrix = np.mean(local_correlation_matrix_sub_sampling, axis=2) - sigma = np.std(test_statistic_sub_sampling) / np.sqrt(num_samples) + sigma = stdev(test_statistic_sub_sampling) / np.sqrt(num_samples) sample_size = len(matrix_X) - 1 # sample size minus 1 @@ -258,7 +259,6 @@ def _fast_mgc_p_value(self, matrix_X, matrix_Y, sub_samples=100, null_only=True, # the observed statistic uses the full data if null_only: mgc_statistic, test_statistic_metadata = self.test_statistic(matrix_X, matrix_Y) - mgc_statistic = test_statistic_metadata["local_correlation_matrix"][optimal_scale[0]][optimal_scale[1]] optimal_scale = test_statistic_metadata["optimal_scale"] sigma /= math.sqrt(num_samples) From fa83c75ba4a45db9d1e6f282ba80676528732c57 Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Thu, 6 Dec 2018 12:29:57 -0500 Subject: [PATCH 36/60] Add basic tests for Fast MGC --- .../unit_tests/mgc/fast_mgc_test.py | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 mgcpy/independence_tests/unit_tests/mgc/fast_mgc_test.py diff --git a/mgcpy/independence_tests/unit_tests/mgc/fast_mgc_test.py b/mgcpy/independence_tests/unit_tests/mgc/fast_mgc_test.py new file mode 100644 index 0000000..b4b3bf7 --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/fast_mgc_test.py @@ -0,0 +1,29 @@ +import numpy as np +import pytest +from mgcpy.independence_tests.mgc.mgc import MGC + + +def test_fast_mgc_test_linear(): + # linear (mgc.sims.linear(50, 1, 0.1)) + X = np.array([0.45233912, 0.41776082, 0.08992314, -0.68255391, -0.65492209, 0.24839759, -0.87725133, 0.32595345, -0.08646498, -0.16638085, 0.26394850, 0.72925148, 0.26028888, -0.59854218, -0.80068479, -0.69199885, 0.14915159, 0.37115868, 0.96039213, 0.27498675, -0.01372958, -0.89370963, 0.78395670, -0.42157105, -0.13893970, + 0.50943310, -0.12623322, -0.20255325, 0.18437355, -0.02945578, 0.78082317, 0.39372362, -0.37730187, -0.17078540, 0.70129955, 0.83651364, 0.73375401, -0.34883304, 0.15323405, 0.51493599, -0.24317493, 0.83948953, 0.77216592, 0.90045095, -0.53736592, -0.88430486, 0.31447365, 0.66595322, -0.15917153, -0.38190466]).reshape(-1, 1) + Y = np.array([0.665986696, 0.402397835, 0.134445492, -0.796653997, -0.636592886, 0.277283128, -0.636847542, 0.249515282, -0.149871134, -0.147567403, 0.369251601, 0.687118553, 0.524448340, -0.585999355, -0.858549573, -0.756081985, 0.129307735, 0.180976113, 0.874637167, 0.458794276, -0.003339139, -0.967879037, 0.758180626, -0.392856219, -0.114772505, + 0.425345845, -0.069794980, -0.330857932, 0.229331072, 0.058739766, 0.777801029, 0.580715974, -0.231521102, -0.233366160, 0.669360658, 0.999785556, 0.648315305, -0.321119155, 0.156810807, 0.451349979, -0.393285002, 0.720164611, 0.811149183, 0.936183880, -0.587798720, -0.721394055, 0.233671350, 0.625407903, -0.154576153, -0.451475001]).reshape(-1, 1) + + p_value = 0 + + mgc = MGC() + p_value_res, _ = mgc.p_value(X, Y, is_fast=True) + assert np.allclose(p_value, p_value_res, rtol=0.1) + + +def test_fast_mgc_test_non_linear(): + # spiral data (mgc.sims.spiral(50, 1, 0.5)) + X = np.array([-0.915363905, 2.134736725, 1.591825890, -0.947720469, -0.629203447, 0.157367412, -3.009624669, 0.342083914, 0.126834696, 2.009228424, 0.137638139, -4.168139174, 1.854371040, 1.696600346, -2.454855196, 1.770009913, -0.080973938, 1.985722698, 0.671279564, 1.521294941, -0.905490998, -1.043388333, 0.006493876, 4.007326886, 1.755316427, -0.905436337, 0.497332481, 0.819071238, 3.561837453, 3.713293152, 0.487967353, 1.233385955, -2.985033861, 0.146394829, -2.231330093, -0.138580101, -2.390685794, -2.798259311, 0.647199716, -0.626705094, -0.254107788, 2.017131291, -2.871050739, -0.369874190, 0.198565130, 2.021387946, -2.877629992, -1.855015175, -0.201316471, 3.886001079]).reshape(-1, 1) + Y = np.array([0.12441532, -2.63498763, 2.18349959, -0.58779997, -1.58602656, 0.35894756, -0.73954299, 1.76585591, -0.35002851, 0.48618590, 0.95628300, 1.99038991, 1.92277498, 1.34861841, 1.42509605, 0.65982368, -1.56731299, -0.17000082, 1.81187432, -0.73726241, 0.44491111, 0.19177688, 2.28190181, 0.45509215, -0.16777206, 0.06918430, -1.49570722, 2.23337087, -1.01335025, -0.60394315, -0.56653502, -3.12571299, -1.56146565, 0.52487563, 2.35561329, -1.79300788, -2.40650123, 0.53680541, 2.04171052, 0.09821259, -0.42712911, 0.52453433, -1.44426759, -2.22697039, 1.26906442, -0.13549404, 0.36776719, -2.44674330, 1.34647206, 2.14525574]).reshape(-1, 1) + + p_value = 0.7 + + mgc = MGC() + p_value_res, _ = mgc.p_value(X, Y, is_fast=True) + assert np.allclose(p_value, p_value_res, rtol=0.1) From 1c81533dffd2b97a4d8bbcec88db6d392c011f0f Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Thu, 6 Dec 2018 15:24:27 -0500 Subject: [PATCH 37/60] Add all 20 sims unit tests for fast mgc, With test data and matlab code to verify Refactor existing tests as well --- .../unit_tests/mgc/data/fast_mgc.m | 9 ++++ .../mgc/data/fast_mgc/circle_sim_fast_res.csv | 50 +++++++++++++++++++ .../mgc/data/fast_mgc/cub_sim_fast_res.csv | 50 +++++++++++++++++++ .../data/fast_mgc/ellipsis_sim_fast_res.csv | 50 +++++++++++++++++++ .../mgc/data/fast_mgc/exp_sim_fast_res.csv | 50 +++++++++++++++++++ .../mgc/data/fast_mgc/joint_sim_fast_res.csv | 50 +++++++++++++++++++ .../mgc/data/fast_mgc/linear_sim_fast_res.csv | 50 +++++++++++++++++++ .../mgc/data/fast_mgc/log_sim_fast_res.csv | 50 +++++++++++++++++++ .../fast_mgc/multi_indep_sim_fast_res.csv | 50 +++++++++++++++++++ .../fast_mgc/multi_noise_sim_fast_res.csv | 50 +++++++++++++++++++ .../mgc/data/fast_mgc/quad_sim_fast_res.csv | 50 +++++++++++++++++++ .../mgc/data/fast_mgc/root_sim_fast_res.csv | 50 +++++++++++++++++++ .../mgc/data/fast_mgc/sin_sim_16_fast_res.csv | 50 +++++++++++++++++++ .../mgc/data/fast_mgc/sin_sim_fast_res.csv | 50 +++++++++++++++++++ .../mgc/data/fast_mgc/spiral_sim_fast_res.csv | 50 +++++++++++++++++++ .../data/fast_mgc/square_sim__fast_res.csv | 50 +++++++++++++++++++ .../mgc/data/fast_mgc/square_sim_fast_res.csv | 50 +++++++++++++++++++ .../mgc/data/fast_mgc/step_sim_fast_res.csv | 50 +++++++++++++++++++ .../data/fast_mgc/two_parab_sim_fast_res.csv | 50 +++++++++++++++++++ .../mgc/data/fast_mgc/ubern_sim_fast_res.csv | 50 +++++++++++++++++++ .../mgc/data/fast_mgc/w_sim_fast_res.csv | 50 +++++++++++++++++++ .../mgc/data/{ => input}/circle_sim_x.csv | 0 .../mgc/data/{ => input}/circle_sim_y.csv | 0 .../mgc/data/{ => input}/cub_sim_x.csv | 0 .../mgc/data/{ => input}/cub_sim_y.csv | 0 .../mgc/data/{ => input}/ellipsis_sim_x.csv | 0 .../mgc/data/{ => input}/ellipsis_sim_y.csv | 0 .../mgc/data/{ => input}/exp_sim_x.csv | 0 .../mgc/data/{ => input}/exp_sim_y.csv | 0 .../mgc/data/{ => input}/joint_sim_x.csv | 0 .../mgc/data/{ => input}/joint_sim_y.csv | 0 .../mgc/data/{ => input}/linear_sim_x.csv | 0 .../mgc/data/{ => input}/linear_sim_y.csv | 0 .../mgc/data/{ => input}/log_sim_x.csv | 0 .../mgc/data/{ => input}/log_sim_y.csv | 0 .../data/{ => input}/multi_indep_sim_x.csv | 0 .../data/{ => input}/multi_indep_sim_y.csv | 0 .../data/{ => input}/multi_noise_sim_x.csv | 0 .../data/{ => input}/multi_noise_sim_y.csv | 0 .../mgc/data/{ => input}/quad_sim_x.csv | 0 .../mgc/data/{ => input}/quad_sim_y.csv | 0 .../mgc/data/{ => input}/root_sim_x.csv | 0 .../mgc/data/{ => input}/root_sim_y.csv | 0 .../mgc/data/{ => input}/sin_sim_16_x.csv | 0 .../mgc/data/{ => input}/sin_sim_16_y.csv | 0 .../mgc/data/{ => input}/sin_sim_x.csv | 0 .../mgc/data/{ => input}/sin_sim_y.csv | 0 .../mgc/data/{ => input}/spiral_sim_x.csv | 0 .../mgc/data/{ => input}/spiral_sim_y.csv | 0 .../mgc/data/{ => input}/square_sim__x.csv | 0 .../mgc/data/{ => input}/square_sim__y.csv | 0 .../mgc/data/{ => input}/square_sim_x.csv | 0 .../mgc/data/{ => input}/square_sim_y.csv | 0 .../mgc/data/{ => input}/step_sim_x.csv | 0 .../mgc/data/{ => input}/step_sim_y.csv | 0 .../mgc/data/{ => input}/two_parab_sim_x.csv | 0 .../mgc/data/{ => input}/two_parab_sim_y.csv | 0 .../mgc/data/{ => input}/ubern_sim_x.csv | 0 .../mgc/data/{ => input}/ubern_sim_y.csv | 0 .../mgc/data/{ => input}/w_sim_x.csv | 0 .../mgc/data/{ => input}/w_sim_y.csv | 0 .../mgc/data/{ => mgc}/circle_sim_res.csv | 0 .../mgc/data/{ => mgc}/cub_sim_res.csv | 0 .../mgc/data/{ => mgc}/ellipsis_sim_res.csv | 0 .../mgc/data/{ => mgc}/exp_sim_res.csv | 0 .../mgc/data/{ => mgc}/joint_sim_res.csv | 0 .../mgc/data/{ => mgc}/linear_sim_res.csv | 0 .../mgc/data/{ => mgc}/log_sim_res.csv | 0 .../data/{ => mgc}/multi_indep_sim_res.csv | 0 .../data/{ => mgc}/multi_noise_sim_res.csv | 0 .../mgc/data/{ => mgc}/quad_sim_res.csv | 0 .../mgc/data/{ => mgc}/root_sim_res.csv | 0 .../mgc/data/{ => mgc}/sin_sim_16_res.csv | 0 .../mgc/data/{ => mgc}/sin_sim_res.csv | 0 .../mgc/data/{ => mgc}/spiral_sim_res.csv | 0 .../mgc/data/{ => mgc}/square_sim__res.csv | 0 .../mgc/data/{ => mgc}/square_sim_res.csv | 0 .../mgc/data/{ => mgc}/step_sim_res.csv | 0 .../mgc/data/{ => mgc}/two_parab_sim_res.csv | 0 .../mgc/data/{ => mgc}/ubern_sim_res.csv | 0 .../mgc/data/{ => mgc}/w_sim_res.csv | 0 .../unit_tests/mgc/fast_mgc_test.py | 41 +++++++++++++++ .../unit_tests/mgc/p_value_test.py | 8 +-- 83 files changed, 1054 insertions(+), 4 deletions(-) create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc.m create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/circle_sim_fast_res.csv create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/cub_sim_fast_res.csv create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/ellipsis_sim_fast_res.csv create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/exp_sim_fast_res.csv create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/joint_sim_fast_res.csv create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/linear_sim_fast_res.csv create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/log_sim_fast_res.csv create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/multi_indep_sim_fast_res.csv create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/multi_noise_sim_fast_res.csv create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/quad_sim_fast_res.csv create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/root_sim_fast_res.csv create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/sin_sim_16_fast_res.csv create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/sin_sim_fast_res.csv create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/spiral_sim_fast_res.csv create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/square_sim__fast_res.csv create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/square_sim_fast_res.csv create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/step_sim_fast_res.csv create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/two_parab_sim_fast_res.csv create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/ubern_sim_fast_res.csv create mode 100644 mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/w_sim_fast_res.csv rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/circle_sim_x.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/circle_sim_y.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/cub_sim_x.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/cub_sim_y.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/ellipsis_sim_x.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/ellipsis_sim_y.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/exp_sim_x.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/exp_sim_y.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/joint_sim_x.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/joint_sim_y.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/linear_sim_x.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/linear_sim_y.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/log_sim_x.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/log_sim_y.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/multi_indep_sim_x.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/multi_indep_sim_y.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/multi_noise_sim_x.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/multi_noise_sim_y.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/quad_sim_x.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/quad_sim_y.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/root_sim_x.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/root_sim_y.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/sin_sim_16_x.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/sin_sim_16_y.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/sin_sim_x.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/sin_sim_y.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/spiral_sim_x.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/spiral_sim_y.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/square_sim__x.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/square_sim__y.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/square_sim_x.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/square_sim_y.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/step_sim_x.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/step_sim_y.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/two_parab_sim_x.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/two_parab_sim_y.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/ubern_sim_x.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/ubern_sim_y.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/w_sim_x.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => input}/w_sim_y.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => mgc}/circle_sim_res.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => mgc}/cub_sim_res.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => mgc}/ellipsis_sim_res.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => mgc}/exp_sim_res.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => mgc}/joint_sim_res.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => mgc}/linear_sim_res.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => mgc}/log_sim_res.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => mgc}/multi_indep_sim_res.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => mgc}/multi_noise_sim_res.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => mgc}/quad_sim_res.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => mgc}/root_sim_res.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => mgc}/sin_sim_16_res.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => mgc}/sin_sim_res.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => mgc}/spiral_sim_res.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => mgc}/square_sim__res.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => mgc}/square_sim_res.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => mgc}/step_sim_res.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => mgc}/two_parab_sim_res.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => mgc}/ubern_sim_res.csv (100%) rename mgcpy/independence_tests/unit_tests/mgc/data/{ => mgc}/w_sim_res.csv (100%) diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc.m b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc.m new file mode 100644 index 0000000..21469ae --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc.m @@ -0,0 +1,9 @@ +simulations = ["linear_sim", "exp_sim", "cub_sim", "joint_sim", "step_sim", "quad_sim", "w_sim", "spiral_sim", "ubern_sim", "log_sim", "root_sim", "sin_sim", "sin_sim_16", "square_sim", "two_parab_sim", "circle_sim", "ellipsis_sim", "square_sim_", "multi_noise_sim", "multi_indep_sim"]; +for idx = 1:numel(simulations) + sim_name = simulations(idx); + X = csvread(strcat("data/",sim_name,"_x.csv")); + Y = csvread(strcat("data/",sim_name,"_y.csv")); + [a, b, c, d, e, f] = MGCFastTest(X, Y); + [m, n] = size(c); + csvwrite(strcat("data/fast_mgc/",sim_name,"_fast_res.csv"), [ones(m, 1)*a, ones(m, 1)*b, c, ones(m, 1)*d, ones(m, 1)*e, ones(m, 1)*f]) +end \ No newline at end of file diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/circle_sim_fast_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/circle_sim_fast_res.csv new file mode 100644 index 0000000..0733d9d --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/circle_sim_fast_res.csv @@ -0,0 +1,50 @@ +0.37127,0.0053106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.078812,0.05079,0.026839,0.023297,0.048307,0.041545,0.058037,0.063727,0.068285,0.058373,0.066148,0.057646,0.055849,0.055314,0.04861,0.048986,0.043008,0.045444,0.040634,0.038089,0.036913,0.03578,0.034256,0.033837,0.035146,0.033852,0.03559,0.036768,0.038122,0.032005,0.028805,0.032544,0.034821,0.033064,0.034785,0.030639,0.030605,0.029306,0.033373,0.035755,0.03953,0.043154,0.036548,0.035593,0.039125,0.0383,0.04155,0.040335,0.043312,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.03867,0.010956,-0.013382,-0.021843,0.011611,0.0081285,0.0272,0.042627,0.040356,0.038114,0.039073,0.039113,0.039077,0.03917,0.030192,0.035738,0.027879,0.027043,0.023996,0.024465,0.023694,0.021912,0.02108,0.021168,0.021824,0.019905,0.020982,0.022148,0.023527,0.01789,0.01005,0.012932,0.013559,0.01244,0.017466,0.014752,0.015476,0.014903,0.021708,0.020502,0.022561,0.029023,0.024603,0.021186,0.02413,0.02386,0.026659,0.022815,0.028306,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.095,0.060844,0.030625,0.018872,0.05995,0.046985,0.063685,0.087764,0.08734,0.079253,0.074309,0.077396,0.082978,0.082463,0.070708,0.071198,0.064362,0.064656,0.0652,0.0659,0.066774,0.066767,0.065425,0.065311,0.065686,0.064161,0.065195,0.066312,0.068119,0.064737,0.056574,0.057297,0.05948,0.057304,0.056505,0.053032,0.052902,0.047852,0.048909,0.049775,0.05331,0.060443,0.058373,0.054508,0.055834,0.0571,0.058337,0.053942,0.059905,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.067518,0.048684,0.032416,0.015167,0.044776,0.038954,0.053532,0.069926,0.068338,0.057932,0.054264,0.05664,0.060946,0.061085,0.048499,0.04661,0.041513,0.039687,0.038353,0.039545,0.040542,0.040485,0.038704,0.039566,0.03964,0.038467,0.039085,0.040254,0.041601,0.037156,0.032598,0.032038,0.030937,0.027323,0.026635,0.021205,0.019129,0.015645,0.017543,0.01837,0.021103,0.028042,0.026206,0.023898,0.027165,0.028598,0.028583,0.025468,0.029465,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.076737,0.046584,0.025135,0.014119,0.040609,0.042273,0.050752,0.061581,0.066859,0.057012,0.051605,0.054345,0.055508,0.053126,0.043368,0.039454,0.032875,0.030806,0.027943,0.03187,0.032202,0.032892,0.031392,0.032967,0.033313,0.032224,0.033252,0.034555,0.036526,0.032911,0.028232,0.029537,0.028295,0.024924,0.022548,0.017452,0.015186,0.0093408,0.013237,0.016061,0.015904,0.020667,0.020022,0.018524,0.019713,0.021122,0.019627,0.017162,0.021211,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.071649,0.036413,0.017955,0.019485,0.043676,0.04679,0.054232,0.060671,0.068805,0.059077,0.05216,0.054569,0.053797,0.051851,0.040575,0.035599,0.02761,0.025665,0.021466,0.023952,0.024411,0.024399,0.02342,0.024429,0.024796,0.024117,0.025074,0.025548,0.02758,0.023885,0.021242,0.02014,0.019487,0.0164,0.016134,0.011583,0.0092355,0.0039455,0.0084765,0.013047,0.012903,0.015517,0.016859,0.015981,0.015801,0.017342,0.016021,0.014053,0.016238,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.071723,0.039272,0.015617,0.016798,0.036397,0.036241,0.047452,0.053344,0.064146,0.060005,0.056227,0.056155,0.053223,0.050668,0.03962,0.033011,0.02565,0.023309,0.020085,0.0216,0.021581,0.022764,0.021752,0.022331,0.024563,0.023759,0.024798,0.025586,0.028145,0.024409,0.023273,0.023596,0.022589,0.018968,0.018647,0.015003,0.010594,0.0045423,0.010552,0.016513,0.015329,0.017449,0.017955,0.017212,0.016893,0.017201,0.015948,0.014265,0.016006,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.098685,0.051761,0.029359,0.028309,0.042102,0.044157,0.053665,0.059117,0.068964,0.064588,0.063376,0.063159,0.060314,0.058767,0.047948,0.039756,0.032338,0.028453,0.026105,0.027875,0.027818,0.029586,0.029235,0.029855,0.031856,0.030835,0.03192,0.032774,0.033162,0.029319,0.029459,0.029538,0.029872,0.025715,0.025211,0.021366,0.016994,0.010221,0.014877,0.020407,0.020656,0.024002,0.025755,0.023713,0.023143,0.023203,0.021803,0.020141,0.022909,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.087852,0.043869,0.018791,0.015045,0.031971,0.03771,0.049439,0.054622,0.061959,0.055694,0.05658,0.058988,0.058485,0.058163,0.04936,0.044607,0.037223,0.034387,0.030817,0.0318,0.031986,0.033363,0.032703,0.034539,0.036368,0.035484,0.036632,0.037562,0.03698,0.033182,0.032646,0.033872,0.035414,0.029269,0.028902,0.026427,0.02173,0.016413,0.019431,0.023345,0.021663,0.025456,0.026425,0.024666,0.025403,0.025699,0.024561,0.022954,0.025928,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.078227,0.048551,0.025592,0.020517,0.035922,0.042353,0.052942,0.060071,0.066814,0.06312,0.064545,0.066498,0.066705,0.066088,0.058772,0.05384,0.045072,0.040823,0.038496,0.040236,0.040392,0.042524,0.041866,0.043412,0.04541,0.044369,0.045572,0.046568,0.046051,0.043159,0.042069,0.043924,0.045922,0.038996,0.039668,0.036561,0.032986,0.025644,0.029637,0.033286,0.032033,0.035464,0.036663,0.034826,0.036457,0.037599,0.037287,0.036463,0.03909,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.076761,0.059087,0.037964,0.028217,0.04283,0.047732,0.060424,0.064676,0.070627,0.070752,0.070067,0.070125,0.070622,0.068434,0.059814,0.054963,0.048889,0.043446,0.041663,0.04383,0.044113,0.045899,0.045302,0.046804,0.048688,0.047588,0.048844,0.049794,0.049538,0.04755,0.045832,0.048218,0.049489,0.040775,0.041603,0.038201,0.033522,0.024883,0.029073,0.0318,0.030325,0.034933,0.036254,0.03375,0.035501,0.03776,0.037651,0.035984,0.039594,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.081738,0.057892,0.040945,0.033799,0.047351,0.054537,0.067697,0.071111,0.074806,0.073629,0.07117,0.070156,0.071039,0.067477,0.057812,0.051834,0.046798,0.040388,0.037706,0.04117,0.041398,0.043009,0.042793,0.044481,0.046319,0.045502,0.046721,0.047742,0.047917,0.04551,0.04484,0.046959,0.046701,0.036974,0.03897,0.036798,0.032193,0.023951,0.028274,0.029896,0.028642,0.032324,0.032468,0.030235,0.031816,0.034697,0.034713,0.033405,0.036179,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.080339,0.059589,0.039195,0.02944,0.040711,0.052535,0.068994,0.076749,0.078448,0.07552,0.071488,0.072349,0.075626,0.071983,0.061143,0.055612,0.05055,0.045443,0.04337,0.047541,0.047966,0.049609,0.049174,0.05121,0.053253,0.052488,0.053398,0.054328,0.054419,0.051657,0.05041,0.051828,0.05099,0.042247,0.043577,0.042324,0.037975,0.029198,0.033431,0.035015,0.03464,0.038399,0.03853,0.036265,0.036635,0.038234,0.039071,0.03784,0.040361,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.081741,0.060462,0.038952,0.026649,0.038205,0.053151,0.071669,0.081392,0.089827,0.086514,0.080733,0.082002,0.086946,0.083124,0.072102,0.065296,0.059088,0.054314,0.052552,0.056218,0.057087,0.058513,0.058159,0.060111,0.062727,0.061904,0.062547,0.063531,0.063894,0.060828,0.058614,0.057977,0.056634,0.048325,0.050424,0.048953,0.045383,0.035738,0.040714,0.043003,0.043056,0.046781,0.046953,0.045341,0.045556,0.047741,0.048202,0.046823,0.049264,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.086113,0.062443,0.037933,0.026061,0.037085,0.051642,0.071632,0.080909,0.09146,0.08674,0.07996,0.080046,0.083876,0.080748,0.069142,0.06283,0.055818,0.051448,0.049893,0.053066,0.053934,0.055114,0.054782,0.056712,0.05923,0.058231,0.058798,0.059788,0.059117,0.056794,0.054481,0.052326,0.050536,0.042027,0.045117,0.043545,0.040374,0.031811,0.036372,0.039633,0.039626,0.042432,0.042539,0.041066,0.040772,0.043221,0.043936,0.042767,0.04442,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.088876,0.063925,0.040926,0.026602,0.035702,0.048663,0.070123,0.078074,0.088672,0.085984,0.078453,0.077523,0.080408,0.07778,0.065353,0.059541,0.052896,0.049583,0.04927,0.05269,0.053347,0.054543,0.054396,0.056272,0.058738,0.057826,0.058452,0.059399,0.058665,0.056931,0.055297,0.052728,0.050481,0.041675,0.044898,0.041954,0.039065,0.029574,0.034984,0.038173,0.03801,0.040459,0.040389,0.038332,0.038335,0.041586,0.042029,0.041112,0.042443,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.087838,0.066514,0.045254,0.03081,0.041759,0.055618,0.07598,0.082268,0.091507,0.089104,0.082142,0.081921,0.083782,0.080217,0.066935,0.060307,0.053922,0.049894,0.049297,0.053252,0.053718,0.055248,0.055153,0.056883,0.059297,0.058325,0.058876,0.059537,0.059067,0.056245,0.054354,0.05145,0.048784,0.039197,0.042181,0.039057,0.036969,0.027784,0.033965,0.037888,0.038452,0.04001,0.039815,0.038292,0.038301,0.040903,0.042023,0.041291,0.041846,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.08422,0.06541,0.044138,0.030728,0.045733,0.059081,0.07795,0.082948,0.091089,0.087667,0.08149,0.080386,0.081435,0.07709,0.064397,0.058219,0.051188,0.047489,0.047203,0.051206,0.05147,0.053372,0.053637,0.055343,0.057743,0.056755,0.057358,0.058094,0.057431,0.054244,0.052251,0.049966,0.047961,0.038495,0.041165,0.037691,0.034699,0.026234,0.032284,0.035949,0.03587,0.036647,0.036323,0.035566,0.036309,0.039201,0.039775,0.039253,0.039513,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.081043,0.064252,0.041197,0.027459,0.041389,0.054956,0.074538,0.078661,0.087171,0.086617,0.081163,0.079235,0.080764,0.076232,0.064013,0.057146,0.050373,0.046538,0.047369,0.051432,0.051744,0.05367,0.054087,0.055784,0.058184,0.057232,0.05799,0.058679,0.057789,0.054217,0.051238,0.049506,0.047306,0.038391,0.040756,0.036905,0.03354,0.025576,0.031107,0.03508,0.034588,0.035572,0.035901,0.035764,0.036215,0.038812,0.039829,0.03911,0.039546,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.077916,0.062512,0.037981,0.023059,0.037073,0.052117,0.070834,0.075411,0.083112,0.082171,0.078637,0.077476,0.080889,0.077149,0.065343,0.058109,0.050741,0.047221,0.047833,0.051963,0.052323,0.054293,0.054757,0.056441,0.058834,0.057831,0.058592,0.059325,0.058222,0.054179,0.051688,0.04913,0.046054,0.037678,0.039732,0.036454,0.033193,0.02533,0.030296,0.034348,0.034438,0.03599,0.036403,0.036461,0.036526,0.039101,0.040287,0.040051,0.040582,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.082555,0.064971,0.038517,0.023326,0.036957,0.050992,0.069648,0.075783,0.084682,0.084007,0.080298,0.079039,0.081814,0.077473,0.066334,0.059427,0.052158,0.048501,0.048692,0.052574,0.053037,0.055093,0.05565,0.057221,0.059617,0.058705,0.05941,0.059953,0.05855,0.054384,0.05166,0.048317,0.045058,0.036717,0.039264,0.036466,0.033231,0.02479,0.029171,0.033436,0.034033,0.035437,0.036343,0.036871,0.03738,0.039696,0.041302,0.041135,0.041485,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.080606,0.062199,0.036558,0.021665,0.035368,0.048736,0.066867,0.073027,0.082412,0.082013,0.078291,0.077749,0.08103,0.077499,0.065871,0.058522,0.051754,0.048815,0.049142,0.053164,0.053627,0.055775,0.056301,0.057912,0.060292,0.059348,0.060083,0.060588,0.059176,0.055281,0.05227,0.048715,0.045812,0.036857,0.0398,0.036814,0.033954,0.025083,0.029626,0.033516,0.033853,0.03507,0.035588,0.036532,0.036645,0.039268,0.040861,0.040619,0.040809,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.079226,0.060249,0.036476,0.021485,0.034591,0.047464,0.065837,0.072238,0.081224,0.080915,0.077483,0.077075,0.080032,0.076587,0.065631,0.058363,0.052701,0.049612,0.050138,0.054219,0.054706,0.056792,0.05733,0.058942,0.061341,0.060375,0.061017,0.061549,0.060069,0.055947,0.053009,0.049613,0.046204,0.037326,0.04009,0.036158,0.033584,0.024982,0.029304,0.032908,0.033541,0.035048,0.035843,0.036946,0.037311,0.040102,0.041598,0.041579,0.041831,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.078642,0.062644,0.037722,0.021945,0.035084,0.048172,0.066468,0.072835,0.081452,0.08079,0.077032,0.076333,0.079027,0.07591,0.06518,0.058953,0.0531,0.050251,0.050896,0.055046,0.055549,0.057607,0.058145,0.059761,0.062171,0.061199,0.061858,0.062402,0.060861,0.056504,0.053629,0.050413,0.047195,0.038488,0.040794,0.036384,0.033907,0.025506,0.029598,0.032901,0.033634,0.034893,0.035536,0.036583,0.037036,0.040058,0.041689,0.041871,0.041706,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.077949,0.06249,0.038017,0.022161,0.035302,0.049123,0.068069,0.074098,0.08245,0.081528,0.078208,0.077831,0.081033,0.078179,0.068108,0.061729,0.056108,0.053045,0.053528,0.057727,0.058201,0.060231,0.060784,0.062401,0.064817,0.063834,0.064489,0.065046,0.063464,0.058624,0.055838,0.052704,0.049571,0.040931,0.043054,0.038725,0.036327,0.02799,0.032035,0.035404,0.036043,0.037378,0.038053,0.039166,0.03968,0.042594,0.044112,0.044096,0.043993,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.077577,0.061984,0.03738,0.021405,0.034494,0.048234,0.067116,0.073079,0.081355,0.080444,0.077062,0.076938,0.080071,0.077508,0.06737,0.061203,0.055387,0.052244,0.052964,0.057203,0.05765,0.059646,0.060185,0.061797,0.064211,0.063231,0.063883,0.064461,0.062814,0.057991,0.05532,0.052211,0.049167,0.040374,0.042564,0.038313,0.035931,0.027312,0.031496,0.03499,0.035599,0.036881,0.037664,0.03882,0.039095,0.041978,0.043511,0.043159,0.043144,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.077323,0.062923,0.038497,0.023263,0.036363,0.050126,0.069004,0.074556,0.082915,0.082059,0.078153,0.077565,0.080661,0.078208,0.067569,0.061514,0.055851,0.052795,0.053458,0.057639,0.057973,0.059974,0.060484,0.062082,0.064484,0.063522,0.064172,0.06474,0.063266,0.05858,0.055987,0.053032,0.050008,0.041126,0.043483,0.039253,0.036787,0.028066,0.032482,0.036026,0.036502,0.037652,0.038308,0.039508,0.039614,0.042323,0.043634,0.043053,0.043014,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.078002,0.062817,0.038369,0.023619,0.037044,0.050513,0.069536,0.07508,0.083671,0.083308,0.079179,0.078093,0.081387,0.078883,0.068481,0.062141,0.056058,0.052686,0.053337,0.057222,0.05757,0.059514,0.060019,0.061556,0.06388,0.06294,0.063616,0.064237,0.062774,0.058139,0.055843,0.052742,0.049562,0.041069,0.043234,0.038864,0.036235,0.027864,0.032078,0.035573,0.036307,0.03716,0.038315,0.039325,0.03928,0.041962,0.043067,0.042184,0.041881,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.076417,0.0609,0.036861,0.022264,0.035003,0.049044,0.068517,0.074484,0.082954,0.082952,0.079165,0.077848,0.081265,0.07904,0.069031,0.062412,0.055918,0.052112,0.052577,0.056103,0.056459,0.058342,0.058895,0.060395,0.062672,0.061727,0.062435,0.063115,0.06168,0.057107,0.055121,0.052013,0.048647,0.040585,0.042669,0.038107,0.035326,0.027394,0.031375,0.03486,0.035877,0.036512,0.038276,0.039365,0.039126,0.041606,0.042534,0.041372,0.040898,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.075561,0.061336,0.037956,0.022756,0.036022,0.050488,0.070266,0.076575,0.085373,0.085703,0.081475,0.079976,0.083352,0.081001,0.070692,0.063755,0.056817,0.052662,0.053039,0.056505,0.056889,0.058713,0.059258,0.060748,0.063011,0.062089,0.06283,0.063568,0.062355,0.057984,0.05635,0.053158,0.049759,0.041455,0.043837,0.039359,0.036276,0.028107,0.032337,0.035901,0.037296,0.037986,0.039978,0.040875,0.040313,0.042544,0.043261,0.04184,0.041482,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.076865,0.061689,0.036969,0.020637,0.034757,0.049886,0.069382,0.075867,0.084688,0.08551,0.081327,0.080258,0.083696,0.081733,0.07158,0.064393,0.057076,0.052632,0.052884,0.056232,0.056699,0.058472,0.059017,0.060433,0.062608,0.06171,0.062482,0.063315,0.062249,0.05803,0.056714,0.053555,0.050107,0.04155,0.044057,0.039638,0.036637,0.028186,0.032842,0.036045,0.037686,0.038439,0.040968,0.041596,0.040888,0.042778,0.043183,0.041657,0.041416,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.078554,0.061677,0.038277,0.021554,0.036395,0.049945,0.070033,0.07544,0.083344,0.084785,0.080276,0.079754,0.083265,0.081293,0.070906,0.064199,0.057322,0.052617,0.052762,0.056039,0.05647,0.058235,0.058806,0.060217,0.062383,0.061529,0.062355,0.06329,0.06246,0.058459,0.057386,0.054872,0.051945,0.043038,0.045767,0.041413,0.038205,0.029368,0.034234,0.036982,0.038186,0.038955,0.041474,0.042077,0.041631,0.043571,0.043582,0.041885,0.041642,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.078627,0.063558,0.040256,0.02478,0.040355,0.05227,0.072098,0.075492,0.084134,0.086283,0.082459,0.08254,0.086585,0.085166,0.074225,0.06803,0.061073,0.055911,0.055978,0.059244,0.059646,0.061401,0.062004,0.063412,0.065569,0.06478,0.065677,0.066559,0.065916,0.062041,0.061262,0.059121,0.056815,0.0474,0.050516,0.046388,0.043464,0.034143,0.039153,0.041565,0.04258,0.043576,0.045839,0.046142,0.046158,0.048318,0.048085,0.046254,0.046225,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.076744,0.064663,0.043444,0.027423,0.044036,0.056037,0.074965,0.077516,0.087014,0.088298,0.085379,0.08624,0.089791,0.087834,0.077743,0.070101,0.06109,0.055287,0.055022,0.057948,0.058275,0.059869,0.060338,0.061764,0.064007,0.063183,0.064054,0.064914,0.064358,0.060793,0.060428,0.057741,0.054854,0.046043,0.048972,0.044908,0.041796,0.033002,0.037281,0.03989,0.041946,0.042262,0.045293,0.045622,0.04548,0.046985,0.046776,0.044851,0.044273,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.073558,0.065003,0.046125,0.03194,0.047512,0.060503,0.077412,0.080974,0.091312,0.089754,0.086421,0.088153,0.091305,0.08779,0.076298,0.067872,0.059044,0.054052,0.053513,0.056125,0.056039,0.057275,0.057593,0.059036,0.061275,0.060313,0.060975,0.061667,0.061298,0.058057,0.058018,0.055853,0.05328,0.044928,0.047743,0.043696,0.040832,0.032502,0.036356,0.038228,0.040294,0.039927,0.042688,0.042946,0.04219,0.043249,0.043074,0.04087,0.040281,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.069898,0.065383,0.049173,0.034862,0.047323,0.059341,0.077512,0.079081,0.086286,0.084482,0.07995,0.082889,0.084646,0.079644,0.068792,0.061578,0.053869,0.04867,0.047631,0.049697,0.049317,0.050289,0.050419,0.051768,0.053888,0.052886,0.053561,0.054167,0.053872,0.050965,0.051394,0.049785,0.047669,0.03997,0.04267,0.038905,0.036423,0.028808,0.031842,0.032978,0.035066,0.034659,0.036691,0.036894,0.035537,0.036404,0.036551,0.034044,0.032946,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.066071,0.058687,0.040905,0.02528,0.037081,0.04925,0.06932,0.07278,0.080673,0.079705,0.076622,0.080699,0.083523,0.079398,0.069749,0.062938,0.0562,0.050391,0.050068,0.052612,0.052278,0.053183,0.053311,0.05472,0.056876,0.055973,0.056709,0.05754,0.056898,0.053346,0.054214,0.053141,0.051419,0.042984,0.04565,0.04126,0.039204,0.031001,0.033572,0.033979,0.036124,0.035411,0.03702,0.037541,0.035342,0.035366,0.036176,0.033585,0.032367,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.064458,0.056311,0.041949,0.028953,0.041162,0.051529,0.072613,0.074799,0.08212,0.082458,0.080598,0.085631,0.08939,0.086332,0.074314,0.066862,0.060757,0.053961,0.053205,0.055544,0.054762,0.055654,0.05583,0.057128,0.059284,0.058516,0.059211,0.060095,0.059786,0.05667,0.058114,0.058659,0.05837,0.049695,0.052526,0.04859,0.046671,0.037972,0.040702,0.03997,0.040943,0.040298,0.040779,0.040778,0.037877,0.036948,0.036832,0.033689,0.032715,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.064287,0.059578,0.04257,0.029672,0.043739,0.054137,0.072524,0.072651,0.079363,0.077699,0.076461,0.08242,0.085288,0.08209,0.07155,0.065291,0.059444,0.053767,0.053841,0.056643,0.055662,0.056428,0.056478,0.05784,0.060172,0.059385,0.060248,0.061045,0.060518,0.057014,0.058759,0.059667,0.059788,0.051192,0.053452,0.048602,0.047317,0.039086,0.040694,0.038991,0.03896,0.037599,0.037151,0.036282,0.033373,0.033066,0.032158,0.028649,0.026992,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.062824,0.058154,0.036264,0.022964,0.037479,0.050099,0.070078,0.069839,0.077207,0.074804,0.074199,0.080282,0.084321,0.08123,0.072082,0.066961,0.062183,0.057512,0.058344,0.061666,0.061147,0.062174,0.062485,0.06392,0.066287,0.065266,0.065626,0.065863,0.064938,0.0607,0.062485,0.062704,0.061782,0.052429,0.054849,0.04936,0.047782,0.038735,0.040788,0.039794,0.039728,0.038102,0.038264,0.037285,0.033779,0.032522,0.031075,0.027109,0.025408,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.066782,0.064304,0.042034,0.025131,0.041392,0.055481,0.076334,0.075946,0.082407,0.07986,0.08056,0.084702,0.089523,0.087165,0.078313,0.071681,0.066022,0.059702,0.060423,0.064217,0.063715,0.06463,0.064846,0.066307,0.068693,0.067939,0.068555,0.068681,0.067354,0.062393,0.064499,0.06369,0.06207,0.052584,0.053821,0.047835,0.04524,0.036326,0.037259,0.036506,0.037746,0.035131,0.035811,0.034461,0.031194,0.030081,0.028402,0.023684,0.021202,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.055973,0.057803,0.040451,0.025263,0.039171,0.055166,0.073672,0.073106,0.081147,0.080323,0.081134,0.085078,0.091041,0.088846,0.08146,0.075392,0.070204,0.065014,0.066527,0.069814,0.068775,0.069246,0.069105,0.070206,0.072202,0.071171,0.07138,0.071192,0.070048,0.06548,0.067446,0.067682,0.067202,0.056878,0.058234,0.052521,0.050594,0.040694,0.042677,0.041584,0.041489,0.040124,0.040201,0.038463,0.034692,0.033138,0.031365,0.027124,0.025762,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.055839,0.051963,0.03678,0.025466,0.038396,0.053617,0.069144,0.069533,0.077861,0.074942,0.076485,0.080045,0.084029,0.080133,0.07382,0.067373,0.061708,0.057931,0.058743,0.06138,0.060661,0.06138,0.061612,0.062702,0.064645,0.063608,0.063737,0.063479,0.062556,0.058626,0.059905,0.059254,0.057866,0.049512,0.050685,0.045757,0.042928,0.035117,0.036764,0.036114,0.036616,0.034302,0.034136,0.031533,0.028626,0.027343,0.025537,0.021595,0.020012,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.059998,0.058358,0.041634,0.030939,0.042608,0.055141,0.069839,0.070019,0.077562,0.074272,0.076057,0.08089,0.084311,0.080855,0.073831,0.067669,0.06231,0.058764,0.059572,0.06164,0.060753,0.061284,0.061395,0.06204,0.06351,0.062461,0.062508,0.062182,0.061376,0.057807,0.059432,0.060075,0.060059,0.051706,0.052982,0.0486,0.045913,0.037943,0.040552,0.039414,0.038649,0.037121,0.035732,0.032377,0.028467,0.02618,0.024429,0.020546,0.019229,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.049035,0.049751,0.029706,0.023678,0.038092,0.050506,0.065637,0.067911,0.074417,0.073005,0.072543,0.076903,0.079044,0.077138,0.069656,0.063086,0.057492,0.055232,0.055389,0.056852,0.055869,0.056161,0.056109,0.056712,0.058269,0.057069,0.056939,0.056438,0.05575,0.052663,0.054406,0.054085,0.053412,0.046008,0.046217,0.042469,0.039205,0.032319,0.0338,0.033113,0.03271,0.031314,0.030337,0.026162,0.023516,0.022155,0.019551,0.0159,0.014665,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.047287,0.039901,0.019549,0.015138,0.027519,0.038017,0.051136,0.056072,0.062463,0.063186,0.064636,0.068639,0.070715,0.070193,0.064414,0.059373,0.0552,0.053322,0.053705,0.054743,0.054112,0.054694,0.054922,0.055147,0.056266,0.055062,0.05511,0.054817,0.054152,0.051504,0.052402,0.051342,0.049616,0.042656,0.041768,0.038242,0.03426,0.02799,0.028638,0.026962,0.025997,0.02454,0.024187,0.020727,0.018428,0.016543,0.013552,0.0099685,0.0086757,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.044257,0.042252,0.022741,0.014385,0.026771,0.03943,0.054152,0.060786,0.067742,0.066628,0.069584,0.072971,0.073901,0.074462,0.07004,0.063114,0.060233,0.059461,0.060745,0.062499,0.061934,0.062384,0.062547,0.062904,0.064296,0.063438,0.063479,0.063181,0.062225,0.0586,0.059756,0.059066,0.057835,0.050017,0.049261,0.045135,0.041514,0.034017,0.034368,0.032084,0.031022,0.028697,0.026953,0.023829,0.020318,0.017277,0.014806,0.010661,0.008865,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.049951,0.046675,0.023182,0.015815,0.024706,0.034387,0.048761,0.055242,0.06274,0.062501,0.067349,0.070665,0.073103,0.075088,0.071016,0.065872,0.064465,0.063616,0.064735,0.065968,0.065848,0.066673,0.067197,0.066797,0.06787,0.066986,0.067222,0.067143,0.066259,0.063451,0.063122,0.06239,0.061654,0.052802,0.052192,0.048317,0.044836,0.036164,0.03661,0.033315,0.030795,0.028729,0.02658,0.022211,0.018,0.014966,0.012732,0.0088513,0.007421,2500,-0.032299,0.04292,360 +0.37127,0.0053106,0,0.056043,0.052108,0.026224,0.016467,0.026181,0.038514,0.054665,0.060849,0.068483,0.068378,0.074903,0.079196,0.08284,0.085293,0.082081,0.077452,0.07637,0.076682,0.078036,0.079372,0.079768,0.081034,0.081461,0.081287,0.082142,0.081217,0.081633,0.081403,0.079826,0.076068,0.074754,0.073093,0.07196,0.062417,0.061233,0.056285,0.052176,0.042928,0.041986,0.037652,0.034427,0.031351,0.028418,0.023508,0.018571,0.014678,0.011911,0.0074495,0.0053106,2500,-0.032299,0.04292,360 diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/cub_sim_fast_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/cub_sim_fast_res.csv new file mode 100644 index 0000000..6171b1c --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/cub_sim_fast_res.csv @@ -0,0 +1,50 @@ +0,0.37325,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2500,0.27443,0.47207,20 +0,0.37325,0,0.095742,0.06714,0.091629,0.1152,0.098058,0.10075,0.12684,0.12976,0.1397,0.14733,0.13963,0.14185,0.14779,0.14511,0.15577,0.15112,0.14686,0.14835,0.15454,0.15878,0.15627,0.15885,0.15727,0.15779,0.1565,0.15644,0.15817,0.15784,0.15786,0.15812,0.15838,0.15957,0.15913,0.15955,0.16019,0.16073,0.16139,0.16038,0.15092,0.15223,0.15497,0.15791,0.15576,0.1567,0.15676,0.15487,0.15543,0.15195,0.15264,2500,0.27443,0.47207,20 +0,0.37325,0,0.049874,0.054638,0.089138,0.11104,0.094775,0.094809,0.1369,0.14353,0.15014,0.16064,0.15034,0.15037,0.15906,0.16467,0.16879,0.16925,0.16816,0.17038,0.17234,0.17446,0.17395,0.17435,0.17205,0.17237,0.17058,0.17136,0.17369,0.17325,0.17338,0.17243,0.17239,0.17243,0.17206,0.17324,0.17203,0.17352,0.17475,0.17406,0.16627,0.16686,0.16615,0.16709,0.16597,0.16948,0.17205,0.17267,0.17594,0.17463,0.17855,2500,0.27443,0.47207,20 +0,0.37325,0,0.028799,0.039258,0.062237,0.076175,0.071956,0.075033,0.11064,0.11842,0.12002,0.12994,0.12233,0.12123,0.13629,0.1442,0.14669,0.14675,0.14599,0.15116,0.15081,0.15683,0.1548,0.15719,0.15413,0.15528,0.15301,0.15322,0.15497,0.15475,0.15506,0.154,0.15466,0.15437,0.15501,0.15727,0.15768,0.1595,0.15911,0.15791,0.15332,0.15613,0.15388,0.15774,0.14654,0.15383,0.15363,0.15905,0.16679,0.17018,0.17084,2500,0.27443,0.47207,20 +0,0.37325,0,0.056113,0.071582,0.080688,0.085052,0.081452,0.084659,0.12285,0.13035,0.13394,0.14517,0.13459,0.13441,0.14726,0.15661,0.16532,0.17042,0.16913,0.17481,0.17271,0.17671,0.17616,0.17725,0.17524,0.17667,0.1739,0.17372,0.17512,0.17402,0.17354,0.17248,0.17356,0.17394,0.17524,0.17816,0.17951,0.18219,0.18291,0.18173,0.1722,0.16881,0.16891,0.17211,0.16275,0.16214,0.16518,0.16994,0.18082,0.18698,0.18342,2500,0.27443,0.47207,20 +0,0.37325,0,0.039302,0.048438,0.056068,0.059398,0.052531,0.057918,0.090966,0.10592,0.10949,0.12404,0.11633,0.12306,0.13815,0.1458,0.15138,0.15664,0.15534,0.16038,0.16112,0.16326,0.16565,0.16703,0.16435,0.165,0.16192,0.16103,0.16278,0.16109,0.16082,0.15973,0.16148,0.1611,0.16325,0.16688,0.16687,0.17053,0.17077,0.1712,0.16081,0.15965,0.16188,0.16549,0.15964,0.15408,0.15735,0.15948,0.17332,0.1771,0.17084,2500,0.27443,0.47207,20 +0,0.37325,0,0.048449,0.055792,0.060731,0.066589,0.060982,0.061734,0.092715,0.1033,0.10835,0.12894,0.11902,0.1282,0.14365,0.15178,0.15502,0.16021,0.16303,0.16765,0.16984,0.17176,0.1739,0.17616,0.17291,0.17419,0.17185,0.17132,0.17278,0.17107,0.17086,0.16996,0.17199,0.17215,0.1736,0.17735,0.17816,0.18243,0.18133,0.18156,0.16897,0.16664,0.17049,0.17368,0.16601,0.15939,0.1631,0.16486,0.17846,0.18475,0.18267,2500,0.27443,0.47207,20 +0,0.37325,0,0.042937,0.067632,0.070271,0.077147,0.067374,0.068752,0.093902,0.10054,0.10612,0.1252,0.11988,0.12776,0.14404,0.15336,0.15769,0.16826,0.17237,0.17518,0.17594,0.17657,0.17934,0.18149,0.17852,0.17981,0.17796,0.17749,0.17868,0.17726,0.17716,0.17631,0.17848,0.17909,0.18094,0.185,0.18644,0.18979,0.18795,0.18632,0.17428,0.17335,0.1784,0.18001,0.17466,0.17041,0.17558,0.17115,0.18356,0.19142,0.18454,2500,0.27443,0.47207,20 +0,0.37325,0,0.053294,0.077776,0.076689,0.078226,0.069041,0.071661,0.096381,0.099838,0.10402,0.11978,0.11721,0.12378,0.13947,0.14913,0.15394,0.16243,0.16798,0.17052,0.1717,0.17125,0.17361,0.17482,0.17267,0.17495,0.17342,0.17337,0.17436,0.17297,0.17295,0.17168,0.17337,0.17445,0.17684,0.18042,0.18208,0.18612,0.18301,0.18146,0.17127,0.17171,0.17601,0.17629,0.17053,0.16501,0.16764,0.16641,0.17665,0.18727,0.18463,2500,0.27443,0.47207,20 +0,0.37325,0,0.061497,0.086936,0.094483,0.093698,0.088257,0.091723,0.117,0.1214,0.1255,0.13796,0.13708,0.14317,0.15839,0.16897,0.17312,0.18204,0.18917,0.19036,0.19048,0.18913,0.19224,0.19278,0.19021,0.19225,0.19041,0.19033,0.19113,0.18976,0.1898,0.18857,0.1904,0.19176,0.19336,0.19646,0.19852,0.20288,0.19944,0.19803,0.18908,0.18725,0.19064,0.19218,0.18789,0.18168,0.1826,0.18257,0.19381,0.1998,0.18981,2500,0.27443,0.47207,20 +0,0.37325,0,0.0639,0.082331,0.094847,0.09042,0.08715,0.094091,0.11955,0.12677,0.13054,0.14038,0.1436,0.14758,0.16055,0.17193,0.17559,0.18286,0.19049,0.19192,0.19409,0.19479,0.19752,0.19786,0.1949,0.19779,0.1958,0.19592,0.19637,0.19499,0.1951,0.19409,0.19611,0.19777,0.19971,0.20315,0.20538,0.21012,0.20745,0.20561,0.19479,0.19397,0.19835,0.19976,0.19289,0.1885,0.18446,0.1847,0.19438,0.199,0.18723,2500,0.27443,0.47207,20 +0,0.37325,0,0.061517,0.080661,0.089349,0.082479,0.083311,0.09227,0.11911,0.13101,0.13271,0.14532,0.1506,0.15278,0.1656,0.17883,0.18388,0.18981,0.19615,0.19908,0.20118,0.20152,0.20395,0.20408,0.2016,0.20405,0.20208,0.20234,0.20276,0.20139,0.20156,0.20072,0.20294,0.2049,0.20719,0.21098,0.21329,0.2173,0.21469,0.21357,0.20086,0.19991,0.20529,0.20665,0.19746,0.19475,0.18827,0.1886,0.20003,0.20624,0.19107,2500,0.27443,0.47207,20 +0,0.37325,0,0.05668,0.081723,0.091148,0.081291,0.08397,0.09211,0.11723,0.13051,0.1316,0.14684,0.15419,0.15816,0.1712,0.18695,0.19626,0.20098,0.20619,0.20883,0.21119,0.21211,0.21438,0.21484,0.2123,0.21437,0.21245,0.21253,0.21326,0.21187,0.21197,0.21128,0.21334,0.21539,0.21793,0.22185,0.22454,0.2289,0.22492,0.22436,0.2126,0.21065,0.21608,0.21728,0.20822,0.20671,0.19988,0.20125,0.21046,0.21764,0.20456,2500,0.27443,0.47207,20 +0,0.37325,0,0.050909,0.089122,0.10332,0.093217,0.092952,0.098559,0.12439,0.13814,0.13952,0.15298,0.16064,0.16522,0.18212,0.19726,0.20544,0.21228,0.21726,0.22064,0.22224,0.22332,0.22646,0.2278,0.22498,0.22674,0.22456,0.22479,0.22564,0.22382,0.22385,0.22315,0.2252,0.22739,0.2302,0.23395,0.23652,0.2408,0.23692,0.23685,0.22463,0.22336,0.22746,0.22963,0.22066,0.21786,0.2112,0.21363,0.22401,0.23199,0.21718,2500,0.27443,0.47207,20 +0,0.37325,0,0.067768,0.099239,0.11955,0.11063,0.11009,0.11428,0.14061,0.15655,0.15728,0.16979,0.17697,0.18006,0.19566,0.20956,0.21673,0.22653,0.23063,0.23443,0.23631,0.23723,0.2412,0.24211,0.23897,0.24089,0.23847,0.23841,0.23916,0.23693,0.237,0.23641,0.23851,0.24025,0.24265,0.24633,0.24794,0.25257,0.24913,0.2495,0.23791,0.23537,0.23911,0.24083,0.23282,0.23098,0.22332,0.22457,0.23396,0.24038,0.22368,2500,0.27443,0.47207,20 +0,0.37325,0,0.067466,0.10183,0.11936,0.10969,0.11243,0.11708,0.14185,0.15775,0.15987,0.17362,0.18208,0.18402,0.19953,0.2131,0.22066,0.2309,0.23423,0.23848,0.23973,0.24097,0.24526,0.24574,0.24235,0.24474,0.24209,0.2421,0.24278,0.24044,0.24066,0.2402,0.24251,0.2442,0.24691,0.2493,0.25135,0.25646,0.25351,0.25347,0.24172,0.23858,0.24217,0.24484,0.23784,0.23515,0.22692,0.22957,0.23669,0.24474,0.23003,2500,0.27443,0.47207,20 +0,0.37325,0,0.073789,0.11011,0.12985,0.12311,0.12615,0.13045,0.15679,0.17292,0.17355,0.18589,0.19318,0.19674,0.21127,0.22518,0.23355,0.24415,0.24676,0.25181,0.25375,0.25525,0.25993,0.26075,0.25774,0.25992,0.25737,0.25726,0.25786,0.25535,0.25547,0.25509,0.25714,0.25895,0.2606,0.26323,0.26525,0.26999,0.26737,0.26688,0.25454,0.25189,0.25551,0.25758,0.2513,0.24935,0.24178,0.245,0.25289,0.26132,0.24541,2500,0.27443,0.47207,20 +0,0.37325,0,0.073501,0.11353,0.13403,0.12772,0.12897,0.13178,0.1583,0.17388,0.17412,0.18861,0.19493,0.19916,0.21484,0.22841,0.23715,0.24708,0.24903,0.25449,0.25741,0.25977,0.2642,0.26466,0.26135,0.26329,0.26076,0.26092,0.26174,0.25941,0.25958,0.25932,0.26129,0.2632,0.26501,0.26796,0.27034,0.27547,0.27325,0.27235,0.2605,0.2584,0.26083,0.26368,0.25706,0.25454,0.24731,0.25019,0.25722,0.26542,0.2512,2500,0.27443,0.47207,20 +0,0.37325,0,0.075962,0.11423,0.13607,0.13143,0.1327,0.13797,0.16469,0.17963,0.17877,0.19228,0.19883,0.20264,0.21757,0.23117,0.24061,0.25074,0.25238,0.25812,0.26127,0.26392,0.26857,0.26869,0.2653,0.2675,0.26495,0.26516,0.2662,0.26385,0.26408,0.26391,0.26569,0.2673,0.26937,0.27253,0.27525,0.2799,0.2775,0.27641,0.26501,0.26216,0.26373,0.26506,0.25885,0.25736,0.24945,0.25354,0.2618,0.26919,0.2549,2500,0.27443,0.47207,20 +0,0.37325,0,0.073006,0.11401,0.13423,0.13244,0.13373,0.1378,0.16497,0.17929,0.17749,0.19019,0.19829,0.20259,0.21813,0.23132,0.24183,0.25139,0.25422,0.26002,0.26326,0.2655,0.27018,0.26998,0.26652,0.2685,0.26613,0.26624,0.26739,0.26507,0.2652,0.26514,0.26684,0.26866,0.27087,0.27425,0.27711,0.28102,0.27903,0.27823,0.26729,0.26351,0.26394,0.26497,0.25959,0.25618,0.24943,0.25421,0.26379,0.27065,0.25619,2500,0.27443,0.47207,20 +0,0.37325,0,0.070641,0.11066,0.13077,0.12929,0.13256,0.13656,0.16609,0.17961,0.17826,0.19096,0.19959,0.20393,0.21892,0.2322,0.24221,0.25131,0.25489,0.26098,0.2649,0.26712,0.27152,0.27105,0.26758,0.26966,0.26715,0.26721,0.26837,0.26607,0.26624,0.26636,0.26813,0.27013,0.27255,0.27618,0.27915,0.28276,0.28069,0.27976,0.26919,0.26499,0.26516,0.26604,0.26131,0.25867,0.25267,0.25563,0.26623,0.27406,0.25935,2500,0.27443,0.47207,20 +0,0.37325,0,0.071596,0.11108,0.13212,0.12992,0.13359,0.14043,0.1712,0.18489,0.18475,0.19761,0.20597,0.21013,0.22578,0.2386,0.24822,0.25765,0.26125,0.26731,0.27123,0.27395,0.27814,0.27801,0.27438,0.27643,0.27382,0.27383,0.27496,0.27264,0.27283,0.27293,0.27478,0.27652,0.27906,0.28265,0.28577,0.28955,0.28711,0.28606,0.2753,0.27136,0.27186,0.27197,0.26733,0.2651,0.25787,0.26096,0.27213,0.28037,0.26572,2500,0.27443,0.47207,20 +0,0.37325,0,0.076599,0.11377,0.13472,0.13494,0.13955,0.1476,0.17766,0.1906,0.19118,0.20392,0.21244,0.21682,0.23221,0.24466,0.25415,0.26378,0.26783,0.27413,0.27782,0.28031,0.28474,0.28445,0.28096,0.28293,0.28021,0.28039,0.28159,0.27925,0.27944,0.27958,0.28143,0.28306,0.2857,0.28941,0.29268,0.29625,0.29371,0.29253,0.28156,0.27757,0.27806,0.27823,0.27279,0.27093,0.26326,0.26658,0.27713,0.28584,0.27126,2500,0.27443,0.47207,20 +0,0.37325,0,0.075317,0.11195,0.13395,0.13483,0.13886,0.14643,0.17703,0.19056,0.19069,0.20485,0.21426,0.21826,0.23355,0.2463,0.25559,0.26536,0.26996,0.27602,0.27997,0.28227,0.28663,0.28645,0.28301,0.28493,0.28217,0.28231,0.28348,0.28112,0.28127,0.28146,0.2834,0.28503,0.2878,0.29157,0.295,0.2983,0.29589,0.29463,0.28349,0.27974,0.28053,0.28001,0.27463,0.27321,0.26552,0.26883,0.27878,0.28775,0.27335,2500,0.27443,0.47207,20 +0,0.37325,0,0.076664,0.11245,0.13397,0.13542,0.13986,0.14711,0.17743,0.19083,0.19039,0.20435,0.21356,0.21787,0.234,0.24672,0.25586,0.26548,0.27009,0.27639,0.2806,0.28311,0.28742,0.28729,0.284,0.28587,0.28323,0.28356,0.28472,0.28236,0.2825,0.28279,0.28475,0.2864,0.28944,0.29313,0.29663,0.29996,0.29766,0.2966,0.28523,0.28121,0.2815,0.28119,0.27597,0.27442,0.26601,0.27018,0.28105,0.29099,0.27788,2500,0.27443,0.47207,20 +0,0.37325,0,0.076362,0.11439,0.13782,0.13853,0.14254,0.15054,0.18158,0.19538,0.19467,0.20838,0.2174,0.22224,0.23821,0.25148,0.26051,0.27054,0.27504,0.28139,0.28591,0.28836,0.2928,0.29248,0.28924,0.29107,0.28859,0.28891,0.28999,0.28746,0.2876,0.28789,0.28978,0.2914,0.29447,0.29816,0.30166,0.30498,0.30274,0.30167,0.28975,0.286,0.28634,0.28608,0.2802,0.27789,0.26951,0.27408,0.28548,0.29521,0.28311,2500,0.27443,0.47207,20 +0,0.37325,0,0.075133,0.11419,0.13806,0.13918,0.14318,0.15099,0.182,0.1959,0.19522,0.20919,0.21847,0.22318,0.23909,0.25254,0.26156,0.27165,0.27616,0.28243,0.28696,0.28935,0.2937,0.29335,0.29011,0.29196,0.28949,0.28981,0.2909,0.28837,0.28851,0.28878,0.29076,0.29242,0.29547,0.29905,0.30249,0.30578,0.30368,0.30248,0.29036,0.28646,0.28676,0.28651,0.28046,0.27844,0.26944,0.27451,0.28642,0.29676,0.28558,2500,0.27443,0.47207,20 +0,0.37325,0,0.073615,0.1132,0.13735,0.13853,0.1427,0.15002,0.18141,0.1954,0.19474,0.2084,0.21776,0.22247,0.23822,0.25172,0.2608,0.27077,0.27532,0.28165,0.28593,0.28849,0.29285,0.29256,0.28936,0.29122,0.28871,0.28912,0.29019,0.28767,0.28781,0.28809,0.29002,0.29165,0.29465,0.29826,0.30183,0.30507,0.30293,0.3017,0.28952,0.28557,0.28623,0.28646,0.28037,0.27771,0.2686,0.27429,0.28605,0.29569,0.28547,2500,0.27443,0.47207,20 +0,0.37325,0,0.074114,0.11342,0.13764,0.13889,0.14254,0.15007,0.18157,0.19571,0.19503,0.20881,0.21835,0.22319,0.23888,0.25248,0.26147,0.27153,0.27619,0.28242,0.28675,0.28938,0.29355,0.29332,0.29017,0.29199,0.28952,0.28995,0.29102,0.28851,0.28866,0.28892,0.29092,0.29252,0.29538,0.2989,0.30252,0.30591,0.30366,0.30231,0.29013,0.28617,0.28665,0.28682,0.28055,0.27834,0.26859,0.27466,0.28713,0.29693,0.28765,2500,0.27443,0.47207,20 +0,0.37325,0,0.072153,0.11108,0.13531,0.1373,0.14129,0.14925,0.18082,0.19525,0.19434,0.20791,0.21761,0.22254,0.23836,0.25215,0.261,0.27067,0.27554,0.28194,0.28617,0.28895,0.293,0.2929,0.28968,0.29157,0.28918,0.28963,0.29058,0.28808,0.2882,0.28842,0.29034,0.29185,0.29466,0.29803,0.3015,0.30485,0.30262,0.3015,0.28938,0.2853,0.28559,0.286,0.2807,0.27822,0.26806,0.27359,0.28624,0.29634,0.28759,2500,0.27443,0.47207,20 +0,0.37325,0,0.071592,0.11032,0.13544,0.13698,0.13992,0.14856,0.18024,0.19429,0.19318,0.20509,0.21389,0.21931,0.23503,0.24915,0.25698,0.26695,0.27211,0.27866,0.28314,0.28562,0.28987,0.28923,0.28581,0.28752,0.28526,0.28578,0.28671,0.28415,0.28425,0.28448,0.2864,0.28787,0.29071,0.29388,0.29766,0.30076,0.29864,0.29774,0.28636,0.28196,0.28185,0.28201,0.27748,0.27443,0.26432,0.26914,0.28362,0.29337,0.28364,2500,0.27443,0.47207,20 +0,0.37325,0,0.069252,0.10709,0.13229,0.13473,0.1382,0.14659,0.17696,0.1905,0.18989,0.20191,0.2112,0.2164,0.2314,0.245,0.252,0.26228,0.26708,0.27321,0.27796,0.2807,0.28514,0.2842,0.28091,0.28218,0.27971,0.28015,0.2812,0.27867,0.27881,0.27898,0.28095,0.2825,0.28536,0.28868,0.29237,0.29523,0.29289,0.29175,0.28133,0.27723,0.27727,0.27696,0.27335,0.27082,0.26079,0.26483,0.27977,0.28929,0.2786,2500,0.27443,0.47207,20 +0,0.37325,0,0.067887,0.10722,0.13337,0.13498,0.13935,0.14845,0.17837,0.19211,0.1918,0.20431,0.21324,0.21894,0.23405,0.24774,0.25446,0.26403,0.26897,0.27502,0.28009,0.2827,0.28739,0.2864,0.28336,0.28431,0.28166,0.28209,0.28319,0.28064,0.28073,0.28089,0.28284,0.28421,0.28712,0.29045,0.29429,0.29681,0.29409,0.29252,0.28287,0.27908,0.27854,0.27833,0.27448,0.27346,0.26458,0.26716,0.28063,0.29155,0.2822,2500,0.27443,0.47207,20 +0,0.37325,0,0.070063,0.11019,0.13637,0.13884,0.14228,0.15072,0.18117,0.19549,0.19543,0.2085,0.21807,0.22435,0.23962,0.25285,0.25808,0.26811,0.27355,0.27973,0.28521,0.2882,0.2932,0.29243,0.28931,0.2901,0.28729,0.28764,0.28877,0.28625,0.28638,0.28666,0.28836,0.29001,0.29361,0.29761,0.30106,0.30326,0.30037,0.29889,0.28935,0.28591,0.28571,0.28525,0.28091,0.28124,0.27194,0.27486,0.28998,0.30166,0.29277,2500,0.27443,0.47207,20 +0,0.37325,0,0.072342,0.11331,0.14025,0.1416,0.14485,0.15279,0.1829,0.19788,0.19868,0.21092,0.22116,0.22807,0.24386,0.25671,0.26253,0.27304,0.27744,0.28405,0.28958,0.29296,0.2977,0.29714,0.29381,0.29457,0.29135,0.29157,0.29267,0.2901,0.29017,0.29032,0.29226,0.29357,0.2972,0.30117,0.30517,0.30698,0.30359,0.30192,0.29332,0.28919,0.28914,0.28867,0.28399,0.28601,0.27648,0.27851,0.2931,0.30616,0.29881,2500,0.27443,0.47207,20 +0,0.37325,0,0.070907,0.11393,0.14222,0.14312,0.14586,0.15372,0.1834,0.19785,0.19681,0.2087,0.21979,0.22751,0.24394,0.25644,0.26297,0.27365,0.2773,0.28442,0.28944,0.293,0.29812,0.29739,0.2941,0.29514,0.29235,0.2927,0.29373,0.29121,0.29121,0.29178,0.29379,0.29526,0.29927,0.30383,0.30758,0.30975,0.30577,0.30454,0.29556,0.29177,0.29148,0.29101,0.28639,0.28977,0.27951,0.2818,0.29661,0.30994,0.30385,2500,0.27443,0.47207,20 +0,0.37325,0,0.073828,0.11786,0.14581,0.14794,0.14986,0.15879,0.18911,0.20355,0.2019,0.21456,0.22649,0.23428,0.25081,0.26224,0.26953,0.28082,0.28453,0.29181,0.2969,0.3005,0.30558,0.30443,0.30094,0.30176,0.29929,0.29978,0.30086,0.29828,0.29805,0.29893,0.30088,0.30267,0.30733,0.31233,0.31534,0.31768,0.31366,0.31354,0.30381,0.30044,0.30019,0.30037,0.29629,0.29923,0.28859,0.29046,0.30725,0.32157,0.31572,2500,0.27443,0.47207,20 +0,0.37325,0,0.073455,0.11932,0.14742,0.14699,0.14836,0.15871,0.18982,0.2052,0.20279,0.21635,0.22918,0.23684,0.25405,0.2662,0.27429,0.28622,0.28936,0.29649,0.30218,0.30583,0.31101,0.31014,0.30715,0.30809,0.30555,0.30595,0.30684,0.30435,0.30429,0.30495,0.30723,0.30858,0.31353,0.31892,0.32213,0.32463,0.31986,0.31917,0.30918,0.30663,0.30663,0.30684,0.3026,0.3072,0.29661,0.29876,0.3146,0.33065,0.3269,2500,0.27443,0.47207,20 +0,0.37325,0,0.07651,0.1233,0.15236,0.15325,0.15285,0.16345,0.19516,0.20924,0.20698,0.22137,0.2351,0.24361,0.25971,0.27257,0.28087,0.29244,0.29567,0.30269,0.3084,0.31214,0.31778,0.31668,0.31374,0.31396,0.31131,0.31139,0.31234,0.30993,0.31013,0.31056,0.31333,0.31479,0.31919,0.32483,0.32776,0.33001,0.32449,0.32421,0.31395,0.31227,0.31231,0.31246,0.30665,0.31373,0.30319,0.30441,0.32224,0.33926,0.33534,2500,0.27443,0.47207,20 +0,0.37325,0,0.077119,0.12327,0.14883,0.14965,0.15042,0.16108,0.19356,0.20698,0.20634,0.22013,0.23347,0.24166,0.2585,0.27211,0.28127,0.29243,0.29656,0.30422,0.31057,0.31493,0.32047,0.32004,0.3174,0.31762,0.31493,0.31456,0.31557,0.31289,0.31281,0.31325,0.31564,0.31691,0.32118,0.32657,0.32906,0.33125,0.32535,0.32508,0.31456,0.31309,0.31436,0.31409,0.30846,0.3149,0.30224,0.30681,0.32593,0.3422,0.33911,2500,0.27443,0.47207,20 +0,0.37325,0,0.076641,0.11949,0.14493,0.14461,0.14314,0.15287,0.18334,0.19407,0.19523,0.20666,0.22104,0.22908,0.24582,0.2587,0.26762,0.27771,0.28188,0.29018,0.2963,0.3,0.30598,0.30516,0.30266,0.30254,0.30012,0.29954,0.30061,0.29778,0.29768,0.29784,0.29988,0.30082,0.30451,0.30934,0.31223,0.31397,0.30871,0.30773,0.29772,0.29657,0.29671,0.29527,0.28937,0.29415,0.28175,0.28665,0.30553,0.32231,0.32109,2500,0.27443,0.47207,20 +0,0.37325,0,0.06952,0.10803,0.13434,0.13733,0.13602,0.14291,0.17431,0.18515,0.18597,0.19649,0.20966,0.21787,0.23364,0.24731,0.25639,0.26577,0.27014,0.27905,0.28441,0.28754,0.29328,0.29232,0.28993,0.29021,0.28819,0.28765,0.28856,0.28584,0.28596,0.28607,0.28772,0.28943,0.29247,0.2977,0.30096,0.3033,0.29858,0.29857,0.28798,0.28735,0.28965,0.2887,0.28334,0.28585,0.27479,0.27974,0.30004,0.31646,0.3142,2500,0.27443,0.47207,20 +0,0.37325,0,0.066387,0.10741,0.13532,0.14014,0.13792,0.14627,0.17811,0.18991,0.19052,0.20197,0.21456,0.22367,0.24012,0.25442,0.26264,0.27275,0.27714,0.28582,0.29149,0.29384,0.29939,0.29917,0.29682,0.29698,0.29499,0.29443,0.29538,0.29284,0.29282,0.29306,0.29459,0.29617,0.29951,0.30495,0.30819,0.31083,0.30641,0.30573,0.29557,0.29574,0.29802,0.29626,0.29077,0.29489,0.2839,0.28901,0.3109,0.3279,0.32502,2500,0.27443,0.47207,20 +0,0.37325,0,0.063425,0.10249,0.1325,0.13945,0.13719,0.14703,0.17932,0.1921,0.19189,0.20427,0.21636,0.22636,0.24343,0.25833,0.26738,0.27816,0.28342,0.29263,0.29828,0.30025,0.30589,0.30586,0.30411,0.30443,0.30276,0.30243,0.30343,0.30113,0.30136,0.30185,0.30363,0.30465,0.30854,0.31333,0.3172,0.32045,0.31711,0.31691,0.30673,0.30598,0.30906,0.30853,0.30302,0.30766,0.29688,0.30306,0.32454,0.3425,0.34141,2500,0.27443,0.47207,20 +0,0.37325,0,0.063373,0.10184,0.13322,0.13913,0.13899,0.15013,0.18272,0.19633,0.19549,0.20674,0.21811,0.22777,0.24543,0.2609,0.26953,0.28095,0.28609,0.29519,0.30146,0.30413,0.30942,0.31008,0.30877,0.30879,0.30769,0.30757,0.30885,0.30632,0.3063,0.30709,0.30885,0.31001,0.31415,0.31897,0.32285,0.32585,0.32234,0.32293,0.31266,0.3125,0.31506,0.31631,0.30897,0.31495,0.30294,0.30818,0.33099,0.34948,0.34828,2500,0.27443,0.47207,20 +0,0.37325,0,0.066336,0.1056,0.13759,0.14194,0.14362,0.15447,0.18729,0.20162,0.20002,0.2121,0.2237,0.23238,0.25057,0.26654,0.27599,0.28668,0.29161,0.3012,0.30727,0.3091,0.31485,0.31545,0.31364,0.31336,0.3123,0.31238,0.3136,0.31116,0.31101,0.312,0.31393,0.31538,0.31996,0.32498,0.32879,0.33146,0.32778,0.32939,0.31937,0.31865,0.32064,0.32272,0.31599,0.32099,0.30877,0.31437,0.3385,0.35747,0.35596,2500,0.27443,0.47207,20 +0,0.37325,0,0.069083,0.10907,0.13814,0.14414,0.14756,0.15946,0.19244,0.20741,0.2054,0.21822,0.23068,0.23613,0.25482,0.27066,0.27987,0.29117,0.29691,0.30591,0.31177,0.31428,0.31932,0.31976,0.31771,0.3179,0.31673,0.31653,0.31758,0.31524,0.315,0.3159,0.31805,0.31974,0.3247,0.33034,0.33358,0.33621,0.33168,0.33389,0.32312,0.32292,0.32544,0.32825,0.31984,0.32615,0.3139,0.31976,0.34507,0.36444,0.3625,2500,0.27443,0.47207,20 +0,0.37325,0,0.071691,0.11042,0.13707,0.1426,0.14591,0.15912,0.19101,0.20519,0.20278,0.21647,0.22981,0.23551,0.25467,0.271,0.27994,0.29119,0.29692,0.30641,0.31287,0.31512,0.32061,0.32106,0.31882,0.31889,0.31733,0.31733,0.31816,0.31571,0.31537,0.31619,0.31813,0.31929,0.32419,0.32887,0.33245,0.33545,0.33155,0.33344,0.32384,0.32232,0.32492,0.32786,0.31974,0.32721,0.31552,0.32257,0.34511,0.36545,0.36558,2500,0.27443,0.47207,20 +0,0.37325,0,0.069907,0.11051,0.13845,0.14232,0.14756,0.15983,0.19202,0.20703,0.2063,0.21869,0.23287,0.23958,0.25772,0.27451,0.28311,0.29496,0.30152,0.3115,0.31767,0.3202,0.32491,0.32606,0.32401,0.32415,0.32254,0.32276,0.32354,0.32126,0.32118,0.32234,0.32434,0.32509,0.33049,0.33411,0.33805,0.34169,0.33901,0.34127,0.3319,0.32888,0.33164,0.33617,0.32829,0.3346,0.32336,0.33129,0.35332,0.37427,0.37604,2500,0.27443,0.47207,20 +0,0.37325,0,0.07011,0.10972,0.139,0.13872,0.14371,0.15377,0.18469,0.20079,0.20013,0.2099,0.22357,0.23044,0.24808,0.26472,0.27413,0.28656,0.29275,0.30321,0.30997,0.31242,0.31667,0.31774,0.31508,0.31564,0.31417,0.31418,0.31513,0.31314,0.3133,0.31466,0.3166,0.31688,0.32245,0.32574,0.33015,0.33461,0.33275,0.33496,0.32602,0.32323,0.32627,0.3328,0.32542,0.33109,0.32322,0.33036,0.35014,0.36973,0.37325,2500,0.27443,0.47207,20 diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/ellipsis_sim_fast_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/ellipsis_sim_fast_res.csv new file mode 100644 index 0000000..ae940ea --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/ellipsis_sim_fast_res.csv @@ -0,0 +1,50 @@ +0.47107,0.0017379,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,-0.0080114,0.0084663,-0.011084,0.024417,0.068647,0.060688,0.04535,0.049471,0.051941,0.043748,0.036481,0.041384,0.041607,0.04242,0.036868,0.03227,0.028108,0.029385,0.029759,0.027189,0.030203,0.031422,0.0346,0.034065,0.035922,0.034094,0.03587,0.036181,0.037424,0.039161,0.041419,0.04076,0.037272,0.040827,0.035063,0.029831,0.028753,0.029509,0.021929,0.027815,0.027902,0.034017,0.033464,0.0389,0.043873,0.042496,0.041275,0.040267,0.038655,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,-0.024164,-0.012774,-0.010665,0.0032359,0.031114,0.029541,0.013982,0.032487,0.028991,0.023781,0.014963,0.014177,0.019783,0.019727,0.013028,0.010189,0.0049075,0.0070275,0.0071344,0.0099013,0.014862,0.014897,0.016382,0.015275,0.016851,0.015594,0.016452,0.015836,0.016989,0.019375,0.020632,0.018491,0.017053,0.018938,0.012626,0.009248,0.011961,0.01251,0.0099181,0.013666,0.015066,0.023644,0.022309,0.025423,0.025307,0.021382,0.02064,0.020816,0.019877,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,-0.034264,-0.023131,-0.0089657,0.015046,0.034649,0.033714,0.018432,0.033527,0.030818,0.029734,0.022503,0.029682,0.031316,0.034137,0.026079,0.021593,0.020988,0.02295,0.025424,0.031433,0.036237,0.036586,0.037425,0.036056,0.037201,0.037866,0.038593,0.03823,0.039716,0.042425,0.044449,0.043434,0.04225,0.043449,0.037689,0.033137,0.037274,0.039688,0.03961,0.044743,0.045312,0.050199,0.045739,0.04855,0.050419,0.04586,0.047019,0.048768,0.0458,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,-0.032287,-0.031121,-0.023836,-0.0062365,0.017568,0.016534,0.0026944,0.017982,0.01758,0.013763,0.011215,0.020845,0.02573,0.028453,0.020608,0.016321,0.018982,0.022255,0.025749,0.030057,0.033741,0.034222,0.037103,0.0354,0.036938,0.037478,0.037824,0.037642,0.039481,0.041445,0.04312,0.042282,0.042081,0.041124,0.037749,0.0355,0.041204,0.045408,0.047484,0.051866,0.051177,0.054627,0.049885,0.049732,0.051412,0.047645,0.048459,0.047172,0.046699,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,-0.040673,-0.037285,-0.029118,-0.0089826,0.023969,0.018116,0.005003,0.015429,0.014379,0.0082483,0.0065419,0.013046,0.017181,0.017699,0.009948,0.0044167,0.0095075,0.012883,0.014877,0.019721,0.022657,0.022751,0.02505,0.025145,0.026422,0.026867,0.026825,0.026802,0.029035,0.031204,0.033734,0.032597,0.032585,0.030265,0.027065,0.02443,0.027326,0.031972,0.032283,0.035753,0.036042,0.042322,0.03605,0.033695,0.035969,0.032978,0.032275,0.032492,0.034541,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,-0.02869,-0.010664,-0.0022115,0.031338,0.062545,0.049757,0.031461,0.041055,0.039315,0.036971,0.032865,0.038895,0.042693,0.042612,0.033449,0.027739,0.031183,0.034499,0.036355,0.040678,0.04353,0.043267,0.045338,0.044697,0.046048,0.046417,0.046028,0.04551,0.047961,0.050497,0.053522,0.053196,0.053983,0.052577,0.049895,0.0473,0.047069,0.050236,0.05038,0.055094,0.054356,0.059664,0.055204,0.052308,0.053644,0.050483,0.049218,0.048967,0.050326,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,-0.00069407,0.012525,0.011087,0.041171,0.07043,0.053785,0.03266,0.041105,0.039524,0.035052,0.029098,0.034361,0.039567,0.040455,0.03144,0.026871,0.030764,0.033554,0.03437,0.039152,0.042591,0.041988,0.04416,0.043093,0.044081,0.045069,0.044435,0.04353,0.046298,0.048804,0.052469,0.052111,0.052018,0.0509,0.048122,0.045843,0.045909,0.046129,0.046374,0.051118,0.050774,0.05319,0.049612,0.046798,0.050198,0.047144,0.044541,0.045163,0.046555,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.0021396,0.008028,0.0023732,0.028673,0.06289,0.049873,0.026554,0.034668,0.035252,0.028885,0.021238,0.027764,0.034047,0.036726,0.026511,0.021996,0.025356,0.028593,0.031071,0.034972,0.038341,0.037436,0.039464,0.039007,0.039871,0.040796,0.040216,0.040051,0.042396,0.04481,0.04859,0.048457,0.048355,0.045989,0.04405,0.04318,0.042866,0.044638,0.046536,0.051138,0.048733,0.051257,0.048261,0.043342,0.045251,0.042476,0.038472,0.039135,0.040932,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,-0.0058174,0.0017434,0.015696,0.039248,0.073922,0.057172,0.031169,0.046817,0.048231,0.04269,0.034598,0.040918,0.046352,0.049112,0.037761,0.033553,0.035751,0.037904,0.041579,0.045757,0.049577,0.04843,0.050198,0.049621,0.049989,0.050848,0.050156,0.050073,0.052656,0.055429,0.05926,0.059217,0.05833,0.056601,0.05568,0.0532,0.053119,0.054099,0.055616,0.057268,0.056504,0.058381,0.054839,0.048627,0.048671,0.046216,0.04208,0.042342,0.044034,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.01074,0.019365,0.025589,0.050731,0.086412,0.065919,0.037015,0.049712,0.052818,0.04743,0.040429,0.046867,0.052172,0.0535,0.042343,0.037105,0.038272,0.039469,0.043024,0.046507,0.050366,0.049352,0.050888,0.050574,0.050853,0.051652,0.051532,0.051913,0.054786,0.057665,0.0599,0.058146,0.057369,0.054697,0.052833,0.049418,0.050639,0.051874,0.053372,0.053715,0.053337,0.051954,0.050404,0.044389,0.045407,0.043479,0.038088,0.038002,0.041182,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.0035881,0.012453,0.015654,0.037933,0.076156,0.057904,0.028066,0.042234,0.043713,0.038871,0.033231,0.039833,0.04625,0.046331,0.035528,0.030693,0.032549,0.032845,0.036182,0.039285,0.042661,0.042158,0.04348,0.042869,0.043218,0.043733,0.043651,0.04411,0.045991,0.048079,0.051016,0.050118,0.050133,0.047386,0.043777,0.041629,0.041492,0.044059,0.046022,0.046603,0.0466,0.045112,0.043722,0.03842,0.038623,0.0384,0.032737,0.032471,0.035079,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.0045318,0.016561,0.015198,0.040184,0.074708,0.054379,0.025442,0.039084,0.038963,0.035759,0.028838,0.034016,0.03912,0.039934,0.030094,0.026596,0.027547,0.027836,0.030427,0.034003,0.037112,0.036566,0.037948,0.037151,0.037242,0.037987,0.037368,0.037902,0.039011,0.040866,0.043497,0.041652,0.041455,0.037495,0.033702,0.031284,0.031307,0.033913,0.035568,0.035386,0.036153,0.0352,0.033911,0.029186,0.031127,0.031243,0.02665,0.027836,0.031738,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.00438,0.020504,0.014925,0.041502,0.073101,0.050743,0.022006,0.035428,0.035511,0.030949,0.023649,0.031823,0.037918,0.038738,0.030577,0.027496,0.029044,0.028581,0.031398,0.034873,0.038057,0.037288,0.038438,0.037261,0.037126,0.038294,0.037995,0.038265,0.039691,0.041384,0.043379,0.04211,0.041656,0.038503,0.034422,0.03211,0.032509,0.032435,0.032356,0.033559,0.035815,0.032352,0.03119,0.026526,0.029072,0.030508,0.026583,0.028907,0.032765,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.015565,0.034196,0.026426,0.051244,0.081738,0.059607,0.033193,0.043858,0.042047,0.036711,0.028195,0.035082,0.040017,0.039791,0.032023,0.028842,0.030857,0.030889,0.033887,0.036847,0.03972,0.038787,0.04025,0.038985,0.039279,0.040363,0.039986,0.040204,0.041415,0.043434,0.045052,0.043471,0.043103,0.040697,0.037434,0.035245,0.035009,0.03422,0.033251,0.034274,0.036876,0.033579,0.032387,0.028957,0.031029,0.031974,0.029135,0.030237,0.033237,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.027776,0.046447,0.037048,0.057823,0.094659,0.073184,0.047218,0.059535,0.057063,0.050288,0.040954,0.047597,0.054272,0.053006,0.045046,0.041099,0.042436,0.042888,0.046093,0.048657,0.051723,0.051,0.052475,0.051131,0.051168,0.051905,0.051537,0.051797,0.052741,0.055007,0.056344,0.054638,0.054678,0.052783,0.04924,0.047624,0.046733,0.04406,0.043109,0.043397,0.046821,0.042533,0.042115,0.038803,0.040758,0.040573,0.0376,0.039331,0.041245,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.023076,0.039437,0.033667,0.057432,0.093745,0.074593,0.049895,0.060542,0.06102,0.053117,0.044847,0.050477,0.056226,0.05582,0.048781,0.044993,0.04755,0.048104,0.051181,0.053866,0.0571,0.056428,0.057984,0.056567,0.056544,0.057372,0.057103,0.057742,0.05889,0.061237,0.062896,0.061424,0.06048,0.058821,0.055861,0.054159,0.053543,0.050384,0.048847,0.049916,0.051668,0.048266,0.047497,0.044412,0.047094,0.046778,0.044469,0.046187,0.047894,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.02338,0.036445,0.032454,0.058836,0.092857,0.072324,0.046575,0.056116,0.059421,0.052446,0.045237,0.04995,0.056168,0.055013,0.047347,0.043619,0.046098,0.046127,0.049066,0.052386,0.055586,0.055027,0.056679,0.055313,0.055342,0.056257,0.056008,0.056628,0.057959,0.060211,0.061759,0.059589,0.058402,0.055506,0.052694,0.051678,0.051044,0.047782,0.047108,0.048341,0.05111,0.047666,0.04732,0.045174,0.047423,0.046805,0.045324,0.046934,0.048357,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.019717,0.033502,0.027894,0.05314,0.088765,0.067178,0.042326,0.051977,0.054504,0.048516,0.042326,0.046847,0.052377,0.051663,0.043393,0.040637,0.042955,0.043475,0.047354,0.051112,0.054173,0.053655,0.055201,0.053923,0.054,0.054838,0.054605,0.055059,0.05657,0.059073,0.060946,0.059132,0.056846,0.052759,0.050131,0.049457,0.048796,0.045826,0.045068,0.045756,0.04908,0.046603,0.04556,0.043508,0.045696,0.045345,0.044665,0.045819,0.047667,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.021577,0.038102,0.030938,0.054248,0.091024,0.068006,0.043667,0.053076,0.054718,0.047955,0.041056,0.045941,0.050873,0.050034,0.041815,0.039902,0.04179,0.041909,0.045454,0.04942,0.052492,0.051845,0.053279,0.051892,0.051909,0.052703,0.052563,0.052923,0.054326,0.0564,0.05792,0.056434,0.053763,0.049629,0.047511,0.045992,0.045426,0.043088,0.042416,0.043008,0.046554,0.043575,0.0423,0.040365,0.042773,0.043212,0.042956,0.044228,0.046221,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.025112,0.038881,0.032429,0.055661,0.09136,0.067826,0.043659,0.052319,0.054465,0.048054,0.041111,0.045453,0.049891,0.049603,0.042143,0.040626,0.04259,0.043011,0.04648,0.050376,0.05359,0.053043,0.054578,0.053135,0.053111,0.053776,0.053645,0.054076,0.055158,0.057415,0.059167,0.057923,0.055243,0.051062,0.049068,0.047625,0.046392,0.04349,0.042795,0.043363,0.046438,0.043737,0.042136,0.040258,0.043282,0.043277,0.043197,0.044559,0.046342,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.024515,0.036817,0.029386,0.052485,0.089353,0.065739,0.042297,0.05111,0.05344,0.047147,0.040046,0.045177,0.04988,0.050014,0.042404,0.040873,0.042877,0.043205,0.046446,0.050603,0.053715,0.053075,0.054551,0.053051,0.053,0.053764,0.053687,0.053845,0.055041,0.05708,0.059042,0.058017,0.055194,0.050842,0.049185,0.047761,0.046702,0.044194,0.04393,0.04419,0.047031,0.044315,0.041696,0.040056,0.043245,0.042554,0.042978,0.04414,0.046249,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.02431,0.036404,0.028847,0.051095,0.088351,0.065656,0.0428,0.050995,0.05281,0.04697,0.040868,0.0467,0.051479,0.051703,0.045034,0.04355,0.045512,0.045784,0.049017,0.053018,0.056043,0.05533,0.056733,0.055195,0.055082,0.055839,0.055731,0.055975,0.057045,0.05901,0.060795,0.059202,0.056329,0.052095,0.050708,0.048942,0.048195,0.045723,0.045357,0.045614,0.048361,0.045338,0.043134,0.041678,0.045175,0.044783,0.045296,0.045761,0.047902,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.026819,0.037215,0.02879,0.050342,0.087098,0.065181,0.041831,0.049668,0.051148,0.04497,0.039184,0.045548,0.050452,0.050412,0.043999,0.042297,0.044392,0.044793,0.048037,0.051907,0.054966,0.054438,0.055823,0.054305,0.054185,0.054976,0.054876,0.054988,0.055999,0.05807,0.059727,0.057935,0.055187,0.051162,0.049796,0.047782,0.046792,0.044025,0.043159,0.043815,0.047001,0.043422,0.041647,0.040035,0.043932,0.043906,0.044708,0.044486,0.046709,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.026824,0.036424,0.027504,0.04924,0.085678,0.064205,0.040678,0.048284,0.050249,0.043883,0.038417,0.04456,0.049544,0.049313,0.043291,0.041456,0.043689,0.044235,0.047364,0.051208,0.054389,0.053932,0.055316,0.053773,0.053671,0.05446,0.054363,0.054504,0.05549,0.057478,0.059204,0.057215,0.054552,0.050679,0.049403,0.04714,0.046078,0.042911,0.042286,0.043265,0.046041,0.042208,0.0404,0.039088,0.043114,0.043351,0.044397,0.043809,0.045989,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.03,0.039414,0.029376,0.05048,0.086486,0.064616,0.041192,0.048525,0.050581,0.044384,0.038726,0.044705,0.049538,0.049273,0.043368,0.041396,0.043521,0.043965,0.04701,0.050827,0.054016,0.053474,0.054867,0.053291,0.05318,0.053961,0.053867,0.054029,0.054997,0.056913,0.058444,0.056404,0.053844,0.050147,0.048777,0.046509,0.045555,0.041974,0.041532,0.042715,0.045435,0.041106,0.039245,0.038121,0.042283,0.042323,0.043782,0.042719,0.045098,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.029684,0.038945,0.028809,0.050237,0.086135,0.064228,0.040529,0.0481,0.050647,0.044974,0.039469,0.045377,0.050146,0.049819,0.043857,0.041725,0.043849,0.044254,0.047654,0.051502,0.054719,0.054169,0.055519,0.053888,0.053876,0.054629,0.054506,0.054653,0.055583,0.057516,0.059011,0.056931,0.05448,0.050968,0.049486,0.047143,0.046187,0.042595,0.042196,0.04367,0.046271,0.041704,0.039889,0.039174,0.043359,0.043418,0.045265,0.043823,0.046217,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.031424,0.041567,0.030573,0.051376,0.087175,0.065258,0.04198,0.04919,0.051578,0.045872,0.040007,0.046163,0.050772,0.050537,0.044355,0.042251,0.044497,0.044553,0.047956,0.051762,0.054972,0.054431,0.055785,0.054184,0.054174,0.054958,0.054845,0.054989,0.055891,0.057771,0.059247,0.057151,0.054682,0.051261,0.049615,0.047245,0.046258,0.042636,0.041985,0.043651,0.046126,0.041527,0.039679,0.038969,0.043355,0.043376,0.045305,0.043828,0.046389,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.030769,0.040747,0.030018,0.051088,0.087044,0.065346,0.042258,0.049436,0.051931,0.046159,0.040362,0.046604,0.050952,0.050803,0.044521,0.04249,0.044798,0.044914,0.048364,0.05215,0.05538,0.054871,0.056239,0.054679,0.054623,0.055408,0.055367,0.055494,0.056448,0.058299,0.059795,0.057676,0.055155,0.051669,0.049895,0.047524,0.046318,0.043078,0.04218,0.043956,0.046149,0.041484,0.039528,0.038714,0.043137,0.043063,0.045079,0.043611,0.046446,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.031653,0.04208,0.031307,0.05259,0.08864,0.065659,0.04296,0.050327,0.052309,0.045656,0.039783,0.045713,0.050092,0.04973,0.04365,0.041345,0.043712,0.043847,0.047298,0.050769,0.053878,0.053407,0.054694,0.053023,0.052978,0.053686,0.053526,0.053644,0.054555,0.056333,0.057733,0.055558,0.053437,0.050707,0.048789,0.046492,0.045165,0.041857,0.040798,0.042391,0.044345,0.039464,0.037756,0.036791,0.041344,0.04149,0.04351,0.04169,0.044395,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.033009,0.04189,0.030394,0.051147,0.086392,0.064287,0.041288,0.049192,0.050083,0.043871,0.038058,0.043977,0.048465,0.04766,0.041893,0.03911,0.041591,0.041802,0.045302,0.048773,0.051924,0.051511,0.05276,0.051126,0.051082,0.051794,0.051699,0.051858,0.052913,0.054591,0.055864,0.053569,0.051659,0.048989,0.046879,0.044872,0.04332,0.039907,0.039314,0.041228,0.043323,0.038136,0.037213,0.036358,0.040558,0.040609,0.042504,0.040427,0.042963,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.035022,0.040298,0.030251,0.050943,0.086846,0.064094,0.042034,0.050474,0.051884,0.046236,0.040374,0.04569,0.050572,0.049847,0.042761,0.039448,0.041692,0.04197,0.045683,0.049329,0.052573,0.051965,0.053315,0.051736,0.051844,0.052683,0.052557,0.05283,0.054329,0.056085,0.057454,0.055257,0.053721,0.051135,0.048781,0.046916,0.044991,0.041791,0.041829,0.04445,0.046243,0.041089,0.039784,0.038299,0.04214,0.041747,0.04383,0.041377,0.043739,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.037163,0.043624,0.033393,0.054605,0.090208,0.067028,0.045549,0.054306,0.056172,0.051131,0.045238,0.050996,0.056286,0.055985,0.047422,0.043485,0.045821,0.046185,0.050131,0.05398,0.057329,0.05684,0.058295,0.056787,0.057061,0.057823,0.057681,0.058111,0.060064,0.061799,0.063211,0.061068,0.059911,0.05692,0.054414,0.05338,0.051662,0.048543,0.049171,0.052454,0.05389,0.049033,0.047829,0.046116,0.049453,0.048198,0.049454,0.047116,0.049231,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.039559,0.042584,0.032382,0.054822,0.089547,0.066682,0.04372,0.052545,0.055195,0.050308,0.044275,0.049396,0.05451,0.054163,0.046196,0.042727,0.045026,0.045224,0.049152,0.052958,0.055768,0.055218,0.055982,0.053914,0.054216,0.054509,0.05436,0.05478,0.05659,0.058179,0.059576,0.057434,0.056598,0.054698,0.05183,0.050408,0.048279,0.045282,0.045861,0.04858,0.049561,0.044245,0.042868,0.040729,0.044566,0.043503,0.044713,0.042351,0.044664,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.042276,0.043551,0.03512,0.056178,0.089949,0.068499,0.045322,0.052883,0.055395,0.0508,0.045046,0.050216,0.055264,0.053886,0.045845,0.04273,0.044735,0.045343,0.048964,0.052548,0.055381,0.054926,0.055774,0.05367,0.054006,0.054414,0.054511,0.054884,0.056915,0.058654,0.059998,0.057563,0.056391,0.054076,0.050768,0.048874,0.048018,0.044476,0.044422,0.046942,0.047548,0.04208,0.040035,0.038944,0.042423,0.040758,0.042196,0.040632,0.04259,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.036082,0.035566,0.03072,0.0538,0.088787,0.069011,0.047287,0.054173,0.05428,0.047926,0.042234,0.047619,0.052443,0.051325,0.044028,0.040192,0.042659,0.043714,0.046837,0.049461,0.051776,0.051292,0.051958,0.049637,0.049956,0.05026,0.050345,0.050675,0.052526,0.054253,0.05551,0.053019,0.052496,0.051573,0.048199,0.045814,0.044911,0.041549,0.04086,0.042988,0.042854,0.037624,0.035583,0.034643,0.038203,0.035959,0.036824,0.035736,0.037744,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.03568,0.038022,0.027053,0.052091,0.088188,0.067676,0.043757,0.04897,0.050325,0.043131,0.036164,0.041304,0.044799,0.042878,0.035742,0.032577,0.034001,0.034819,0.037786,0.040272,0.042675,0.042058,0.042807,0.040521,0.040876,0.041194,0.041396,0.041895,0.043566,0.045201,0.046701,0.044398,0.043981,0.044389,0.041222,0.038381,0.037681,0.035018,0.033734,0.035181,0.034392,0.02976,0.027154,0.025682,0.028675,0.026577,0.026989,0.025864,0.027728,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.039236,0.043605,0.034186,0.059747,0.095021,0.072548,0.045963,0.05029,0.051995,0.045924,0.03757,0.043488,0.046399,0.045272,0.037334,0.033664,0.034557,0.035133,0.037983,0.040372,0.042902,0.042455,0.043323,0.041162,0.041584,0.04204,0.042046,0.042732,0.04464,0.045954,0.047534,0.045348,0.04523,0.045812,0.043241,0.040867,0.040608,0.038245,0.038449,0.040215,0.038927,0.034376,0.031892,0.02997,0.031776,0.029926,0.029315,0.027922,0.029268,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.035227,0.03997,0.02672,0.052635,0.088009,0.065344,0.040155,0.043201,0.045246,0.039482,0.031253,0.03803,0.040762,0.040545,0.033613,0.030718,0.03222,0.032188,0.034242,0.036683,0.038993,0.038728,0.039701,0.037676,0.038117,0.038583,0.038573,0.039022,0.040487,0.041459,0.04291,0.040738,0.040387,0.040996,0.03826,0.036156,0.035596,0.033495,0.033711,0.034565,0.033521,0.029443,0.027078,0.025704,0.026617,0.02555,0.025146,0.023673,0.024941,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.039142,0.041497,0.024117,0.049774,0.08651,0.064733,0.040722,0.045006,0.047236,0.041646,0.030716,0.037152,0.039699,0.039395,0.031854,0.029726,0.031164,0.030427,0.032664,0.03546,0.037702,0.037374,0.038459,0.036499,0.036984,0.037586,0.037482,0.037992,0.039569,0.041096,0.042876,0.041255,0.040406,0.041049,0.037668,0.036183,0.035208,0.033705,0.033483,0.033651,0.032973,0.029493,0.027283,0.024839,0.025542,0.024982,0.023633,0.021794,0.022844,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.03784,0.044221,0.027094,0.054202,0.091556,0.070942,0.048865,0.052497,0.054463,0.047453,0.036518,0.043113,0.045347,0.044434,0.037664,0.034884,0.035877,0.034785,0.037231,0.040155,0.042628,0.041979,0.042888,0.041091,0.041628,0.042237,0.042394,0.042815,0.044156,0.045857,0.047607,0.045453,0.044393,0.044794,0.040938,0.038915,0.037713,0.0352,0.035648,0.036436,0.035263,0.031506,0.029879,0.02801,0.028145,0.027048,0.026162,0.023183,0.023098,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.03179,0.041188,0.021278,0.045764,0.085094,0.067643,0.048331,0.052076,0.054718,0.048341,0.038557,0.04426,0.046651,0.045281,0.038149,0.036302,0.036938,0.035519,0.037984,0.040368,0.042374,0.041748,0.042211,0.039947,0.040282,0.040379,0.040191,0.040243,0.041556,0.043289,0.045354,0.043695,0.042793,0.043546,0.039926,0.038674,0.03652,0.034744,0.035882,0.035357,0.035435,0.032437,0.031128,0.028796,0.028146,0.027982,0.026545,0.023398,0.022656,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.03318,0.045998,0.029109,0.049469,0.089375,0.072167,0.050999,0.055217,0.059112,0.052066,0.042639,0.049356,0.051565,0.050134,0.043263,0.041569,0.042167,0.040688,0.043382,0.045934,0.048193,0.047689,0.048025,0.045955,0.04632,0.0463,0.046507,0.046493,0.048019,0.049257,0.051242,0.049812,0.048751,0.048586,0.044119,0.042525,0.039338,0.036484,0.0376,0.037689,0.037141,0.033759,0.03318,0.03075,0.030056,0.029304,0.028236,0.023948,0.02267,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.038126,0.0453,0.029172,0.051627,0.09024,0.074063,0.053384,0.057407,0.062606,0.057268,0.048506,0.052783,0.054824,0.054557,0.046847,0.042905,0.043526,0.042213,0.044026,0.046462,0.048954,0.048351,0.04891,0.046906,0.04682,0.047211,0.047544,0.047336,0.048495,0.049259,0.051048,0.049414,0.047754,0.046747,0.04154,0.040109,0.036005,0.033595,0.035124,0.034898,0.034244,0.031002,0.031317,0.028603,0.027063,0.026157,0.024698,0.019467,0.017209,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.033886,0.036367,0.026151,0.051053,0.087452,0.072972,0.050707,0.054573,0.061299,0.057788,0.050363,0.055808,0.059013,0.059039,0.049785,0.044848,0.04476,0.04279,0.045229,0.048149,0.050871,0.050565,0.051334,0.049553,0.049691,0.05025,0.04999,0.049429,0.05084,0.051452,0.053388,0.05215,0.050628,0.048711,0.043252,0.043566,0.038423,0.036697,0.039834,0.039539,0.040534,0.037887,0.039786,0.035864,0.033567,0.033715,0.031609,0.025014,0.022252,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.031462,0.033542,0.027873,0.04843,0.083402,0.069739,0.049496,0.053134,0.057451,0.053826,0.048207,0.052897,0.054824,0.056067,0.046899,0.042793,0.042865,0.040348,0.042682,0.045465,0.0484,0.048274,0.048965,0.046914,0.047123,0.047718,0.047654,0.047124,0.048168,0.048386,0.049883,0.048153,0.04603,0.043704,0.038283,0.037628,0.032633,0.031106,0.033501,0.032713,0.032291,0.030306,0.031704,0.028007,0.024651,0.024778,0.022857,0.016748,0.01316,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.02439,0.028093,0.023625,0.043374,0.077968,0.065332,0.04642,0.052053,0.05795,0.056128,0.050969,0.05687,0.058846,0.061251,0.051612,0.047641,0.046334,0.044828,0.047815,0.05054,0.053384,0.053555,0.054094,0.052278,0.052463,0.052926,0.052796,0.052249,0.053244,0.052951,0.054333,0.052962,0.050753,0.047513,0.041959,0.042014,0.03737,0.036389,0.039659,0.03941,0.039238,0.037017,0.039471,0.033976,0.028954,0.029215,0.025748,0.018423,0.014234,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.021201,0.021509,0.022499,0.038222,0.071827,0.061171,0.044116,0.051621,0.057435,0.055216,0.050669,0.056533,0.058559,0.061166,0.052234,0.048846,0.047873,0.046737,0.049787,0.05258,0.055144,0.055612,0.056342,0.054768,0.055112,0.055837,0.055723,0.055676,0.056245,0.056683,0.057309,0.055262,0.053792,0.049679,0.044733,0.044514,0.038796,0.036496,0.038113,0.037101,0.036039,0.033974,0.036377,0.030235,0.025286,0.025614,0.021542,0.013326,0.0093167,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.027537,0.02555,0.029918,0.04307,0.07515,0.06449,0.048373,0.053505,0.059503,0.05625,0.051125,0.055735,0.05698,0.060034,0.052846,0.049586,0.049699,0.049578,0.053272,0.054823,0.056942,0.056648,0.057561,0.055915,0.056328,0.056941,0.056799,0.056658,0.05683,0.056932,0.057239,0.05541,0.054004,0.049792,0.045603,0.044651,0.040026,0.038349,0.038904,0.037119,0.035721,0.03404,0.035573,0.028883,0.02338,0.022146,0.018837,0.011105,0.0059838,2500,-0.053965,0.05744,1610 +0.47107,0.0017379,0,0.027034,0.026978,0.035797,0.051406,0.080558,0.070515,0.052392,0.057477,0.063674,0.059528,0.05347,0.057929,0.059283,0.060804,0.054273,0.050172,0.051532,0.051814,0.054849,0.057116,0.059174,0.059121,0.060245,0.058725,0.05934,0.060445,0.060185,0.059861,0.060169,0.060543,0.060852,0.059451,0.057624,0.053496,0.048152,0.046696,0.04179,0.038514,0.038247,0.03664,0.034391,0.032022,0.032606,0.025956,0.02016,0.018345,0.014278,0.0068572,0.0017379,2500,-0.053965,0.05744,1610 diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/exp_sim_fast_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/exp_sim_fast_res.csv new file mode 100644 index 0000000..86ab3d6 --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/exp_sim_fast_res.csv @@ -0,0 +1,50 @@ +5.4556e-07,0.33409,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.12593,0.075589,0.059864,0.071636,0.066277,0.061701,0.050361,0.058697,0.06213,0.063337,0.061102,0.069547,0.064255,0.058775,0.057911,0.056931,0.056852,0.064022,0.060574,0.060175,0.058929,0.061154,0.060714,0.059699,0.061369,0.060137,0.061031,0.062001,0.0638,0.061851,0.060168,0.057927,0.059378,0.060877,0.060489,0.06304,0.066099,0.069117,0.06214,0.066543,0.062548,0.0675,0.066033,0.07107,0.062656,0.067322,0.071678,0.065803,0.072254,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.13405,0.10837,0.11009,0.12223,0.11366,0.11383,0.11204,0.14177,0.13901,0.14073,0.14586,0.14849,0.14384,0.14125,0.14008,0.13663,0.1336,0.13638,0.13462,0.135,0.13292,0.13465,0.13443,0.13372,0.13512,0.13394,0.13492,0.13594,0.13659,0.13536,0.13403,0.13116,0.13292,0.13459,0.1353,0.13823,0.13739,0.14087,0.13815,0.14313,0.14192,0.13335,0.13123,0.13636,0.13104,0.12953,0.13291,0.1287,0.13472,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.10051,0.10256,0.1018,0.11801,0.12719,0.12073,0.12527,0.15725,0.15358,0.15458,0.15947,0.161,0.15962,0.1543,0.15066,0.14902,0.14408,0.14625,0.1428,0.14149,0.14232,0.14393,0.14437,0.14351,0.14345,0.14207,0.144,0.14583,0.14632,0.14435,0.14353,0.14137,0.14039,0.14184,0.14268,0.14672,0.14437,0.14922,0.14673,0.15124,0.15304,0.14862,0.1497,0.15357,0.14711,0.14476,0.15042,0.14917,0.15783,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.086274,0.093694,0.12537,0.14406,0.15706,0.1478,0.14561,0.16883,0.16439,0.16905,0.17651,0.17849,0.17478,0.17051,0.17206,0.17008,0.16378,0.16401,0.15937,0.15691,0.15631,0.15776,0.15712,0.15682,0.15653,0.15504,0.1563,0.15769,0.15806,0.15599,0.15376,0.15234,0.15217,0.15418,0.15374,0.15844,0.15634,0.16052,0.15868,0.16048,0.16426,0.16273,0.16264,0.16391,0.16066,0.15505,0.16222,0.15338,0.15551,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.09451,0.1111,0.12912,0.15008,0.15689,0.14631,0.15001,0.17182,0.17005,0.17168,0.17812,0.1799,0.17429,0.17011,0.16956,0.16741,0.1614,0.16572,0.16158,0.16125,0.16289,0.1657,0.1642,0.16379,0.1637,0.16256,0.16397,0.16505,0.16535,0.16339,0.16144,0.16057,0.16001,0.16213,0.16265,0.16804,0.16607,0.17008,0.16929,0.1672,0.17275,0.16859,0.17084,0.16896,0.16556,0.16045,0.16946,0.16356,0.16125,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.082763,0.13169,0.14875,0.16943,0.17048,0.1603,0.16279,0.18157,0.17729,0.17844,0.18722,0.18909,0.18198,0.18012,0.18114,0.17992,0.17725,0.18344,0.17969,0.17915,0.17963,0.18241,0.18025,0.18002,0.1803,0.1794,0.18066,0.1815,0.18178,0.17984,0.17823,0.17692,0.17597,0.17846,0.17966,0.18545,0.18276,0.185,0.18567,0.18524,0.18951,0.1835,0.18573,0.18568,0.18395,0.17802,0.18138,0.17738,0.17743,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.087914,0.12646,0.15073,0.16563,0.16684,0.15842,0.15965,0.18045,0.17772,0.18267,0.18905,0.189,0.18293,0.18288,0.18537,0.18648,0.18254,0.1884,0.18367,0.18217,0.18485,0.18666,0.18491,0.18406,0.18385,0.18301,0.18442,0.18507,0.18594,0.18421,0.18249,0.18103,0.17977,0.18248,0.1828,0.18821,0.18331,0.18667,0.18616,0.18748,0.18962,0.18594,0.18713,0.18935,0.18124,0.17831,0.18404,0.18246,0.18539,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.090653,0.13187,0.14927,0.15977,0.15794,0.15272,0.15424,0.17334,0.17033,0.17486,0.18724,0.19288,0.18706,0.1871,0.18917,0.18893,0.18589,0.19117,0.18751,0.18672,0.19001,0.19098,0.18861,0.18721,0.18761,0.18664,0.18773,0.18823,0.18905,0.18748,0.18578,0.18428,0.18327,0.18647,0.18751,0.19208,0.18567,0.19001,0.18858,0.18933,0.19046,0.18879,0.19185,0.19595,0.1883,0.18566,0.19306,0.19017,0.19143,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.086235,0.12136,0.13553,0.15433,0.15213,0.14936,0.15162,0.16793,0.16962,0.17353,0.18382,0.1887,0.18441,0.18388,0.1865,0.18581,0.18172,0.18756,0.1837,0.18258,0.18652,0.18792,0.18786,0.18694,0.18776,0.18779,0.18859,0.18978,0.19086,0.18941,0.18808,0.18712,0.18659,0.19023,0.1919,0.19468,0.18944,0.19401,0.19382,0.19593,0.1985,0.19667,0.1972,0.19819,0.19283,0.19029,0.19931,0.19815,0.20156,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.098102,0.1235,0.13233,0.14732,0.15207,0.14673,0.15703,0.17555,0.1753,0.18146,0.19218,0.19794,0.19484,0.19465,0.19833,0.19766,0.19258,0.19827,0.19361,0.19231,0.19684,0.19921,0.19858,0.19787,0.19808,0.19779,0.19834,0.19946,0.20048,0.19836,0.19722,0.19654,0.19642,0.20037,0.20256,0.20438,0.19907,0.20249,0.20198,0.20221,0.20605,0.2057,0.20274,0.20529,0.20167,0.20057,0.20865,0.20615,0.20771,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.093413,0.12028,0.12767,0.14869,0.16132,0.15328,0.16567,0.18165,0.18234,0.18684,0.19698,0.20295,0.20096,0.20275,0.20907,0.20928,0.20381,0.20852,0.20314,0.20234,0.20822,0.21033,0.20957,0.20907,0.20934,0.20875,0.20908,0.21008,0.21131,0.20909,0.2079,0.20747,0.20739,0.21163,0.214,0.21638,0.21127,0.21483,0.21325,0.21347,0.21702,0.21635,0.21468,0.21837,0.21588,0.21567,0.22437,0.22257,0.22525,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.10109,0.12528,0.14036,0.16284,0.1724,0.1649,0.17738,0.19341,0.19255,0.19564,0.20507,0.21215,0.20904,0.20964,0.21604,0.21532,0.20903,0.21446,0.21123,0.20982,0.21583,0.21799,0.21676,0.21665,0.21683,0.21612,0.2172,0.21846,0.21961,0.21695,0.21579,0.21542,0.21567,0.22023,0.22173,0.22383,0.21921,0.22252,0.22184,0.22069,0.2253,0.22443,0.22397,0.2288,0.22598,0.22572,0.23538,0.2345,0.23642,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.10622,0.12756,0.1429,0.1624,0.17089,0.16365,0.17571,0.19012,0.19013,0.19371,0.20335,0.20922,0.20629,0.20586,0.21238,0.21078,0.20515,0.21103,0.20788,0.20703,0.21369,0.21652,0.21482,0.2143,0.21462,0.21381,0.21491,0.21657,0.21747,0.21522,0.21391,0.21379,0.21358,0.21843,0.22047,0.22255,0.21751,0.22124,0.22046,0.22047,0.22486,0.22272,0.22128,0.22776,0.22678,0.22699,0.23823,0.23885,0.24046,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.10062,0.12155,0.14721,0.17031,0.17839,0.17283,0.18423,0.19878,0.19747,0.19985,0.20828,0.21528,0.21138,0.21177,0.21789,0.21551,0.20916,0.21431,0.21096,0.20956,0.21692,0.21968,0.21833,0.21747,0.21752,0.21648,0.21741,0.21898,0.21983,0.21756,0.21589,0.21581,0.21596,0.22115,0.22363,0.22584,0.22003,0.22441,0.22443,0.22345,0.22886,0.22785,0.22302,0.22929,0.22848,0.22835,0.23724,0.23541,0.23644,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.1079,0.12659,0.15156,0.17425,0.18129,0.17402,0.18531,0.20021,0.20073,0.20325,0.21132,0.21936,0.21545,0.21621,0.2228,0.22006,0.21363,0.21817,0.21421,0.213,0.22102,0.22403,0.22314,0.2223,0.22233,0.22107,0.22204,0.22354,0.22435,0.22201,0.22045,0.22039,0.22063,0.22578,0.22797,0.2288,0.22319,0.22825,0.22903,0.22729,0.23216,0.23228,0.22742,0.23122,0.23194,0.23325,0.2435,0.24284,0.24152,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.11419,0.13081,0.15269,0.17508,0.18049,0.17184,0.18344,0.20023,0.20059,0.20496,0.21208,0.22103,0.21629,0.21731,0.22315,0.21973,0.21348,0.21879,0.21512,0.21416,0.22171,0.22431,0.22362,0.22293,0.22309,0.22175,0.22257,0.22399,0.22462,0.22227,0.22106,0.22069,0.22088,0.22585,0.2276,0.22846,0.22316,0.22851,0.22916,0.22784,0.23307,0.23327,0.22703,0.23209,0.23244,0.23515,0.24416,0.24485,0.24352,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.11115,0.1306,0.15256,0.17585,0.17991,0.17198,0.18443,0.20132,0.20073,0.20516,0.21152,0.22053,0.21624,0.21703,0.22306,0.21903,0.21258,0.21804,0.21585,0.21447,0.22201,0.22486,0.22454,0.22405,0.224,0.22263,0.2235,0.22495,0.22557,0.22326,0.22215,0.22178,0.22201,0.22694,0.22905,0.22987,0.22478,0.23008,0.22974,0.22921,0.23534,0.23411,0.22885,0.23232,0.23221,0.23629,0.24557,0.24646,0.24496,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.10876,0.13006,0.15074,0.17494,0.17851,0.17022,0.18378,0.20046,0.20149,0.20518,0.21218,0.22097,0.21721,0.21801,0.2235,0.22008,0.21351,0.21855,0.21688,0.21511,0.22235,0.22515,0.22473,0.22399,0.22375,0.22222,0.22289,0.22423,0.22489,0.22261,0.22156,0.22133,0.22162,0.22635,0.22847,0.22919,0.22445,0.2303,0.23053,0.22959,0.23658,0.23494,0.22929,0.23264,0.23236,0.23557,0.24361,0.24457,0.24286,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.11013,0.13047,0.14992,0.1744,0.17817,0.17021,0.18353,0.20183,0.20224,0.20538,0.21187,0.22093,0.21669,0.21704,0.22291,0.21966,0.21336,0.2188,0.21708,0.21502,0.22202,0.22478,0.22414,0.22363,0.22387,0.22244,0.22313,0.22452,0.22518,0.22293,0.22194,0.22182,0.22198,0.22668,0.22872,0.22964,0.22523,0.23145,0.23064,0.22997,0.23666,0.23399,0.2288,0.23284,0.2334,0.23503,0.2427,0.2435,0.24284,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.10842,0.1294,0.15127,0.17582,0.18146,0.17392,0.18647,0.20416,0.20506,0.20804,0.21438,0.22302,0.21876,0.2194,0.22522,0.22184,0.21604,0.22135,0.21953,0.21723,0.22402,0.22663,0.22679,0.22613,0.22644,0.22498,0.2256,0.22693,0.2275,0.22527,0.22433,0.22418,0.22441,0.22928,0.23151,0.23219,0.22802,0.23433,0.23386,0.23358,0.2394,0.23658,0.23091,0.23551,0.23496,0.23726,0.24436,0.24487,0.24502,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.10701,0.12945,0.15051,0.17481,0.17984,0.17175,0.1842,0.2015,0.20235,0.20577,0.21173,0.21996,0.21656,0.21712,0.22331,0.2205,0.21451,0.22005,0.21799,0.21564,0.2224,0.22534,0.22568,0.22562,0.22605,0.22453,0.22509,0.22645,0.22701,0.22481,0.22392,0.22374,0.22411,0.22878,0.23123,0.23144,0.22695,0.2333,0.23302,0.23318,0.23957,0.23579,0.23039,0.23564,0.23456,0.23726,0.2451,0.2448,0.24479,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.11004,0.13024,0.15044,0.1749,0.17931,0.17224,0.18396,0.20161,0.20247,0.20628,0.21258,0.2215,0.21869,0.21903,0.22519,0.2221,0.21605,0.2217,0.2197,0.21747,0.22446,0.22739,0.2278,0.22762,0.22814,0.22654,0.22703,0.2284,0.22896,0.22679,0.22595,0.22584,0.2263,0.2311,0.23358,0.23398,0.22968,0.23627,0.23508,0.23506,0.24182,0.23688,0.23159,0.23732,0.23646,0.23963,0.24792,0.248,0.24851,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.10886,0.12991,0.14951,0.17634,0.18036,0.1735,0.18476,0.20203,0.20252,0.20653,0.21296,0.22201,0.21916,0.21943,0.22556,0.22259,0.21748,0.22305,0.22082,0.21873,0.22558,0.22838,0.22881,0.22852,0.22897,0.2273,0.22774,0.22909,0.22965,0.2275,0.2267,0.22673,0.22729,0.23182,0.23436,0.23446,0.23018,0.23611,0.23467,0.23463,0.24142,0.23686,0.23193,0.23738,0.2351,0.23903,0.24788,0.24869,0.25007,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.10784,0.12841,0.14775,0.17434,0.17803,0.1713,0.18235,0.20039,0.20156,0.20505,0.21147,0.22028,0.21765,0.21828,0.22503,0.22186,0.21658,0.22206,0.2197,0.2178,0.22453,0.22723,0.22755,0.22718,0.22756,0.22584,0.22647,0.22779,0.22835,0.22613,0.22536,0.22541,0.22604,0.23038,0.23278,0.23305,0.2288,0.23488,0.23349,0.23322,0.24044,0.23621,0.23195,0.23694,0.23441,0.23861,0.2468,0.2473,0.24976,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.10723,0.12741,0.1466,0.17387,0.17793,0.17139,0.18222,0.20007,0.20228,0.2056,0.21224,0.22133,0.21855,0.21902,0.22578,0.22291,0.2174,0.22278,0.22032,0.21834,0.22482,0.22748,0.22775,0.22731,0.22785,0.22606,0.22667,0.22799,0.2286,0.22639,0.22551,0.22546,0.22596,0.23037,0.233,0.23337,0.22907,0.23528,0.23427,0.23415,0.24188,0.23729,0.23321,0.23747,0.23498,0.23944,0.24727,0.24752,0.25082,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.10684,0.12817,0.14762,0.17458,0.17945,0.17428,0.18536,0.20301,0.20544,0.20895,0.21599,0.22506,0.22218,0.22274,0.22964,0.227,0.22169,0.22694,0.22473,0.22288,0.22933,0.232,0.23218,0.23172,0.23241,0.23056,0.23117,0.23249,0.23309,0.23086,0.22999,0.22994,0.23045,0.23485,0.23755,0.23791,0.23361,0.24,0.23917,0.23941,0.2471,0.24246,0.23833,0.2425,0.23967,0.24433,0.25243,0.25294,0.25681,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.10676,0.12797,0.14754,0.17519,0.17964,0.17439,0.1854,0.20299,0.20537,0.20883,0.21582,0.22444,0.22154,0.22207,0.22893,0.2264,0.22122,0.2266,0.22437,0.22249,0.22896,0.2315,0.23208,0.23189,0.23257,0.23071,0.23132,0.23261,0.23321,0.23098,0.23011,0.23007,0.23049,0.2349,0.23741,0.23779,0.23351,0.23982,0.23847,0.23876,0.24603,0.24092,0.23722,0.24203,0.23877,0.24357,0.2525,0.25299,0.25757,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.10486,0.12612,0.1447,0.17187,0.17612,0.17035,0.18159,0.19873,0.20138,0.20535,0.21205,0.22121,0.21824,0.21904,0.22587,0.22275,0.21767,0.22304,0.22083,0.21891,0.22512,0.22766,0.22818,0.22799,0.22865,0.2268,0.2275,0.22879,0.22932,0.22706,0.22621,0.22618,0.22661,0.23094,0.23348,0.23362,0.22943,0.23591,0.23434,0.23443,0.2418,0.23682,0.23325,0.23786,0.23422,0.23993,0.24846,0.2489,0.25375,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.10341,0.12539,0.14428,0.17155,0.17589,0.17023,0.18204,0.19903,0.20188,0.20612,0.21225,0.22146,0.21827,0.21919,0.22559,0.22253,0.21704,0.22244,0.22026,0.21857,0.22479,0.22773,0.22824,0.22823,0.22897,0.22712,0.22779,0.22908,0.22961,0.22731,0.22645,0.2264,0.22685,0.23105,0.23356,0.23366,0.22979,0.23621,0.23458,0.2346,0.24239,0.23777,0.23409,0.23943,0.23507,0.24057,0.24852,0.24865,0.25433,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.10379,0.12593,0.1456,0.17287,0.17774,0.17245,0.18371,0.20004,0.20304,0.20762,0.21422,0.22355,0.2205,0.22176,0.22836,0.22548,0.22,0.22518,0.22308,0.22126,0.22748,0.23065,0.23122,0.23092,0.23171,0.2299,0.23059,0.2319,0.23245,0.23017,0.22928,0.22919,0.22958,0.23391,0.23633,0.2366,0.23261,0.23888,0.2376,0.23741,0.24599,0.24122,0.23816,0.24345,0.23954,0.24445,0.25277,0.25233,0.25871,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.1022,0.12341,0.14175,0.16812,0.17379,0.16927,0.18034,0.19616,0.1996,0.20414,0.21042,0.22005,0.2172,0.21832,0.22465,0.22136,0.21619,0.22137,0.2195,0.21776,0.22406,0.22716,0.22783,0.22752,0.22846,0.22682,0.22749,0.22882,0.22942,0.22731,0.22639,0.22623,0.22651,0.23077,0.23324,0.23344,0.22937,0.23536,0.23393,0.23387,0.2424,0.23745,0.23468,0.24043,0.23646,0.24263,0.25147,0.25159,0.25884,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.097742,0.12117,0.1393,0.16653,0.173,0.16924,0.1808,0.19583,0.19823,0.20325,0.20948,0.21893,0.216,0.2163,0.22298,0.21972,0.21453,0.21983,0.21827,0.21643,0.22282,0.22602,0.22667,0.22629,0.22728,0.22542,0.22614,0.22737,0.22792,0.22581,0.22485,0.22469,0.22481,0.22888,0.23137,0.23162,0.22754,0.23372,0.23191,0.23224,0.24089,0.23536,0.23267,0.23767,0.23356,0.24057,0.25047,0.25087,0.25877,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.096861,0.12196,0.14097,0.16872,0.17417,0.17076,0.18289,0.19726,0.19943,0.20482,0.21016,0.22015,0.21787,0.21871,0.22543,0.2224,0.2176,0.22287,0.22093,0.21879,0.22521,0.22867,0.22923,0.22908,0.2299,0.22819,0.22896,0.23014,0.23051,0.22828,0.22714,0.22704,0.22702,0.23096,0.23307,0.23382,0.22931,0.23622,0.23386,0.23343,0.24214,0.23611,0.23306,0.23929,0.23486,0.24193,0.253,0.25483,0.26346,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.098881,0.12515,0.14271,0.17012,0.17505,0.17079,0.18294,0.19683,0.19914,0.20354,0.20927,0.21988,0.21592,0.21642,0.22309,0.22066,0.21612,0.2214,0.2188,0.21708,0.2238,0.22754,0.22762,0.22689,0.22789,0.22629,0.22686,0.22804,0.22847,0.22622,0.22498,0.22473,0.22526,0.2292,0.2313,0.23237,0.22771,0.23475,0.23245,0.23227,0.23998,0.23371,0.22974,0.23703,0.23357,0.23924,0.25225,0.25414,0.261,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.097244,0.12062,0.14043,0.16701,0.17178,0.16633,0.17771,0.19139,0.19373,0.1978,0.2043,0.21493,0.21068,0.21068,0.21724,0.21439,0.20928,0.21501,0.21293,0.21128,0.21765,0.2217,0.22211,0.2214,0.2222,0.22064,0.22113,0.22239,0.22285,0.22075,0.21944,0.21903,0.2197,0.22329,0.2252,0.22621,0.22226,0.22901,0.2266,0.22565,0.23379,0.2284,0.2235,0.23153,0.22801,0.23241,0.24522,0.24604,0.254,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.099472,0.12075,0.13904,0.16423,0.17045,0.16642,0.17869,0.19246,0.19486,0.19982,0.20708,0.21721,0.21268,0.2117,0.21829,0.21618,0.21148,0.21771,0.21546,0.21435,0.22093,0.2249,0.2251,0.22431,0.22534,0.22376,0.22435,0.22567,0.22613,0.22399,0.22264,0.22237,0.22321,0.22672,0.22834,0.22875,0.22502,0.23207,0.22892,0.22865,0.2366,0.23,0.22616,0.23588,0.23194,0.23632,0.25062,0.25319,0.26174,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.10196,0.12322,0.14256,0.16845,0.17586,0.17196,0.18392,0.19785,0.19995,0.20496,0.213,0.22296,0.21748,0.21619,0.22284,0.22149,0.2175,0.22426,0.22163,0.21993,0.22688,0.23121,0.23163,0.2312,0.23215,0.23065,0.23155,0.23287,0.23334,0.23123,0.22996,0.23005,0.23118,0.23545,0.23742,0.23787,0.23345,0.24017,0.23698,0.23706,0.24583,0.23777,0.23502,0.24667,0.24192,0.24622,0.26335,0.26752,0.27643,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.10077,0.12466,0.14529,0.17192,0.17769,0.17272,0.18568,0.20053,0.20388,0.20999,0.2189,0.22978,0.22552,0.22447,0.23102,0.22989,0.22525,0.23179,0.22846,0.22684,0.23419,0.23798,0.23799,0.23772,0.23897,0.23741,0.23847,0.23956,0.24003,0.23789,0.23652,0.23655,0.23781,0.24241,0.24427,0.24422,0.2403,0.24711,0.24298,0.24375,0.25332,0.24626,0.24318,0.25419,0.24959,0.25575,0.27178,0.2778,0.28899,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.10307,0.12693,0.14866,0.17589,0.18185,0.17856,0.19226,0.20605,0.2085,0.21411,0.22289,0.23286,0.22805,0.22625,0.23366,0.23356,0.22902,0.23621,0.23331,0.23138,0.23901,0.24284,0.24244,0.24205,0.24363,0.24218,0.2436,0.24464,0.24522,0.24305,0.24188,0.24223,0.24341,0.24867,0.25111,0.25093,0.24692,0.25351,0.24969,0.25043,0.26018,0.25288,0.24976,0.26311,0.25835,0.26356,0.28131,0.28928,0.29982,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.10526,0.1282,0.15118,0.17663,0.18302,0.18043,0.19363,0.20841,0.21228,0.21912,0.22884,0.23983,0.23643,0.23574,0.24148,0.24124,0.23663,0.2438,0.24045,0.23809,0.24613,0.25041,0.25061,0.24979,0.25169,0.25056,0.25135,0.25247,0.25292,0.25063,0.24931,0.24942,0.25064,0.25606,0.25836,0.25764,0.25404,0.26122,0.2575,0.26009,0.27069,0.26142,0.25783,0.27116,0.26642,0.27348,0.29092,0.30052,0.31308,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.10719,0.1319,0.1537,0.17771,0.18282,0.17907,0.19334,0.20908,0.21216,0.21766,0.22725,0.23916,0.23528,0.23285,0.23946,0.23888,0.23443,0.2422,0.23971,0.23713,0.24512,0.249,0.24975,0.24895,0.2503,0.24874,0.24941,0.25012,0.25057,0.24842,0.24711,0.24692,0.24767,0.25312,0.25616,0.25554,0.25197,0.25903,0.25755,0.26015,0.26864,0.25789,0.25376,0.26735,0.26319,0.26918,0.28944,0.30078,0.31266,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.098267,0.12575,0.15013,0.17556,0.18117,0.17943,0.19274,0.20942,0.21286,0.21961,0.2287,0.24154,0.2391,0.23788,0.24536,0.24526,0.2419,0.24751,0.24494,0.24209,0.24973,0.25253,0.25219,0.25191,0.25324,0.25124,0.2521,0.25264,0.25309,0.25095,0.24959,0.24935,0.25054,0.25611,0.25894,0.25809,0.25363,0.2625,0.26362,0.26654,0.27449,0.26594,0.25958,0.27092,0.26714,0.27483,0.29092,0.30365,0.31742,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.093485,0.12441,0.14861,0.1751,0.18266,0.17972,0.19403,0.21157,0.21473,0.22163,0.22941,0.24317,0.24158,0.24164,0.25001,0.25107,0.24888,0.25525,0.25242,0.24904,0.25653,0.25987,0.2594,0.25892,0.26033,0.25823,0.25879,0.25932,0.25967,0.25744,0.25606,0.25584,0.25703,0.26254,0.26577,0.26581,0.26037,0.27008,0.27186,0.27458,0.28328,0.27511,0.26935,0.28012,0.27664,0.28587,0.29928,0.31331,0.32873,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.087407,0.11724,0.14039,0.16584,0.17425,0.17225,0.18549,0.20243,0.20716,0.21532,0.22419,0.23878,0.2368,0.237,0.24619,0.24779,0.2467,0.2529,0.25002,0.24665,0.25328,0.25554,0.25447,0.25383,0.25508,0.25313,0.25379,0.25439,0.25501,0.2529,0.25191,0.25199,0.25264,0.25786,0.26092,0.26121,0.25498,0.26399,0.26524,0.26822,0.27599,0.26624,0.26301,0.27282,0.26962,0.27781,0.2929,0.30853,0.32312,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.083576,0.11318,0.13632,0.16112,0.16948,0.16823,0.18051,0.19738,0.20164,0.20907,0.21896,0.23171,0.22954,0.22956,0.23801,0.24064,0.23927,0.24613,0.24285,0.24044,0.24725,0.25005,0.24964,0.24908,0.25012,0.24856,0.24883,0.24895,0.24918,0.24699,0.24602,0.24628,0.24688,0.25229,0.25537,0.25545,0.24939,0.25688,0.25688,0.26188,0.27044,0.25916,0.25847,0.26777,0.26436,0.27186,0.28843,0.30309,0.3173,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.085854,0.10734,0.12984,0.1563,0.16658,0.16735,0.18066,0.19833,0.20219,0.20962,0.21942,0.23172,0.23099,0.23218,0.24141,0.24503,0.24468,0.25092,0.2473,0.24518,0.25222,0.25461,0.25397,0.2536,0.25464,0.25306,0.25375,0.25383,0.25406,0.25197,0.25135,0.25208,0.25267,0.25857,0.26238,0.26305,0.25613,0.26366,0.26409,0.27031,0.28007,0.26898,0.26931,0.27879,0.27516,0.28441,0.29888,0.31484,0.33071,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.084992,0.1067,0.13062,0.15444,0.16439,0.16707,0.17744,0.19594,0.19971,0.20557,0.21382,0.22612,0.22675,0.22909,0.23906,0.2436,0.24425,0.25037,0.24679,0.24386,0.25086,0.25378,0.25321,0.25234,0.25353,0.25217,0.2529,0.25306,0.25347,0.25155,0.25127,0.25211,0.2534,0.25936,0.26359,0.2643,0.25663,0.26458,0.26707,0.27307,0.2825,0.27368,0.27507,0.28267,0.27945,0.28964,0.29977,0.31496,0.33201,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.087091,0.10712,0.12837,0.15332,0.16494,0.16648,0.17792,0.1971,0.2012,0.20571,0.21276,0.22502,0.2255,0.22792,0.23734,0.24175,0.24214,0.24892,0.24533,0.24269,0.2496,0.25301,0.25244,0.2515,0.25278,0.25157,0.25214,0.25245,0.25293,0.25099,0.25105,0.2519,0.25375,0.25965,0.26416,0.26483,0.25737,0.26557,0.26856,0.27426,0.28492,0.27848,0.27892,0.28688,0.28385,0.29474,0.30071,0.31499,0.33329,2500,0.17465,0.49354,30 +5.4556e-07,0.33409,0,0.084136,0.10724,0.12615,0.15214,0.16531,0.16589,0.17833,0.19813,0.20241,0.2055,0.21153,0.2238,0.2245,0.22651,0.23531,0.23952,0.23958,0.24696,0.24342,0.24111,0.24796,0.25182,0.25129,0.25035,0.25173,0.25069,0.25109,0.25156,0.25214,0.25047,0.25057,0.25144,0.25382,0.25966,0.26441,0.26505,0.25779,0.2662,0.26962,0.27501,0.28681,0.28263,0.28216,0.2905,0.28757,0.29918,0.30126,0.31461,0.33409,2500,0.17465,0.49354,30 diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/joint_sim_fast_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/joint_sim_fast_res.csv new file mode 100644 index 0000000..ec378a6 --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/joint_sim_fast_res.csv @@ -0,0 +1,50 @@ +1.7716e-05,0.33694,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.21804,0.15544,0.14994,0.14099,0.12659,0.10966,0.12939,0.1399,0.13768,0.14508,0.15173,0.15109,0.15527,0.1551,0.15963,0.15564,0.16432,0.16416,0.16382,0.16139,0.1695,0.17259,0.17442,0.1746,0.17718,0.17666,0.17763,0.17751,0.17751,0.17786,0.17857,0.17932,0.17873,0.17747,0.1781,0.17918,0.17678,0.17417,0.17203,0.17359,0.17412,0.17382,0.17322,0.17204,0.17129,0.16981,0.16852,0.16548,0.16299,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.14892,0.11823,0.10359,0.12996,0.12836,0.12127,0.14792,0.14875,0.14489,0.1448,0.14482,0.14257,0.14156,0.14062,0.15837,0.15868,0.16486,0.16462,0.16398,0.16014,0.16672,0.17264,0.17679,0.1771,0.17828,0.18042,0.18099,0.18142,0.18101,0.18096,0.18018,0.17911,0.17765,0.17835,0.1806,0.18241,0.18277,0.18109,0.18198,0.18267,0.1831,0.18561,0.18283,0.18014,0.18246,0.18409,0.18577,0.17998,0.1811,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.11014,0.093074,0.097641,0.11776,0.12773,0.11518,0.13167,0.12761,0.12693,0.13572,0.13872,0.13808,0.13647,0.13886,0.15739,0.15759,0.16586,0.16542,0.16666,0.16191,0.16742,0.17112,0.1745,0.17374,0.17587,0.17768,0.17879,0.17972,0.17988,0.17761,0.17766,0.17678,0.17572,0.17559,0.17481,0.17815,0.18034,0.17859,0.17606,0.16964,0.17287,0.17787,0.17837,0.17889,0.18352,0.18068,0.1811,0.17952,0.18375,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.096652,0.081618,0.109,0.12165,0.124,0.11072,0.12572,0.12077,0.12223,0.13242,0.13445,0.13285,0.1312,0.13869,0.15593,0.15717,0.16439,0.16555,0.168,0.16466,0.16834,0.1712,0.17328,0.17296,0.1743,0.17618,0.17716,0.17832,0.17801,0.17505,0.17566,0.1749,0.17342,0.17452,0.17517,0.17669,0.18034,0.17827,0.17602,0.17253,0.17538,0.17911,0.18193,0.17855,0.18122,0.18145,0.18041,0.18201,0.18883,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.082284,0.061953,0.099061,0.11063,0.11753,0.10706,0.12109,0.11563,0.11384,0.12078,0.12004,0.12,0.11884,0.12391,0.14648,0.1506,0.15697,0.15823,0.15999,0.1555,0.16027,0.16244,0.16577,0.16533,0.16685,0.16824,0.16828,0.169,0.16903,0.16631,0.16713,0.16662,0.16539,0.1659,0.16687,0.17008,0.17543,0.17339,0.16883,0.16425,0.16745,0.1693,0.1722,0.17218,0.17392,0.17452,0.1769,0.18217,0.18808,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.067973,0.052118,0.096584,0.10989,0.11473,0.10629,0.1194,0.11875,0.11657,0.12258,0.12146,0.12164,0.12013,0.12436,0.14548,0.14764,0.1549,0.15468,0.1564,0.1526,0.15606,0.15816,0.16052,0.16073,0.16169,0.16285,0.16213,0.16279,0.16327,0.1598,0.16113,0.16092,0.15895,0.15969,0.15785,0.16245,0.16705,0.16688,0.16299,0.16081,0.15992,0.16422,0.16947,0.16887,0.16942,0.17278,0.17447,0.17886,0.18383,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.063724,0.042047,0.094601,0.10509,0.11374,0.11151,0.12262,0.11881,0.11392,0.11712,0.11564,0.12091,0.12234,0.1245,0.14646,0.14692,0.15617,0.15623,0.15832,0.15685,0.16073,0.16303,0.16455,0.1641,0.16494,0.16605,0.16465,0.1653,0.16591,0.16286,0.16454,0.16298,0.16192,0.16359,0.16291,0.16551,0.16834,0.16806,0.16368,0.16002,0.16121,0.1674,0.17446,0.17589,0.17837,0.17976,0.17978,0.18147,0.18341,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.066701,0.048046,0.094607,0.099824,0.10983,0.1072,0.12084,0.11441,0.10726,0.11349,0.11451,0.11961,0.12587,0.12764,0.14963,0.15005,0.15864,0.15866,0.16052,0.16032,0.16408,0.16606,0.16739,0.16636,0.16736,0.16832,0.16712,0.16815,0.16886,0.16621,0.16824,0.16682,0.16652,0.16895,0.16923,0.16996,0.17189,0.17045,0.16774,0.16387,0.16496,0.17259,0.18098,0.17888,0.1831,0.1814,0.18345,0.18357,0.18354,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.070908,0.059164,0.097206,0.10779,0.12353,0.12402,0.13774,0.13224,0.1263,0.12971,0.12845,0.13119,0.13696,0.13856,0.16348,0.16258,0.17284,0.17362,0.17589,0.17641,0.18037,0.18238,0.18307,0.18152,0.18214,0.18353,0.18151,0.18239,0.18316,0.18013,0.18241,0.18149,0.18177,0.18369,0.18396,0.18552,0.1873,0.18679,0.18257,0.18006,0.18225,0.18737,0.1966,0.19182,0.19715,0.19674,0.19991,0.19877,0.19719,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.078962,0.060201,0.10028,0.11332,0.12502,0.12978,0.14438,0.13639,0.13284,0.13603,0.13493,0.14156,0.14699,0.15042,0.17465,0.17706,0.1861,0.18785,0.1892,0.19056,0.19407,0.19741,0.19864,0.19716,0.19773,0.19884,0.19727,0.19841,0.19925,0.19597,0.19798,0.19751,0.19833,0.19924,0.19941,0.20178,0.20438,0.20375,0.19886,0.19756,0.2008,0.20686,0.21691,0.21312,0.21928,0.21508,0.2173,0.21418,0.21051,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.07424,0.065045,0.10815,0.1245,0.13629,0.13733,0.15345,0.14319,0.13757,0.14096,0.13931,0.14461,0.14957,0.15389,0.17861,0.18074,0.18844,0.18918,0.18998,0.19138,0.19506,0.19848,0.2006,0.19869,0.19936,0.20057,0.19909,0.2002,0.20111,0.19816,0.20013,0.20012,0.1997,0.20126,0.20094,0.20412,0.2066,0.20601,0.19965,0.19969,0.20412,0.20796,0.21902,0.21677,0.22404,0.2195,0.22048,0.21657,0.21192,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.076804,0.066517,0.11647,0.13622,0.15005,0.15205,0.16506,0.15456,0.15077,0.15789,0.1544,0.16024,0.16485,0.17078,0.19425,0.1953,0.20286,0.20272,0.20377,0.20514,0.2088,0.21217,0.21436,0.21283,0.21362,0.21461,0.21308,0.21419,0.21517,0.21231,0.21444,0.21481,0.21381,0.2143,0.21429,0.21821,0.21966,0.21988,0.21348,0.21308,0.21854,0.22341,0.23315,0.23083,0.23749,0.23412,0.2362,0.23077,0.22562,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.085427,0.068984,0.11662,0.13266,0.14846,0.15201,0.16247,0.15315,0.1477,0.15443,0.15085,0.15873,0.16295,0.16958,0.193,0.19301,0.20046,0.1995,0.20116,0.20183,0.20506,0.20847,0.21014,0.20947,0.21033,0.21107,0.2091,0.21019,0.21147,0.20858,0.21065,0.21107,0.21065,0.21178,0.21251,0.21607,0.21757,0.21766,0.20966,0.20712,0.21282,0.2155,0.22563,0.22511,0.23021,0.22657,0.22898,0.2259,0.22309,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.079678,0.076552,0.12176,0.14101,0.16073,0.16143,0.1751,0.16371,0.15764,0.16264,0.15757,0.16615,0.17009,0.17719,0.20167,0.20259,0.20923,0.20753,0.2096,0.21031,0.21402,0.21827,0.21951,0.21846,0.21907,0.21992,0.21752,0.21853,0.21988,0.21663,0.21865,0.21895,0.21798,0.21964,0.22096,0.22519,0.22692,0.2262,0.21678,0.21526,0.22075,0.22447,0.23451,0.23346,0.23963,0.23709,0.24054,0.2371,0.23375,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.098275,0.087632,0.13605,0.15298,0.17921,0.18158,0.19226,0.18047,0.17461,0.18069,0.17413,0.1833,0.18791,0.19626,0.21967,0.21976,0.22792,0.22625,0.23061,0.23144,0.23503,0.23885,0.23971,0.2383,0.23887,0.23982,0.23706,0.23806,0.23919,0.23548,0.23768,0.23788,0.23675,0.23877,0.24043,0.24417,0.24634,0.24504,0.23537,0.23372,0.23766,0.23963,0.24908,0.24866,0.25541,0.25347,0.2563,0.25342,0.25067,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.099895,0.096722,0.14065,0.15788,0.18329,0.18364,0.19676,0.18692,0.17961,0.18531,0.17842,0.19029,0.19452,0.20252,0.229,0.22884,0.23633,0.23404,0.23935,0.24015,0.24361,0.24709,0.2476,0.24627,0.24708,0.24786,0.24505,0.24604,0.24746,0.24333,0.24575,0.24564,0.24453,0.24598,0.24811,0.25179,0.25303,0.25236,0.24105,0.24025,0.24503,0.24784,0.25714,0.25755,0.26435,0.26327,0.26689,0.26482,0.26291,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.095637,0.095081,0.14223,0.15718,0.1808,0.1797,0.19748,0.18635,0.17789,0.1837,0.17741,0.18909,0.19507,0.20223,0.22957,0.2297,0.2377,0.23485,0.24058,0.24091,0.24419,0.24858,0.24921,0.24792,0.24876,0.25007,0.24705,0.248,0.24949,0.24529,0.24792,0.2481,0.24613,0.24752,0.25015,0.2544,0.25625,0.25621,0.24313,0.2413,0.24534,0.24915,0.25941,0.26081,0.26855,0.26746,0.27205,0.27012,0.26823,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.092166,0.10531,0.15011,0.16591,0.19061,0.19089,0.20684,0.1974,0.18851,0.19315,0.18962,0.20025,0.20713,0.21421,0.24091,0.24047,0.24799,0.24526,0.251,0.25096,0.25434,0.25843,0.25879,0.25726,0.25848,0.25969,0.25667,0.25762,0.25901,0.25491,0.25704,0.25729,0.25558,0.25661,0.2587,0.26335,0.26512,0.26467,0.2521,0.25082,0.25363,0.258,0.2675,0.26947,0.27655,0.27607,0.28017,0.27781,0.27666,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.089556,0.10278,0.1465,0.16244,0.18627,0.18566,0.20173,0.19218,0.18353,0.18974,0.18622,0.197,0.20462,0.21265,0.23958,0.2397,0.24735,0.24449,0.24986,0.25043,0.25349,0.25773,0.25785,0.25609,0.25758,0.25874,0.25586,0.25683,0.25823,0.25397,0.25617,0.25641,0.25498,0.25558,0.25813,0.26208,0.26442,0.26386,0.25074,0.2502,0.25325,0.25771,0.26659,0.26954,0.2759,0.27646,0.28006,0.27891,0.27895,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.091583,0.10413,0.14836,0.16285,0.18562,0.184,0.20136,0.19196,0.18244,0.18795,0.1852,0.19639,0.20342,0.21221,0.24006,0.24001,0.24756,0.24467,0.24971,0.25081,0.25358,0.25758,0.2578,0.25601,0.25772,0.25892,0.25636,0.25735,0.25882,0.25465,0.25684,0.25731,0.25566,0.25621,0.2588,0.26324,0.26539,0.26409,0.25064,0.24899,0.25284,0.25815,0.26593,0.26908,0.27564,0.27484,0.27953,0.27956,0.27998,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.089552,0.1036,0.14793,0.1614,0.18549,0.1845,0.20108,0.19088,0.1815,0.18783,0.18504,0.1957,0.20279,0.21212,0.24005,0.24003,0.24723,0.24491,0.24967,0.25047,0.25353,0.25786,0.25852,0.25667,0.25826,0.25971,0.25712,0.25827,0.2598,0.25569,0.25804,0.2584,0.25658,0.25649,0.25925,0.26321,0.26496,0.26413,0.25115,0.24927,0.25329,0.25891,0.26741,0.2698,0.27638,0.27637,0.28137,0.28085,0.28167,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.092307,0.10434,0.14884,0.16126,0.18521,0.18503,0.20146,0.19183,0.18179,0.18831,0.18554,0.19608,0.20272,0.21192,0.23956,0.2397,0.2466,0.24488,0.24964,0.25081,0.254,0.25814,0.25882,0.25711,0.25873,0.26011,0.25749,0.25865,0.26012,0.25589,0.25804,0.25828,0.25667,0.25683,0.25971,0.2627,0.26456,0.26322,0.25066,0.24827,0.25288,0.2586,0.26725,0.27031,0.27695,0.2762,0.28081,0.28119,0.28225,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.092582,0.10347,0.14851,0.16029,0.18377,0.18308,0.19915,0.18985,0.17962,0.18579,0.18294,0.19364,0.20029,0.20921,0.23666,0.2365,0.24316,0.24119,0.24603,0.247,0.25073,0.25486,0.25565,0.25411,0.25566,0.25697,0.25436,0.25554,0.25699,0.25281,0.25486,0.25514,0.25345,0.2535,0.25624,0.25957,0.26101,0.25897,0.24681,0.24409,0.2486,0.25456,0.26333,0.26666,0.27273,0.27277,0.27686,0.27767,0.27971,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.092668,0.10547,0.14962,0.16165,0.18507,0.18384,0.1995,0.19024,0.18104,0.18687,0.18366,0.19409,0.20062,0.20954,0.23684,0.23658,0.24306,0.2412,0.24589,0.24688,0.25058,0.2546,0.25528,0.254,0.25557,0.25702,0.25439,0.25559,0.25704,0.25269,0.25482,0.25522,0.2531,0.25332,0.25611,0.25937,0.26094,0.25904,0.24712,0.24388,0.24876,0.254,0.26322,0.26651,0.27195,0.27248,0.2766,0.27768,0.28008,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.094215,0.10606,0.15103,0.16247,0.18549,0.18421,0.19956,0.1904,0.18102,0.18751,0.18424,0.19495,0.20163,0.21038,0.23756,0.23725,0.24427,0.24227,0.24684,0.24782,0.25143,0.25549,0.25622,0.25487,0.25639,0.2578,0.25534,0.25654,0.258,0.25366,0.25583,0.25623,0.25411,0.25443,0.25693,0.25991,0.26165,0.25956,0.24781,0.24404,0.24909,0.25437,0.2627,0.26633,0.27218,0.27256,0.27684,0.27796,0.28068,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.094806,0.10615,0.15225,0.16389,0.18659,0.18504,0.20017,0.19085,0.18129,0.18763,0.18421,0.19491,0.20148,0.21012,0.23724,0.23682,0.24398,0.24207,0.2468,0.24772,0.25128,0.25529,0.25597,0.25462,0.25614,0.25756,0.25509,0.25629,0.25773,0.25342,0.25562,0.25593,0.25387,0.25424,0.25674,0.25928,0.26103,0.25878,0.2463,0.24265,0.24788,0.25338,0.26167,0.26528,0.27137,0.27201,0.27642,0.27766,0.28066,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.095291,0.10632,0.15204,0.16356,0.18683,0.1852,0.20032,0.1912,0.18145,0.18829,0.18556,0.19618,0.20272,0.21129,0.23836,0.2379,0.24501,0.24319,0.24801,0.24892,0.25245,0.25644,0.2571,0.25577,0.25729,0.2587,0.25622,0.25743,0.25886,0.25455,0.25679,0.25701,0.25482,0.25516,0.25768,0.26042,0.26228,0.26015,0.24769,0.244,0.24841,0.25359,0.26202,0.26569,0.27191,0.27248,0.27713,0.27844,0.28156,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.094577,0.10615,0.15193,0.16352,0.18683,0.18538,0.20048,0.19139,0.18194,0.1888,0.18679,0.19741,0.20397,0.2124,0.23947,0.23904,0.24618,0.24431,0.24915,0.25008,0.25353,0.25753,0.25813,0.25676,0.25828,0.25976,0.25726,0.25844,0.25984,0.25553,0.25775,0.25804,0.2558,0.25618,0.2584,0.26105,0.26294,0.26077,0.24827,0.24452,0.24883,0.25359,0.2622,0.26591,0.27209,0.27291,0.2778,0.27944,0.28303,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.094955,0.10681,0.15129,0.16296,0.18649,0.18527,0.20046,0.19157,0.18129,0.1883,0.18578,0.1963,0.2027,0.21103,0.23815,0.23782,0.24503,0.24302,0.24792,0.24886,0.25225,0.2563,0.25691,0.25559,0.25714,0.25868,0.25617,0.25746,0.25888,0.25456,0.25681,0.25741,0.25513,0.25545,0.25755,0.26011,0.26191,0.25919,0.24663,0.24279,0.24721,0.2524,0.26038,0.26412,0.27019,0.2706,0.27641,0.27782,0.28141,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.095573,0.10788,0.15252,0.16298,0.1868,0.1853,0.20079,0.19218,0.18218,0.18879,0.18619,0.19688,0.20338,0.21159,0.23872,0.23766,0.24501,0.24313,0.24811,0.24901,0.25188,0.256,0.2566,0.25535,0.25694,0.25852,0.25598,0.25726,0.2588,0.25447,0.25684,0.25737,0.255,0.25538,0.25759,0.25998,0.26182,0.25919,0.24652,0.24308,0.24737,0.25257,0.26025,0.26395,0.26971,0.26967,0.27573,0.27741,0.28138,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.096504,0.10958,0.15383,0.16471,0.1882,0.18718,0.20297,0.19458,0.18356,0.1905,0.18699,0.19795,0.20425,0.21263,0.23987,0.23767,0.24522,0.24319,0.24834,0.2492,0.25221,0.25645,0.25719,0.25605,0.25751,0.259,0.2565,0.25782,0.25961,0.25524,0.25754,0.25793,0.2554,0.25604,0.25807,0.26052,0.26203,0.259,0.24585,0.24281,0.24664,0.25176,0.25894,0.26313,0.26909,0.26998,0.27624,0.27882,0.28411,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.09794,0.11203,0.1557,0.16717,0.18815,0.1869,0.20249,0.19471,0.18331,0.19074,0.18774,0.19909,0.20579,0.21449,0.24156,0.23978,0.247,0.24528,0.25066,0.25176,0.25497,0.25939,0.25987,0.25872,0.26028,0.26184,0.25938,0.26092,0.26252,0.25812,0.26071,0.2609,0.25816,0.25852,0.26058,0.26388,0.26531,0.26221,0.24863,0.24506,0.24829,0.25311,0.26008,0.26512,0.27139,0.27308,0.2792,0.28321,0.28941,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.095941,0.11183,0.15628,0.16852,0.18917,0.18793,0.20307,0.19471,0.18386,0.1918,0.1894,0.20113,0.20678,0.21585,0.24309,0.24175,0.24911,0.24727,0.25231,0.25334,0.25623,0.2603,0.26096,0.25999,0.26161,0.26302,0.2606,0.262,0.26355,0.25911,0.26164,0.26164,0.25885,0.25892,0.26103,0.26446,0.26575,0.2632,0.2492,0.24585,0.24838,0.25326,0.26058,0.26616,0.27299,0.27542,0.28186,0.28741,0.29549,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.093984,0.11189,0.15719,0.16957,0.18943,0.18913,0.20487,0.1969,0.18646,0.19488,0.19194,0.2036,0.20937,0.21887,0.24543,0.24387,0.25158,0.25018,0.25552,0.25655,0.25971,0.2635,0.26392,0.26314,0.26471,0.26621,0.26385,0.26561,0.26711,0.26261,0.26493,0.26474,0.26225,0.26193,0.26355,0.26741,0.26844,0.26547,0.25116,0.25014,0.25173,0.25654,0.26334,0.27028,0.2769,0.28167,0.28667,0.29346,0.30358,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.093813,0.1091,0.15384,0.16778,0.18871,0.18952,0.20567,0.19781,0.18676,0.19521,0.19305,0.20438,0.21075,0.21916,0.24526,0.24384,0.25194,0.25064,0.2563,0.25731,0.26077,0.26423,0.26489,0.26428,0.26578,0.26696,0.26465,0.26637,0.26822,0.26364,0.26576,0.26604,0.26325,0.26314,0.26434,0.26939,0.27009,0.26721,0.2526,0.2508,0.25209,0.25831,0.26472,0.27125,0.27736,0.28226,0.28684,0.29428,0.30526,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.095411,0.10677,0.15272,0.16786,0.18807,0.19002,0.20464,0.19793,0.18454,0.19312,0.19102,0.2021,0.2091,0.21802,0.24425,0.24251,0.251,0.24964,0.25563,0.25656,0.25956,0.26253,0.26285,0.2621,0.26375,0.26504,0.26281,0.26448,0.26628,0.26205,0.26414,0.2648,0.2617,0.2623,0.26405,0.26838,0.26876,0.26523,0.25014,0.24801,0.24992,0.25572,0.26174,0.26885,0.27554,0.28024,0.28349,0.29028,0.30262,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.095011,0.10692,0.14667,0.16155,0.18239,0.18589,0.20158,0.19489,0.18209,0.19151,0.18956,0.20073,0.20842,0.21791,0.24433,0.24217,0.25034,0.24902,0.25428,0.25474,0.25765,0.26088,0.26151,0.26077,0.26219,0.2636,0.26133,0.26296,0.26504,0.26109,0.26289,0.26362,0.26083,0.26165,0.26295,0.26671,0.26637,0.26216,0.24654,0.24535,0.24622,0.2526,0.25846,0.26584,0.27118,0.27772,0.28123,0.29031,0.30368,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.089913,0.10094,0.14284,0.1581,0.18023,0.18285,0.19546,0.19027,0.17805,0.18758,0.18581,0.19769,0.20395,0.21308,0.23909,0.23676,0.24482,0.24411,0.24874,0.24894,0.25222,0.2555,0.25618,0.25534,0.25692,0.25833,0.25615,0.25825,0.2602,0.2562,0.25773,0.25816,0.25569,0.25607,0.25679,0.2611,0.26046,0.25562,0.23954,0.2395,0.24076,0.24593,0.25125,0.25959,0.26472,0.27241,0.27455,0.28531,0.30038,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.091836,0.10092,0.14382,0.15582,0.17812,0.1785,0.1915,0.18499,0.17211,0.18048,0.17986,0.19044,0.1975,0.20525,0.23063,0.22875,0.2367,0.23547,0.24008,0.24075,0.24357,0.24716,0.24788,0.24658,0.24833,0.24972,0.24771,0.24979,0.25162,0.2479,0.24949,0.24993,0.24713,0.24704,0.24795,0.25203,0.25076,0.24578,0.23055,0.23057,0.23182,0.23588,0.24095,0.24987,0.25383,0.26238,0.26334,0.27554,0.2921,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.08811,0.10053,0.14076,0.15361,0.17711,0.179,0.19145,0.18427,0.17296,0.18148,0.18015,0.18966,0.1967,0.20512,0.23009,0.22907,0.23641,0.23457,0.23926,0.23911,0.24234,0.24626,0.24703,0.24571,0.24729,0.24859,0.2466,0.24899,0.25081,0.24701,0.24859,0.24893,0.24588,0.24561,0.24581,0.25078,0.24869,0.24294,0.22831,0.22923,0.23088,0.2341,0.23765,0.24696,0.25054,0.26086,0.26146,0.27448,0.2919,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.078838,0.086308,0.13022,0.14379,0.16919,0.1692,0.1833,0.17534,0.16492,0.17245,0.17137,0.17976,0.18679,0.19601,0.22112,0.21961,0.22626,0.22523,0.22934,0.2298,0.23238,0.23666,0.23784,0.23656,0.23835,0.2397,0.23778,0.24008,0.24174,0.23791,0.23953,0.23947,0.23649,0.236,0.23654,0.24102,0.23888,0.23241,0.21922,0.21897,0.22052,0.22236,0.22607,0.23507,0.23999,0.24847,0.24885,0.26207,0.27984,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.073069,0.082348,0.12519,0.13161,0.15912,0.15497,0.16984,0.16408,0.15179,0.1607,0.15978,0.16728,0.17396,0.18203,0.20638,0.20489,0.21128,0.21035,0.21458,0.21563,0.21868,0.22249,0.22328,0.22205,0.22387,0.22537,0.22328,0.22551,0.2268,0.22304,0.22478,0.22459,0.22125,0.2219,0.22239,0.2274,0.22453,0.21831,0.20632,0.20501,0.20542,0.2061,0.21067,0.21824,0.22327,0.23029,0.23081,0.24235,0.25827,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.070814,0.077611,0.11936,0.1236,0.15119,0.14952,0.16399,0.16023,0.15,0.16006,0.15931,0.16677,0.17444,0.18225,0.20678,0.20636,0.21125,0.21118,0.21471,0.2145,0.21806,0.22228,0.22281,0.22159,0.22312,0.22475,0.22255,0.22468,0.22589,0.22205,0.22338,0.22341,0.22082,0.22072,0.22032,0.22496,0.22299,0.21705,0.2042,0.20329,0.20592,0.20776,0.21339,0.22169,0.22441,0.23271,0.23293,0.246,0.2613,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.070745,0.076553,0.12008,0.12649,0.1551,0.15277,0.16414,0.15777,0.14958,0.1608,0.15842,0.16696,0.17418,0.18289,0.20638,0.20583,0.20943,0.21023,0.21439,0.21491,0.21899,0.22257,0.22357,0.22279,0.22394,0.22537,0.22297,0.22431,0.22569,0.22166,0.22257,0.22332,0.22126,0.22116,0.21984,0.22464,0.22229,0.21602,0.20391,0.20263,0.20353,0.20734,0.21393,0.22324,0.22594,0.23357,0.23387,0.24816,0.26481,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.07015,0.080242,0.12441,0.13265,0.15627,0.15625,0.16894,0.16183,0.15339,0.16571,0.16506,0.1746,0.18289,0.19012,0.21282,0.21249,0.21586,0.21621,0.22014,0.22135,0.22395,0.22805,0.22878,0.22789,0.22935,0.231,0.22878,0.22964,0.23133,0.22739,0.22888,0.22927,0.22648,0.22734,0.22706,0.23023,0.23179,0.22701,0.2136,0.21035,0.21117,0.21556,0.22369,0.23248,0.23717,0.24587,0.24794,0.26048,0.27726,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.063068,0.071381,0.11906,0.12625,0.15219,0.15499,0.16952,0.16225,0.15391,0.16272,0.16222,0.17094,0.17677,0.18522,0.20833,0.20938,0.2138,0.21311,0.21784,0.21739,0.2207,0.22522,0.22534,0.22501,0.22635,0.22782,0.22577,0.22706,0.22851,0.22466,0.22562,0.22676,0.22529,0.22607,0.22603,0.23008,0.2301,0.22397,0.21113,0.20951,0.21286,0.21853,0.226,0.23656,0.24061,0.24848,0.25005,0.26453,0.28308,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.068579,0.081433,0.12932,0.13852,0.16535,0.16659,0.17861,0.17416,0.16505,0.17543,0.17705,0.18705,0.19257,0.20227,0.22441,0.22529,0.22949,0.22964,0.23347,0.23422,0.23838,0.24199,0.24231,0.24208,0.24385,0.24546,0.24324,0.2446,0.24617,0.24196,0.24322,0.24395,0.24241,0.24336,0.24498,0.24788,0.25038,0.24666,0.23443,0.23357,0.23662,0.24252,0.25225,0.26398,0.27053,0.27937,0.28313,0.29788,0.31634,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.073999,0.080076,0.12987,0.13565,0.16448,0.16104,0.17151,0.16653,0.16112,0.16966,0.16914,0.17887,0.1863,0.19545,0.21643,0.21568,0.2196,0.21881,0.22183,0.22283,0.22783,0.23062,0.23099,0.23152,0.23349,0.23539,0.23318,0.23477,0.2359,0.23168,0.2322,0.23294,0.23042,0.23211,0.2347,0.23669,0.24093,0.23912,0.22875,0.22695,0.23105,0.23857,0.24877,0.26338,0.27062,0.28234,0.28657,0.30394,0.32447,2500,0.1474,0.52648,30 +1.7716e-05,0.33694,0,0.078496,0.078419,0.12944,0.13205,0.16247,0.15816,0.17105,0.16554,0.15962,0.16643,0.16652,0.1758,0.18185,0.1904,0.21159,0.20906,0.21441,0.21269,0.21499,0.21695,0.22273,0.22479,0.22532,0.22616,0.22824,0.23043,0.22824,0.23033,0.23196,0.22769,0.22746,0.22924,0.22571,0.22912,0.23223,0.23362,0.239,0.23856,0.22967,0.22742,0.23187,0.24261,0.25237,0.26961,0.27659,0.29099,0.29474,0.3145,0.33694,2500,0.1474,0.52648,30 diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/linear_sim_fast_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/linear_sim_fast_res.csv new file mode 100644 index 0000000..1493c9c --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/linear_sim_fast_res.csv @@ -0,0 +1,50 @@ +2.0373e-13,0.328,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,-0.028064,-0.035401,-0.018544,-0.0032957,-0.004056,0.0038212,0.029161,0.026345,0.017986,0.010705,0.009,0.0028231,0.010228,0.005276,0.0067073,0.0023822,0.0087147,0.010113,0.012331,0.02266,0.020131,0.018026,0.016402,0.019789,0.020471,0.018324,0.018705,0.01695,0.015626,0.013198,0.014218,0.014054,0.016129,0.017028,0.019817,0.020528,0.018461,0.020113,0.016791,0.015067,0.014252,0.013807,0.014071,0.014825,0.021182,0.027632,0.018305,0.024985,0.022501,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,-0.041451,-0.041874,-0.037766,-0.032816,-0.020159,-0.0024042,0.01567,0.040756,0.037844,0.031026,0.029645,0.033546,0.038138,0.033334,0.031066,0.031233,0.033056,0.032606,0.037747,0.045423,0.044548,0.041502,0.042189,0.043901,0.045091,0.043726,0.043873,0.043568,0.042,0.038072,0.039728,0.040675,0.041588,0.041948,0.043044,0.043671,0.040691,0.041417,0.042182,0.042106,0.040979,0.035193,0.039474,0.043842,0.05208,0.052816,0.045184,0.05393,0.056932,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,-0.048432,-0.035562,-0.040066,-0.041987,-0.013001,0.0009821,0.01382,0.040803,0.045302,0.043741,0.054228,0.057983,0.058447,0.055601,0.060088,0.057893,0.064681,0.062239,0.066288,0.070735,0.0708,0.069175,0.068865,0.070806,0.069946,0.069715,0.069795,0.069911,0.068983,0.064151,0.065998,0.06691,0.068566,0.069914,0.072035,0.072709,0.072208,0.068566,0.07136,0.068521,0.069963,0.06497,0.070609,0.076077,0.079572,0.074877,0.071192,0.075333,0.081044,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,-0.057089,-0.012972,-0.019621,-0.028954,0.018795,0.029558,0.041701,0.079775,0.081902,0.083998,0.089356,0.095076,0.098646,0.097362,0.10165,0.10154,0.10708,0.10308,0.10522,0.11303,0.11189,0.11237,0.11139,0.11287,0.11314,0.1126,0.11255,0.11284,0.11221,0.10561,0.10706,0.1075,0.10965,0.11164,0.11445,0.11606,0.11697,0.11507,0.11901,0.11782,0.11038,0.10471,0.11103,0.11698,0.11903,0.11327,0.11092,0.11552,0.12212,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,-0.042302,-0.0065448,0.00011319,-0.0074947,0.034778,0.041945,0.055317,0.085575,0.086189,0.084916,0.090214,0.096992,0.10554,0.10231,0.10607,0.10832,0.11474,0.10959,0.11126,0.11701,0.11785,0.11743,0.1159,0.11716,0.11797,0.11886,0.11959,0.11958,0.11889,0.11336,0.11484,0.11546,0.11815,0.12078,0.12248,0.12513,0.12744,0.12569,0.13095,0.13174,0.11997,0.11494,0.12006,0.12737,0.131,0.12527,0.12499,0.13079,0.13471,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,-0.017,0.012078,0.015503,0.002491,0.036236,0.038824,0.051299,0.078943,0.079227,0.075482,0.077954,0.081984,0.090371,0.091401,0.09311,0.094466,0.099851,0.097242,0.098693,0.10281,0.10467,0.10489,0.10374,0.1046,0.10495,0.10586,0.10676,0.1069,0.10586,0.10097,0.10235,0.10259,0.10587,0.10859,0.11125,0.11254,0.1106,0.1108,0.1176,0.12063,0.1084,0.10422,0.10853,0.11793,0.11732,0.11501,0.11762,0.1224,0.12431,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,-0.0057747,0.012181,0.013228,0.0054172,0.036275,0.045731,0.058531,0.081606,0.084372,0.081438,0.083918,0.089503,0.097862,0.099549,0.10295,0.11074,0.11826,0.11457,0.11488,0.11779,0.12039,0.12378,0.1222,0.12267,0.12269,0.12333,0.1241,0.12426,0.1235,0.11756,0.11922,0.11987,0.12349,0.12406,0.12731,0.12737,0.12503,0.12487,0.13151,0.13579,0.12421,0.11784,0.12335,0.13079,0.13155,0.12892,0.13051,0.13638,0.14004,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.0052762,0.013365,0.0097485,0.0088135,0.040822,0.055143,0.066941,0.088269,0.093258,0.097783,0.097789,0.10426,0.11411,0.12497,0.13425,0.14051,0.1473,0.1426,0.14197,0.1439,0.14661,0.15022,0.14826,0.1484,0.14825,0.14922,0.14997,0.15024,0.14925,0.14374,0.1455,0.14645,0.14999,0.15103,0.15418,0.15487,0.15264,0.15336,0.15951,0.16453,0.15418,0.14622,0.15214,0.15977,0.16089,0.15686,0.1567,0.16281,0.16716,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.0098027,0.01109,0.0037465,-4.9748e-05,0.035958,0.049742,0.067021,0.088686,0.098665,0.10482,0.10425,0.11408,0.12427,0.13459,0.1423,0.14718,0.15262,0.14951,0.14877,0.14981,0.15172,0.15653,0.15418,0.154,0.15475,0.15493,0.15584,0.15625,0.15548,0.15039,0.15202,0.15336,0.1562,0.15704,0.16082,0.16233,0.15856,0.15962,0.16684,0.17151,0.16078,0.15276,0.15891,0.16778,0.16873,0.1648,0.16419,0.17157,0.17769,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.0020529,0.0013567,-0.0042326,-0.0050883,0.033175,0.046441,0.060873,0.082726,0.093533,0.10122,0.10161,0.11251,0.1209,0.12957,0.13863,0.14396,0.14815,0.14553,0.14559,0.14682,0.15016,0.15529,0.15313,0.15343,0.15425,0.15528,0.15611,0.15661,0.15604,0.15082,0.15274,0.15396,0.15694,0.15834,0.16246,0.16233,0.15895,0.16109,0.16855,0.17326,0.1643,0.15712,0.16452,0.17445,0.17661,0.17409,0.17332,0.1816,0.18648,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.0056526,0.010666,0.00061066,0.0052829,0.040706,0.050668,0.062205,0.083963,0.098048,0.1037,0.1031,0.11709,0.12388,0.13398,0.14266,0.1468,0.15238,0.15029,0.14955,0.15138,0.15483,0.15964,0.15812,0.1587,0.15939,0.16056,0.16083,0.16134,0.16081,0.15597,0.15812,0.15916,0.1625,0.16435,0.16838,0.16731,0.16492,0.16594,0.17423,0.17996,0.17239,0.16656,0.17382,0.18305,0.1853,0.18194,0.181,0.19012,0.19481,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.0023084,0.0044623,-0.0046161,0.0049132,0.037197,0.046087,0.058347,0.083027,0.10059,0.10657,0.10816,0.12117,0.12772,0.13851,0.14598,0.15096,0.15552,0.15516,0.1537,0.15578,0.1586,0.16377,0.16192,0.16222,0.16404,0.16504,0.16534,0.16587,0.1655,0.16093,0.16333,0.16469,0.16839,0.17021,0.1741,0.17242,0.16804,0.16999,0.17916,0.18484,0.17656,0.16929,0.17777,0.18811,0.19059,0.18854,0.18793,0.198,0.20067,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.01744,0.012691,0.0039757,0.011318,0.043591,0.052181,0.066021,0.092276,0.11197,0.11791,0.12025,0.13478,0.14006,0.1502,0.15763,0.16381,0.16811,0.16804,0.16633,0.1678,0.17006,0.17596,0.17382,0.17389,0.1755,0.17635,0.17717,0.1775,0.17727,0.17292,0.17519,0.17651,0.18049,0.18267,0.18696,0.18581,0.18184,0.18193,0.19176,0.19818,0.19079,0.18157,0.19073,0.20163,0.20221,0.19895,0.19807,0.20697,0.20767,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.030685,0.033609,0.024549,0.034735,0.062858,0.070242,0.087226,0.11665,0.13387,0.138,0.13862,0.15146,0.15848,0.16976,0.17623,0.18329,0.18676,0.18903,0.18676,0.18833,0.19009,0.19626,0.19419,0.19408,0.19543,0.19586,0.19662,0.19707,0.19691,0.19194,0.19411,0.19561,0.19981,0.20226,0.20684,0.20519,0.20066,0.19952,0.20928,0.21583,0.20826,0.19974,0.20829,0.21892,0.21986,0.21574,0.21444,0.22362,0.22493,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.036443,0.034222,0.025007,0.036907,0.063889,0.070298,0.085635,0.11453,0.13041,0.13528,0.13649,0.15071,0.15675,0.16947,0.17681,0.18428,0.18751,0.19071,0.1891,0.1905,0.19299,0.19943,0.19773,0.19753,0.19922,0.19956,0.20029,0.20051,0.20045,0.19558,0.19793,0.19969,0.20386,0.20668,0.2114,0.20995,0.20527,0.20362,0.21355,0.22015,0.21354,0.20525,0.21473,0.2262,0.22795,0.22469,0.22416,0.234,0.23458,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.040476,0.043524,0.034604,0.046916,0.074329,0.078389,0.094019,0.12361,0.14017,0.14412,0.14405,0.1584,0.16346,0.17584,0.18414,0.19316,0.19721,0.19976,0.19826,0.20063,0.20269,0.20875,0.20682,0.20644,0.20916,0.20944,0.20995,0.21023,0.20995,0.20526,0.20776,0.20972,0.21412,0.21722,0.22171,0.22035,0.21624,0.21446,0.22368,0.22922,0.22252,0.21461,0.22284,0.2349,0.23497,0.23251,0.23208,0.24068,0.23939,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.047291,0.045399,0.036626,0.052963,0.081309,0.08614,0.10285,0.13112,0.14637,0.15073,0.1504,0.16378,0.16863,0.18118,0.19106,0.19996,0.20343,0.20622,0.20482,0.20785,0.20982,0.2156,0.21377,0.21323,0.21639,0.2171,0.21759,0.21792,0.21754,0.21297,0.2155,0.21751,0.22217,0.22491,0.22975,0.22845,0.22416,0.22263,0.23246,0.23752,0.23146,0.22384,0.23271,0.24415,0.24421,0.24111,0.24131,0.25051,0.25001,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.055178,0.048325,0.041441,0.057734,0.084453,0.090681,0.10746,0.1361,0.15253,0.15726,0.15665,0.16921,0.17448,0.18719,0.19847,0.20687,0.20983,0.21307,0.21213,0.21569,0.21738,0.22308,0.22106,0.22043,0.22389,0.22494,0.22541,0.22575,0.22532,0.22078,0.22293,0.22496,0.22945,0.23245,0.23723,0.23628,0.23242,0.23013,0.24021,0.24586,0.23962,0.23224,0.24095,0.25296,0.2535,0.25055,0.25122,0.26019,0.25902,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.055105,0.050268,0.045991,0.062652,0.090522,0.095967,0.11259,0.14312,0.16126,0.16505,0.16599,0.17839,0.18403,0.19731,0.20889,0.21684,0.21973,0.22302,0.22207,0.22552,0.22693,0.23295,0.23068,0.22993,0.23292,0.23397,0.23441,0.23476,0.23415,0.2292,0.23148,0.23365,0.23791,0.24078,0.24533,0.2441,0.24061,0.23872,0.24855,0.25467,0.24886,0.24118,0.2498,0.26142,0.26236,0.25982,0.25927,0.26781,0.26729,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.054762,0.052604,0.048174,0.06492,0.091684,0.097027,0.11462,0.14443,0.16314,0.167,0.16805,0.17988,0.18653,0.20072,0.21243,0.22051,0.22321,0.2269,0.22597,0.22916,0.23072,0.23698,0.23455,0.23373,0.2368,0.23784,0.23843,0.23876,0.23821,0.23331,0.23566,0.23799,0.24245,0.24519,0.2499,0.24844,0.24531,0.24359,0.25311,0.25974,0.25438,0.24714,0.25539,0.26636,0.26678,0.26478,0.26455,0.27269,0.27062,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.053324,0.050459,0.047664,0.06364,0.089811,0.0964,0.11347,0.14353,0.16181,0.1652,0.16582,0.17732,0.1844,0.19838,0.21039,0.21827,0.22113,0.22487,0.22368,0.2272,0.22858,0.23501,0.2324,0.23139,0.2344,0.23555,0.23609,0.23645,0.2358,0.23097,0.23316,0.2355,0.23985,0.2426,0.24722,0.24549,0.24231,0.241,0.25004,0.25666,0.2516,0.24437,0.25242,0.26275,0.26326,0.26207,0.26216,0.26959,0.26733,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.051985,0.050654,0.048537,0.065506,0.092005,0.099233,0.11597,0.14566,0.1652,0.1683,0.16937,0.18054,0.18848,0.203,0.2149,0.22308,0.2261,0.23007,0.22871,0.23209,0.2338,0.24019,0.23759,0.23652,0.23938,0.24041,0.24095,0.24119,0.24056,0.23561,0.23786,0.24025,0.24463,0.24748,0.25224,0.25063,0.2476,0.2458,0.25484,0.26169,0.25673,0.24967,0.25792,0.26842,0.26852,0.26687,0.26721,0.27482,0.27279,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.052987,0.052171,0.049394,0.065825,0.092408,0.099234,0.11567,0.14545,0.16475,0.16758,0.16842,0.17941,0.18715,0.2015,0.21327,0.22129,0.22415,0.22798,0.22669,0.22995,0.23161,0.23791,0.2356,0.2347,0.23753,0.23856,0.23918,0.23929,0.23868,0.23363,0.23596,0.2383,0.24281,0.24546,0.2499,0.24848,0.24516,0.2436,0.25243,0.25915,0.25454,0.24776,0.25595,0.26595,0.266,0.26436,0.26545,0.27304,0.27016,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.053833,0.052165,0.048917,0.064571,0.091341,0.098995,0.11626,0.14579,0.16486,0.16744,0.16807,0.17937,0.18711,0.20131,0.21348,0.22172,0.22445,0.22816,0.22676,0.2299,0.23181,0.23827,0.2359,0.23504,0.23784,0.23895,0.23957,0.23969,0.2391,0.23406,0.23645,0.2387,0.24305,0.24578,0.2503,0.249,0.24582,0.24384,0.25287,0.25922,0.25428,0.24737,0.25584,0.26629,0.26651,0.26511,0.26628,0.27434,0.2711,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.055324,0.053713,0.049585,0.065246,0.092383,0.099699,0.11705,0.14684,0.16572,0.16812,0.16855,0.1804,0.18798,0.20237,0.21532,0.22363,0.22671,0.23061,0.22907,0.23214,0.23398,0.24039,0.23803,0.23718,0.24003,0.24112,0.24166,0.24178,0.24119,0.23617,0.23855,0.24083,0.24523,0.24802,0.25261,0.25119,0.24821,0.24586,0.25497,0.26151,0.25662,0.24943,0.25803,0.2687,0.26901,0.26788,0.26932,0.27744,0.2743,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.054957,0.052838,0.049348,0.066461,0.093385,0.10099,0.11812,0.14777,0.16686,0.16939,0.16983,0.18155,0.18956,0.20385,0.21678,0.22531,0.22848,0.23235,0.23075,0.23371,0.23551,0.24179,0.23941,0.23853,0.24132,0.24244,0.24298,0.24311,0.24257,0.23751,0.23992,0.24223,0.2465,0.24925,0.2539,0.25253,0.24961,0.24725,0.25645,0.26289,0.25793,0.25101,0.2597,0.27045,0.27083,0.26976,0.27155,0.27972,0.27627,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.054754,0.052585,0.049027,0.066132,0.092953,0.10051,0.11761,0.1472,0.16625,0.16868,0.16909,0.18082,0.18874,0.20307,0.21649,0.22512,0.22827,0.23223,0.23043,0.23367,0.23559,0.24186,0.23948,0.2386,0.24148,0.24256,0.2431,0.24321,0.24275,0.23769,0.24012,0.24244,0.24657,0.24934,0.25398,0.25264,0.24949,0.24722,0.25635,0.2629,0.25799,0.25135,0.25984,0.27037,0.2706,0.26947,0.27166,0.2801,0.27622,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.053015,0.051341,0.047428,0.06537,0.092094,0.099607,0.11687,0.14603,0.16467,0.16725,0.16797,0.17946,0.18747,0.20176,0.21519,0.22411,0.22699,0.23077,0.22878,0.23207,0.234,0.24029,0.23777,0.23692,0.23972,0.24078,0.24132,0.24145,0.24098,0.23598,0.23838,0.2407,0.24492,0.24765,0.25241,0.25101,0.24807,0.24544,0.25447,0.26113,0.25615,0.24969,0.25807,0.2685,0.26876,0.26756,0.26968,0.27814,0.27417,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.052362,0.051609,0.048551,0.066104,0.093106,0.10094,0.11841,0.14723,0.16537,0.1675,0.16762,0.17899,0.18648,0.20092,0.21448,0.22332,0.22602,0.22937,0.22728,0.23069,0.2324,0.23861,0.23601,0.23515,0.23799,0.23906,0.23961,0.23976,0.23927,0.23433,0.23666,0.23895,0.24303,0.24564,0.25035,0.24881,0.24621,0.24393,0.25282,0.25955,0.25457,0.24806,0.25645,0.26666,0.26702,0.2658,0.26807,0.27655,0.27281,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.053793,0.051832,0.048327,0.066048,0.092484,0.10025,0.11816,0.1473,0.16579,0.16792,0.16778,0.17919,0.18649,0.20053,0.21427,0.22333,0.22626,0.22968,0.22783,0.23083,0.23255,0.2388,0.23639,0.23586,0.23877,0.23991,0.24055,0.24069,0.24048,0.23567,0.23815,0.24041,0.24464,0.24746,0.25245,0.25063,0.24771,0.24512,0.2549,0.26139,0.25592,0.25002,0.25768,0.2685,0.26818,0.26631,0.26904,0.27824,0.27359,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.055538,0.054174,0.051493,0.069668,0.093964,0.10231,0.11997,0.14892,0.16775,0.17013,0.17008,0.18125,0.18891,0.20274,0.21655,0.22589,0.229,0.23268,0.23036,0.23358,0.23531,0.24169,0.23912,0.23824,0.24102,0.2422,0.24276,0.24291,0.24265,0.23786,0.24016,0.24223,0.24655,0.24932,0.25436,0.2525,0.24959,0.24658,0.25678,0.26351,0.25789,0.25136,0.26,0.27044,0.2707,0.2692,0.27192,0.28102,0.27674,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.056035,0.054263,0.053097,0.070891,0.095965,0.10467,0.12291,0.15236,0.17163,0.17227,0.17284,0.18446,0.1926,0.20681,0.22096,0.23068,0.23355,0.23692,0.23431,0.23783,0.23973,0.2458,0.24299,0.24177,0.24455,0.24579,0.2462,0.24632,0.24597,0.24131,0.24356,0.24537,0.24968,0.25245,0.25767,0.25562,0.25288,0.24977,0.26034,0.26755,0.26176,0.25475,0.26459,0.2748,0.27535,0.27358,0.27642,0.28667,0.2826,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.058852,0.055524,0.05456,0.073462,0.098464,0.10665,0.12311,0.15196,0.17054,0.17141,0.17098,0.18319,0.19075,0.20539,0.21932,0.22947,0.23282,0.23573,0.23291,0.23563,0.23698,0.24325,0.24031,0.23862,0.24149,0.24265,0.24297,0.24304,0.24264,0.23816,0.24037,0.24193,0.24621,0.24923,0.25499,0.25332,0.25088,0.24717,0.25793,0.2658,0.25957,0.25172,0.26281,0.2735,0.27459,0.27218,0.27431,0.28486,0.28146,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.06173,0.057062,0.05774,0.076012,0.10148,0.10897,0.12503,0.15451,0.17271,0.17441,0.17359,0.18633,0.19379,0.2083,0.2221,0.23162,0.23485,0.23772,0.23507,0.23816,0.23984,0.24612,0.24305,0.24149,0.24447,0.2455,0.24562,0.24556,0.24504,0.24046,0.2427,0.24396,0.24795,0.25092,0.25684,0.25546,0.25273,0.24837,0.25817,0.26639,0.25995,0.25189,0.26385,0.27409,0.27517,0.27404,0.27609,0.28704,0.28371,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.06079,0.057223,0.057842,0.076063,0.10099,0.10979,0.12677,0.15691,0.17578,0.17842,0.17771,0.191,0.19914,0.21331,0.22757,0.23761,0.24089,0.24429,0.24225,0.2451,0.2471,0.25324,0.25045,0.24941,0.25251,0.25347,0.25374,0.2536,0.25359,0.24887,0.25142,0.25279,0.25704,0.26052,0.26646,0.2651,0.26153,0.25631,0.26724,0.27495,0.2677,0.25988,0.27101,0.28219,0.28365,0.28114,0.2841,0.29625,0.29352,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.064128,0.058914,0.05802,0.077737,0.10169,0.11176,0.12798,0.15737,0.176,0.17758,0.17655,0.1884,0.19726,0.21194,0.2255,0.23605,0.23951,0.24222,0.24079,0.24273,0.24413,0.25014,0.24768,0.24633,0.24954,0.25058,0.25067,0.2505,0.25035,0.24558,0.24793,0.24937,0.25338,0.2569,0.26279,0.26126,0.25901,0.25309,0.26393,0.27331,0.26617,0.25728,0.27008,0.28103,0.28278,0.28039,0.28245,0.29456,0.29233,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.062675,0.058178,0.059989,0.081189,0.1037,0.11415,0.13135,0.16032,0.17967,0.17974,0.1772,0.18978,0.19943,0.21348,0.22756,0.23822,0.24237,0.24507,0.24337,0.24569,0.24706,0.25304,0.25023,0.24865,0.25158,0.25272,0.25272,0.2525,0.25212,0.24718,0.24915,0.2509,0.25495,0.25852,0.26358,0.26162,0.25883,0.25375,0.26313,0.27309,0.2653,0.25512,0.26887,0.28005,0.28193,0.28119,0.28266,0.29538,0.29356,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.06633,0.059795,0.063944,0.084896,0.10848,0.12009,0.13701,0.16662,0.1849,0.18433,0.18215,0.19535,0.20446,0.21906,0.23218,0.24188,0.24669,0.24957,0.24813,0.25061,0.25213,0.25841,0.25556,0.2541,0.25717,0.25821,0.25808,0.25779,0.25723,0.25224,0.25408,0.25568,0.25958,0.26332,0.26752,0.26601,0.26229,0.25716,0.26576,0.27553,0.26818,0.25723,0.27046,0.28254,0.28508,0.28345,0.28512,0.29906,0.29844,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.069874,0.065007,0.069527,0.09152,0.11592,0.12412,0.14097,0.16998,0.18893,0.18961,0.1864,0.1987,0.20607,0.22049,0.23413,0.24388,0.24858,0.25211,0.25002,0.25304,0.25503,0.26132,0.25835,0.25722,0.26042,0.26138,0.261,0.26054,0.25979,0.25469,0.25612,0.25761,0.26125,0.2643,0.26963,0.26731,0.26317,0.25818,0.26528,0.27506,0.26871,0.25644,0.27066,0.28296,0.2855,0.28487,0.28666,0.30112,0.30072,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.07327,0.06745,0.069081,0.090811,0.11649,0.12493,0.14276,0.17152,0.19115,0.19191,0.18994,0.20123,0.20943,0.22348,0.23697,0.24639,0.25175,0.25515,0.25248,0.25412,0.25528,0.26184,0.25933,0.25787,0.2608,0.26186,0.26151,0.26089,0.25997,0.25478,0.25598,0.25747,0.2608,0.26355,0.26877,0.26636,0.26392,0.25903,0.26605,0.27618,0.27008,0.25649,0.27151,0.28479,0.28888,0.28762,0.2878,0.30271,0.30278,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.076482,0.069327,0.070532,0.091374,0.11716,0.12708,0.143,0.17237,0.19095,0.19302,0.19231,0.20427,0.21328,0.22785,0.24183,0.24915,0.25458,0.25794,0.25576,0.25731,0.2582,0.26468,0.2619,0.26033,0.26338,0.26458,0.26426,0.26356,0.26251,0.25744,0.25847,0.26018,0.26319,0.26581,0.27009,0.26729,0.26506,0.26079,0.26709,0.27679,0.26986,0.2563,0.27142,0.28534,0.28821,0.28595,0.28581,0.30159,0.30283,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.079527,0.07418,0.077447,0.099133,0.12414,0.13073,0.14613,0.17365,0.19288,0.19457,0.19334,0.20596,0.21443,0.22949,0.24393,0.25191,0.258,0.26202,0.25964,0.26074,0.26214,0.2689,0.2664,0.26545,0.26863,0.26991,0.27004,0.26929,0.26876,0.26353,0.26491,0.26698,0.27051,0.27404,0.27826,0.27522,0.27189,0.26756,0.27372,0.28503,0.27725,0.26397,0.27806,0.29296,0.29655,0.29315,0.29257,0.30943,0.31174,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.079637,0.073792,0.07509,0.098474,0.1224,0.12871,0.14522,0.17172,0.1904,0.19201,0.18897,0.20231,0.2094,0.22492,0.23977,0.24801,0.25379,0.25846,0.25579,0.25688,0.25811,0.26509,0.26188,0.26045,0.26373,0.26509,0.26487,0.26402,0.26332,0.25849,0.26022,0.2621,0.26612,0.27005,0.2746,0.27182,0.26973,0.26653,0.27292,0.28473,0.27817,0.26353,0.27869,0.29321,0.29711,0.29338,0.2914,0.30784,0.31064,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.077269,0.075022,0.076208,0.10083,0.12567,0.13333,0.14849,0.17553,0.19198,0.19379,0.19205,0.20592,0.21383,0.22901,0.24425,0.25171,0.25755,0.26198,0.26019,0.26157,0.26305,0.2693,0.26527,0.26421,0.26747,0.26881,0.26818,0.26708,0.2662,0.26147,0.26309,0.26461,0.26833,0.27198,0.27644,0.27362,0.27169,0.26881,0.27575,0.28759,0.28168,0.26661,0.28279,0.29752,0.30121,0.29681,0.29408,0.31146,0.31543,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.074683,0.072893,0.076959,0.10078,0.12518,0.13434,0.14848,0.17607,0.19319,0.19467,0.1934,0.2078,0.2165,0.2321,0.24697,0.25508,0.26066,0.26571,0.26328,0.26473,0.26639,0.2729,0.26897,0.26794,0.27131,0.27254,0.27211,0.27098,0.27046,0.26588,0.26782,0.26928,0.27296,0.27715,0.28139,0.27806,0.27711,0.27382,0.28042,0.2912,0.28369,0.27177,0.28614,0.30133,0.30539,0.29985,0.29683,0.31483,0.31963,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.073614,0.071223,0.078047,0.10304,0.1283,0.13467,0.14767,0.17577,0.19355,0.19539,0.19539,0.20926,0.21873,0.23347,0.24871,0.25678,0.26195,0.26759,0.26604,0.2671,0.26925,0.27542,0.27221,0.27159,0.27487,0.27595,0.27579,0.27475,0.27472,0.27004,0.27222,0.27396,0.2779,0.28269,0.28716,0.28383,0.28239,0.27795,0.28591,0.29568,0.28744,0.27578,0.29022,0.30606,0.31069,0.30414,0.30075,0.31946,0.32515,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.076403,0.07568,0.081707,0.10753,0.12989,0.13767,0.15151,0.18,0.19825,0.19944,0.20056,0.21486,0.224,0.23915,0.25473,0.26342,0.26923,0.27541,0.2735,0.27449,0.27632,0.28277,0.27933,0.27842,0.28181,0.28297,0.28295,0.28173,0.28206,0.2776,0.28033,0.28231,0.28679,0.29216,0.29743,0.29412,0.29345,0.28866,0.29778,0.30872,0.29999,0.28817,0.30297,0.31953,0.32486,0.31734,0.31376,0.33305,0.33937,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.073426,0.070887,0.078352,0.10348,0.12495,0.13327,0.14646,0.17381,0.19286,0.19441,0.19686,0.21059,0.21947,0.23349,0.24939,0.25802,0.26448,0.27071,0.26798,0.26963,0.27195,0.27793,0.27513,0.27458,0.27806,0.27934,0.27935,0.2782,0.27894,0.2746,0.27728,0.27909,0.28335,0.28873,0.29434,0.29023,0.28938,0.28462,0.29417,0.30401,0.29394,0.28294,0.29617,0.3131,0.31817,0.30884,0.30529,0.32361,0.33073,2500,0.2228,0.4332,20 +2.0373e-13,0.328,0,0.072277,0.070103,0.074374,0.10122,0.12244,0.13075,0.14345,0.1681,0.18794,0.19098,0.19123,0.2047,0.21196,0.22648,0.24273,0.25198,0.25908,0.26506,0.26136,0.26365,0.26501,0.27125,0.26765,0.26654,0.2701,0.27147,0.2713,0.27009,0.2707,0.26682,0.26976,0.27154,0.2759,0.28133,0.28727,0.28371,0.28444,0.2809,0.2916,0.3021,0.29251,0.28077,0.2941,0.31072,0.31617,0.30719,0.3026,0.32042,0.328,2500,0.2228,0.4332,20 diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/log_sim_fast_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/log_sim_fast_res.csv new file mode 100644 index 0000000..88735c2 --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/log_sim_fast_res.csv @@ -0,0 +1,50 @@ +0,0.18345,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,998,0.14296,0.22393,20 +0,0.18345,0,0.053027,0.036657,0.032828,0.030508,0.038535,0.055745,0.053756,0.054908,0.047413,0.040482,0.047465,0.041049,0.050819,0.045168,0.039529,0.039412,0.034001,0.028928,0.03731,0.04744,0.042679,0.048773,0.053217,0.048884,0.04457,0.059516,0.055524,0.051752,0.051831,0.048565,0.04547,0.058578,0.059085,0.060067,0.060423,0.061515,0.060636,0.060419,0.060556,0.059565,0.059887,0.056918,0.054911,0.053988,0.055062,0.078548,0.078702,0.071075,0.087492,998,0.14296,0.22393,20 +0,0.18345,0,0.080725,0.053438,0.055029,0.057344,0.068735,0.10193,0.094875,0.10235,0.099731,0.094782,0.1002,0.099809,0.11136,0.10323,0.09772,0.097323,0.089371,0.082124,0.089323,0.098044,0.1022,0.10315,0.10312,0.096904,0.09065,0.098783,0.10025,0.094787,0.092459,0.091281,0.089404,0.10361,0.10456,0.10395,0.10445,0.10562,0.10433,0.10549,0.10586,0.10542,0.10558,0.10573,0.10642,0.10402,0.10298,0.13749,0.12285,0.12876,0.12288,998,0.14296,0.22393,20 +0,0.18345,0,0.065495,0.047166,0.051856,0.048365,0.056434,0.080043,0.075199,0.077548,0.083683,0.0787,0.079717,0.084221,0.10302,0.092992,0.089192,0.09834,0.088507,0.082186,0.088253,0.092843,0.097914,0.09594,0.093249,0.085433,0.080304,0.08484,0.089949,0.085591,0.083894,0.082773,0.079401,0.089824,0.090279,0.090582,0.094553,0.096284,0.094707,0.095614,0.097255,0.096405,0.097901,0.098162,0.09738,0.086617,0.092182,0.12243,0.11048,0.11888,0.11463,998,0.14296,0.22393,20 +0,0.18345,0,0.045928,0.027099,0.027298,0.029559,0.03732,0.054133,0.046433,0.048771,0.058189,0.05091,0.053484,0.05784,0.08164,0.07302,0.072394,0.077666,0.073515,0.065599,0.071788,0.07333,0.07534,0.073852,0.069338,0.062566,0.058265,0.060226,0.062745,0.062654,0.062343,0.063233,0.062275,0.071735,0.070926,0.071948,0.074484,0.077014,0.076675,0.077086,0.078423,0.077785,0.078445,0.076106,0.074917,0.065956,0.072153,0.10128,0.096732,0.10753,0.10469,998,0.14296,0.22393,20 +0,0.18345,0,0.037671,0.020773,0.024156,0.022428,0.029606,0.044446,0.039989,0.039201,0.055304,0.046076,0.046512,0.051644,0.079988,0.069915,0.070154,0.072623,0.071125,0.064223,0.069935,0.069302,0.070952,0.067649,0.061705,0.055783,0.054647,0.059732,0.061961,0.063702,0.063357,0.062794,0.060662,0.067998,0.067086,0.06835,0.07087,0.07253,0.072922,0.074006,0.074896,0.074675,0.074236,0.072197,0.068779,0.060335,0.066806,0.094943,0.093115,0.1033,0.10338,998,0.14296,0.22393,20 +0,0.18345,0,0.02795,0.014277,0.017015,0.01852,0.030524,0.041711,0.03804,0.036034,0.048928,0.043612,0.046237,0.055415,0.083518,0.076912,0.07742,0.077716,0.076373,0.072656,0.080929,0.078544,0.083125,0.080006,0.072584,0.065287,0.067082,0.070407,0.07106,0.07132,0.071563,0.069796,0.066602,0.074217,0.073203,0.074913,0.076648,0.079376,0.07943,0.08041,0.082218,0.081615,0.082045,0.079633,0.075612,0.068514,0.071688,0.1009,0.10043,0.11221,0.1117,998,0.14296,0.22393,20 +0,0.18345,0,0.018991,0.016881,0.015902,0.014241,0.022674,0.032643,0.030242,0.032612,0.047073,0.043688,0.046258,0.055122,0.079565,0.071531,0.078457,0.081982,0.080932,0.075725,0.081847,0.083546,0.086239,0.084425,0.077516,0.07036,0.074344,0.076085,0.075366,0.075146,0.074193,0.071419,0.069109,0.077602,0.076778,0.079191,0.081742,0.084269,0.084669,0.085536,0.087401,0.087083,0.087073,0.086071,0.081329,0.076649,0.078231,0.10728,0.11509,0.12455,0.12215,998,0.14296,0.22393,20 +0,0.18345,0,0.011475,0.018673,0.014534,0.013744,0.021511,0.032974,0.030739,0.030789,0.047065,0.044059,0.046282,0.052876,0.074399,0.068602,0.076395,0.080196,0.077356,0.077043,0.085619,0.087609,0.088704,0.088093,0.080073,0.07439,0.076873,0.078784,0.078227,0.076861,0.078515,0.077056,0.075126,0.082387,0.08086,0.082542,0.084421,0.086383,0.087776,0.088833,0.090732,0.090491,0.091186,0.087945,0.081559,0.077492,0.08222,0.1149,0.12972,0.1368,0.12974,998,0.14296,0.22393,20 +0,0.18345,0,0.013861,0.019207,0.01229,0.011795,0.019847,0.03252,0.038168,0.038302,0.052111,0.047274,0.050863,0.059518,0.080688,0.07825,0.086064,0.090816,0.089621,0.08788,0.09731,0.097905,0.099029,0.097038,0.0879,0.081117,0.082307,0.085145,0.084954,0.084047,0.087122,0.084764,0.082613,0.088118,0.087925,0.089601,0.092143,0.093747,0.095704,0.096685,0.098606,0.098573,0.099883,0.096166,0.089128,0.08683,0.090578,0.12899,0.143,0.14795,0.13536,998,0.14296,0.22393,20 +0,0.18345,0,0.013849,0.017845,0.013975,0.010995,0.016558,0.029979,0.037883,0.036118,0.052379,0.053357,0.057053,0.065811,0.086035,0.084075,0.090203,0.09337,0.092872,0.091747,0.10189,0.10277,0.10416,0.10497,0.096782,0.091312,0.092446,0.094115,0.092873,0.090989,0.093061,0.089887,0.08902,0.094243,0.093419,0.094518,0.097284,0.097605,0.10003,0.10097,0.10266,0.1008,0.1012,0.097452,0.089913,0.089391,0.095787,0.13565,0.15099,0.15463,0.14085,998,0.14296,0.22393,20 +0,0.18345,0,0.0083476,0.017514,0.011307,0.012566,0.015906,0.027194,0.035332,0.031909,0.051777,0.051157,0.055092,0.064004,0.082787,0.079465,0.084136,0.087509,0.085745,0.086625,0.095367,0.096529,0.099481,0.10162,0.093486,0.0894,0.09125,0.0919,0.090714,0.087945,0.089113,0.08685,0.085245,0.089008,0.088192,0.089283,0.092388,0.092711,0.094892,0.095564,0.097188,0.094594,0.095607,0.092915,0.086813,0.084378,0.090797,0.13116,0.14725,0.15283,0.13902,998,0.14296,0.22393,20 +0,0.18345,0,0.0032973,0.013318,0.0052457,0.0060446,0.0087681,0.022057,0.030629,0.027698,0.045737,0.045266,0.049456,0.06,0.077119,0.075641,0.080597,0.08553,0.082601,0.08377,0.091222,0.091227,0.093019,0.094063,0.08983,0.084802,0.085649,0.08632,0.08493,0.083431,0.084773,0.084788,0.082511,0.085573,0.08459,0.086542,0.089533,0.090428,0.092382,0.093351,0.095042,0.09242,0.093969,0.092225,0.08358,0.081969,0.090821,0.13313,0.15514,0.15546,0.1386,998,0.14296,0.22393,20 +0,0.18345,0,0.015544,0.018683,0.0093124,0.008066,0.011368,0.027721,0.03645,0.034913,0.054635,0.053708,0.056515,0.065696,0.08306,0.08318,0.088291,0.093361,0.089321,0.092236,0.10014,0.099163,0.099953,0.10349,0.10056,0.095772,0.096837,0.097475,0.096446,0.094169,0.097593,0.097465,0.094555,0.097563,0.0961,0.097637,0.10065,0.10124,0.10326,0.10415,0.10587,0.10352,0.10463,0.10258,0.093543,0.092325,0.10299,0.14274,0.16936,0.17058,0.1525,998,0.14296,0.22393,20 +0,0.18345,0,0.011277,0.017529,0.008129,0.0088085,0.010403,0.025201,0.03523,0.036744,0.055073,0.059002,0.060547,0.070878,0.087052,0.087605,0.09323,0.098714,0.093634,0.096909,0.10474,0.10546,0.10662,0.10919,0.10537,0.10219,0.10241,0.10224,0.10116,0.099119,0.10185,0.10288,0.10069,0.10391,0.10198,0.10312,0.1066,0.10691,0.10811,0.10897,0.11048,0.10828,0.10883,0.10644,0.098325,0.096897,0.10518,0.14583,0.17368,0.17438,0.1555,998,0.14296,0.22393,20 +0,0.18345,0,0.0072536,0.020304,0.011246,0.010128,0.011665,0.026476,0.036221,0.03808,0.056715,0.059424,0.059812,0.071755,0.088367,0.087864,0.093125,0.098991,0.094033,0.096353,0.10324,0.10366,0.10522,0.10839,0.10448,0.10187,0.10129,0.10231,0.10308,0.10139,0.10347,0.1046,0.10183,0.10487,0.10416,0.10598,0.10912,0.10943,0.11067,0.11147,0.11304,0.11063,0.11153,0.10784,0.098998,0.098805,0.10904,0.15149,0.17992,0.17958,0.16497,998,0.14296,0.22393,20 +0,0.18345,0,0.0034247,0.01943,0.0087094,0.0078861,0.0079358,0.026299,0.034706,0.036164,0.053592,0.05518,0.057179,0.068848,0.084385,0.08539,0.09077,0.096846,0.090973,0.092376,0.1007,0.10505,0.10843,0.11075,0.10603,0.10327,0.10282,0.10451,0.10542,0.10307,0.10451,0.10674,0.10377,0.10712,0.10598,0.10853,0.11166,0.11171,0.11212,0.1129,0.11456,0.1123,0.11314,0.11014,0.10012,0.10043,0.11039,0.15354,0.18336,0.18223,0.1675,998,0.14296,0.22393,20 +0,0.18345,0,-6.4252e-05,0.016783,0.0064223,0.0058397,0.0057429,0.022815,0.029998,0.031504,0.049178,0.050935,0.052622,0.064023,0.07854,0.08074,0.085203,0.091673,0.084994,0.08718,0.095474,0.098988,0.10324,0.10732,0.10268,0.10093,0.10106,0.10287,0.10432,0.10202,0.10372,0.10557,0.10212,0.105,0.10412,0.10632,0.10914,0.10938,0.11007,0.11083,0.11256,0.11047,0.11169,0.10783,0.096851,0.097025,0.1051,0.15153,0.17958,0.17821,0.1642,998,0.14296,0.22393,20 +0,0.18345,0,-0.0032358,0.013576,0.0033444,0.005792,0.004431,0.022512,0.028586,0.029079,0.045758,0.047263,0.048066,0.058599,0.07222,0.075819,0.080259,0.086837,0.080259,0.08284,0.090369,0.097174,0.1015,0.10589,0.10228,0.10061,0.10011,0.10131,0.10282,0.10062,0.10347,0.10433,0.10089,0.1041,0.10339,0.10528,0.1082,0.10855,0.10925,0.11,0.11179,0.10983,0.11082,0.10697,0.095921,0.096133,0.10321,0.15006,0.1788,0.17754,0.16325,998,0.14296,0.22393,20 +0,0.18345,0,0.0012989,0.016951,0.0062191,0.0098955,0.0085621,0.025536,0.033096,0.032599,0.048381,0.04921,0.050958,0.061996,0.07586,0.078741,0.084007,0.09225,0.084959,0.088465,0.096002,0.10304,0.10676,0.11087,0.10667,0.10477,0.10427,0.10673,0.10862,0.10594,0.10835,0.10903,0.10581,0.10867,0.10819,0.11014,0.11284,0.11315,0.11375,0.11448,0.1163,0.1144,0.11547,0.11208,0.10067,0.1012,0.10777,0.15533,0.18345,0.18116,0.16538,998,0.14296,0.22393,20 +0,0.18345,0,-0.0011402,0.013874,0.003708,0.0064561,0.0053842,0.023005,0.032101,0.031296,0.046414,0.046878,0.048346,0.058784,0.072051,0.075107,0.079774,0.087748,0.080331,0.083262,0.092121,0.099068,0.10268,0.10629,0.10195,0.0992,0.099418,0.10143,0.1029,0.099576,0.1017,0.10245,0.09968,0.10224,0.10147,0.1034,0.10643,0.10625,0.10683,0.10772,0.10963,0.10692,0.10832,0.10507,0.094349,0.094562,0.099565,0.14777,0.17714,0.17581,0.16098,998,0.14296,0.22393,20 +0,0.18345,0,-0.0011966,0.012534,0.0052175,0.0075708,0.0056065,0.022492,0.030871,0.029776,0.044777,0.045875,0.046731,0.056616,0.06941,0.071899,0.076354,0.084877,0.076909,0.079942,0.088147,0.094426,0.09755,0.10136,0.097288,0.094072,0.094626,0.095937,0.097155,0.09311,0.095055,0.095889,0.09347,0.096312,0.095614,0.09679,0.099496,0.099156,0.099786,0.1005,0.10243,0.099849,0.1014,0.098044,0.087522,0.087584,0.092735,0.14122,0.17162,0.1715,0.15743,998,0.14296,0.22393,20 +0,0.18345,0,-0.00033739,0.012016,0.0056077,0.0090656,0.0063494,0.022595,0.032009,0.030738,0.046696,0.047238,0.047567,0.057226,0.069822,0.071839,0.07585,0.084501,0.076225,0.079674,0.087331,0.093055,0.095914,0.10019,0.095891,0.09353,0.094263,0.094963,0.095856,0.091614,0.093262,0.093818,0.091135,0.094355,0.093562,0.094085,0.09655,0.096083,0.096665,0.097242,0.099123,0.096613,0.09839,0.095385,0.085331,0.085107,0.091307,0.1416,0.1718,0.17038,0.1562,998,0.14296,0.22393,20 +0,0.18345,0,-0.0017998,0.011663,0.0048426,0.0095403,0.0062319,0.022685,0.03235,0.030594,0.046104,0.046178,0.046232,0.057231,0.06958,0.071373,0.075008,0.083973,0.077325,0.080581,0.087907,0.094089,0.097417,0.10137,0.096865,0.094204,0.094647,0.095682,0.097408,0.09291,0.094382,0.094924,0.092031,0.095334,0.094551,0.095228,0.097572,0.097021,0.097589,0.098134,0.10004,0.097644,0.099581,0.096452,0.086569,0.086769,0.092419,0.14304,0.17279,0.17157,0.15698,998,0.14296,0.22393,20 +0,0.18345,0,-0.0024648,0.011273,0.0039985,0.0082944,0.0041787,0.020907,0.030237,0.028452,0.044264,0.044726,0.045114,0.055605,0.068177,0.070033,0.073408,0.082128,0.075828,0.078792,0.086512,0.092435,0.096154,0.099828,0.095102,0.092663,0.092876,0.093755,0.09546,0.09119,0.092489,0.092871,0.089826,0.092996,0.092124,0.092717,0.095325,0.0947,0.094964,0.095509,0.097454,0.094728,0.096769,0.093265,0.083705,0.083428,0.089547,0.14124,0.17068,0.16928,0.15521,998,0.14296,0.22393,20 +0,0.18345,0,-0.0015846,0.011933,0.0043572,0.0078101,0.0033994,0.019902,0.028499,0.026563,0.042746,0.043044,0.043297,0.053619,0.065532,0.067532,0.070623,0.079707,0.073513,0.076706,0.084098,0.090202,0.093581,0.097848,0.092808,0.090536,0.090377,0.091721,0.093318,0.088838,0.090561,0.090971,0.088005,0.090805,0.089983,0.090704,0.093261,0.092596,0.092837,0.093388,0.095269,0.092585,0.094353,0.090878,0.081526,0.081192,0.087236,0.13848,0.16755,0.16745,0.15355,998,0.14296,0.22393,20 +0,0.18345,0,0.0027161,0.015224,0.0073228,0.010565,0.0057484,0.023371,0.031851,0.029768,0.045562,0.046246,0.046827,0.057034,0.068862,0.071167,0.074586,0.083579,0.077321,0.080509,0.087993,0.094052,0.097467,0.10166,0.096634,0.094502,0.094456,0.095791,0.097634,0.093094,0.094864,0.095241,0.092363,0.095121,0.094605,0.095211,0.097853,0.097175,0.097403,0.097948,0.1001,0.097429,0.099073,0.095614,0.086224,0.085797,0.091762,0.14341,0.17129,0.17019,0.15554,998,0.14296,0.22393,20 +0,0.18345,0,0.0035228,0.015787,0.0079072,0.0121,0.0073057,0.024873,0.033821,0.031733,0.047179,0.047874,0.048464,0.05906,0.071202,0.073529,0.076955,0.085939,0.080012,0.083547,0.090693,0.096892,0.10038,0.10467,0.099767,0.097819,0.097905,0.099248,0.10116,0.096678,0.098522,0.09919,0.096521,0.09929,0.099169,0.099793,0.10244,0.10178,0.10202,0.10255,0.10504,0.10234,0.10394,0.10043,0.09093,0.090177,0.095342,0.14739,0.1744,0.17198,0.15691,998,0.14296,0.22393,20 +0,0.18345,0,0.0020926,0.015062,0.0075213,0.011903,0.0066446,0.024449,0.033524,0.030774,0.046176,0.046935,0.04766,0.05767,0.069892,0.072398,0.075407,0.084477,0.077911,0.081537,0.088971,0.095245,0.098493,0.10288,0.097598,0.095295,0.095592,0.097019,0.099011,0.094646,0.096554,0.096858,0.094284,0.097024,0.096983,0.097667,0.10034,0.099702,0.099966,0.1005,0.10298,0.10024,0.1018,0.098237,0.089008,0.087935,0.093071,0.14448,0.17146,0.16846,0.15333,998,0.14296,0.22393,20 +0,0.18345,0,0.0028508,0.015827,0.0082796,0.01294,0.0073997,0.024001,0.032367,0.0299,0.045482,0.046472,0.047406,0.057495,0.068909,0.071605,0.074307,0.083495,0.077131,0.08077,0.087888,0.094129,0.097048,0.10147,0.095919,0.093781,0.093526,0.094806,0.096971,0.092315,0.094352,0.094731,0.091761,0.094585,0.094627,0.095334,0.098058,0.097454,0.097747,0.09829,0.10076,0.098019,0.09964,0.09597,0.086642,0.085493,0.090903,0.14233,0.16897,0.16495,0.14956,998,0.14296,0.22393,20 +0,0.18345,0,0.0040499,0.016961,0.0087293,0.013858,0.0086093,0.025521,0.03425,0.031799,0.047642,0.04787,0.049134,0.059486,0.071164,0.073614,0.075882,0.085313,0.079277,0.082189,0.089552,0.095609,0.098788,0.10307,0.097514,0.094851,0.094451,0.095714,0.097893,0.09311,0.095302,0.095563,0.092468,0.095435,0.095525,0.096217,0.099028,0.098288,0.098645,0.099166,0.10159,0.098895,0.10072,0.096833,0.087994,0.086418,0.091822,0.14311,0.16878,0.16299,0.1465,998,0.14296,0.22393,20 +0,0.18345,0,0.0040235,0.016502,0.0085891,0.012988,0.0081981,0.025546,0.032611,0.029648,0.045123,0.045117,0.046488,0.055919,0.067285,0.070129,0.072791,0.082545,0.076361,0.07962,0.087116,0.092252,0.095529,0.099704,0.094538,0.092223,0.091918,0.093473,0.095796,0.090952,0.092556,0.092885,0.089976,0.092704,0.092876,0.093663,0.096496,0.095839,0.096236,0.096756,0.099157,0.096294,0.098149,0.094626,0.085521,0.083787,0.089069,0.13933,0.16462,0.15764,0.14012,998,0.14296,0.22393,20 +0,0.18345,0,-0.0014066,0.01385,0.005727,0.0096399,0.0050373,0.022967,0.030298,0.027992,0.0424,0.042955,0.04384,0.052952,0.064704,0.067214,0.070319,0.078781,0.072742,0.075496,0.082892,0.088376,0.091004,0.095547,0.090569,0.088638,0.088266,0.088985,0.091617,0.086859,0.088132,0.088501,0.08577,0.088702,0.088971,0.08972,0.092186,0.091556,0.091754,0.092285,0.094662,0.09177,0.093956,0.090627,0.08125,0.079355,0.084433,0.13368,0.15923,0.15108,0.13274,998,0.14296,0.22393,20 +0,0.18345,0,0.00058479,0.014408,0.0066256,0.011299,0.0063663,0.02431,0.03224,0.03056,0.044037,0.045159,0.04632,0.055079,0.066005,0.068734,0.071534,0.080007,0.07284,0.076036,0.082646,0.088528,0.090096,0.094291,0.088664,0.086871,0.085926,0.08679,0.089754,0.084103,0.085684,0.08635,0.082966,0.08612,0.086451,0.086952,0.089558,0.088802,0.089075,0.089591,0.092,0.089118,0.091245,0.088048,0.079427,0.077283,0.082246,0.13032,0.15564,0.14592,0.12689,998,0.14296,0.22393,20 +0,0.18345,0,0.00048506,0.01489,0.0076909,0.011069,0.0070701,0.025588,0.03299,0.030693,0.043902,0.044168,0.04454,0.053056,0.064456,0.066939,0.069652,0.078582,0.071361,0.074287,0.080217,0.085627,0.087278,0.090786,0.084958,0.0833,0.082473,0.083743,0.087073,0.080562,0.082208,0.082934,0.079467,0.082269,0.08284,0.083364,0.086009,0.085298,0.085444,0.085866,0.088218,0.085457,0.087328,0.084331,0.075353,0.073791,0.078414,0.12536,0.1504,0.14033,0.12078,998,0.14296,0.22393,20 +0,0.18345,0,0.00093018,0.013708,0.0077995,0.011204,0.007654,0.026863,0.035042,0.032166,0.045989,0.045967,0.046174,0.055276,0.066387,0.069507,0.072056,0.080588,0.07405,0.076888,0.082635,0.088074,0.089424,0.091596,0.086364,0.084693,0.084371,0.08441,0.087634,0.080725,0.082767,0.083247,0.079448,0.082264,0.082882,0.082775,0.085601,0.084803,0.084903,0.085332,0.087553,0.085,0.087046,0.083617,0.075253,0.073347,0.077795,0.12347,0.14988,0.13616,0.11614,998,0.14296,0.22393,20 +0,0.18345,0,0.0013975,0.015698,0.0081079,0.012728,0.0069665,0.025745,0.034843,0.031129,0.045677,0.044594,0.044307,0.053161,0.063664,0.066175,0.068598,0.076735,0.07014,0.073647,0.078354,0.084384,0.086391,0.0892,0.084705,0.0829,0.083188,0.082889,0.085888,0.079625,0.081867,0.08243,0.07872,0.081403,0.082145,0.081466,0.084501,0.083926,0.084078,0.084319,0.086417,0.083776,0.08585,0.083452,0.074481,0.071639,0.077838,0.12163,0.14627,0.13239,0.11281,998,0.14296,0.22393,20 +0,0.18345,0,-0.00093386,0.015984,0.010136,0.010494,0.006308,0.024475,0.033763,0.030118,0.043843,0.042928,0.043666,0.052128,0.061056,0.063737,0.066006,0.072812,0.066421,0.069728,0.075133,0.080737,0.082881,0.085445,0.080261,0.078335,0.078772,0.078435,0.081599,0.074156,0.076513,0.077055,0.073177,0.075516,0.07617,0.075837,0.078841,0.078519,0.078633,0.078892,0.081059,0.078441,0.080633,0.079175,0.069633,0.066482,0.072812,0.11439,0.13715,0.12413,0.10496,998,0.14296,0.22393,20 +0,0.18345,0,0.0002909,0.016165,0.010367,0.012415,0.0099156,0.027301,0.036127,0.032235,0.046861,0.045478,0.045643,0.055005,0.063395,0.065701,0.066423,0.074076,0.067902,0.070554,0.075129,0.078672,0.080703,0.084097,0.078455,0.076513,0.076658,0.075112,0.078314,0.071758,0.07325,0.0744,0.069859,0.071266,0.071585,0.070989,0.07364,0.073601,0.073873,0.074128,0.076154,0.073455,0.075336,0.073193,0.065599,0.062116,0.068976,0.10782,0.12813,0.11597,0.098068,998,0.14296,0.22393,20 +0,0.18345,0,-0.0014413,0.013525,0.0076888,0.0093805,0.0070925,0.023869,0.033945,0.028945,0.041171,0.03919,0.037589,0.047933,0.057254,0.060629,0.061095,0.067496,0.060827,0.063077,0.067652,0.072056,0.072365,0.075412,0.069654,0.068646,0.068494,0.067818,0.07079,0.064352,0.065262,0.066474,0.062228,0.063717,0.064509,0.063347,0.0657,0.065362,0.065487,0.065544,0.067263,0.064662,0.066039,0.063925,0.057443,0.05444,0.061512,0.097569,0.11574,0.1046,0.088134,998,0.14296,0.22393,20 +0,0.18345,0,-0.003329,0.014547,0.0090461,0.012518,0.0081587,0.025956,0.033433,0.03006,0.040231,0.039657,0.039383,0.047263,0.056093,0.057376,0.057595,0.06395,0.055732,0.058962,0.062656,0.064879,0.06529,0.067778,0.062258,0.061113,0.060542,0.059762,0.063451,0.05675,0.058353,0.060206,0.05479,0.05519,0.055166,0.054459,0.056914,0.056384,0.056246,0.056337,0.057974,0.055321,0.056189,0.054605,0.049377,0.04618,0.053583,0.086833,0.10299,0.092678,0.077515,998,0.14296,0.22393,20 +0,0.18345,0,-0.0075139,0.0095766,0.0066438,0.0081001,0.0057769,0.022997,0.030208,0.028484,0.036208,0.033595,0.031339,0.04028,0.050059,0.05091,0.052305,0.059606,0.047713,0.049637,0.05322,0.056378,0.05638,0.057112,0.051874,0.050285,0.050641,0.050758,0.053176,0.047494,0.047876,0.049462,0.04488,0.045847,0.045781,0.044443,0.046635,0.045886,0.04549,0.045616,0.04696,0.044159,0.044538,0.043048,0.038823,0.034552,0.044738,0.074236,0.088212,0.079117,0.065534,998,0.14296,0.22393,20 +0,0.18345,0,-0.011398,0.005823,0.0011009,0.0023914,0.00035533,0.016794,0.02355,0.020103,0.029097,0.028038,0.024149,0.032559,0.041771,0.040933,0.043491,0.050197,0.039168,0.040861,0.045368,0.047865,0.047949,0.048202,0.041656,0.038793,0.039195,0.040202,0.042038,0.037383,0.038501,0.0399,0.036158,0.037685,0.037648,0.03644,0.03839,0.037013,0.036185,0.036344,0.037244,0.034344,0.03423,0.032783,0.02935,0.024901,0.035302,0.062086,0.074034,0.065974,0.053816,998,0.14296,0.22393,20 +0,0.18345,0,-0.0099282,0.0010495,-0.0032351,-0.0012866,-0.0065122,0.0094405,0.01768,0.010976,0.021289,0.01828,0.014694,0.022451,0.030936,0.031406,0.033801,0.040012,0.029192,0.031966,0.035986,0.037973,0.039133,0.040473,0.035207,0.032193,0.033552,0.033989,0.035381,0.031742,0.033274,0.03537,0.031945,0.033293,0.032992,0.03229,0.034581,0.032729,0.031797,0.031729,0.032212,0.029271,0.029325,0.027058,0.024118,0.020687,0.031069,0.055872,0.066739,0.058241,0.046276,998,0.14296,0.22393,20 +0,0.18345,0,-0.0081803,0.0051126,-0.0027437,0.0012832,-0.0057188,0.011457,0.019298,0.012526,0.024009,0.021079,0.017895,0.02523,0.033249,0.031137,0.033778,0.03975,0.030611,0.031816,0.036868,0.037141,0.038354,0.038291,0.032956,0.029137,0.029598,0.030986,0.031209,0.028606,0.029278,0.032075,0.028811,0.029063,0.029352,0.029166,0.030667,0.028904,0.027945,0.02791,0.028773,0.025745,0.025442,0.024267,0.02027,0.016467,0.027404,0.050225,0.059564,0.052917,0.042791,998,0.14296,0.22393,20 +0,0.18345,0,-0.0060178,0.006656,-0.00084548,0.0031428,-0.0061157,0.012195,0.019451,0.0097001,0.022333,0.017351,0.013366,0.021874,0.027123,0.025141,0.027076,0.03413,0.023424,0.024385,0.02895,0.028818,0.031178,0.032331,0.026599,0.0223,0.02382,0.023495,0.023022,0.019003,0.020518,0.024001,0.02168,0.020822,0.021702,0.020198,0.022078,0.020772,0.019627,0.019524,0.020213,0.01715,0.01766,0.01559,0.013099,0.0079551,0.019811,0.039215,0.047395,0.042616,0.034431,998,0.14296,0.22393,20 +0,0.18345,0,-0.0042544,0.0076656,-0.0028262,0.001597,-0.0067534,0.01068,0.015219,0.0077813,0.01926,0.014922,0.012705,0.02023,0.025005,0.024554,0.024496,0.031035,0.02092,0.021554,0.025943,0.025249,0.027482,0.028285,0.02129,0.018307,0.018136,0.018859,0.017804,0.013043,0.014314,0.0174,0.015282,0.014258,0.015046,0.014124,0.015155,0.013775,0.0129,0.012531,0.013111,0.0098437,0.0097544,0.0068336,0.006414,0.00104,0.013139,0.031182,0.037462,0.034215,0.027647,998,0.14296,0.22393,20 +0,0.18345,0,-0.0029299,0.011567,-0.0014256,0.0027233,-0.0029886,0.013497,0.018243,0.0097251,0.020246,0.016108,0.012377,0.02111,0.023945,0.025006,0.024483,0.029208,0.020961,0.019349,0.023217,0.023845,0.02435,0.024575,0.018092,0.015021,0.015979,0.015711,0.015734,0.011388,0.012449,0.014212,0.011832,0.011073,0.012461,0.011157,0.011766,0.01029,0.0096786,0.0093597,0.010425,0.0079359,0.0072246,0.0034214,0.0053859,-0.0014783,0.0098832,0.024847,0.03733,0.030558,0.017458,998,0.14296,0.22393,20 +0,0.18345,0,-0.0027658,0.0077369,-0.0064855,-0.0028776,-0.010826,0.0022387,0.0072585,0.0016477,0.009499,0.0055305,0.004017,0.0098387,0.0143,0.013338,0.01457,0.018653,0.012576,0.011079,0.014256,0.014782,0.014861,0.016553,0.0088009,0.0072699,0.0066902,0.0076985,0.0060823,0.0015582,0.0027069,0.0040745,0.0027926,0.0021027,0.001501,0.00089475,0.0014118,6.5802e-05,-0.00039167,-0.00064036,0.00027448,-0.001578,-0.0019654,-0.0055293,-0.0045712,-0.0085059,-0.00095719,0.013257,0.026195,0.021691,0.010987,998,0.14296,0.22393,20 +0,0.18345,0,-0.0087565,0.0013266,-0.010724,-0.0039048,-0.011115,-0.002557,0.0025341,-0.0025993,0.0071587,0.0039153,0.0021788,0.0060366,0.0084393,0.0096315,0.0089867,0.014747,0.0087702,0.007971,0.012718,0.011697,0.01354,0.013987,0.0085301,0.0058148,0.0068483,0.0068422,0.0050456,0.0016131,0.003972,0.0060012,0.0048179,0.004017,0.0043696,0.003395,0.0035245,0.0019981,0.0013998,0.0010407,0.0013937,-0.0006534,-0.0019029,-0.0050931,-0.0047593,-0.0085817,-0.00098145,0.0088924,0.01028,0.0074176,0.0037955,998,0.14296,0.22393,20 diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/multi_indep_sim_fast_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/multi_indep_sim_fast_res.csv new file mode 100644 index 0000000..fc3e56c --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/multi_indep_sim_fast_res.csv @@ -0,0 +1,50 @@ +0.068636,0.13968,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,-0.032656,-0.00088342,0.018826,0.032011,0.047644,0.032859,0.02064,0.024164,0.019823,0.050693,0.04009,0.030505,0.031063,0.048569,0.044367,0.036966,0.030109,0.033087,0.027627,0.043208,0.043437,0.042614,0.043093,0.045162,0.048571,0.047808,0.048403,0.048597,0.051159,0.046677,0.045509,0.043064,0.042545,0.042243,0.046194,0.050012,0.048819,0.052599,0.045774,0.037699,0.041643,0.04548,0.043064,0.040931,0.044804,0.0387,0.035439,0.039931,0.044471,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,-0.041768,-0.014196,-0.0093503,0.0010649,0.015847,0.0058793,0.014785,0.019415,0.024147,0.045411,0.040692,0.035096,0.037007,0.049395,0.058101,0.055863,0.051476,0.057076,0.054672,0.06141,0.061878,0.061919,0.062358,0.065182,0.067123,0.068207,0.06871,0.070239,0.069584,0.066513,0.065426,0.065024,0.066941,0.066594,0.071321,0.071175,0.065296,0.07005,0.064685,0.056643,0.061441,0.066102,0.059715,0.056942,0.061749,0.056294,0.056723,0.060459,0.065895,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,-0.054297,-0.035155,-0.035574,-0.010627,0.0060882,-0.0025985,0.010413,0.01501,0.013932,0.027715,0.022705,0.013644,0.011457,0.018725,0.03138,0.029366,0.027432,0.029395,0.024707,0.028244,0.030275,0.028645,0.027603,0.029793,0.033987,0.033952,0.034589,0.034475,0.0336,0.029518,0.027209,0.02854,0.029056,0.028744,0.029091,0.027144,0.018795,0.026843,0.023304,0.016325,0.024234,0.025466,0.023541,0.018058,0.02423,0.01787,0.02041,0.020687,0.027118,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,-0.012364,-0.017437,-0.0022815,0.042078,0.050667,0.043487,0.048193,0.045846,0.044161,0.055743,0.053892,0.046242,0.04465,0.049993,0.057107,0.051761,0.053346,0.052017,0.048055,0.05277,0.05229,0.052391,0.052873,0.057511,0.060624,0.060173,0.061138,0.060014,0.058207,0.055945,0.054159,0.056887,0.056933,0.056205,0.056279,0.054191,0.045541,0.052811,0.048661,0.042899,0.048169,0.050793,0.048726,0.043632,0.050543,0.044573,0.04842,0.050209,0.051233,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,-0.0039149,-0.013724,-0.0071303,0.039297,0.052007,0.040397,0.042421,0.041798,0.041214,0.050447,0.054957,0.045217,0.05009,0.051585,0.05495,0.047392,0.049546,0.045961,0.043428,0.049255,0.047093,0.048267,0.047201,0.049924,0.052471,0.052115,0.053454,0.052814,0.049836,0.049465,0.04907,0.053527,0.05281,0.052745,0.051606,0.046733,0.038751,0.04743,0.0438,0.039291,0.044057,0.048456,0.044419,0.039455,0.04499,0.038059,0.042149,0.04617,0.045902,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,-0.015477,-0.02197,-0.020118,0.018904,0.027577,0.01992,0.023658,0.034337,0.036611,0.044158,0.045177,0.042103,0.04371,0.042404,0.045023,0.038196,0.038025,0.038988,0.038229,0.043716,0.045009,0.044968,0.045195,0.047877,0.049979,0.05178,0.053976,0.053139,0.04796,0.048273,0.047952,0.051094,0.050585,0.050615,0.04655,0.040142,0.034702,0.043414,0.040229,0.037909,0.04225,0.045913,0.043968,0.039551,0.046445,0.038165,0.0412,0.044377,0.046282,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,-0.011088,-0.013128,0.010281,0.03896,0.046148,0.036833,0.04046,0.04869,0.047012,0.058377,0.057338,0.055082,0.053587,0.052952,0.052798,0.045524,0.047527,0.048533,0.046026,0.054766,0.056589,0.055534,0.055284,0.057368,0.058452,0.060717,0.062397,0.062443,0.056565,0.057176,0.057126,0.060414,0.06036,0.059698,0.052683,0.043847,0.038282,0.04606,0.042945,0.042281,0.045941,0.048737,0.048383,0.043626,0.050203,0.04093,0.045471,0.047633,0.051164,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,-0.0042285,-0.014838,0.010764,0.044505,0.054853,0.04736,0.047053,0.057651,0.055822,0.064937,0.062291,0.05732,0.053331,0.050357,0.051331,0.042246,0.043432,0.044259,0.044573,0.052404,0.053612,0.05164,0.051072,0.051803,0.052985,0.054574,0.056677,0.057156,0.050795,0.050755,0.051347,0.053906,0.054686,0.054523,0.047257,0.037068,0.031388,0.038445,0.035101,0.0362,0.038844,0.043286,0.044598,0.04165,0.04869,0.038446,0.043905,0.047793,0.050285,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.014782,0.0053155,0.029709,0.05647,0.063774,0.061231,0.065432,0.078524,0.077494,0.086916,0.080952,0.073062,0.07422,0.073139,0.072054,0.062519,0.062673,0.062409,0.062689,0.071633,0.071361,0.069731,0.068715,0.069,0.070056,0.072092,0.07462,0.075473,0.068165,0.066948,0.067579,0.071095,0.072853,0.071443,0.063266,0.050735,0.044687,0.050353,0.046702,0.048886,0.052536,0.056271,0.058584,0.055046,0.06296,0.052153,0.05863,0.061786,0.065398,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.031033,0.020979,0.03754,0.066693,0.071498,0.065204,0.068041,0.085089,0.0959,0.10206,0.093182,0.085794,0.09291,0.090886,0.087478,0.075988,0.080027,0.08264,0.081291,0.090623,0.088972,0.086511,0.085449,0.085324,0.086039,0.0878,0.090317,0.091472,0.083494,0.082415,0.082318,0.086758,0.087716,0.087304,0.078398,0.067042,0.060499,0.066633,0.062729,0.065786,0.070249,0.073151,0.07424,0.069998,0.076804,0.065918,0.072608,0.075048,0.076,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.022138,0.019253,0.044252,0.078971,0.081553,0.074597,0.08055,0.097214,0.10836,0.11326,0.10795,0.097969,0.1026,0.10398,0.10148,0.090421,0.097815,0.09865,0.097994,0.10696,0.10643,0.10321,0.10174,0.10122,0.10222,0.10362,0.10634,0.1063,0.097747,0.096609,0.096327,0.10166,0.10258,0.10309,0.095169,0.083164,0.076021,0.08299,0.078776,0.080564,0.085852,0.089569,0.091444,0.086693,0.091392,0.078862,0.086506,0.089899,0.090461,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.0307,0.033878,0.051752,0.081637,0.084037,0.078137,0.084118,0.097806,0.10811,0.11059,0.10604,0.099931,0.10245,0.10191,0.099496,0.08907,0.09574,0.096606,0.097192,0.10778,0.10712,0.10597,0.10541,0.10473,0.10472,0.10618,0.1083,0.10896,0.10015,0.099946,0.099698,0.10495,0.10589,0.10591,0.097661,0.083912,0.076744,0.083019,0.079082,0.080925,0.087366,0.092229,0.094059,0.089475,0.093478,0.079701,0.086613,0.091373,0.093352,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.041509,0.044641,0.058875,0.089532,0.087985,0.079053,0.087226,0.098013,0.11135,0.11431,0.10753,0.10194,0.10243,0.10382,0.10183,0.092338,0.099351,0.10244,0.10319,0.11253,0.11207,0.11135,0.11049,0.10953,0.11135,0.11314,0.11571,0.11593,0.10686,0.10745,0.10713,0.11216,0.11405,0.11299,0.10443,0.09062,0.083262,0.088584,0.084784,0.086492,0.093038,0.098812,0.098789,0.094007,0.09898,0.084938,0.092874,0.098645,0.099525,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.037055,0.050416,0.059388,0.087941,0.084488,0.077179,0.087359,0.095475,0.10631,0.10911,0.10383,0.097134,0.095884,0.095629,0.095467,0.086334,0.094826,0.096557,0.096731,0.10631,0.10502,0.10363,0.10232,0.10122,0.10237,0.10408,0.10623,0.10723,0.097842,0.098817,0.099669,0.10584,0.10733,0.10556,0.098278,0.082858,0.076369,0.082516,0.07962,0.080566,0.085787,0.091939,0.093189,0.088918,0.093996,0.080672,0.08914,0.095204,0.09603,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.03519,0.044233,0.054416,0.079702,0.075619,0.076487,0.086637,0.098119,0.11369,0.11602,0.10863,0.10272,0.10151,0.099461,0.097663,0.088836,0.10246,0.1069,0.10585,0.11413,0.11416,0.11254,0.11202,0.11065,0.11204,0.11355,0.1153,0.11585,0.10615,0.10665,0.10693,0.11382,0.11583,0.11489,0.10699,0.091336,0.084803,0.091431,0.088715,0.090421,0.094665,0.1004,0.10239,0.097848,0.10262,0.088238,0.096939,0.10261,0.10436,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.031116,0.043102,0.052013,0.076745,0.070221,0.075465,0.085129,0.099042,0.11403,0.11743,0.11028,0.10504,0.10211,0.099625,0.096351,0.086969,0.10006,0.10531,0.10708,0.11495,0.1155,0.11328,0.11325,0.11219,0.11394,0.1153,0.11672,0.11703,0.10701,0.10767,0.10805,0.11489,0.11699,0.11702,0.10821,0.092401,0.086088,0.09356,0.091422,0.094007,0.097528,0.10335,0.10618,0.1013,0.10446,0.090625,0.098747,0.10445,0.10615,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.029323,0.042097,0.055372,0.081637,0.075837,0.078993,0.088169,0.1016,0.11561,0.1178,0.10995,0.10314,0.098716,0.094846,0.090615,0.080216,0.09397,0.098017,0.10126,0.10806,0.10989,0.10713,0.10691,0.10545,0.10789,0.10917,0.11083,0.11163,0.10059,0.10209,0.10286,0.10951,0.11204,0.11229,0.10247,0.086002,0.079869,0.086812,0.085347,0.08897,0.092119,0.097741,0.10158,0.09679,0.099502,0.086186,0.09374,0.099535,0.10078,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.038022,0.046396,0.05928,0.088729,0.085227,0.085566,0.094122,0.11019,0.12297,0.12322,0.11439,0.10601,0.10415,0.10038,0.095076,0.083557,0.095912,0.10265,0.10617,0.11196,0.11392,0.11196,0.11249,0.11188,0.11508,0.11621,0.11807,0.1186,0.10818,0.10942,0.10889,0.11528,0.11788,0.118,0.10836,0.092033,0.085838,0.093387,0.09213,0.094072,0.097881,0.10346,0.10562,0.10037,0.1038,0.090764,0.097653,0.1034,0.10551,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.049368,0.058036,0.068723,0.094844,0.094823,0.095598,0.10212,0.11621,0.12724,0.126,0.11786,0.1093,0.10622,0.10132,0.096378,0.086004,0.097655,0.10484,0.10875,0.11379,0.11793,0.11603,0.11616,0.11538,0.11843,0.11884,0.12071,0.12162,0.11085,0.11137,0.11143,0.1173,0.12017,0.11907,0.10885,0.090963,0.085346,0.093361,0.092514,0.095136,0.098734,0.10381,0.10663,0.1012,0.10529,0.093042,0.10016,0.10529,0.10815,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.04604,0.056024,0.073835,0.097907,0.096216,0.095611,0.10104,0.1141,0.12574,0.12365,0.11477,0.10735,0.1035,0.099427,0.093871,0.085045,0.096999,0.10433,0.10832,0.11288,0.11767,0.11668,0.11652,0.11636,0.11932,0.1198,0.12165,0.12234,0.11194,0.11208,0.11169,0.11798,0.12094,0.11856,0.10889,0.090381,0.085327,0.093631,0.093146,0.096291,0.10024,0.10573,0.10815,0.10241,0.10687,0.09498,0.10196,0.10758,0.11091,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.043172,0.055076,0.071999,0.096826,0.096396,0.094225,0.098778,0.11285,0.12366,0.12097,0.11153,0.10322,0.098549,0.094076,0.08811,0.078928,0.090407,0.10038,0.10555,0.10973,0.11575,0.11533,0.11509,0.11484,0.11859,0.11875,0.12061,0.12153,0.11151,0.11112,0.11038,0.11639,0.11973,0.1166,0.10748,0.088413,0.083901,0.092492,0.092288,0.095282,0.099759,0.10565,0.10866,0.10236,0.10735,0.09592,0.10342,0.10944,0.11345,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.047103,0.062263,0.076511,0.098695,0.099032,0.10004,0.10584,0.11812,0.12948,0.12731,0.11708,0.10806,0.10273,0.098678,0.092947,0.083791,0.094652,0.10596,0.11066,0.11443,0.12173,0.12109,0.12085,0.12049,0.12493,0.12472,0.12649,0.12751,0.11789,0.11685,0.11543,0.12093,0.12379,0.11982,0.11114,0.09144,0.087347,0.096418,0.09634,0.099921,0.10481,0.11095,0.11445,0.10722,0.11262,0.10076,0.10865,0.11495,0.11952,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.043771,0.063979,0.078918,0.10183,0.10116,0.10136,0.10704,0.11865,0.12905,0.1269,0.11713,0.10892,0.10245,0.098736,0.093788,0.084267,0.096532,0.10728,0.11261,0.11564,0.12267,0.1221,0.12269,0.12193,0.12631,0.12607,0.1279,0.12789,0.11877,0.11735,0.11617,0.12211,0.12477,0.12106,0.11264,0.093218,0.089566,0.099246,0.099469,0.10301,0.10764,0.11321,0.11735,0.10955,0.1155,0.10335,0.11178,0.11748,0.12192,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.043555,0.064614,0.077696,0.099976,0.098136,0.096925,0.10222,0.11327,0.12224,0.12076,0.11203,0.10376,0.098129,0.095075,0.090086,0.080373,0.091752,0.10225,0.10784,0.11049,0.11814,0.11817,0.11873,0.11866,0.12357,0.12378,0.12573,0.12553,0.11699,0.11493,0.11269,0.1189,0.12153,0.11734,0.10973,0.090383,0.087277,0.097194,0.097745,0.10153,0.10639,0.11218,0.11654,0.10832,0.1145,0.10257,0.11123,0.11716,0.12183,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.046633,0.063703,0.076192,0.098714,0.096473,0.094313,0.099237,0.1109,0.11934,0.11758,0.1078,0.10006,0.095732,0.092462,0.087776,0.077912,0.090391,0.10152,0.10766,0.11011,0.11755,0.11781,0.11857,0.11812,0.12261,0.12299,0.1246,0.12397,0.11592,0.11402,0.1116,0.11827,0.12062,0.11664,0.10952,0.09046,0.087862,0.098367,0.099215,0.10368,0.10842,0.11389,0.11814,0.10945,0.11558,0.10337,0.11261,0.11827,0.12297,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.042368,0.062682,0.076409,0.099348,0.09715,0.093626,0.099369,0.11135,0.12091,0.11782,0.10721,0.099341,0.094778,0.092107,0.087318,0.076833,0.088263,0.099935,0.10667,0.10847,0.11688,0.11707,0.11825,0.11777,0.12269,0.12306,0.1246,0.12357,0.11611,0.11378,0.11083,0.11757,0.11995,0.11512,0.10875,0.089757,0.0876,0.098152,0.099871,0.10439,0.10916,0.11467,0.11896,0.10975,0.11593,0.10424,0.1134,0.1191,0.12384,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.043563,0.063254,0.076658,0.10083,0.098341,0.094788,0.1016,0.11341,0.12193,0.11888,0.10835,0.10033,0.095134,0.091157,0.086566,0.077523,0.089534,0.1011,0.10838,0.10924,0.11806,0.11864,0.12036,0.12022,0.12539,0.12594,0.12749,0.12598,0.11916,0.11629,0.11267,0.11999,0.12217,0.11669,0.11093,0.09144,0.089929,0.10118,0.10301,0.10835,0.11373,0.11959,0.12456,0.11471,0.12144,0.1095,0.11922,0.12528,0.13075,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.046244,0.064941,0.078007,0.10193,0.10049,0.097208,0.10494,0.1166,0.12589,0.12284,0.11217,0.10324,0.097299,0.092802,0.088095,0.078809,0.091432,0.10378,0.11131,0.11243,0.12118,0.12233,0.12454,0.12443,0.12951,0.13005,0.13152,0.12956,0.12288,0.11952,0.1153,0.12285,0.12483,0.11888,0.11343,0.093596,0.092421,0.10406,0.10597,0.11175,0.11746,0.12347,0.12881,0.11847,0.12553,0.11339,0.12347,0.12975,0.13576,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.046908,0.066322,0.079455,0.10489,0.10351,0.098866,0.10717,0.11971,0.12909,0.12623,0.11571,0.10637,0.10039,0.095518,0.090908,0.08187,0.094531,0.10693,0.1148,0.11621,0.12498,0.1268,0.12899,0.12908,0.13432,0.1347,0.13607,0.13372,0.12708,0.12315,0.11833,0.12601,0.12796,0.12151,0.11623,0.096008,0.095046,0.10697,0.10861,0.11475,0.12069,0.12677,0.13239,0.12162,0.12891,0.1166,0.12697,0.13341,0.13987,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.050191,0.067546,0.082064,0.10691,0.10682,0.10342,0.10972,0.12316,0.13057,0.12698,0.11591,0.10653,0.10063,0.094878,0.089653,0.080373,0.092809,0.10571,0.11408,0.115,0.12388,0.12563,0.12791,0.12858,0.13413,0.13478,0.13632,0.13418,0.12761,0.12379,0.11901,0.12648,0.12768,0.12096,0.11571,0.095818,0.094632,0.10568,0.10751,0.11351,0.11949,0.12566,0.13116,0.12082,0.12786,0.11562,0.12518,0.13167,0.13808,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.048987,0.068886,0.08164,0.10781,0.1074,0.10336,0.10821,0.12278,0.12923,0.12655,0.11359,0.10292,0.098274,0.092455,0.087226,0.07869,0.090652,0.10409,0.11189,0.11142,0.12002,0.12126,0.12287,0.12303,0.12775,0.1283,0.12968,0.12774,0.12157,0.11804,0.11362,0.12114,0.12216,0.11599,0.11095,0.091834,0.090824,0.10196,0.10352,0.10982,0.11591,0.12197,0.12768,0.11788,0.12497,0.11276,0.12234,0.1287,0.13532,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.052767,0.073611,0.085836,0.11295,0.1089,0.10475,0.11103,0.12511,0.12944,0.12814,0.1146,0.10431,0.10086,0.094552,0.088979,0.080344,0.092904,0.10687,0.11521,0.11446,0.12344,0.12475,0.12608,0.12693,0.13209,0.13322,0.13485,0.13313,0.12691,0.12351,0.11913,0.12704,0.12741,0.12095,0.11565,0.096023,0.09475,0.1056,0.1062,0.11319,0.11999,0.12663,0.13293,0.12346,0.13094,0.11792,0.12741,0.13433,0.14171,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.047065,0.068002,0.081388,0.10851,0.1045,0.10229,0.11006,0.1235,0.12913,0.12917,0.11546,0.10654,0.10136,0.094919,0.090469,0.08222,0.095341,0.10769,0.11657,0.11651,0.12585,0.12713,0.12872,0.13015,0.13564,0.13724,0.13903,0.13746,0.13139,0.12802,0.12362,0.13197,0.13171,0.12493,0.11952,0.099441,0.098051,0.1088,0.10896,0.1167,0.12421,0.13141,0.13833,0.12911,0.137,0.1232,0.13266,0.14012,0.14825,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.050739,0.070245,0.082803,0.11106,0.10418,0.10358,0.11138,0.1244,0.13044,0.13026,0.11682,0.10792,0.10126,0.094804,0.089751,0.081774,0.094569,0.10623,0.11458,0.11477,0.12332,0.12449,0.12644,0.12866,0.13466,0.13692,0.13905,0.13784,0.13187,0.12878,0.12459,0.13284,0.13212,0.12524,0.11981,0.10006,0.098391,0.10826,0.10803,0.11572,0.12334,0.13072,0.13761,0.12893,0.13665,0.12289,0.13164,0.13918,0.14728,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.049679,0.071769,0.085892,0.11401,0.1066,0.10621,0.11322,0.12574,0.13127,0.12945,0.11532,0.10604,0.098572,0.091301,0.086984,0.078514,0.091956,0.10257,0.11101,0.11102,0.11905,0.11983,0.12091,0.12285,0.12784,0.12933,0.13122,0.1304,0.12433,0.12158,0.11779,0.12519,0.12447,0.11824,0.11271,0.094311,0.092333,0.10129,0.10071,0.10759,0.11443,0.12104,0.12721,0.11928,0.12624,0.11336,0.12127,0.12802,0.13532,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.04997,0.070131,0.086348,0.11077,0.1055,0.10305,0.10996,0.12261,0.12948,0.12907,0.11575,0.10786,0.10022,0.092518,0.089301,0.081958,0.095188,0.10528,0.11424,0.1149,0.12329,0.12403,0.12476,0.12721,0.13251,0.13443,0.13645,0.13568,0.12959,0.12682,0.12296,0.13064,0.12933,0.12277,0.11703,0.09814,0.095946,0.10485,0.1038,0.11126,0.11867,0.12573,0.13238,0.12465,0.13193,0.11828,0.12615,0.13336,0.1413,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.053611,0.07467,0.0885,0.11403,0.10761,0.10509,0.11201,0.12571,0.13365,0.13387,0.12193,0.11232,0.10348,0.096337,0.09284,0.085284,0.099024,0.10866,0.11811,0.11941,0.12815,0.12891,0.12995,0.13267,0.13832,0.14072,0.14292,0.14227,0.13588,0.13313,0.12924,0.13705,0.13516,0.12831,0.12218,0.10279,0.10019,0.10853,0.10691,0.11477,0.12261,0.13003,0.13703,0.12955,0.13703,0.12266,0.13039,0.13799,0.14647,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.046814,0.06768,0.082915,0.10762,0.10074,0.09778,0.10399,0.11653,0.12601,0.12781,0.11573,0.10654,0.098094,0.09153,0.088368,0.080802,0.093914,0.10308,0.11198,0.11402,0.12217,0.12263,0.12249,0.1246,0.12939,0.13145,0.13355,0.13323,0.12692,0.12464,0.12129,0.12885,0.12709,0.12101,0.11493,0.096584,0.093993,0.10216,0.10033,0.10812,0.11577,0.12287,0.12977,0.12299,0.1303,0.11634,0.12393,0.13125,0.13969,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.046344,0.069733,0.083709,0.1075,0.097408,0.094315,0.10087,0.11266,0.12173,0.12361,0.11158,0.10409,0.095223,0.088723,0.084981,0.077643,0.090292,0.098771,0.10631,0.10844,0.11555,0.11624,0.11666,0.11963,0.12504,0.12785,0.13033,0.1304,0.1244,0.12243,0.11934,0.12683,0.12478,0.11871,0.11281,0.095015,0.092312,0.099702,0.097667,0.1054,0.11313,0.12039,0.12726,0.12103,0.12819,0.11446,0.12142,0.1288,0.13715,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.046087,0.071891,0.087447,0.11012,0.10004,0.093576,0.10047,0.109,0.11947,0.1212,0.10673,0.097852,0.090702,0.084427,0.079092,0.071749,0.084014,0.093273,0.10075,0.10194,0.10904,0.10983,0.11079,0.11452,0.12046,0.12393,0.12673,0.12709,0.12137,0.11964,0.11676,0.1241,0.12179,0.11574,0.10998,0.092707,0.089868,0.096128,0.093879,0.10153,0.10931,0.1167,0.12351,0.11783,0.12484,0.11136,0.11774,0.12516,0.13342,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.042119,0.066408,0.08486,0.10925,0.10143,0.096868,0.10523,0.11495,0.12643,0.12707,0.11387,0.10423,0.096833,0.091836,0.087675,0.081356,0.092525,0.10236,0.10903,0.1108,0.11723,0.11809,0.11947,0.12386,0.13023,0.13425,0.13732,0.13783,0.13154,0.1299,0.12704,0.13398,0.13114,0.12493,0.11816,0.1004,0.096494,0.10179,0.09849,0.10586,0.11349,0.12079,0.12762,0.12226,0.12926,0.11531,0.12092,0.12815,0.13654,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.046394,0.071504,0.088163,0.11363,0.10755,0.10165,0.11139,0.12221,0.13208,0.13122,0.1197,0.108,0.10058,0.093705,0.089555,0.082995,0.094799,0.10526,0.11138,0.11291,0.1198,0.1207,0.12255,0.12754,0.13433,0.13888,0.14218,0.14283,0.13673,0.13515,0.13231,0.13981,0.13655,0.13016,0.12332,0.10504,0.10104,0.10648,0.10283,0.11096,0.1193,0.12719,0.13466,0.12947,0.13693,0.12213,0.12791,0.13566,0.14471,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.046343,0.073728,0.08838,0.11519,0.10749,0.10362,0.11481,0.12681,0.13777,0.13832,0.12837,0.11711,0.10785,0.10154,0.096498,0.089212,0.10156,0.11099,0.11635,0.1186,0.12486,0.12597,0.12798,0.13373,0.14106,0.14628,0.14994,0.15086,0.14447,0.14307,0.14034,0.14813,0.14451,0.13801,0.13073,0.11187,0.10741,0.11268,0.1084,0.117,0.12581,0.13411,0.14197,0.13707,0.14478,0.12914,0.13491,0.14304,0.15256,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.04423,0.071084,0.085629,0.11404,0.10732,0.1022,0.11492,0.12665,0.13739,0.13948,0.13126,0.1208,0.11228,0.10673,0.10296,0.096504,0.10845,0.11848,0.12407,0.12699,0.13364,0.13527,0.13733,0.14272,0.14988,0.15496,0.15817,0.15854,0.15174,0.14977,0.14649,0.15379,0.14946,0.14244,0.13473,0.1154,0.11049,0.11534,0.1105,0.119,0.12771,0.13589,0.14369,0.13868,0.14632,0.13005,0.13568,0.14388,0.15359,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.048565,0.073752,0.089783,0.11513,0.11049,0.1056,0.11777,0.12893,0.13818,0.14175,0.13142,0.121,0.11411,0.10837,0.1041,0.09743,0.11,0.12066,0.12588,0.12833,0.13544,0.13715,0.13974,0.14578,0.15339,0.15904,0.16253,0.16311,0.15642,0.15457,0.15139,0.15921,0.15458,0.1475,0.13967,0.11986,0.11481,0.11983,0.11464,0.1238,0.13314,0.14186,0.15021,0.14541,0.15346,0.13641,0.14222,0.15088,0.16114,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.040345,0.063443,0.077338,0.10022,0.094097,0.08855,0.098666,0.10876,0.11813,0.12253,0.11186,0.10382,0.098963,0.093638,0.090451,0.084162,0.095343,0.10567,0.10966,0.1111,0.11803,0.11957,0.12236,0.12805,0.13515,0.14042,0.14333,0.1439,0.13783,0.13624,0.13344,0.14035,0.13605,0.12966,0.12247,0.10476,0.10004,0.10423,0.099325,0.10753,0.11593,0.12376,0.13126,0.12716,0.13436,0.11909,0.12407,0.13182,0.1411,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.04484,0.064948,0.079115,0.10117,0.097202,0.091308,0.1014,0.10892,0.11761,0.12166,0.10946,0.10159,0.095055,0.08971,0.086415,0.080345,0.09226,0.1019,0.1056,0.1056,0.11227,0.11331,0.11509,0.12006,0.126,0.1303,0.13286,0.13357,0.12797,0.1267,0.12432,0.13123,0.12719,0.12147,0.1147,0.098019,0.093663,0.097962,0.09322,0.10144,0.10974,0.11732,0.12478,0.12113,0.12822,0.11353,0.11851,0.12601,0.1352,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.049249,0.070334,0.083008,0.10422,0.098958,0.092792,0.10245,0.10934,0.11575,0.11744,0.10559,0.096086,0.091337,0.086089,0.082749,0.076685,0.088103,0.098477,0.10183,0.10038,0.1065,0.10688,0.10804,0.11225,0.1171,0.12051,0.12271,0.12354,0.11834,0.11738,0.11541,0.12225,0.11848,0.1134,0.10699,0.091326,0.087261,0.091607,0.08698,0.095155,0.10329,0.11058,0.11795,0.11475,0.12168,0.1076,0.11253,0.11975,0.12881,2500,-0.078984,0.35833,80 +0.068636,0.13968,0,0.054481,0.076737,0.087629,0.11029,0.10722,0.10318,0.11063,0.11557,0.12354,0.12218,0.11003,0.10115,0.09657,0.08937,0.085287,0.07885,0.091069,0.10222,0.10652,0.10354,0.11026,0.11076,0.11273,0.11777,0.12331,0.1275,0.13011,0.13115,0.12602,0.12516,0.12325,0.13076,0.12673,0.12158,0.11498,0.098538,0.094236,0.099021,0.093972,0.10291,0.11178,0.11973,0.12775,0.12468,0.13215,0.11697,0.12226,0.13003,0.13968,2500,-0.078984,0.35833,80 diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/multi_noise_sim_fast_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/multi_noise_sim_fast_res.csv new file mode 100644 index 0000000..8a81179 --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/multi_noise_sim_fast_res.csv @@ -0,0 +1,50 @@ +0.13189,0.036984,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.026318,-0.011257,0.044985,0.085809,0.084619,0.071711,0.067352,0.058349,0.056653,0.055365,0.054501,0.052502,0.059148,0.061411,0.059518,0.058316,0.060398,0.0645,0.064192,0.060787,0.067812,0.067967,0.065303,0.066752,0.065949,0.066376,0.064835,0.066886,0.066965,0.066494,0.066443,0.067068,0.067687,0.068786,0.067004,0.068737,0.068342,0.062231,0.065455,0.069204,0.072931,0.06752,0.072209,0.061681,0.067498,0.056792,0.021684,0.033884,0.021364,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.017487,0.010291,0.039429,0.065429,0.062247,0.065909,0.056649,0.049518,0.046739,0.056055,0.054261,0.048699,0.05559,0.056346,0.051651,0.051389,0.058087,0.063742,0.064558,0.062792,0.065627,0.063771,0.05999,0.060753,0.060791,0.06114,0.058934,0.06019,0.060365,0.060286,0.060301,0.060463,0.060911,0.062603,0.061783,0.064563,0.066247,0.062532,0.067584,0.073413,0.079332,0.079275,0.082072,0.064839,0.074267,0.049984,0.031902,0.0027183,-0.0065213,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,0.0035885,0.012707,0.036139,0.07434,0.064876,0.062535,0.056804,0.052547,0.053071,0.067931,0.062579,0.059777,0.065106,0.062792,0.055941,0.057518,0.062905,0.065557,0.066118,0.06334,0.066268,0.066241,0.061411,0.060717,0.06086,0.060093,0.056748,0.057128,0.057728,0.057366,0.05727,0.055629,0.056035,0.056021,0.056415,0.056018,0.055384,0.054279,0.061242,0.069236,0.077466,0.080907,0.074138,0.063365,0.072326,0.051625,0.042007,0.023117,-0.0036313,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.0096742,0.0048634,0.026364,0.066913,0.053129,0.046752,0.040683,0.036072,0.033284,0.044278,0.039678,0.034209,0.038916,0.034115,0.031262,0.032471,0.036845,0.039313,0.041346,0.036885,0.041665,0.040016,0.035314,0.035587,0.034532,0.033861,0.031811,0.033257,0.034975,0.03502,0.035315,0.034006,0.034796,0.034285,0.033685,0.032722,0.032897,0.034044,0.040043,0.049059,0.057334,0.060813,0.045382,0.040275,0.050565,0.021206,0.019377,-0.0044759,-0.029524,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.02023,-0.010698,0.014354,0.04783,0.039208,0.029847,0.021023,0.023014,0.019819,0.031645,0.027242,0.02607,0.028031,0.02134,0.020664,0.023289,0.025419,0.025888,0.029157,0.026049,0.032292,0.030396,0.024875,0.024765,0.022798,0.022241,0.020115,0.020862,0.022127,0.021977,0.022287,0.021283,0.021164,0.020715,0.020529,0.019598,0.020015,0.021366,0.026524,0.035171,0.042982,0.0492,0.035986,0.028402,0.030868,0.00067092,0.0050435,-0.036053,-0.047821,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.017113,-0.002568,0.018598,0.045178,0.03603,0.023774,0.015027,0.016376,0.016396,0.027818,0.023619,0.020261,0.022174,0.018372,0.021671,0.022352,0.024255,0.023108,0.024717,0.02357,0.031089,0.029319,0.024024,0.024075,0.021367,0.020725,0.018519,0.019989,0.021287,0.020934,0.021349,0.02046,0.02009,0.019375,0.019969,0.019362,0.01861,0.019843,0.02644,0.034428,0.043932,0.052218,0.042364,0.027389,0.030471,-0.006933,0.0020942,-0.038673,-0.052203,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.013419,-0.0062579,0.020781,0.042065,0.029822,0.015065,0.0039403,0.0082888,0.0081884,0.016948,0.010885,0.0074469,0.0099041,0.010126,0.011591,0.012086,0.012371,0.012116,0.013849,0.014157,0.022411,0.019607,0.016849,0.016014,0.013262,0.01234,0.010372,0.013599,0.014886,0.014392,0.014818,0.013905,0.013526,0.013351,0.014656,0.013013,0.011502,0.014109,0.020703,0.026383,0.032932,0.043378,0.034198,0.016937,0.017769,-0.013815,-0.004982,-0.038907,-0.060302,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,0.004344,0.01137,0.042095,0.05681,0.048704,0.030613,0.016678,0.02734,0.024542,0.034635,0.030205,0.029868,0.030379,0.03047,0.031946,0.032595,0.034909,0.033392,0.033935,0.033166,0.040085,0.036496,0.034289,0.034064,0.03123,0.029781,0.027379,0.030141,0.031645,0.031005,0.031272,0.030475,0.030309,0.030502,0.032296,0.030618,0.025762,0.029249,0.036756,0.043547,0.051194,0.061786,0.051929,0.02969,0.030136,-0.0019045,0.00095646,-0.028112,-0.052074,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.003498,0.0049879,0.038047,0.054222,0.043402,0.027118,0.017587,0.02779,0.022904,0.030815,0.032148,0.033264,0.035382,0.035349,0.035343,0.039077,0.040078,0.038689,0.03811,0.036322,0.043804,0.040057,0.037095,0.037091,0.03482,0.032837,0.030575,0.033839,0.035437,0.034839,0.034939,0.034423,0.034216,0.034795,0.03711,0.036134,0.031443,0.034518,0.041611,0.048343,0.052914,0.060833,0.05144,0.032007,0.032335,0.00090731,0.0030082,-0.024778,-0.051135,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.010743,0.0063916,0.044475,0.056501,0.045311,0.036,0.025665,0.033419,0.02813,0.035859,0.036973,0.036389,0.038094,0.036588,0.036538,0.038922,0.041347,0.043215,0.041597,0.040459,0.048056,0.043541,0.041671,0.041946,0.03971,0.037907,0.035232,0.038883,0.040694,0.040301,0.040406,0.040059,0.040068,0.040999,0.043194,0.042062,0.038242,0.04111,0.048333,0.052144,0.058111,0.066145,0.05868,0.036679,0.037138,0.0021034,0.0030089,-0.02515,-0.053046,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.00428,0.0097435,0.054598,0.070303,0.060932,0.048534,0.035618,0.045082,0.039584,0.045417,0.047947,0.047073,0.048757,0.045849,0.045624,0.047732,0.050361,0.054041,0.051451,0.0501,0.057658,0.054116,0.051539,0.051189,0.049038,0.047256,0.044166,0.048884,0.050483,0.049969,0.049834,0.049658,0.049645,0.050262,0.052927,0.051858,0.047693,0.051398,0.059595,0.064525,0.068164,0.075351,0.0658,0.045532,0.047938,0.0093187,0.012962,-0.012326,-0.042825,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.010686,0.0082405,0.051787,0.064837,0.053365,0.043674,0.035696,0.043178,0.03753,0.046113,0.048382,0.046055,0.047908,0.046377,0.044951,0.046856,0.049606,0.054541,0.051037,0.048824,0.056416,0.052756,0.049523,0.049305,0.046615,0.045293,0.042951,0.04731,0.048673,0.048054,0.047819,0.04762,0.047636,0.047798,0.050621,0.049659,0.045794,0.046668,0.054321,0.059304,0.064457,0.071753,0.062737,0.044685,0.047371,0.011541,0.010059,-0.015858,-0.04612,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.0084524,0.0058934,0.046622,0.066536,0.0543,0.047101,0.039076,0.044707,0.040373,0.048875,0.051054,0.049872,0.050422,0.047671,0.045116,0.050884,0.053769,0.060692,0.056328,0.054116,0.061565,0.058898,0.055753,0.055426,0.05224,0.050486,0.04806,0.052731,0.053958,0.052877,0.052896,0.05284,0.053033,0.053491,0.055187,0.054233,0.050462,0.052129,0.059646,0.065713,0.071994,0.079121,0.069977,0.053416,0.055311,0.017384,0.018331,-0.0081412,-0.040863,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.010367,0.006244,0.046198,0.063714,0.052986,0.047673,0.037797,0.043654,0.039071,0.048913,0.052417,0.049939,0.050611,0.046709,0.04504,0.049802,0.051743,0.05777,0.053563,0.051423,0.058885,0.056242,0.052494,0.053631,0.050931,0.049381,0.046598,0.05114,0.052556,0.052031,0.052075,0.05211,0.052487,0.05241,0.054549,0.053725,0.049454,0.05131,0.057205,0.06448,0.072049,0.079134,0.069891,0.053115,0.052906,0.015393,0.017117,-0.0063135,-0.040152,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.015798,0.0071074,0.044196,0.05962,0.048776,0.04493,0.037953,0.043622,0.038949,0.049976,0.053784,0.051339,0.050859,0.046803,0.045324,0.05005,0.052074,0.059073,0.056073,0.05616,0.062938,0.060423,0.056106,0.056743,0.054689,0.052743,0.049623,0.054197,0.055436,0.055148,0.055286,0.055345,0.055885,0.055297,0.057071,0.056724,0.053066,0.054872,0.060836,0.06803,0.074406,0.080724,0.069792,0.054628,0.054305,0.018708,0.020828,-7.825e-05,-0.036017,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.020816,0.0052871,0.03966,0.057354,0.048706,0.043093,0.034567,0.043822,0.040482,0.051277,0.056353,0.053868,0.053586,0.050591,0.050029,0.053798,0.055648,0.061782,0.061182,0.061634,0.067688,0.06515,0.060337,0.060494,0.058638,0.05717,0.05395,0.05824,0.059686,0.059311,0.059451,0.059521,0.060206,0.059537,0.06129,0.061376,0.057812,0.058981,0.065689,0.072662,0.078691,0.082428,0.071342,0.057754,0.055683,0.022217,0.023674,0.0037657,-0.033272,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.016931,0.010469,0.041833,0.060934,0.051954,0.046055,0.037246,0.046534,0.044455,0.055284,0.060296,0.05674,0.056474,0.053552,0.055601,0.058567,0.060099,0.06554,0.06428,0.064662,0.071096,0.069348,0.064042,0.063775,0.061783,0.059975,0.056756,0.06084,0.062321,0.06213,0.062378,0.062514,0.063339,0.062577,0.064333,0.064544,0.061486,0.06202,0.068159,0.076027,0.081999,0.086833,0.072299,0.059088,0.057208,0.021928,0.025476,0.0059894,-0.030705,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.012848,0.010561,0.041822,0.062509,0.055804,0.048244,0.039263,0.047255,0.043982,0.053734,0.058823,0.055342,0.054176,0.051423,0.053554,0.056506,0.058959,0.065359,0.064233,0.064034,0.070625,0.069903,0.064732,0.064062,0.062383,0.060254,0.057821,0.062052,0.06339,0.063321,0.063575,0.063775,0.064582,0.063798,0.065568,0.065449,0.06226,0.062899,0.069764,0.077103,0.083319,0.088205,0.073371,0.061396,0.059895,0.024205,0.028287,0.0076598,-0.028527,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.014056,0.0072713,0.037114,0.058415,0.051785,0.044338,0.035206,0.04324,0.040966,0.049802,0.054045,0.049696,0.047723,0.044173,0.047438,0.053325,0.055975,0.062622,0.060909,0.060817,0.067611,0.067152,0.061861,0.061677,0.060166,0.058133,0.055958,0.060338,0.06144,0.061425,0.061692,0.061911,0.062753,0.062005,0.064096,0.063257,0.060251,0.060898,0.067963,0.075376,0.082537,0.087701,0.07394,0.061095,0.059968,0.024108,0.029991,0.009845,-0.026035,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.015803,0.0091767,0.040963,0.061613,0.053381,0.044593,0.035321,0.0438,0.041522,0.05075,0.054115,0.051495,0.049468,0.045177,0.047763,0.053007,0.056839,0.06422,0.062368,0.063508,0.06984,0.0696,0.064843,0.064673,0.062857,0.060828,0.058429,0.062911,0.063896,0.063912,0.064183,0.064513,0.065357,0.06479,0.066427,0.065572,0.062483,0.062727,0.070393,0.077871,0.085157,0.090496,0.077635,0.065708,0.063795,0.026568,0.032915,0.012937,-0.022937,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.019205,0.0047815,0.035669,0.057428,0.049678,0.042747,0.036015,0.043551,0.041141,0.050436,0.05304,0.049667,0.048353,0.045802,0.048941,0.054165,0.058195,0.065092,0.063518,0.064217,0.070956,0.070335,0.065698,0.065301,0.063432,0.061412,0.059284,0.063755,0.065025,0.065159,0.065569,0.065951,0.066901,0.066388,0.068095,0.067532,0.064809,0.065499,0.073325,0.080686,0.088036,0.09325,0.080425,0.068481,0.067603,0.029096,0.036147,0.016245,-0.01998,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.022252,0.0045178,0.034756,0.05538,0.047499,0.040708,0.033062,0.039787,0.038522,0.047115,0.049069,0.045039,0.044818,0.041661,0.044904,0.049612,0.05447,0.060906,0.058878,0.059161,0.066056,0.065356,0.061371,0.06153,0.059591,0.057749,0.056034,0.060647,0.062044,0.062273,0.062745,0.063181,0.063954,0.063612,0.06488,0.064463,0.062137,0.062789,0.071215,0.07925,0.085413,0.089413,0.076583,0.064151,0.064605,0.026229,0.032988,0.014839,-0.020953,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.018878,0.007693,0.039835,0.062371,0.053994,0.047025,0.038298,0.044165,0.042059,0.050459,0.052462,0.048266,0.047455,0.044506,0.04726,0.051509,0.055948,0.061989,0.060102,0.061181,0.067957,0.067263,0.06298,0.063596,0.062716,0.060674,0.058955,0.063461,0.064989,0.065308,0.065783,0.066134,0.066988,0.066776,0.068239,0.068038,0.065792,0.06638,0.074779,0.083318,0.0889,0.092983,0.080048,0.067442,0.068022,0.029403,0.036277,0.018259,-0.017957,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.018666,0.0063637,0.038163,0.059901,0.050773,0.043757,0.035052,0.041638,0.038947,0.047766,0.049261,0.045657,0.04484,0.04142,0.044137,0.049033,0.053084,0.059754,0.057518,0.058553,0.065217,0.064238,0.059701,0.0604,0.059719,0.05801,0.056628,0.061018,0.0625,0.062877,0.063363,0.063651,0.064508,0.064431,0.066088,0.06589,0.06334,0.063612,0.072485,0.081051,0.087218,0.091401,0.077759,0.065035,0.066038,0.027731,0.034169,0.016489,-0.019376,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.018718,0.0074461,0.038319,0.060369,0.050549,0.042866,0.033769,0.04114,0.037993,0.046427,0.047552,0.043571,0.042623,0.040026,0.042438,0.047053,0.051213,0.058151,0.056545,0.057353,0.064279,0.063809,0.059293,0.060332,0.059505,0.057662,0.056505,0.060825,0.062577,0.062928,0.063476,0.063719,0.064667,0.064644,0.066036,0.065996,0.063643,0.063961,0.072436,0.081373,0.087925,0.092359,0.078297,0.066025,0.067715,0.029088,0.036239,0.019643,-0.015808,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.01769,0.0073236,0.037567,0.059237,0.049526,0.042396,0.032864,0.039865,0.036672,0.045339,0.046163,0.04278,0.041388,0.038515,0.040678,0.045061,0.050124,0.056858,0.055428,0.056238,0.063009,0.062373,0.057944,0.059221,0.058272,0.056387,0.055257,0.05962,0.061538,0.061924,0.062464,0.062655,0.063651,0.063413,0.064782,0.064884,0.06243,0.062965,0.070646,0.079621,0.085846,0.090672,0.077038,0.064535,0.066497,0.028425,0.03663,0.021038,-0.013747,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.017422,0.0075837,0.038262,0.059426,0.04932,0.042467,0.033531,0.040423,0.036812,0.045225,0.046136,0.043602,0.042484,0.039641,0.041617,0.046095,0.051032,0.05761,0.056392,0.057624,0.064524,0.064039,0.060083,0.061554,0.060441,0.058489,0.0573,0.061635,0.063524,0.063892,0.064432,0.064633,0.065561,0.065301,0.066733,0.06689,0.064121,0.064781,0.07229,0.081184,0.087595,0.092634,0.0792,0.066801,0.069278,0.031375,0.039359,0.024606,-0.0097177,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.016996,0.0073213,0.038002,0.058909,0.049088,0.042019,0.033202,0.040196,0.036831,0.045671,0.04642,0.043737,0.042353,0.039684,0.041759,0.04612,0.050948,0.057603,0.05629,0.057433,0.064518,0.064094,0.06007,0.061562,0.060687,0.058654,0.057497,0.06179,0.063656,0.063999,0.064502,0.064627,0.065575,0.065072,0.066556,0.066775,0.06385,0.064661,0.072285,0.081309,0.087631,0.092319,0.079081,0.066531,0.069704,0.032023,0.040667,0.026312,-0.0074288,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.017073,0.0072974,0.038223,0.05935,0.049401,0.042225,0.033318,0.040392,0.036949,0.045713,0.046643,0.043836,0.042394,0.039777,0.041861,0.046349,0.051444,0.0583,0.057043,0.058151,0.065292,0.064841,0.060791,0.062258,0.061363,0.05934,0.058337,0.062637,0.064496,0.064836,0.065319,0.065447,0.066356,0.065831,0.06733,0.067592,0.064687,0.065524,0.073149,0.082358,0.088169,0.093131,0.07973,0.067193,0.070878,0.033631,0.043065,0.029209,-0.0044945,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.01683,0.0075716,0.037806,0.058923,0.049444,0.04235,0.033502,0.040669,0.037006,0.045776,0.046883,0.044127,0.042827,0.040265,0.042385,0.046741,0.051865,0.058903,0.05774,0.058998,0.066074,0.065654,0.061519,0.063007,0.062133,0.060134,0.059146,0.06341,0.065274,0.065626,0.06611,0.066274,0.067172,0.066632,0.068086,0.068371,0.065454,0.066236,0.073775,0.082992,0.088724,0.094218,0.080638,0.068008,0.071909,0.034554,0.044497,0.030759,-0.0025172,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.016134,0.0084237,0.038787,0.059818,0.05055,0.042843,0.034344,0.041667,0.038168,0.046935,0.048092,0.045261,0.044095,0.04162,0.043139,0.047598,0.052815,0.059739,0.058633,0.059978,0.067115,0.066778,0.06265,0.064187,0.063318,0.0613,0.060217,0.064504,0.066386,0.0667,0.067198,0.067352,0.068222,0.067644,0.069129,0.069372,0.066369,0.067191,0.074702,0.083718,0.0894,0.095209,0.081791,0.068778,0.07238,0.035052,0.046824,0.032605,-0.0006221,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.016252,0.0085327,0.03893,0.059257,0.048621,0.041398,0.033275,0.040122,0.036367,0.045423,0.046141,0.043257,0.042351,0.040119,0.041531,0.04597,0.051185,0.058267,0.05733,0.05846,0.065724,0.065516,0.061248,0.0628,0.062029,0.059972,0.058862,0.063191,0.065104,0.065348,0.065844,0.06599,0.067,0.066417,0.067815,0.06796,0.065057,0.066207,0.074047,0.082811,0.088444,0.09403,0.080365,0.067099,0.07094,0.033378,0.046628,0.032245,-0.00049961,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.016566,0.0093862,0.039383,0.060314,0.049107,0.04162,0.033292,0.040641,0.037402,0.046351,0.047486,0.044066,0.043553,0.041427,0.043176,0.046776,0.05216,0.059494,0.058254,0.059631,0.066949,0.066895,0.062544,0.064129,0.063527,0.061521,0.060444,0.064714,0.066662,0.066943,0.067384,0.067459,0.068397,0.067711,0.068948,0.06901,0.066305,0.067368,0.075304,0.084139,0.090033,0.09508,0.081943,0.068102,0.073144,0.034897,0.048146,0.036277,0.0036757,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.014277,0.0061655,0.036475,0.058491,0.045566,0.039028,0.031523,0.038358,0.035783,0.044456,0.046125,0.043227,0.043181,0.041168,0.04331,0.046776,0.052483,0.06011,0.058845,0.060131,0.06767,0.067084,0.062823,0.06417,0.063639,0.061575,0.060487,0.064837,0.066794,0.06711,0.067563,0.067651,0.068663,0.068021,0.069419,0.069268,0.066905,0.067965,0.076781,0.085496,0.090818,0.095261,0.081574,0.068928,0.073446,0.036803,0.050214,0.041874,0.0087124,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.01949,0.0024401,0.034336,0.057453,0.044407,0.03894,0.031351,0.038912,0.037109,0.044915,0.046572,0.044067,0.044601,0.041094,0.043437,0.04735,0.053277,0.060228,0.058879,0.060525,0.068314,0.068065,0.063843,0.065171,0.064709,0.062607,0.06143,0.065652,0.067598,0.067959,0.068398,0.068437,0.069433,0.068644,0.070365,0.070332,0.06764,0.068262,0.077306,0.087024,0.092646,0.096281,0.08303,0.070488,0.075659,0.040194,0.051989,0.046406,0.013342,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.017658,0.00037575,0.032351,0.055126,0.043628,0.037408,0.029115,0.035828,0.033547,0.039968,0.042464,0.03904,0.037457,0.034676,0.036897,0.041354,0.047739,0.05458,0.053466,0.054059,0.061201,0.061309,0.05659,0.058198,0.058008,0.055534,0.054381,0.0587,0.060721,0.061136,0.061761,0.061761,0.062727,0.061798,0.063277,0.063299,0.060553,0.061335,0.070622,0.080058,0.085049,0.087934,0.074205,0.062726,0.068013,0.034829,0.048525,0.044893,0.012876,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.013458,0.0016421,0.033182,0.057189,0.047199,0.03974,0.030779,0.037291,0.035271,0.042569,0.04527,0.042017,0.040284,0.03772,0.036534,0.041626,0.048572,0.055537,0.055017,0.054733,0.062264,0.062469,0.058235,0.059287,0.059443,0.05675,0.055586,0.059538,0.061668,0.061983,0.062588,0.062653,0.063569,0.062667,0.064051,0.064362,0.061154,0.063022,0.071436,0.082032,0.085999,0.088703,0.073992,0.063419,0.067126,0.03672,0.050645,0.04723,0.015227,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.019135,0.00042703,0.033956,0.056982,0.048861,0.04043,0.033037,0.040727,0.036174,0.043404,0.044374,0.042203,0.039376,0.037772,0.037453,0.043264,0.049399,0.056963,0.057119,0.056576,0.064544,0.064756,0.060553,0.062025,0.062579,0.059574,0.058328,0.062446,0.064671,0.065022,0.065476,0.065815,0.066721,0.065864,0.067482,0.06839,0.065623,0.066718,0.074821,0.085583,0.089562,0.093284,0.07947,0.067394,0.070184,0.040383,0.053973,0.050017,0.018755,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.013701,0.0044864,0.039473,0.061311,0.050654,0.036165,0.028771,0.036482,0.033488,0.041914,0.042186,0.039107,0.036317,0.035772,0.036411,0.042224,0.047487,0.055721,0.05615,0.054381,0.062857,0.062345,0.058749,0.060675,0.060188,0.057102,0.056193,0.060254,0.061638,0.061974,0.062412,0.062669,0.063403,0.0623,0.063515,0.064507,0.061203,0.062238,0.070007,0.079638,0.087393,0.092048,0.078743,0.065313,0.069588,0.040263,0.051287,0.049145,0.018969,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.013919,0.0076623,0.038137,0.062025,0.049598,0.037347,0.02754,0.033281,0.030507,0.039199,0.037633,0.035909,0.03307,0.033669,0.033882,0.038565,0.044207,0.053157,0.05318,0.052202,0.061219,0.060755,0.056546,0.058961,0.058567,0.055963,0.055068,0.059198,0.060643,0.061069,0.061831,0.061945,0.063023,0.062042,0.063846,0.06462,0.060685,0.060881,0.068477,0.079266,0.085605,0.090867,0.076236,0.064419,0.068921,0.041599,0.049765,0.052661,0.022178,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.011939,0.010192,0.042731,0.068112,0.055035,0.045002,0.03553,0.042826,0.038575,0.046847,0.046686,0.045164,0.042494,0.044338,0.045723,0.051396,0.057975,0.065544,0.064086,0.064023,0.072837,0.072321,0.068055,0.06878,0.068511,0.065271,0.063864,0.067737,0.069383,0.069903,0.070821,0.071261,0.072715,0.071919,0.073595,0.074329,0.06959,0.070407,0.078488,0.091644,0.098639,0.10335,0.086746,0.074376,0.078964,0.049032,0.056686,0.062967,0.031484,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.0094927,0.012508,0.047376,0.064946,0.053644,0.046401,0.039445,0.042136,0.038249,0.048077,0.047953,0.048082,0.046995,0.045212,0.047895,0.052466,0.057467,0.064934,0.063381,0.064297,0.072778,0.072318,0.067989,0.06936,0.068832,0.066338,0.065238,0.068856,0.070704,0.071169,0.071548,0.071854,0.073024,0.072086,0.073521,0.074962,0.071848,0.072581,0.080098,0.091306,0.096441,0.1005,0.084419,0.073135,0.074946,0.049249,0.056465,0.062641,0.031335,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.0011901,0.022824,0.05222,0.065746,0.057705,0.046139,0.041932,0.046831,0.043163,0.050689,0.04589,0.044152,0.043315,0.038008,0.042102,0.046514,0.052667,0.059742,0.057736,0.058726,0.065946,0.06578,0.060081,0.061668,0.06077,0.057471,0.056893,0.06078,0.062829,0.063253,0.063612,0.064245,0.065139,0.063831,0.065004,0.065719,0.062318,0.063819,0.069851,0.081217,0.086163,0.088244,0.075887,0.064722,0.067509,0.044096,0.051825,0.059399,0.029912,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,0.0010856,0.016762,0.047081,0.061387,0.057206,0.049146,0.044937,0.049239,0.048073,0.053017,0.05047,0.050766,0.049759,0.044569,0.048901,0.053216,0.060584,0.066855,0.064479,0.066649,0.072412,0.071064,0.065323,0.067123,0.066304,0.063407,0.063047,0.06683,0.069455,0.069829,0.070139,0.070923,0.072178,0.071302,0.073013,0.074952,0.070478,0.07046,0.074481,0.087274,0.093449,0.093002,0.080811,0.071831,0.074609,0.048073,0.065226,0.066673,0.038335,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.020092,0.0076183,0.02652,0.039849,0.032337,0.023651,0.013149,0.017688,0.01713,0.022246,0.020482,0.019009,0.018009,0.011397,0.015512,0.019581,0.026384,0.033848,0.028494,0.031824,0.037299,0.034503,0.028971,0.031533,0.031278,0.028834,0.029074,0.032175,0.03454,0.035074,0.035698,0.036141,0.03721,0.03666,0.037699,0.040387,0.035317,0.036047,0.038766,0.050871,0.055444,0.05318,0.040224,0.033521,0.038053,0.016581,0.033771,0.038576,0.01745,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.050248,-0.015406,-0.00034335,0.019547,0.0077235,0.0043789,-0.0054148,0.0023524,0.0017385,0.0094603,0.01057,0.0096751,0.011084,0.0071045,0.0068878,0.012621,0.019616,0.026915,0.023481,0.026086,0.031919,0.030201,0.025513,0.028928,0.028553,0.027084,0.02798,0.030988,0.033503,0.034326,0.035466,0.035705,0.037712,0.036609,0.038128,0.04173,0.035629,0.038126,0.040876,0.055074,0.062626,0.063809,0.055399,0.048798,0.051769,0.033842,0.044079,0.046014,0.026355,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.069051,-0.022992,-0.01376,0.0072175,-0.0086664,-0.016315,-0.029002,-0.018195,-0.021854,-0.011659,-0.012676,-0.010939,-0.013569,-0.015087,-0.013288,-0.010102,-0.0051004,0.0018443,0.00013902,0.0039507,0.0095659,0.0076444,0.0043756,0.0074534,0.0061184,0.0054779,0.0048471,0.0076175,0.010104,0.010467,0.01154,0.01194,0.013535,0.012039,0.013589,0.017664,0.011978,0.016463,0.017579,0.031071,0.03635,0.038218,0.030821,0.025958,0.033712,0.014049,0.029965,0.026979,0.013178,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.068662,-0.042271,-0.033952,-0.0065701,-0.022394,-0.028232,-0.039432,-0.030532,-0.033184,-0.024619,-0.024734,-0.023835,-0.025933,-0.024522,-0.022261,-0.019608,-0.014728,-0.0076513,-0.0083859,-0.0041552,0.0020664,0.0017779,-0.00019809,0.0029027,0.0028536,0.0031027,0.0033824,0.0066695,0.0096183,0.010705,0.012138,0.013226,0.015446,0.015215,0.01703,0.020806,0.017539,0.019533,0.021152,0.030539,0.036999,0.040327,0.034748,0.035929,0.043067,0.02516,0.03795,0.035311,0.023892,2500,-0.040009,0.11398,110 +0.13189,0.036984,0,-0.049143,-0.042896,-0.027742,-0.0077531,-0.016915,-0.024376,-0.034253,-0.026312,-0.032275,-0.023755,-0.024463,-0.023019,-0.025487,-0.023908,-0.021568,-0.0208,-0.01572,-0.0083394,-0.0078954,-0.0028954,0.002455,0.0037413,0.0032235,0.0072109,0.0072451,0.0085764,0.010048,0.014107,0.017746,0.019665,0.02171,0.023766,0.026627,0.026894,0.029222,0.031264,0.028693,0.028387,0.032446,0.038001,0.047612,0.054823,0.053093,0.055121,0.066107,0.046544,0.050977,0.046711,0.036984,2500,-0.040009,0.11398,110 diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/quad_sim_fast_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/quad_sim_fast_res.csv new file mode 100644 index 0000000..9c37dbd --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/quad_sim_fast_res.csv @@ -0,0 +1,50 @@ +0.31077,0.014181,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,-0.029644,-0.042983,-0.05094,-0.059048,-0.068268,-0.076125,-0.082489,-0.089033,-0.078103,-0.064459,-0.05855,-0.060034,-0.044981,-0.040944,-0.046186,-0.051104,-0.055493,-0.056176,-0.059891,-0.059327,-0.06218,-0.062768,-0.065281,-0.065951,-0.065832,-0.067384,-0.070184,-0.070724,-0.068026,-0.06979,-0.068885,-0.069848,-0.066908,-0.069081,-0.064119,-0.067227,-0.070432,-0.06977,-0.077182,-0.083777,-0.078765,-0.088057,-0.082634,-0.072248,-0.070516,-0.077109,-0.075388,-0.071397,-0.061146,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,-0.0056856,-0.030466,-0.031514,-0.024283,-0.038316,-0.026774,-0.023357,-0.01841,-0.0078456,0.00080979,-0.00037477,-0.0009257,0.0077601,0.0091116,0.0022768,-0.0010308,-0.0037669,-0.0043678,-0.008684,-0.0068991,-0.0094379,-0.011377,-0.014297,-0.013882,-0.014796,-0.0167,-0.019659,-0.019902,-0.018287,-0.019192,-0.018026,-0.01783,-0.019702,-0.019438,-0.014285,-0.0184,-0.023848,-0.020451,-0.035368,-0.035701,-0.03154,-0.033518,-0.03617,-0.025159,-0.030504,-0.03596,-0.043849,-0.03538,-0.027875,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,-0.018768,-0.045182,-0.049833,-0.047863,-0.060133,-0.039696,-0.029483,-0.021137,-0.01305,-0.00038504,-0.0048177,-0.0046672,-0.00069319,-0.00016586,-0.0082582,-0.0088675,-0.0095791,-0.011948,-0.015045,-0.015142,-0.016737,-0.01957,-0.022099,-0.020463,-0.020349,-0.022573,-0.024892,-0.025355,-0.023498,-0.024028,-0.023755,-0.022763,-0.023082,-0.022326,-0.018922,-0.026013,-0.03239,-0.026795,-0.037844,-0.038298,-0.038123,-0.035686,-0.0387,-0.025701,-0.034591,-0.033709,-0.047489,-0.045618,-0.040825,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,-0.029235,-0.018938,-0.030877,-0.036252,-0.052777,-0.024548,-0.015341,-0.0073104,0.001209,0.011058,0.010957,0.015315,0.020776,0.024661,0.014969,0.013541,0.012772,0.011674,0.0096095,0.011803,0.01094,0.0073325,0.0041679,0.0055858,0.0057619,0.0044792,0.00097233,4.5835e-05,0.0023662,0.0019763,0.0026048,0.003906,0.0035151,0.0036566,0.007975,0.0014579,-0.0046956,-0.00084182,-0.0088687,-0.007083,-0.0093675,-0.0084206,-0.011283,0.0030863,-0.011313,-0.0077546,-0.01752,-0.013362,-0.0090954,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,-0.03808,-0.012333,-0.026088,-0.031047,-0.042574,-0.016494,-0.012019,-0.0045238,0.00011528,0.0090668,0.0062818,0.01021,0.015892,0.021034,0.014025,0.013023,0.014954,0.014293,0.012663,0.01395,0.014001,0.012256,0.0090586,0.01165,0.011185,0.010312,0.0077937,0.0078187,0.0099189,0.0096946,0.010517,0.011995,0.010428,0.01065,0.015982,0.011376,0.0072601,0.0080992,0.0007936,0.0047401,0.0049062,0.0080368,-0.00062652,0.01142,-0.0032678,-0.0038075,-0.0093411,-0.011051,-0.0026159,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,-0.037867,-0.0071455,-0.026353,-0.035345,-0.049937,-0.02871,-0.027233,-0.021146,-0.013479,-0.0056739,-0.010572,-0.0058952,0.0028613,0.0058311,-0.0024963,-0.0018435,-0.00082186,-0.00133,-0.0040807,-0.00069648,-0.00027206,-0.00064667,-0.0035697,-0.0011084,-0.0020062,-0.0011608,-0.0038331,-0.0036737,-0.0017342,-0.0015197,-0.00062153,0.00058635,-0.0010023,-0.00094899,0.0039613,0.00011789,-0.0019918,-0.00045718,-0.0096781,-0.0053454,-0.0024598,-0.0028291,-0.012387,-0.00084206,-0.010865,-0.0099667,-0.016475,-0.026089,-0.018516,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,-0.04442,-0.017242,-0.033979,-0.045506,-0.057432,-0.033706,-0.030845,-0.021271,-0.014695,-0.0084719,-0.015229,-0.010602,-0.0043115,0.0052158,-0.0026626,-0.003515,-0.0030297,-0.0015147,-0.0051327,-0.0028541,-0.0010618,0.0015524,-0.0013325,0.00035701,-0.00056285,-0.00018684,-0.0019734,-0.0019951,0.00016398,0.00055292,0.001713,0.0029585,0.00216,0.0015054,0.0072428,0.0040117,0.0018807,0.0019695,-0.0048959,-0.002486,0.0023013,0.0017547,-0.0085709,0.0020234,-0.0088065,-0.0080141,-0.015404,-0.029464,-0.018224,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,-0.035188,-0.0091485,-0.031684,-0.040212,-0.051949,-0.032148,-0.032281,-0.018762,-0.014847,-0.0067264,-0.013586,-0.0083047,0.00050489,0.0092688,0.0030778,0.0022225,0.0014312,0.0018159,-0.0010414,0.0012729,0.0022047,0.004625,0.0020444,0.003063,0.0021918,0.0021694,0.00092448,0.00074066,0.0031225,0.0035802,0.0047564,0.0055594,0.0054281,0.0045546,0.010248,0.0071444,0.0046781,0.0062747,-0.0021047,0.0021228,0.008709,0.010063,-0.0036919,0.0043825,-0.0057892,-0.0056222,-0.016854,-0.034225,-0.022723,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,-0.021443,-0.0049786,-0.01484,-0.019712,-0.027717,-0.012466,-0.0096608,0.00033621,0.0023243,0.0079774,0.0016356,0.0076477,0.014473,0.021288,0.013702,0.011581,0.0096169,0.0089786,0.0067162,0.010461,0.012123,0.013806,0.010687,0.01114,0.011034,0.01161,0.0096583,0.0099018,0.012664,0.013206,0.014417,0.014151,0.014579,0.014445,0.019395,0.014343,0.012136,0.013863,0.0048915,0.01068,0.013822,0.015923,0.0042108,0.012407,0.0044887,0.0066165,-0.0024771,-0.019762,-0.01028,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,-0.02782,-0.0082655,-0.013668,-0.017033,-0.027806,-0.013887,-0.012241,-0.0029425,-0.0030508,0.0023612,-0.0020215,0.0048312,0.0097945,0.016141,0.0098701,0.0088632,0.006591,0.0050131,0.0025756,0.006835,0.0090743,0.012297,0.010942,0.011998,0.011471,0.011867,0.009766,0.010401,0.013014,0.013072,0.014454,0.012718,0.012855,0.012723,0.018436,0.014636,0.012154,0.015142,0.004848,0.010043,0.013631,0.015242,0.0025156,0.011352,0.0042908,0.0087277,-0.0016031,-0.022676,-0.014873,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,-0.014808,-0.0038138,-0.013689,-0.01413,-0.024457,-0.010729,-0.0092904,0.0016558,0.00091765,0.0097745,0.005985,0.012334,0.017733,0.022448,0.015713,0.015295,0.013763,0.01256,0.0094185,0.012859,0.014379,0.017928,0.017295,0.017856,0.016955,0.017757,0.016251,0.016738,0.019258,0.019217,0.020799,0.019428,0.01903,0.018972,0.02535,0.021082,0.017944,0.022015,0.013196,0.019632,0.023204,0.020309,0.0093964,0.015126,0.0058098,0.010761,-0.0034846,-0.028401,-0.019289,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,-0.0027427,0.00040682,-0.0088066,-0.009468,-0.022617,-0.0081218,-0.0080663,0.004865,0.0092888,0.016226,0.011611,0.019482,0.025514,0.028772,0.020876,0.020879,0.018389,0.018025,0.014185,0.016905,0.018565,0.021992,0.021156,0.021723,0.020742,0.02124,0.019701,0.020005,0.022539,0.022532,0.024324,0.023191,0.02328,0.023271,0.029902,0.025292,0.022025,0.025605,0.015475,0.023274,0.026513,0.025151,0.015789,0.023029,0.012449,0.01492,0.0027528,-0.020114,-0.01477,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,6.3687e-05,0.010328,0.0025518,-0.0020805,-0.011487,0.0025191,4.1744e-07,0.010622,0.01716,0.024728,0.01859,0.026361,0.031614,0.035084,0.028753,0.029477,0.026112,0.025798,0.022348,0.025178,0.026235,0.030066,0.028796,0.029523,0.028601,0.029342,0.028497,0.028718,0.031194,0.031256,0.033222,0.032089,0.032578,0.032654,0.038775,0.034203,0.030315,0.03481,0.024632,0.028951,0.033415,0.028269,0.017451,0.025611,0.016884,0.018709,0.0034359,-0.017177,-0.0095968,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,-0.0056547,0.0060517,-0.0017535,-0.008476,-0.01368,-0.00041875,-0.0047048,0.0073139,0.012192,0.019375,0.016733,0.025824,0.029756,0.032033,0.025764,0.025537,0.022758,0.02354,0.019472,0.02213,0.022617,0.026703,0.025354,0.025674,0.024421,0.025021,0.024203,0.024282,0.026548,0.026607,0.027905,0.027134,0.02718,0.027415,0.03351,0.029886,0.027034,0.031285,0.021584,0.024881,0.027779,0.02132,0.012395,0.019453,0.010962,0.012633,-8.0057e-05,-0.020106,-0.015132,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.011893,0.019163,0.010818,0.0047982,-0.0011084,0.009376,0.006035,0.017188,0.020152,0.025743,0.023907,0.033573,0.037568,0.039244,0.033234,0.033266,0.032676,0.033422,0.029448,0.031531,0.032275,0.036304,0.035215,0.035409,0.033884,0.034252,0.033466,0.033439,0.035774,0.035718,0.037171,0.03663,0.036836,0.037512,0.042922,0.039953,0.036551,0.041131,0.032387,0.035568,0.038442,0.032985,0.02271,0.030832,0.021098,0.021615,0.0054066,-0.015723,-0.012519,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.021119,0.030824,0.023047,0.018403,0.013786,0.027953,0.023864,0.032676,0.033633,0.040835,0.038338,0.046571,0.050208,0.05068,0.044998,0.045777,0.046051,0.046166,0.042102,0.044069,0.044307,0.047856,0.047104,0.047097,0.045325,0.046015,0.044769,0.044641,0.046846,0.046843,0.048416,0.048073,0.047642,0.048715,0.054553,0.049986,0.046175,0.050229,0.041433,0.041847,0.0423,0.036311,0.026264,0.035559,0.027258,0.026597,0.009991,-0.012558,-0.0075024,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.016314,0.028304,0.018473,0.013721,0.013835,0.030063,0.024723,0.033667,0.03563,0.043316,0.041229,0.049609,0.053515,0.053534,0.048303,0.048322,0.048884,0.04942,0.044862,0.046383,0.046448,0.049564,0.04846,0.049478,0.047787,0.048262,0.046875,0.046658,0.049158,0.049253,0.050798,0.050616,0.050291,0.051532,0.056744,0.052832,0.047994,0.052836,0.04407,0.043704,0.043941,0.037898,0.027209,0.037657,0.030748,0.029521,0.010195,-0.013763,-0.0087029,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.014976,0.029248,0.019339,0.015014,0.013296,0.029366,0.023633,0.033673,0.036653,0.043112,0.040493,0.049328,0.053521,0.0529,0.047813,0.047824,0.048262,0.048888,0.044635,0.046276,0.045928,0.048638,0.047099,0.047854,0.046241,0.04668,0.045212,0.045111,0.047562,0.047584,0.049222,0.048779,0.047862,0.04926,0.055006,0.050971,0.04688,0.052469,0.044654,0.043171,0.04444,0.039489,0.029347,0.03662,0.031154,0.029975,0.011018,-0.013602,-0.0095842,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.020506,0.030608,0.020826,0.014621,0.012885,0.027503,0.022191,0.031063,0.033024,0.039008,0.035513,0.045827,0.04921,0.047879,0.04214,0.042925,0.043114,0.043336,0.038632,0.039849,0.040403,0.043052,0.041506,0.042534,0.040991,0.042104,0.040643,0.040573,0.043147,0.043226,0.04468,0.044156,0.04344,0.044873,0.049974,0.046228,0.042295,0.048049,0.039448,0.038948,0.040858,0.0362,0.025235,0.033618,0.027646,0.026807,0.0093863,-0.015234,-0.011485,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.020652,0.02825,0.018667,0.012104,0.0094209,0.022893,0.019253,0.028873,0.030957,0.03745,0.033622,0.043156,0.046414,0.045254,0.040191,0.04113,0.041345,0.041429,0.036869,0.03771,0.038877,0.042429,0.040655,0.041793,0.040045,0.041288,0.039956,0.039821,0.042562,0.042688,0.044269,0.04379,0.042938,0.044735,0.04935,0.046104,0.04157,0.047791,0.039264,0.039558,0.042284,0.036136,0.026056,0.034378,0.028017,0.026127,0.0075323,-0.015775,-0.012834,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.020567,0.025955,0.015564,0.0078793,0.0041025,0.017826,0.015549,0.02529,0.026574,0.032274,0.028677,0.037547,0.040154,0.039495,0.034577,0.035652,0.03579,0.03544,0.03128,0.031835,0.032818,0.03662,0.034637,0.035555,0.0336,0.034821,0.033563,0.033514,0.035907,0.036085,0.0378,0.03692,0.036377,0.038356,0.042215,0.039516,0.035592,0.041291,0.032201,0.032857,0.033955,0.028909,0.018557,0.027961,0.02295,0.021574,0.0043301,-0.018783,-0.016698,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.017817,0.022495,0.013239,0.0054376,0.00067632,0.015276,0.014025,0.023073,0.024893,0.030599,0.028674,0.037131,0.040604,0.039395,0.033992,0.035954,0.03636,0.035658,0.03202,0.032286,0.033005,0.037255,0.035097,0.035828,0.033719,0.034642,0.0333,0.0332,0.035617,0.035778,0.037549,0.036291,0.035968,0.038226,0.041135,0.037944,0.034049,0.040259,0.031601,0.032779,0.033734,0.028438,0.018428,0.02719,0.021556,0.020471,0.003053,-0.02023,-0.0169,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.01868,0.025435,0.016083,0.007079,0.002764,0.018919,0.016925,0.026839,0.028691,0.033872,0.031439,0.039694,0.042847,0.042146,0.03636,0.038023,0.038146,0.037197,0.033678,0.034125,0.034662,0.038763,0.03677,0.037491,0.035377,0.036218,0.034806,0.034669,0.037211,0.037372,0.039214,0.038044,0.037706,0.040034,0.043177,0.039442,0.035276,0.041464,0.032563,0.033613,0.035008,0.029486,0.01944,0.02852,0.022993,0.022443,0.0044295,-0.019184,-0.016529,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.017875,0.024349,0.014388,0.0057806,0.0018451,0.017754,0.016058,0.025754,0.027404,0.032383,0.029759,0.0385,0.041638,0.040782,0.0354,0.037717,0.037716,0.036656,0.03298,0.033342,0.0341,0.038226,0.036414,0.03705,0.034933,0.035735,0.034295,0.034185,0.036693,0.036862,0.038681,0.037545,0.037277,0.039547,0.04242,0.03881,0.034589,0.040952,0.032222,0.033643,0.03469,0.029369,0.019526,0.0289,0.023229,0.023156,0.005628,-0.018118,-0.015107,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.017463,0.024553,0.014322,0.0051076,0.0018782,0.017632,0.016491,0.026043,0.027658,0.032924,0.030191,0.039206,0.04271,0.041654,0.036112,0.038464,0.038248,0.037544,0.033823,0.034141,0.034859,0.038881,0.037039,0.037668,0.035626,0.036505,0.035051,0.034963,0.037469,0.037643,0.039478,0.038359,0.038033,0.040338,0.043152,0.039618,0.035449,0.041852,0.033047,0.034543,0.035546,0.030552,0.020859,0.03043,0.023987,0.024341,0.0072731,-0.016243,-0.01358,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.016058,0.023857,0.01404,0.0049653,0.0019775,0.017892,0.016136,0.025846,0.027434,0.032749,0.029757,0.038878,0.042493,0.041551,0.036125,0.03856,0.038412,0.037727,0.033982,0.034241,0.034961,0.039055,0.037294,0.037959,0.035942,0.036851,0.035418,0.035302,0.037826,0.037991,0.039848,0.038803,0.03843,0.040811,0.043728,0.040116,0.03586,0.042293,0.033233,0.034859,0.035794,0.030801,0.021328,0.030957,0.024273,0.024602,0.0078169,-0.015862,-0.013131,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.011911,0.016966,0.0081563,-0.001229,-0.0040174,0.010774,0.0096904,0.019468,0.021674,0.026504,0.023968,0.033423,0.036737,0.03617,0.031055,0.033508,0.033514,0.032571,0.028582,0.028957,0.029775,0.03396,0.031966,0.032728,0.030569,0.031343,0.030138,0.02999,0.032505,0.032656,0.034458,0.033375,0.033105,0.035475,0.038506,0.035378,0.031407,0.037591,0.028505,0.030388,0.031858,0.027248,0.017604,0.026858,0.019968,0.020317,0.0041345,-0.018758,-0.015238,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.010418,0.01582,0.0082405,-0.0013343,-0.00337,0.011923,0.010496,0.020222,0.022886,0.027452,0.025188,0.034095,0.037054,0.036064,0.03104,0.033757,0.033922,0.033069,0.029213,0.029031,0.030015,0.03425,0.032104,0.032832,0.030796,0.031647,0.030449,0.030274,0.032773,0.032898,0.034848,0.033676,0.033293,0.035605,0.038373,0.035475,0.031679,0.03781,0.028754,0.03037,0.031395,0.027191,0.017516,0.02703,0.020472,0.021258,0.0054668,-0.016828,-0.013903,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.010438,0.015154,0.0077932,-0.0020141,-0.003578,0.01231,0.010643,0.020069,0.021676,0.02672,0.024078,0.033117,0.035958,0.035166,0.029589,0.032065,0.032184,0.031581,0.027852,0.027836,0.028286,0.032495,0.03033,0.031182,0.029069,0.029929,0.028788,0.028524,0.03101,0.031092,0.032961,0.03182,0.031346,0.033545,0.036068,0.033264,0.029344,0.036133,0.027341,0.02864,0.029247,0.024887,0.015923,0.024887,0.018861,0.019585,0.0045777,-0.01683,-0.014305,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.012826,0.017396,0.0083706,-0.0033215,-0.004511,0.011323,0.010029,0.019698,0.022017,0.027166,0.02429,0.033793,0.036973,0.036459,0.030879,0.033739,0.034093,0.033506,0.029625,0.029478,0.02986,0.033975,0.031801,0.032531,0.030562,0.031535,0.030549,0.030444,0.032909,0.032929,0.034679,0.033454,0.03277,0.035104,0.037236,0.034508,0.030597,0.036813,0.027586,0.029451,0.030445,0.02633,0.017194,0.026358,0.020292,0.021382,0.0070125,-0.015163,-0.012452,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.0096291,0.017014,0.0059048,-0.0064675,-0.0071526,0.0065657,0.0044397,0.012006,0.015379,0.019065,0.017028,0.027155,0.030962,0.03087,0.025925,0.028186,0.028975,0.028414,0.024901,0.024991,0.025401,0.029716,0.027766,0.028577,0.026808,0.027807,0.027058,0.027016,0.029486,0.029549,0.031178,0.030041,0.029391,0.031424,0.03377,0.031565,0.027988,0.033997,0.024826,0.026909,0.02823,0.024476,0.015289,0.024141,0.018182,0.01927,0.0055582,-0.015793,-0.011508,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.011669,0.017974,0.0063741,-0.0060617,-0.0063372,0.0065644,0.0056083,0.014064,0.017254,0.02089,0.019687,0.028786,0.03294,0.032972,0.027601,0.029601,0.02963,0.028925,0.025081,0.024971,0.025396,0.029303,0.027065,0.028095,0.026318,0.027217,0.026226,0.026248,0.028698,0.028572,0.030055,0.028759,0.02817,0.029831,0.032759,0.030908,0.02788,0.033942,0.025093,0.026364,0.026856,0.024919,0.014996,0.025077,0.019029,0.020409,0.0073102,-0.014959,-0.0108,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.015156,0.020372,0.010469,-0.00051888,-0.0014515,0.011866,0.0090197,0.015983,0.020118,0.024646,0.02267,0.031411,0.034566,0.034521,0.029173,0.031744,0.03232,0.031084,0.027006,0.027299,0.027777,0.031957,0.029612,0.030879,0.029192,0.0303,0.029441,0.029757,0.032506,0.032575,0.0339,0.033003,0.032092,0.033293,0.037158,0.03516,0.031854,0.038729,0.030136,0.030415,0.031014,0.029082,0.018201,0.029267,0.024311,0.026143,0.013296,-0.010262,-0.0065615,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.013219,0.021423,0.013474,0.00060131,0.0011706,0.015529,0.010867,0.018809,0.023851,0.027739,0.026679,0.036072,0.038093,0.038292,0.033705,0.035938,0.037056,0.035918,0.031603,0.031119,0.031342,0.035233,0.03294,0.03428,0.032661,0.033559,0.032833,0.033212,0.035923,0.035904,0.037146,0.036431,0.035548,0.03723,0.040772,0.039443,0.036764,0.044221,0.035252,0.035236,0.03617,0.034956,0.023058,0.0338,0.027476,0.02858,0.015699,-0.0068406,-0.0029736,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.013239,0.018793,0.011683,-0.00024697,-0.0017699,0.012507,0.0066703,0.014615,0.020861,0.025793,0.024851,0.034119,0.036995,0.038021,0.033239,0.035241,0.036018,0.034676,0.030313,0.029862,0.030477,0.034076,0.031735,0.03301,0.0315,0.032242,0.031595,0.032045,0.034768,0.034888,0.035972,0.035237,0.034273,0.035784,0.038726,0.037364,0.034107,0.041594,0.032623,0.032935,0.032909,0.032367,0.020757,0.031629,0.025826,0.026914,0.014818,-0.0058011,-0.0037982,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.013381,0.016879,0.01259,-0.0008494,-0.0040365,0.011678,0.0074686,0.013825,0.018035,0.023064,0.020819,0.030914,0.033472,0.03437,0.029187,0.030887,0.032292,0.031537,0.027223,0.027238,0.027466,0.03101,0.02905,0.030414,0.028714,0.029637,0.028909,0.02894,0.031401,0.031464,0.032515,0.031998,0.031161,0.032216,0.035173,0.033268,0.029448,0.037026,0.029672,0.029816,0.029596,0.028076,0.018383,0.027909,0.022872,0.024168,0.01308,-0.0062796,-0.006075,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.017915,0.017559,0.013171,-0.00054213,-0.0033365,0.011107,0.0071378,0.012715,0.017514,0.022476,0.021086,0.032019,0.035557,0.036406,0.031508,0.033421,0.034849,0.03477,0.031165,0.031298,0.031988,0.035388,0.033686,0.034751,0.033402,0.034441,0.03379,0.033911,0.036245,0.036273,0.037867,0.037053,0.036646,0.037631,0.041094,0.038448,0.034319,0.042076,0.03378,0.034004,0.034362,0.031442,0.021306,0.030198,0.02507,0.025616,0.01457,-0.0044722,-0.0026699,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.017348,0.016532,0.010979,-0.0028072,-0.0058113,0.0055393,0.0036204,0.0086172,0.012461,0.017011,0.014404,0.023115,0.027659,0.027679,0.022272,0.023997,0.02612,0.025548,0.021839,0.022475,0.022497,0.025338,0.023222,0.024591,0.023076,0.023711,0.023243,0.023001,0.025293,0.025268,0.026893,0.026095,0.026232,0.026782,0.030777,0.028221,0.024475,0.031262,0.02378,0.024154,0.025589,0.02181,0.014503,0.02199,0.018044,0.019238,0.0096172,-0.0077126,-0.0064444,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.021704,0.021579,0.01267,-0.0029057,-0.0054465,0.0073986,0.003657,0.010034,0.01367,0.017903,0.0154,0.024954,0.028718,0.029227,0.02439,0.026277,0.028016,0.02811,0.024513,0.024957,0.0249,0.02809,0.025578,0.026558,0.025193,0.025968,0.024921,0.024778,0.027042,0.026933,0.028651,0.027594,0.027321,0.028096,0.031766,0.030267,0.026751,0.034083,0.025741,0.025944,0.02607,0.024373,0.016964,0.025753,0.021539,0.022264,0.012472,-0.0062092,-0.0047961,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.019931,0.023693,0.014703,0.0016927,-0.0030246,0.011213,0.0091219,0.015428,0.018882,0.02371,0.020548,0.029435,0.031819,0.032597,0.027663,0.030325,0.032761,0.031789,0.027829,0.028814,0.028758,0.03173,0.029382,0.030681,0.029102,0.030026,0.029171,0.029397,0.031957,0.03211,0.033572,0.032914,0.032614,0.032769,0.037496,0.035827,0.032132,0.040413,0.03235,0.031213,0.031335,0.029546,0.02182,0.031804,0.029102,0.029543,0.019924,-0.00040871,0.0016826,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.017011,0.02108,0.012181,0.0021397,-0.00035659,0.012157,0.0099545,0.017606,0.020273,0.024511,0.02268,0.032405,0.034984,0.035376,0.031515,0.033605,0.035243,0.033284,0.030054,0.030992,0.030927,0.03337,0.030893,0.032238,0.030725,0.030898,0.030231,0.030406,0.032538,0.032537,0.033808,0.032888,0.032794,0.032771,0.038025,0.036755,0.034274,0.041292,0.03241,0.031331,0.030184,0.030534,0.023032,0.034163,0.031181,0.031498,0.022216,0.00063514,0.0039046,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.019038,0.02201,0.013338,0.005791,0.0036295,0.01506,0.014495,0.021259,0.022116,0.026748,0.025327,0.034414,0.036843,0.037222,0.033543,0.035359,0.036855,0.035214,0.031322,0.031734,0.032161,0.03497,0.032981,0.03387,0.032146,0.032296,0.031351,0.03155,0.033593,0.033368,0.034408,0.033533,0.033786,0.033215,0.038359,0.037044,0.034776,0.041503,0.031852,0.029643,0.029043,0.03129,0.024124,0.036344,0.032916,0.032885,0.02374,0.0010176,0.0057329,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.018097,0.019758,0.011457,0.0031373,-0.0014904,0.0076893,0.0091659,0.015391,0.017269,0.02141,0.019899,0.029867,0.033304,0.03313,0.030495,0.031905,0.03313,0.031394,0.026646,0.026927,0.027309,0.030457,0.027712,0.028543,0.027155,0.027197,0.025648,0.025275,0.027273,0.026945,0.028078,0.027245,0.027142,0.027355,0.031754,0.030982,0.029046,0.037229,0.028021,0.026446,0.024743,0.028012,0.021802,0.033899,0.031135,0.031384,0.02315,0.0018668,0.004291,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.022685,0.026654,0.013984,0.0027307,-0.0015856,0.0079286,0.0072041,0.013952,0.017312,0.021057,0.020894,0.030546,0.033189,0.034072,0.032055,0.033545,0.034402,0.03296,0.027901,0.027985,0.028285,0.031783,0.028566,0.029409,0.028388,0.028681,0.026915,0.026655,0.028598,0.02818,0.02968,0.0287,0.028704,0.029201,0.033365,0.033622,0.031886,0.040694,0.030641,0.029419,0.026369,0.031456,0.023955,0.03586,0.03136,0.031037,0.022952,0.0023183,0.0067709,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.021991,0.026094,0.016827,0.0029694,-0.0046537,0.0066968,0.0029871,0.0097378,0.014657,0.019732,0.018947,0.027951,0.029218,0.031197,0.029026,0.031345,0.031853,0.030664,0.026208,0.026295,0.026322,0.030287,0.027091,0.028275,0.027427,0.028275,0.026393,0.026635,0.029003,0.029056,0.030395,0.030093,0.030228,0.030461,0.035203,0.034633,0.032058,0.042441,0.0326,0.030109,0.027427,0.032684,0.025264,0.038561,0.036271,0.035575,0.027731,0.0079521,0.0094855,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.021065,0.029129,0.017991,0.0072147,0.0021155,0.012543,0.0087116,0.016807,0.021742,0.026337,0.024457,0.032931,0.035375,0.037227,0.033513,0.034317,0.035671,0.033298,0.027892,0.02753,0.028024,0.03137,0.028777,0.028753,0.028291,0.028746,0.026827,0.026594,0.028881,0.028851,0.030282,0.029668,0.029821,0.029858,0.034329,0.034509,0.033051,0.042913,0.033203,0.030329,0.028385,0.033579,0.02653,0.03964,0.037502,0.037073,0.029739,0.010961,0.011345,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.017346,0.021783,0.01559,0.008206,0.003481,0.014058,0.010376,0.01991,0.022899,0.027132,0.024161,0.033082,0.036697,0.038225,0.034881,0.035913,0.037304,0.035121,0.030229,0.030532,0.031498,0.034552,0.032557,0.033119,0.033094,0.033889,0.032242,0.032318,0.034722,0.034933,0.036781,0.036383,0.037061,0.03702,0.042202,0.041395,0.039583,0.049677,0.038987,0.035721,0.034675,0.037851,0.030502,0.042669,0.04032,0.039151,0.031805,0.013519,0.014316,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.014786,0.023827,0.017617,0.010697,0.0051115,0.017421,0.012098,0.023038,0.027535,0.033152,0.028555,0.036933,0.040071,0.042706,0.038456,0.040451,0.042034,0.040305,0.035359,0.035545,0.036451,0.040064,0.038171,0.03863,0.039247,0.040641,0.039153,0.039749,0.042551,0.043016,0.044867,0.044916,0.045608,0.045441,0.050899,0.049917,0.048019,0.058524,0.046822,0.043665,0.043973,0.046575,0.038889,0.052013,0.051222,0.04947,0.041987,0.021691,0.021675,2500,-0.052643,0.081005,240 +0.31077,0.014181,0,0.0099966,0.013327,0.010496,0.0014964,-0.0058108,0.0036148,0.0002277,0.010754,0.012921,0.019055,0.014737,0.022709,0.026017,0.026709,0.022575,0.024465,0.025077,0.024235,0.020225,0.020086,0.021578,0.025562,0.024128,0.025006,0.025462,0.027061,0.025869,0.026517,0.029212,0.029538,0.031051,0.030796,0.031312,0.031818,0.036325,0.036087,0.034791,0.043768,0.032953,0.031782,0.03083,0.033879,0.026571,0.037585,0.035456,0.034677,0.028809,0.012264,0.014181,2500,-0.052643,0.081005,240 diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/root_sim_fast_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/root_sim_fast_res.csv new file mode 100644 index 0000000..9539c6d --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/root_sim_fast_res.csv @@ -0,0 +1,50 @@ +0.12991,0.023763,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.057407,0.033675,0.024591,0.029849,0.026562,0.032616,0.020834,0.026603,0.025182,0.023745,0.035631,0.027952,0.027977,0.044294,0.038189,0.043165,0.042351,0.038068,0.0433,0.040048,0.037029,0.037913,0.035913,0.034288,0.038978,0.0398,0.03924,0.039199,0.039514,0.040168,0.04127,0.04082,0.041485,0.04187,0.04438,0.04723,0.036944,0.035447,0.039881,0.039529,0.024814,0.030949,0.026637,0.027063,0.025735,0.0016949,-0.0019958,0.0099366,0.02305,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.097165,0.11378,0.11215,0.11317,0.098087,0.10393,0.096942,0.10658,0.11243,0.10497,0.1057,0.09507,0.089481,0.11787,0.1098,0.10903,0.10998,0.11016,0.11097,0.11483,0.1123,0.11159,0.10933,0.1098,0.11417,0.11428,0.11376,0.1152,0.11549,0.11609,0.11714,0.11535,0.11653,0.11751,0.11669,0.11882,0.11322,0.11091,0.11499,0.11085,0.099576,0.10511,0.10423,0.10273,0.1043,0.078902,0.063874,0.0749,0.085212,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.063954,0.081568,0.074264,0.078485,0.067803,0.079572,0.069029,0.079167,0.083605,0.073438,0.07055,0.073484,0.065667,0.089556,0.080064,0.07684,0.079049,0.08301,0.084828,0.090436,0.089142,0.088377,0.08646,0.088274,0.091199,0.091049,0.090487,0.092185,0.092303,0.093194,0.094561,0.094328,0.095129,0.097267,0.09808,0.10052,0.095714,0.08984,0.093478,0.08812,0.082273,0.084165,0.081916,0.084954,0.080827,0.052725,0.039037,0.050844,0.067359,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.042988,0.054236,0.05629,0.055004,0.055106,0.065077,0.057796,0.06619,0.070037,0.057623,0.060763,0.063787,0.05745,0.079595,0.075614,0.072647,0.074552,0.080524,0.082357,0.087763,0.088088,0.087809,0.08694,0.088806,0.091963,0.091574,0.090909,0.092385,0.09263,0.093734,0.095424,0.095305,0.093923,0.094155,0.096033,0.096457,0.093729,0.088971,0.090925,0.086668,0.084078,0.085065,0.083291,0.089067,0.080411,0.052154,0.040655,0.055586,0.074905,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.046891,0.06629,0.06604,0.065029,0.059732,0.069071,0.058172,0.06212,0.062316,0.047895,0.049851,0.050032,0.041917,0.067623,0.064352,0.061773,0.063436,0.070821,0.072752,0.078482,0.079314,0.078534,0.078181,0.079249,0.082707,0.08234,0.081565,0.082902,0.08327,0.08463,0.085496,0.085689,0.083876,0.083391,0.082348,0.082164,0.08119,0.076945,0.076118,0.074649,0.067147,0.06679,0.068465,0.074589,0.070413,0.042714,0.031512,0.049862,0.065311,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.039144,0.061239,0.055885,0.050853,0.04695,0.058177,0.057825,0.058216,0.059935,0.043465,0.042771,0.040578,0.036463,0.063147,0.058075,0.053839,0.055824,0.065701,0.068005,0.073015,0.072766,0.071913,0.070835,0.071992,0.074808,0.074232,0.073995,0.07525,0.075437,0.077001,0.078714,0.079084,0.075761,0.075184,0.075265,0.075417,0.073255,0.062848,0.060029,0.061,0.053504,0.053785,0.05835,0.059666,0.059306,0.03095,0.024831,0.043664,0.059974,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.054864,0.068487,0.056888,0.050691,0.05003,0.061845,0.063195,0.063435,0.066239,0.048041,0.044886,0.043248,0.039328,0.062478,0.055893,0.053241,0.054628,0.063222,0.064199,0.070535,0.070036,0.068464,0.067799,0.06837,0.071555,0.070724,0.070365,0.071538,0.071843,0.07416,0.075319,0.074377,0.070336,0.070167,0.069588,0.067846,0.065669,0.055633,0.054674,0.057473,0.046603,0.041242,0.045227,0.049354,0.052133,0.023639,0.020004,0.038921,0.058809,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.044694,0.057801,0.054619,0.056446,0.055533,0.068031,0.068508,0.072786,0.07278,0.052503,0.047115,0.043428,0.03767,0.058491,0.051759,0.047658,0.047623,0.056219,0.058759,0.064766,0.064542,0.063157,0.062102,0.062941,0.066845,0.066088,0.065862,0.067003,0.067414,0.069972,0.071492,0.070569,0.065526,0.066159,0.065167,0.061617,0.059598,0.048065,0.044229,0.047593,0.03911,0.034061,0.035484,0.042197,0.047804,0.02322,0.020131,0.041936,0.057691,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.042951,0.064087,0.062074,0.06221,0.062004,0.07212,0.069545,0.075561,0.07582,0.056391,0.051966,0.046426,0.040092,0.058399,0.054,0.048602,0.047277,0.055459,0.058461,0.063314,0.062831,0.063024,0.061939,0.062299,0.066155,0.066072,0.066103,0.067192,0.067684,0.070685,0.071709,0.071304,0.065714,0.0665,0.065825,0.062209,0.061241,0.050239,0.046034,0.050762,0.0426,0.038047,0.038786,0.047285,0.051604,0.029148,0.028639,0.050032,0.061441,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.048406,0.064666,0.058425,0.055326,0.055556,0.065843,0.064004,0.070159,0.068286,0.051273,0.045152,0.038984,0.033269,0.049571,0.04386,0.039494,0.038676,0.046656,0.049846,0.055648,0.054413,0.055232,0.053924,0.054564,0.058831,0.058958,0.059126,0.060183,0.061287,0.064076,0.065428,0.065692,0.060593,0.059371,0.05953,0.056379,0.05604,0.045609,0.041887,0.045654,0.036211,0.033683,0.034944,0.041311,0.045093,0.026214,0.028652,0.045065,0.060073,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.047363,0.064598,0.054616,0.052365,0.052369,0.059875,0.057179,0.061096,0.059246,0.040745,0.036987,0.029389,0.026127,0.042817,0.035891,0.033417,0.032913,0.039667,0.043126,0.049704,0.049641,0.051006,0.050101,0.050326,0.054209,0.054352,0.054408,0.055396,0.056315,0.059115,0.060544,0.06088,0.05643,0.054307,0.054756,0.051919,0.051165,0.042132,0.03819,0.042134,0.034513,0.033688,0.03569,0.043808,0.044764,0.021271,0.024381,0.043417,0.059267,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.053884,0.06614,0.05253,0.051051,0.051279,0.058976,0.057068,0.058762,0.059061,0.03932,0.037668,0.028749,0.024153,0.03898,0.031027,0.028961,0.02743,0.034242,0.038295,0.044622,0.045267,0.046722,0.04537,0.046049,0.050122,0.050106,0.049875,0.050947,0.051469,0.054246,0.055667,0.05568,0.051828,0.050375,0.049854,0.045836,0.045994,0.038326,0.035694,0.038685,0.029946,0.02731,0.031115,0.040883,0.041479,0.017409,0.021413,0.040753,0.056247,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.051561,0.063237,0.051953,0.049892,0.053782,0.058942,0.055809,0.057219,0.055794,0.039164,0.037818,0.02772,0.023319,0.036536,0.02873,0.02904,0.026601,0.032373,0.036033,0.042672,0.042707,0.044224,0.043106,0.043434,0.047146,0.046942,0.047089,0.048128,0.048522,0.050916,0.052567,0.051631,0.048327,0.046763,0.045555,0.041789,0.039886,0.033434,0.031988,0.034562,0.025136,0.02297,0.02471,0.032612,0.033208,0.011643,0.016583,0.037987,0.052503,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.044852,0.054478,0.047005,0.046462,0.05776,0.062244,0.059518,0.061997,0.0596,0.04614,0.043259,0.033402,0.031362,0.044641,0.037498,0.039876,0.03757,0.043586,0.048791,0.055315,0.05481,0.056497,0.055562,0.055868,0.059613,0.059267,0.059516,0.060588,0.061019,0.063458,0.065239,0.064202,0.061269,0.05959,0.058784,0.055543,0.054146,0.048382,0.047545,0.050054,0.041572,0.04014,0.042632,0.051226,0.049363,0.023586,0.027103,0.047026,0.06278,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.051329,0.055152,0.049231,0.048958,0.059922,0.065387,0.061469,0.063836,0.060363,0.050022,0.045792,0.036345,0.034611,0.048443,0.040393,0.04181,0.040204,0.045399,0.05115,0.057009,0.057505,0.05988,0.05924,0.05954,0.063331,0.062864,0.063041,0.064092,0.064984,0.067596,0.069467,0.068791,0.065737,0.06432,0.063963,0.060331,0.059037,0.054038,0.053947,0.056454,0.049013,0.047691,0.051176,0.060726,0.057648,0.031504,0.034911,0.050315,0.06781,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.05307,0.056416,0.047865,0.050743,0.061982,0.066261,0.061104,0.061987,0.060508,0.053601,0.049716,0.040473,0.04026,0.053023,0.04535,0.047,0.046473,0.05099,0.056515,0.063082,0.064113,0.067002,0.066497,0.06707,0.071087,0.070493,0.070677,0.071716,0.07265,0.075344,0.077365,0.076928,0.074167,0.073075,0.072519,0.069316,0.067362,0.06294,0.06267,0.065839,0.058025,0.057468,0.061785,0.068595,0.065108,0.03758,0.040901,0.056661,0.074748,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.049039,0.05112,0.045014,0.048957,0.061181,0.066312,0.059871,0.059568,0.060306,0.054383,0.052218,0.044812,0.043677,0.056479,0.048064,0.049654,0.048517,0.053641,0.059116,0.065244,0.066229,0.069969,0.069446,0.070361,0.07446,0.073754,0.073885,0.074918,0.075892,0.078397,0.080507,0.080211,0.077453,0.0765,0.075481,0.071525,0.07002,0.066146,0.065763,0.068788,0.06174,0.061931,0.067063,0.069935,0.067566,0.03757,0.041444,0.058617,0.077539,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.045565,0.048527,0.042313,0.044927,0.056,0.063582,0.057282,0.056266,0.056057,0.050405,0.048292,0.040973,0.039996,0.05213,0.043033,0.044623,0.043289,0.048401,0.053449,0.060241,0.061388,0.065377,0.065116,0.065827,0.06995,0.069248,0.06949,0.070405,0.071434,0.073976,0.07627,0.076141,0.07357,0.071378,0.070225,0.065917,0.064942,0.061075,0.060022,0.06317,0.056414,0.057322,0.062112,0.066139,0.062077,0.033597,0.037754,0.055628,0.073839,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.042327,0.048043,0.042066,0.044628,0.054436,0.060887,0.054662,0.052683,0.053791,0.048189,0.047063,0.038983,0.038481,0.050557,0.040823,0.042557,0.042408,0.047877,0.052936,0.059754,0.060577,0.064301,0.064061,0.064589,0.068586,0.067901,0.068149,0.068751,0.069373,0.072064,0.074341,0.074344,0.071953,0.069893,0.068252,0.064152,0.063614,0.06018,0.059338,0.061692,0.054695,0.054745,0.059355,0.063082,0.060133,0.032869,0.038281,0.057425,0.074081,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.044854,0.049107,0.041474,0.048887,0.057321,0.062615,0.056625,0.054502,0.054742,0.049478,0.049096,0.042067,0.04229,0.053767,0.043443,0.045463,0.045129,0.0502,0.054897,0.061653,0.062319,0.066159,0.06593,0.066316,0.070439,0.069873,0.070124,0.070701,0.071042,0.073808,0.076206,0.075722,0.073526,0.0717,0.070321,0.065795,0.064718,0.061127,0.060762,0.063156,0.05569,0.055254,0.059377,0.063903,0.061112,0.03306,0.038456,0.057712,0.073366,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.042346,0.045781,0.040444,0.048478,0.057348,0.063338,0.056465,0.05526,0.055667,0.051253,0.051217,0.045013,0.045171,0.057728,0.047555,0.049106,0.049108,0.053835,0.05891,0.066087,0.066877,0.070529,0.070141,0.070527,0.074572,0.073934,0.074154,0.074743,0.07493,0.077752,0.080242,0.079887,0.077841,0.075514,0.073775,0.06948,0.068663,0.064625,0.064613,0.067402,0.059826,0.059828,0.063882,0.06732,0.063085,0.034204,0.039732,0.059202,0.0759,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.040244,0.042969,0.037952,0.048111,0.057912,0.063944,0.056867,0.055845,0.056157,0.051661,0.051071,0.044332,0.045319,0.057769,0.048142,0.049308,0.049152,0.053575,0.058388,0.065629,0.066202,0.069816,0.069426,0.070002,0.073965,0.073535,0.073787,0.074281,0.0745,0.077341,0.079511,0.079299,0.077412,0.075277,0.073483,0.069069,0.068536,0.064412,0.064252,0.067126,0.06003,0.060079,0.064711,0.068651,0.063531,0.033876,0.039539,0.05899,0.075383,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.038966,0.041093,0.035503,0.045193,0.055614,0.061811,0.054286,0.053337,0.053391,0.048482,0.048643,0.041788,0.042475,0.055165,0.045316,0.04635,0.045928,0.050116,0.055333,0.062596,0.063007,0.066633,0.066135,0.066767,0.070691,0.070194,0.070402,0.070874,0.07112,0.073888,0.075724,0.075637,0.073889,0.071319,0.069506,0.064571,0.063977,0.059446,0.059719,0.06283,0.05619,0.056737,0.061917,0.06641,0.060003,0.03065,0.036683,0.056414,0.072832,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.037878,0.042203,0.037417,0.046463,0.056385,0.062157,0.054907,0.053335,0.052891,0.048178,0.048748,0.042469,0.043215,0.055682,0.045586,0.046429,0.045836,0.049868,0.05495,0.062274,0.062611,0.06613,0.065531,0.066211,0.070087,0.069544,0.069731,0.070168,0.070344,0.073163,0.074712,0.07428,0.07262,0.069999,0.068308,0.063502,0.062597,0.05826,0.058748,0.062143,0.055184,0.055513,0.059995,0.063803,0.057818,0.028412,0.035007,0.055045,0.071034,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.037297,0.044225,0.038954,0.04896,0.059518,0.065555,0.05797,0.055541,0.054446,0.04957,0.050057,0.043548,0.044911,0.057584,0.047245,0.047883,0.047163,0.051119,0.05635,0.063882,0.064167,0.067757,0.067066,0.067719,0.071559,0.071013,0.071194,0.071724,0.071822,0.074715,0.076277,0.075587,0.073957,0.071108,0.069458,0.064463,0.063327,0.059061,0.059692,0.063399,0.056149,0.05627,0.060505,0.063905,0.058089,0.028369,0.035645,0.055882,0.071345,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.036969,0.044705,0.038879,0.048888,0.059447,0.065486,0.057495,0.055083,0.054001,0.049015,0.049435,0.042595,0.043977,0.0566,0.04636,0.047005,0.046122,0.049978,0.055316,0.062838,0.063123,0.066709,0.065921,0.066618,0.070434,0.069874,0.070054,0.070592,0.070678,0.073595,0.075038,0.074317,0.072696,0.069669,0.068035,0.06285,0.061695,0.057461,0.05789,0.061818,0.054495,0.054225,0.058931,0.062295,0.056565,0.026698,0.034015,0.054406,0.069834,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.037564,0.045507,0.039572,0.049792,0.059592,0.065861,0.057787,0.054965,0.053467,0.047932,0.048552,0.041621,0.04317,0.055773,0.045422,0.045771,0.045006,0.048892,0.053926,0.061495,0.06185,0.065284,0.064599,0.065331,0.069179,0.068658,0.068854,0.069391,0.069533,0.072423,0.073789,0.073091,0.071599,0.06853,0.066841,0.061607,0.060526,0.056088,0.056418,0.060224,0.053262,0.052955,0.058391,0.062227,0.056098,0.026109,0.03317,0.053671,0.069054,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.038259,0.046536,0.040938,0.051421,0.061469,0.067783,0.059971,0.056609,0.055476,0.050136,0.05074,0.044038,0.045117,0.057827,0.0477,0.047754,0.046769,0.050789,0.055692,0.063352,0.063511,0.067014,0.066139,0.066858,0.07078,0.070296,0.070509,0.071049,0.071175,0.074002,0.07536,0.074594,0.073057,0.069884,0.068118,0.062885,0.06193,0.057175,0.057943,0.062293,0.05523,0.054549,0.059987,0.063471,0.057008,0.026734,0.033852,0.053827,0.069391,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.0396,0.045086,0.040494,0.051694,0.060416,0.067069,0.058896,0.055201,0.05407,0.049078,0.049895,0.042864,0.043631,0.056228,0.046259,0.046376,0.045682,0.049894,0.054959,0.062741,0.063057,0.06625,0.065487,0.066028,0.069968,0.069356,0.06956,0.070098,0.070295,0.073084,0.074513,0.07366,0.072026,0.068746,0.066938,0.061581,0.060721,0.055726,0.056353,0.06116,0.054081,0.053329,0.058554,0.061827,0.055894,0.025279,0.034316,0.054449,0.070251,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.036985,0.042009,0.037373,0.048742,0.055678,0.062839,0.055518,0.052501,0.050634,0.044855,0.045888,0.038759,0.039976,0.052871,0.042828,0.043082,0.042684,0.046354,0.051615,0.059527,0.059524,0.062776,0.06172,0.062045,0.066022,0.06533,0.065525,0.066087,0.066265,0.068997,0.070355,0.069419,0.067713,0.06434,0.062412,0.056944,0.055925,0.050772,0.05179,0.056467,0.049165,0.048152,0.053076,0.057325,0.051569,0.021583,0.032058,0.05319,0.068898,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.038865,0.044553,0.037452,0.048758,0.055707,0.063249,0.055761,0.052162,0.049409,0.042384,0.042983,0.035197,0.036934,0.049442,0.039058,0.038938,0.038819,0.042076,0.047089,0.055037,0.055247,0.058339,0.057428,0.057805,0.06183,0.061086,0.061335,0.061887,0.062188,0.064852,0.066124,0.065087,0.06364,0.060221,0.058141,0.052526,0.051306,0.045946,0.046686,0.051026,0.044948,0.043849,0.049578,0.054294,0.048213,0.018893,0.02867,0.050255,0.065077,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.041081,0.04603,0.039996,0.051097,0.058673,0.066954,0.05941,0.054786,0.052725,0.045738,0.046151,0.038476,0.039936,0.051838,0.041851,0.041316,0.040704,0.044149,0.048903,0.056769,0.056688,0.059967,0.058749,0.059268,0.063367,0.062669,0.062972,0.063519,0.063683,0.066212,0.06741,0.066237,0.064643,0.061106,0.059389,0.053757,0.052494,0.047269,0.048592,0.053591,0.046935,0.046298,0.051221,0.055127,0.048543,0.019643,0.02945,0.05069,0.065229,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.04414,0.050199,0.043674,0.055851,0.064452,0.072867,0.066329,0.06159,0.058463,0.052496,0.053627,0.044784,0.046889,0.0593,0.048456,0.048515,0.0478,0.050704,0.055528,0.063733,0.063408,0.066642,0.065238,0.065915,0.070123,0.069514,0.069907,0.070445,0.070553,0.072983,0.074353,0.072973,0.071085,0.06735,0.065336,0.059988,0.058838,0.053533,0.05557,0.061477,0.05437,0.053247,0.058177,0.060759,0.052914,0.023695,0.031707,0.052759,0.06708,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.043796,0.046963,0.04093,0.053574,0.062306,0.072126,0.066338,0.060363,0.058492,0.052865,0.053516,0.045544,0.04814,0.061156,0.050346,0.051112,0.050328,0.053793,0.058693,0.066656,0.065739,0.069266,0.0682,0.068839,0.073153,0.072193,0.072571,0.072937,0.073007,0.075475,0.076489,0.075124,0.07351,0.069442,0.067219,0.061488,0.060892,0.056629,0.058874,0.065685,0.058863,0.057432,0.062195,0.063419,0.05489,0.024585,0.03206,0.051055,0.066689,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.040485,0.047306,0.040926,0.053731,0.064011,0.073001,0.06873,0.062158,0.061562,0.055782,0.056012,0.047858,0.051322,0.064961,0.054215,0.05572,0.055673,0.05902,0.063616,0.071375,0.069955,0.073799,0.07241,0.073298,0.077607,0.0767,0.077015,0.077613,0.077615,0.08022,0.081344,0.080086,0.079175,0.075057,0.07235,0.066541,0.066783,0.063416,0.065849,0.073813,0.06746,0.06586,0.069372,0.069044,0.060085,0.028444,0.035148,0.053134,0.069896,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.039717,0.049423,0.044483,0.053599,0.065471,0.072035,0.069415,0.064435,0.063933,0.057664,0.056655,0.049023,0.053399,0.065758,0.05536,0.057235,0.05717,0.060323,0.065409,0.073548,0.072638,0.076062,0.074299,0.074989,0.07915,0.078039,0.07821,0.078878,0.078815,0.081446,0.082303,0.080762,0.079631,0.075524,0.072803,0.066593,0.066209,0.062747,0.064285,0.072848,0.065593,0.06415,0.066368,0.065966,0.059586,0.026981,0.033692,0.055,0.070137,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.03361,0.04339,0.041896,0.047513,0.057718,0.063073,0.057886,0.054841,0.055951,0.05049,0.047383,0.037773,0.040168,0.0523,0.040756,0.043547,0.041992,0.043766,0.048816,0.056599,0.056195,0.05989,0.057957,0.058873,0.063043,0.061896,0.062114,0.062939,0.062922,0.065774,0.066651,0.065059,0.064186,0.059893,0.057646,0.051203,0.050418,0.046558,0.04857,0.057035,0.04928,0.047232,0.051533,0.051487,0.046374,0.017892,0.023228,0.04266,0.057286,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.037968,0.042922,0.044028,0.051526,0.063228,0.0701,0.064906,0.061509,0.062892,0.05663,0.053434,0.045213,0.048523,0.06036,0.047866,0.051433,0.049769,0.05146,0.057014,0.065233,0.065367,0.068833,0.067253,0.068084,0.072383,0.071285,0.071498,0.072191,0.071776,0.074452,0.075283,0.073742,0.073128,0.068353,0.066051,0.059117,0.059483,0.056495,0.059201,0.0685,0.060948,0.057339,0.061038,0.059836,0.052893,0.0229,0.028371,0.044873,0.060765,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.03109,0.033181,0.031625,0.03837,0.047246,0.056401,0.053708,0.050934,0.050553,0.046095,0.044547,0.036087,0.038667,0.049574,0.03765,0.039301,0.037147,0.039523,0.044337,0.052278,0.052935,0.056188,0.054989,0.055528,0.059695,0.058778,0.05905,0.059753,0.059408,0.0619,0.062798,0.061123,0.060213,0.055979,0.054026,0.047357,0.04779,0.044641,0.047681,0.055909,0.047713,0.044074,0.049496,0.050102,0.04433,0.017498,0.022282,0.036532,0.051307,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.035569,0.037646,0.037995,0.042541,0.04884,0.059572,0.056819,0.0528,0.052308,0.048449,0.047244,0.037429,0.038501,0.050164,0.037428,0.039126,0.036203,0.039281,0.043893,0.051404,0.052023,0.055271,0.054491,0.055312,0.059573,0.05886,0.059204,0.060009,0.059743,0.062237,0.062866,0.061401,0.060116,0.055955,0.053517,0.047086,0.047625,0.045108,0.048766,0.056764,0.048488,0.044858,0.051339,0.051933,0.045934,0.019018,0.021562,0.034429,0.050776,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.031835,0.035369,0.033712,0.038722,0.044354,0.054017,0.050988,0.048877,0.048478,0.043789,0.044026,0.035802,0.036805,0.049196,0.036775,0.037424,0.034478,0.03748,0.042007,0.049885,0.049719,0.052817,0.051962,0.052751,0.056742,0.055977,0.056262,0.057045,0.056723,0.059044,0.059429,0.058219,0.056877,0.052922,0.05064,0.044514,0.044382,0.041155,0.044975,0.05234,0.044358,0.041829,0.04679,0.046012,0.04119,0.01634,0.018337,0.034121,0.047396,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.031864,0.03433,0.03552,0.04033,0.0478,0.054635,0.051882,0.050416,0.049805,0.045643,0.046339,0.038403,0.039451,0.052517,0.039145,0.038588,0.036617,0.038814,0.043137,0.050629,0.050571,0.05328,0.051902,0.052972,0.05687,0.056307,0.056665,0.057261,0.056504,0.058596,0.058659,0.057466,0.056228,0.052094,0.049807,0.043875,0.043401,0.040087,0.042822,0.051031,0.044651,0.040903,0.044269,0.044333,0.040686,0.016052,0.015964,0.033144,0.04503,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.02843,0.035282,0.03306,0.04035,0.046265,0.053403,0.051051,0.047674,0.048761,0.046323,0.046479,0.039514,0.040028,0.052853,0.040389,0.038732,0.03577,0.03872,0.041751,0.048693,0.048633,0.051713,0.050298,0.051647,0.055342,0.054389,0.054385,0.054519,0.05372,0.055609,0.055339,0.054109,0.052724,0.048258,0.046173,0.040723,0.040269,0.036223,0.037918,0.046144,0.040746,0.036795,0.038651,0.038739,0.036396,0.011699,0.013901,0.029737,0.038736,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.023902,0.031754,0.032846,0.039112,0.043965,0.050763,0.046794,0.042901,0.041739,0.037521,0.039234,0.031913,0.033742,0.043865,0.031527,0.030029,0.027163,0.030785,0.033524,0.040042,0.039884,0.043287,0.04156,0.042803,0.04658,0.045686,0.045595,0.045624,0.044594,0.046131,0.045545,0.044066,0.04252,0.038442,0.036232,0.030827,0.030152,0.026465,0.028302,0.038547,0.0323,0.028412,0.030375,0.030346,0.02861,0.0064536,0.0083858,0.021782,0.030297,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.02239,0.033802,0.033447,0.037748,0.04035,0.049025,0.047074,0.043807,0.042767,0.039253,0.041209,0.033522,0.035042,0.045911,0.03399,0.032416,0.029727,0.033116,0.035538,0.041064,0.040881,0.044624,0.042551,0.044062,0.047583,0.046921,0.04692,0.047085,0.046171,0.047491,0.047151,0.046062,0.044399,0.039951,0.038214,0.032896,0.0329,0.029286,0.032388,0.04207,0.036495,0.033248,0.035156,0.034282,0.030705,0.0072436,0.0069839,0.019413,0.028047,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.012449,0.02071,0.022952,0.0248,0.030372,0.03914,0.037719,0.036702,0.03512,0.032181,0.034388,0.028543,0.031395,0.04178,0.031572,0.029018,0.027421,0.031544,0.033831,0.039003,0.038309,0.041751,0.040199,0.041479,0.045103,0.044492,0.0444,0.044567,0.043618,0.044722,0.044335,0.043654,0.042184,0.038518,0.036252,0.031793,0.03262,0.029934,0.0318,0.04147,0.037865,0.035467,0.035594,0.034195,0.031984,0.0085662,0.007149,0.016642,0.025151,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.012249,0.024132,0.025034,0.029339,0.036856,0.044189,0.041069,0.03812,0.038361,0.037221,0.040735,0.036522,0.039307,0.049017,0.037866,0.035322,0.032419,0.035451,0.038424,0.042215,0.041637,0.044769,0.043302,0.044884,0.048085,0.047709,0.047968,0.048378,0.04773,0.049339,0.048849,0.048803,0.047739,0.044233,0.042707,0.040051,0.04069,0.036965,0.037458,0.048052,0.046445,0.045089,0.044785,0.042454,0.038039,0.014497,0.010394,0.016794,0.025463,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.018116,0.027085,0.030531,0.034533,0.041113,0.047552,0.04453,0.040312,0.039825,0.038583,0.041994,0.038109,0.040981,0.051512,0.039902,0.036869,0.033578,0.036346,0.039016,0.043368,0.042665,0.046181,0.044491,0.045897,0.049072,0.048751,0.049083,0.049698,0.048996,0.051308,0.051449,0.050981,0.051182,0.048035,0.046886,0.043602,0.044695,0.041116,0.041398,0.051814,0.050266,0.048934,0.048591,0.046161,0.04182,0.018454,0.014465,0.020104,0.030677,2500,-0.025296,0.072821,110 +0.12991,0.023763,0,0.019404,0.023312,0.03028,0.032865,0.034898,0.040248,0.036761,0.033284,0.034774,0.035388,0.037846,0.033845,0.036553,0.04468,0.03488,0.030015,0.026227,0.027293,0.029846,0.033946,0.033181,0.037032,0.034923,0.03616,0.039361,0.039241,0.039676,0.04014,0.039516,0.041827,0.041719,0.041025,0.040948,0.037474,0.037029,0.033749,0.03473,0.03049,0.032468,0.043229,0.041687,0.03917,0.039305,0.036689,0.033315,0.012876,0.0092369,0.01435,0.023763,2500,-0.025296,0.072821,110 diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/sin_sim_16_fast_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/sin_sim_16_fast_res.csv new file mode 100644 index 0000000..d126ee6 --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/sin_sim_16_fast_res.csv @@ -0,0 +1,50 @@ +0.9942,-0.032753,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0088359,-0.014598,-0.030178,0.00035328,-0.013035,-0.005503,-0.0051836,-0.015136,-0.0145,-0.022599,-0.012037,0.0069291,0.028998,0.04133,0.035571,0.053758,0.049318,0.050035,0.046505,0.048705,0.04881,0.046449,0.053175,0.051786,0.05095,0.053831,0.052624,0.052809,0.054408,0.055464,0.057234,0.059532,0.062561,0.065943,0.059465,0.061174,0.055537,0.059889,0.04974,0.04252,0.047738,0.045219,0.041457,0.046758,0.051857,0.041333,0.047659,0.054024,0.062456,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,-0.0022867,-0.029318,-0.016075,-0.0057449,-0.013961,-0.0091139,-0.015838,-0.028745,-0.033671,-0.043955,-0.03614,-0.023231,-0.01254,-0.0078053,-0.015456,-0.0067413,-0.013023,-0.00054239,-1.0332e-05,0.00043729,-0.0014904,-0.003496,0.00086811,1.8466e-05,-0.001243,0.00076669,-0.00029883,0.00012405,0.001782,0.0014212,0.00076625,0.00047554,0.00051495,0.0054865,-0.0032652,-0.0043211,-0.0094738,-0.0041825,-0.010174,-0.023149,-0.020755,-0.016277,-0.012638,-0.010545,-0.0052761,-0.013303,-0.0061674,-0.00055496,0.0063431,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.011053,-0.023167,-0.013522,-0.012715,-0.0082345,-0.010519,-0.020704,-0.032121,-0.039902,-0.051317,-0.048711,-0.036168,-0.031169,-0.030243,-0.036048,-0.028441,-0.031886,-0.022738,-0.024165,-0.024243,-0.027167,-0.030088,-0.024658,-0.024355,-0.025818,-0.024602,-0.026584,-0.026053,-0.024374,-0.024152,-0.023352,-0.023712,-0.02404,-0.019867,-0.024809,-0.031255,-0.035189,-0.029656,-0.030544,-0.042747,-0.037464,-0.033624,-0.034732,-0.035469,-0.031236,-0.03809,-0.032683,-0.022464,-0.021127,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,-0.0029059,-0.037131,-0.026508,-0.030141,-0.03028,-0.035642,-0.04277,-0.051441,-0.060925,-0.071032,-0.065423,-0.057144,-0.055305,-0.056547,-0.063863,-0.057271,-0.061096,-0.052912,-0.054222,-0.054192,-0.057965,-0.061731,-0.055227,-0.055463,-0.057181,-0.056608,-0.05833,-0.057868,-0.056771,-0.057023,-0.056151,-0.057448,-0.059247,-0.055383,-0.058893,-0.063569,-0.063917,-0.057407,-0.05482,-0.066975,-0.06178,-0.06509,-0.066449,-0.064738,-0.062744,-0.069367,-0.061587,-0.056335,-0.0541,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,-0.013515,-0.04872,-0.032622,-0.040206,-0.044113,-0.048389,-0.050958,-0.058773,-0.070172,-0.081869,-0.077023,-0.069109,-0.0634,-0.064329,-0.072995,-0.068885,-0.074093,-0.066784,-0.068697,-0.068732,-0.06971,-0.072623,-0.066717,-0.066854,-0.068783,-0.068096,-0.069682,-0.069283,-0.068108,-0.069154,-0.068878,-0.071243,-0.071307,-0.068565,-0.075251,-0.077259,-0.078478,-0.06995,-0.06915,-0.079862,-0.078828,-0.082373,-0.085146,-0.08008,-0.076056,-0.07868,-0.06774,-0.066424,-0.063356,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,-0.0019673,-0.035361,-0.0041933,-0.01523,-0.024746,-0.030558,-0.037209,-0.040956,-0.052735,-0.066908,-0.061107,-0.044419,-0.039939,-0.043172,-0.05048,-0.048171,-0.049247,-0.041875,-0.040189,-0.041208,-0.042469,-0.045505,-0.040078,-0.04016,-0.042194,-0.041615,-0.042838,-0.04304,-0.042471,-0.04462,-0.043826,-0.045556,-0.044693,-0.041084,-0.046386,-0.047143,-0.047194,-0.038041,-0.036297,-0.049706,-0.04859,-0.050815,-0.053767,-0.047879,-0.044638,-0.047693,-0.036124,-0.033593,-0.0322,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,-0.0013865,-0.038493,-0.0053263,-0.01307,-0.017936,-0.02294,-0.032519,-0.035247,-0.046521,-0.055849,-0.050313,-0.033957,-0.028719,-0.03069,-0.035931,-0.032745,-0.032879,-0.02552,-0.024949,-0.02614,-0.028125,-0.031631,-0.026179,-0.026654,-0.028401,-0.027104,-0.028353,-0.028084,-0.027604,-0.029292,-0.028024,-0.028946,-0.028326,-0.023943,-0.02786,-0.03004,-0.031525,-0.023649,-0.021454,-0.032661,-0.030183,-0.030976,-0.034788,-0.027957,-0.025308,-0.026646,-0.018122,-0.014085,-0.014364,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,-0.0024777,-0.039281,-0.011723,-0.022203,-0.024971,-0.026481,-0.033923,-0.037826,-0.049529,-0.054868,-0.051566,-0.037752,-0.034443,-0.035183,-0.041667,-0.037796,-0.039158,-0.032175,-0.032594,-0.033876,-0.036096,-0.038649,-0.033387,-0.034166,-0.036026,-0.034865,-0.036077,-0.035668,-0.034998,-0.036337,-0.035324,-0.036821,-0.038435,-0.034989,-0.038871,-0.042153,-0.043609,-0.0358,-0.031786,-0.04198,-0.039406,-0.040933,-0.043791,-0.038126,-0.037632,-0.038055,-0.029929,-0.028583,-0.032273,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,-0.0033728,-0.043724,-0.020367,-0.029944,-0.03518,-0.03395,-0.038771,-0.04029,-0.051982,-0.059056,-0.054471,-0.042715,-0.039817,-0.04057,-0.04822,-0.04571,-0.047275,-0.040474,-0.040235,-0.041677,-0.043086,-0.045952,-0.041324,-0.042117,-0.043495,-0.042737,-0.04393,-0.04343,-0.04224,-0.043201,-0.04256,-0.044772,-0.046905,-0.043751,-0.047726,-0.049503,-0.050499,-0.043085,-0.037546,-0.051391,-0.048505,-0.05063,-0.054829,-0.050713,-0.049408,-0.049072,-0.040219,-0.041422,-0.0486,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,-0.004392,-0.040768,-0.022151,-0.027459,-0.029646,-0.031346,-0.034572,-0.029426,-0.040182,-0.04922,-0.046721,-0.034045,-0.029268,-0.031534,-0.039244,-0.036041,-0.037449,-0.031742,-0.031058,-0.03237,-0.034355,-0.037655,-0.033614,-0.034617,-0.036141,-0.035387,-0.037219,-0.036679,-0.035505,-0.036557,-0.036173,-0.038594,-0.040156,-0.038974,-0.043742,-0.044398,-0.045578,-0.038366,-0.035437,-0.047578,-0.043509,-0.045793,-0.048472,-0.04316,-0.043693,-0.045725,-0.035403,-0.039678,-0.051743,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,-0.0011944,-0.038032,-0.011555,-0.017733,-0.018741,-0.018121,-0.021598,-0.019027,-0.031898,-0.040199,-0.03956,-0.024696,-0.021466,-0.0251,-0.032645,-0.030504,-0.031759,-0.025431,-0.024064,-0.025383,-0.027917,-0.031659,-0.027564,-0.028839,-0.029924,-0.029253,-0.030885,-0.030303,-0.029137,-0.029938,-0.029353,-0.031215,-0.03315,-0.031214,-0.0364,-0.0365,-0.03808,-0.03094,-0.027965,-0.040544,-0.035445,-0.038787,-0.040262,-0.036132,-0.035502,-0.038731,-0.030971,-0.036023,-0.049533,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,-0.001372,-0.041288,-0.018015,-0.024101,-0.018775,-0.020367,-0.02182,-0.019275,-0.033596,-0.043243,-0.039513,-0.025007,-0.023093,-0.025094,-0.032387,-0.030192,-0.03229,-0.02683,-0.024903,-0.026819,-0.029501,-0.033668,-0.02978,-0.030977,-0.032234,-0.031255,-0.032635,-0.031972,-0.030861,-0.031401,-0.031363,-0.032615,-0.033792,-0.03308,-0.038695,-0.037788,-0.038297,-0.033005,-0.031923,-0.04396,-0.040576,-0.042452,-0.042474,-0.037637,-0.035612,-0.03838,-0.030581,-0.033852,-0.044906,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.00075073,-0.040557,-0.020443,-0.028818,-0.021499,-0.020199,-0.020707,-0.019964,-0.032687,-0.043825,-0.038025,-0.024855,-0.021555,-0.024676,-0.030719,-0.029418,-0.031351,-0.025752,-0.023874,-0.025857,-0.029041,-0.033651,-0.029106,-0.03028,-0.031175,-0.029955,-0.031349,-0.031029,-0.029845,-0.030679,-0.03072,-0.033242,-0.033753,-0.03314,-0.037933,-0.037513,-0.039827,-0.033677,-0.032714,-0.04405,-0.039611,-0.040393,-0.039289,-0.033376,-0.030302,-0.031957,-0.023037,-0.029078,-0.040502,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,-0.0018908,-0.039282,-0.02043,-0.029775,-0.023411,-0.016644,-0.016262,-0.014813,-0.027039,-0.034911,-0.030687,-0.0181,-0.016019,-0.020266,-0.027227,-0.026768,-0.028178,-0.022667,-0.020435,-0.022487,-0.026136,-0.03114,-0.02695,-0.028054,-0.028611,-0.02726,-0.028796,-0.028549,-0.027354,-0.028225,-0.027916,-0.030833,-0.03135,-0.032405,-0.038855,-0.03757,-0.038979,-0.032296,-0.031467,-0.041814,-0.037831,-0.03799,-0.039573,-0.032511,-0.030217,-0.031454,-0.021185,-0.027683,-0.0394,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0017187,-0.039786,-0.020707,-0.032267,-0.027796,-0.022631,-0.022626,-0.019822,-0.033225,-0.042172,-0.038979,-0.024587,-0.019004,-0.023077,-0.029552,-0.028571,-0.030324,-0.025463,-0.023356,-0.025044,-0.027954,-0.033352,-0.029243,-0.030377,-0.031083,-0.029606,-0.031039,-0.030734,-0.029663,-0.030323,-0.030131,-0.032554,-0.033983,-0.034324,-0.039991,-0.038451,-0.038999,-0.031438,-0.030148,-0.039587,-0.039151,-0.040289,-0.041464,-0.037237,-0.035005,-0.035968,-0.024975,-0.033471,-0.042756,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.011043,-0.036265,-0.019082,-0.032993,-0.030396,-0.026806,-0.025792,-0.024331,-0.03369,-0.042191,-0.040139,-0.026772,-0.022148,-0.027085,-0.034398,-0.033592,-0.034528,-0.029774,-0.028207,-0.030114,-0.032598,-0.038194,-0.033928,-0.035203,-0.035686,-0.034656,-0.0361,-0.035832,-0.034747,-0.035481,-0.035185,-0.037126,-0.038242,-0.039058,-0.043965,-0.042109,-0.041792,-0.034169,-0.031947,-0.041795,-0.042561,-0.042644,-0.044973,-0.039581,-0.039075,-0.038794,-0.02793,-0.034956,-0.047302,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.013824,-0.037054,-0.022133,-0.037689,-0.035252,-0.032105,-0.032303,-0.031242,-0.038785,-0.047051,-0.045933,-0.031859,-0.026476,-0.029026,-0.037104,-0.034956,-0.03553,-0.031329,-0.029275,-0.031281,-0.03233,-0.038008,-0.034019,-0.035492,-0.035859,-0.034834,-0.036249,-0.035936,-0.034887,-0.035446,-0.034848,-0.037423,-0.038744,-0.039524,-0.043789,-0.043894,-0.044447,-0.036231,-0.034624,-0.043585,-0.044819,-0.043947,-0.046881,-0.042602,-0.04162,-0.040223,-0.029075,-0.034801,-0.045449,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.011559,-0.034092,-0.021535,-0.038003,-0.035334,-0.031902,-0.033372,-0.0327,-0.041262,-0.048907,-0.047684,-0.033479,-0.028042,-0.030702,-0.039447,-0.036576,-0.037696,-0.033958,-0.031288,-0.033686,-0.034667,-0.040175,-0.036273,-0.03792,-0.038402,-0.037718,-0.03921,-0.039034,-0.038055,-0.038537,-0.037801,-0.040365,-0.041218,-0.042038,-0.046265,-0.046047,-0.045932,-0.03857,-0.036511,-0.046261,-0.047287,-0.046177,-0.048962,-0.044339,-0.042467,-0.040172,-0.029566,-0.036435,-0.047608,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0085797,-0.031845,-0.01763,-0.031586,-0.029721,-0.023774,-0.025803,-0.026405,-0.034483,-0.043231,-0.042942,-0.028316,-0.023587,-0.025984,-0.035325,-0.03293,-0.034495,-0.030264,-0.027098,-0.028764,-0.029809,-0.035211,-0.031302,-0.03303,-0.033497,-0.032847,-0.03455,-0.03434,-0.033303,-0.034067,-0.033149,-0.035975,-0.037213,-0.038373,-0.042889,-0.043276,-0.043481,-0.036743,-0.034968,-0.045229,-0.045687,-0.044314,-0.046507,-0.041651,-0.039199,-0.036562,-0.025679,-0.034285,-0.046604,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0062362,-0.034063,-0.014115,-0.029673,-0.026481,-0.020065,-0.020143,-0.021097,-0.030147,-0.039051,-0.039066,-0.024273,-0.019296,-0.022138,-0.031052,-0.028188,-0.029191,-0.02525,-0.022339,-0.023915,-0.024842,-0.030335,-0.026564,-0.028403,-0.028935,-0.028271,-0.029942,-0.029719,-0.028639,-0.0293,-0.028578,-0.031382,-0.032539,-0.033443,-0.038375,-0.038612,-0.039627,-0.032521,-0.03145,-0.041413,-0.04208,-0.041092,-0.042883,-0.039233,-0.036336,-0.033407,-0.022382,-0.032422,-0.044852,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0041039,-0.034028,-0.013124,-0.029885,-0.02691,-0.021293,-0.020949,-0.020187,-0.028358,-0.03698,-0.037608,-0.023309,-0.018132,-0.020726,-0.029819,-0.026535,-0.027725,-0.024051,-0.021303,-0.023115,-0.023917,-0.029462,-0.025761,-0.027422,-0.028019,-0.027282,-0.028801,-0.028511,-0.027454,-0.028127,-0.02808,-0.030694,-0.031639,-0.032259,-0.03691,-0.03747,-0.038142,-0.031067,-0.03112,-0.040718,-0.041676,-0.040255,-0.041606,-0.038311,-0.034954,-0.031996,-0.020998,-0.032103,-0.044768,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0032201,-0.033106,-0.01077,-0.02785,-0.025821,-0.020478,-0.020838,-0.020689,-0.028936,-0.037149,-0.037531,-0.022813,-0.018039,-0.0209,-0.029712,-0.026253,-0.027527,-0.02342,-0.020712,-0.022729,-0.023381,-0.028961,-0.02537,-0.026987,-0.027642,-0.026923,-0.028388,-0.028099,-0.026997,-0.027597,-0.027673,-0.030542,-0.031266,-0.031635,-0.036785,-0.037227,-0.037586,-0.030753,-0.030466,-0.039763,-0.042114,-0.040632,-0.042121,-0.039444,-0.03602,-0.032563,-0.022225,-0.033225,-0.045839,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0040945,-0.033584,-0.011037,-0.028363,-0.02693,-0.02208,-0.022408,-0.022685,-0.031319,-0.039886,-0.040181,-0.025722,-0.020977,-0.023578,-0.03179,-0.028401,-0.029776,-0.025853,-0.02305,-0.024991,-0.025789,-0.031523,-0.028018,-0.029638,-0.030332,-0.02961,-0.031084,-0.030749,-0.02966,-0.030284,-0.030371,-0.033344,-0.034054,-0.0342,-0.039095,-0.039728,-0.039988,-0.033535,-0.032885,-0.041858,-0.044462,-0.043523,-0.045216,-0.042138,-0.038701,-0.034942,-0.024758,-0.035217,-0.048124,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0032419,-0.035022,-0.012727,-0.030332,-0.028211,-0.02303,-0.022665,-0.023218,-0.032109,-0.040508,-0.040893,-0.026355,-0.021108,-0.023737,-0.03177,-0.028351,-0.029388,-0.025333,-0.022624,-0.024663,-0.025486,-0.031075,-0.027616,-0.029192,-0.029803,-0.029089,-0.030552,-0.030167,-0.029057,-0.029661,-0.029691,-0.032886,-0.033499,-0.03366,-0.038458,-0.039176,-0.039393,-0.033213,-0.03241,-0.041262,-0.044098,-0.043573,-0.045323,-0.042241,-0.0387,-0.034723,-0.024288,-0.035156,-0.047884,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0025985,-0.035129,-0.013166,-0.03049,-0.028123,-0.023196,-0.022495,-0.023077,-0.032179,-0.040588,-0.040819,-0.02622,-0.020917,-0.023541,-0.031515,-0.028199,-0.029334,-0.025298,-0.022663,-0.02473,-0.025515,-0.030988,-0.027575,-0.029184,-0.029799,-0.029091,-0.030502,-0.03011,-0.028984,-0.029573,-0.029585,-0.032924,-0.033835,-0.033901,-0.038877,-0.03948,-0.039961,-0.033794,-0.033001,-0.041795,-0.044875,-0.044234,-0.045962,-0.042763,-0.03911,-0.035086,-0.0243,-0.035521,-0.048048,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.003233,-0.034006,-0.012402,-0.029822,-0.027518,-0.022644,-0.022232,-0.022609,-0.031867,-0.040293,-0.040541,-0.02605,-0.020418,-0.023057,-0.030777,-0.027466,-0.028439,-0.024441,-0.021729,-0.023877,-0.024773,-0.030331,-0.026893,-0.02846,-0.02908,-0.028376,-0.029744,-0.029353,-0.02821,-0.028789,-0.028783,-0.032102,-0.033019,-0.033276,-0.038177,-0.038789,-0.039207,-0.032946,-0.032311,-0.041175,-0.0442,-0.043575,-0.045317,-0.042025,-0.038397,-0.034254,-0.023506,-0.03449,-0.047072,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0036367,-0.033185,-0.011274,-0.029053,-0.026626,-0.02184,-0.021003,-0.021937,-0.031072,-0.039983,-0.040233,-0.025944,-0.020236,-0.023147,-0.030842,-0.027389,-0.02842,-0.024426,-0.021673,-0.023814,-0.024669,-0.030239,-0.02681,-0.028354,-0.028885,-0.028178,-0.029582,-0.029197,-0.028067,-0.028606,-0.028631,-0.032006,-0.033157,-0.03319,-0.038141,-0.038865,-0.039073,-0.032681,-0.03211,-0.040915,-0.044017,-0.043568,-0.044861,-0.041685,-0.037649,-0.033477,-0.0228,-0.033913,-0.046093,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0039931,-0.032422,-0.01065,-0.028689,-0.025716,-0.020752,-0.019748,-0.020641,-0.029727,-0.038485,-0.039372,-0.025543,-0.019715,-0.022499,-0.030321,-0.026771,-0.02764,-0.023881,-0.021059,-0.023186,-0.024006,-0.029571,-0.026163,-0.027663,-0.028234,-0.027529,-0.028928,-0.028552,-0.027425,-0.027946,-0.027931,-0.031364,-0.032715,-0.032819,-0.037582,-0.038237,-0.038474,-0.032117,-0.03168,-0.040593,-0.043814,-0.043359,-0.044376,-0.041222,-0.036847,-0.032735,-0.022143,-0.033445,-0.045261,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0048626,-0.031091,-0.0090516,-0.028991,-0.025619,-0.021142,-0.019558,-0.020163,-0.029648,-0.039495,-0.04012,-0.026347,-0.020722,-0.023761,-0.031324,-0.027591,-0.028285,-0.024717,-0.021803,-0.023828,-0.024576,-0.030274,-0.02679,-0.028244,-0.028932,-0.028219,-0.02961,-0.029242,-0.028137,-0.028615,-0.028657,-0.032151,-0.033594,-0.033438,-0.038234,-0.038652,-0.039039,-0.032853,-0.032559,-0.041397,-0.044762,-0.044486,-0.044905,-0.041807,-0.036993,-0.032819,-0.022181,-0.033697,-0.045154,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.00067416,-0.03377,-0.013647,-0.032548,-0.030467,-0.02508,-0.023168,-0.024236,-0.032944,-0.042381,-0.044059,-0.030448,-0.025924,-0.029137,-0.036355,-0.032565,-0.033146,-0.029699,-0.026785,-0.028706,-0.02942,-0.034975,-0.031613,-0.032991,-0.033637,-0.032853,-0.034031,-0.033623,-0.032465,-0.03275,-0.032815,-0.036033,-0.037279,-0.036804,-0.041189,-0.041213,-0.041219,-0.035307,-0.034843,-0.04339,-0.046963,-0.04693,-0.047605,-0.044764,-0.040206,-0.036314,-0.025681,-0.036663,-0.047469,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0014158,-0.031475,-0.012192,-0.031756,-0.030036,-0.024871,-0.024753,-0.025864,-0.033761,-0.042472,-0.044999,-0.030967,-0.026204,-0.029467,-0.036854,-0.032738,-0.032986,-0.029576,-0.026716,-0.028384,-0.029023,-0.034839,-0.031462,-0.032837,-0.033411,-0.032588,-0.033749,-0.0332,-0.032103,-0.032331,-0.032405,-0.035726,-0.036912,-0.036632,-0.041302,-0.040918,-0.040699,-0.035256,-0.034832,-0.043707,-0.047616,-0.047407,-0.048529,-0.046152,-0.041112,-0.037737,-0.027019,-0.038452,-0.048915,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0045655,-0.031251,-0.010421,-0.028365,-0.0277,-0.022635,-0.023481,-0.023572,-0.032463,-0.042212,-0.045472,-0.030861,-0.025959,-0.028525,-0.036872,-0.032857,-0.033119,-0.03066,-0.027467,-0.028772,-0.029397,-0.035332,-0.031796,-0.033248,-0.033879,-0.033033,-0.034167,-0.033658,-0.032669,-0.032593,-0.032683,-0.035834,-0.037009,-0.035949,-0.039671,-0.03984,-0.04019,-0.034901,-0.034682,-0.043391,-0.047866,-0.047359,-0.047477,-0.045626,-0.039621,-0.036143,-0.026512,-0.037671,-0.047597,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0035832,-0.031495,-0.010048,-0.026072,-0.025989,-0.021189,-0.020848,-0.021643,-0.030041,-0.038744,-0.042704,-0.028949,-0.023822,-0.026332,-0.035371,-0.031029,-0.030954,-0.029447,-0.026408,-0.027316,-0.028353,-0.0339,-0.030228,-0.031634,-0.032116,-0.03132,-0.032488,-0.031869,-0.030907,-0.030981,-0.03084,-0.034288,-0.035729,-0.035005,-0.03821,-0.038966,-0.039013,-0.032819,-0.033307,-0.041348,-0.046467,-0.046145,-0.04705,-0.044324,-0.039235,-0.036122,-0.027325,-0.03679,-0.046313,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0072465,-0.025848,-0.0042973,-0.022426,-0.022916,-0.016908,-0.016789,-0.017752,-0.026841,-0.037368,-0.0407,-0.026719,-0.02087,-0.0237,-0.032338,-0.028157,-0.028057,-0.026923,-0.02411,-0.025143,-0.025805,-0.031443,-0.027587,-0.029189,-0.029735,-0.028975,-0.030296,-0.029732,-0.028668,-0.028702,-0.028849,-0.03218,-0.033663,-0.031948,-0.035169,-0.036067,-0.035315,-0.0288,-0.030095,-0.037695,-0.04353,-0.042768,-0.04203,-0.039928,-0.034499,-0.032504,-0.023157,-0.033774,-0.043097,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0092164,-0.024563,-0.0012504,-0.019344,-0.019805,-0.012519,-0.013128,-0.014766,-0.024611,-0.033908,-0.039464,-0.026366,-0.020689,-0.02265,-0.032441,-0.027671,-0.02721,-0.025572,-0.022333,-0.024682,-0.025793,-0.031402,-0.027485,-0.02938,-0.029796,-0.029037,-0.030394,-0.029968,-0.029012,-0.028898,-0.028706,-0.032355,-0.033667,-0.032532,-0.034757,-0.035264,-0.033177,-0.02669,-0.02761,-0.034582,-0.040497,-0.040664,-0.040875,-0.038131,-0.033207,-0.032245,-0.023571,-0.033568,-0.041919,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0067994,-0.030741,-0.0069197,-0.025966,-0.026344,-0.019585,-0.01837,-0.018444,-0.026729,-0.037287,-0.041594,-0.028618,-0.022108,-0.023792,-0.033752,-0.029873,-0.028815,-0.027066,-0.024479,-0.026771,-0.028269,-0.033721,-0.029953,-0.03183,-0.032227,-0.031436,-0.03266,-0.032277,-0.031228,-0.030967,-0.031051,-0.034389,-0.035573,-0.034086,-0.035297,-0.036447,-0.034575,-0.028917,-0.030508,-0.036539,-0.043101,-0.043994,-0.044222,-0.041492,-0.035796,-0.035722,-0.028105,-0.037338,-0.044727,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0077943,-0.029455,-0.0037409,-0.024713,-0.026978,-0.020391,-0.018989,-0.018665,-0.027155,-0.03785,-0.041928,-0.029979,-0.023237,-0.025663,-0.034996,-0.030929,-0.029809,-0.027525,-0.024679,-0.026455,-0.028141,-0.033403,-0.029426,-0.031058,-0.031297,-0.030475,-0.031661,-0.03098,-0.029537,-0.029321,-0.029295,-0.032717,-0.033943,-0.032695,-0.034277,-0.035584,-0.034512,-0.029442,-0.031068,-0.03717,-0.044432,-0.046139,-0.046698,-0.044873,-0.039597,-0.039763,-0.0324,-0.040018,-0.046639,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0074358,-0.025425,0.0020452,-0.016604,-0.017173,-0.011927,-0.011053,-0.012384,-0.021342,-0.033836,-0.0378,-0.025957,-0.02069,-0.022058,-0.032217,-0.029002,-0.027142,-0.025335,-0.021961,-0.023427,-0.025131,-0.030633,-0.026429,-0.027774,-0.028151,-0.02726,-0.028513,-0.027863,-0.02656,-0.026249,-0.026332,-0.030173,-0.030865,-0.030389,-0.032716,-0.033113,-0.031245,-0.026917,-0.027532,-0.033676,-0.040914,-0.043715,-0.044162,-0.043583,-0.038912,-0.040289,-0.032887,-0.041712,-0.047048,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,-0.0059485,-0.037916,-0.0065132,-0.028753,-0.026069,-0.024362,-0.023317,-0.022372,-0.031588,-0.041846,-0.044057,-0.031144,-0.025264,-0.02894,-0.040631,-0.03765,-0.036997,-0.03523,-0.031343,-0.032212,-0.033368,-0.039128,-0.034852,-0.035915,-0.036149,-0.035094,-0.036204,-0.035534,-0.03423,-0.033393,-0.033214,-0.03656,-0.036706,-0.036898,-0.039817,-0.037671,-0.035095,-0.030142,-0.028862,-0.034787,-0.039757,-0.042813,-0.044438,-0.041919,-0.038648,-0.040104,-0.03343,-0.041114,-0.045252,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,-0.010863,-0.040338,-0.013125,-0.031099,-0.026962,-0.022988,-0.022845,-0.022762,-0.029903,-0.039966,-0.040661,-0.026879,-0.02168,-0.025444,-0.035679,-0.033397,-0.034074,-0.032556,-0.028127,-0.029101,-0.029812,-0.035742,-0.031243,-0.032837,-0.033906,-0.033278,-0.034333,-0.033804,-0.032677,-0.031751,-0.03176,-0.034832,-0.03485,-0.034595,-0.037242,-0.036133,-0.033528,-0.028756,-0.027883,-0.033326,-0.037737,-0.03985,-0.038942,-0.037262,-0.032548,-0.03552,-0.028777,-0.036049,-0.04017,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,-0.0043982,-0.039712,-0.010024,-0.028644,-0.024775,-0.02079,-0.020537,-0.021889,-0.031018,-0.038935,-0.040362,-0.025653,-0.020729,-0.0255,-0.035269,-0.032875,-0.03434,-0.032091,-0.027117,-0.028689,-0.029683,-0.034877,-0.030367,-0.03187,-0.032713,-0.032045,-0.033143,-0.032699,-0.03151,-0.030339,-0.030026,-0.033563,-0.033583,-0.033327,-0.035569,-0.033698,-0.030997,-0.027588,-0.026746,-0.031897,-0.036261,-0.038696,-0.038111,-0.037843,-0.033588,-0.037059,-0.031073,-0.037775,-0.040477,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0017733,-0.035774,-0.007559,-0.025288,-0.024841,-0.022965,-0.023141,-0.027325,-0.034009,-0.042271,-0.041965,-0.026931,-0.021756,-0.02774,-0.036778,-0.03541,-0.036432,-0.034074,-0.029083,-0.030534,-0.031456,-0.036351,-0.031636,-0.032795,-0.033368,-0.032662,-0.033338,-0.033009,-0.032001,-0.03112,-0.030918,-0.033583,-0.034317,-0.03304,-0.03468,-0.033869,-0.031564,-0.02792,-0.028205,-0.032599,-0.037927,-0.040523,-0.038923,-0.039066,-0.034968,-0.038853,-0.034594,-0.038707,-0.040721,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.00354,-0.036686,-0.0095978,-0.028866,-0.025593,-0.021405,-0.021317,-0.023457,-0.032102,-0.03994,-0.03817,-0.024093,-0.018609,-0.023997,-0.031592,-0.030117,-0.030195,-0.028381,-0.022884,-0.024448,-0.025113,-0.030057,-0.025148,-0.026866,-0.027227,-0.026401,-0.027036,-0.026796,-0.025777,-0.025042,-0.025047,-0.027434,-0.02823,-0.026903,-0.028809,-0.028236,-0.027143,-0.023601,-0.02508,-0.030467,-0.034428,-0.036409,-0.03626,-0.035251,-0.031526,-0.034034,-0.029023,-0.034924,-0.037014,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0091329,-0.027263,0.00093408,-0.018726,-0.016242,-0.01152,-0.012166,-0.012642,-0.023346,-0.029519,-0.030322,-0.017778,-0.011306,-0.015413,-0.023952,-0.022572,-0.023441,-0.022038,-0.016551,-0.017411,-0.01819,-0.023134,-0.019163,-0.020527,-0.021305,-0.020881,-0.021741,-0.021584,-0.020876,-0.020426,-0.020326,-0.023207,-0.02383,-0.021699,-0.023067,-0.022442,-0.021689,-0.017848,-0.019903,-0.025272,-0.030288,-0.031904,-0.029507,-0.030066,-0.024892,-0.028107,-0.021759,-0.029453,-0.031524,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,0.0096181,-0.029836,-0.0050716,-0.023762,-0.020371,-0.013282,-0.011729,-0.010283,-0.020408,-0.026336,-0.028292,-0.014916,-0.0084457,-0.012977,-0.020834,-0.018537,-0.019301,-0.017811,-0.013445,-0.014169,-0.014724,-0.019228,-0.015453,-0.016851,-0.017517,-0.017051,-0.018032,-0.018194,-0.017657,-0.017477,-0.017592,-0.020397,-0.021283,-0.019013,-0.021229,-0.021608,-0.021237,-0.018643,-0.021274,-0.026799,-0.031137,-0.031635,-0.030593,-0.030712,-0.026322,-0.028388,-0.023835,-0.029421,-0.031586,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,-0.0039728,-0.038008,-0.015096,-0.032602,-0.02613,-0.021237,-0.019241,-0.020024,-0.029985,-0.035979,-0.036049,-0.023918,-0.019164,-0.024044,-0.03189,-0.030071,-0.031133,-0.029828,-0.025343,-0.025949,-0.026387,-0.030611,-0.026919,-0.028089,-0.028487,-0.027636,-0.028127,-0.028057,-0.02734,-0.026696,-0.026539,-0.028713,-0.029051,-0.026215,-0.027644,-0.026593,-0.025519,-0.024004,-0.026007,-0.030608,-0.034471,-0.035071,-0.03384,-0.034133,-0.029756,-0.03298,-0.028848,-0.033463,-0.033977,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,-0.0088569,-0.040155,-0.021498,-0.039535,-0.034664,-0.028219,-0.02576,-0.027161,-0.037915,-0.043798,-0.04573,-0.034245,-0.030245,-0.034384,-0.041657,-0.03979,-0.04097,-0.038957,-0.033998,-0.035604,-0.035778,-0.040247,-0.036339,-0.037869,-0.038091,-0.037207,-0.03712,-0.037088,-0.036664,-0.036331,-0.036521,-0.037459,-0.037616,-0.033134,-0.033762,-0.032937,-0.032771,-0.032226,-0.034979,-0.038539,-0.041745,-0.04042,-0.038937,-0.037294,-0.032947,-0.035334,-0.030199,-0.034116,-0.034414,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,-0.0022218,-0.029657,-0.0094956,-0.03172,-0.029642,-0.02399,-0.022582,-0.026169,-0.038336,-0.043389,-0.045852,-0.034843,-0.031352,-0.03566,-0.042629,-0.040609,-0.041394,-0.038667,-0.033934,-0.03598,-0.035558,-0.040302,-0.03728,-0.038755,-0.038781,-0.038016,-0.03824,-0.038252,-0.03776,-0.037217,-0.036851,-0.038313,-0.038215,-0.034783,-0.034947,-0.033637,-0.03164,-0.030126,-0.031497,-0.034569,-0.037544,-0.03766,-0.037662,-0.035519,-0.032812,-0.034511,-0.031297,-0.034555,-0.03345,2500,-0.062943,-0.002563,Inf +0.9942,-0.032753,0,-0.0013041,-0.030113,-0.012918,-0.033427,-0.030717,-0.025281,-0.023173,-0.025948,-0.037234,-0.043444,-0.04536,-0.035163,-0.031849,-0.034599,-0.040036,-0.03774,-0.038439,-0.03589,-0.032702,-0.034242,-0.034424,-0.038878,-0.03597,-0.037692,-0.037523,-0.037036,-0.037589,-0.038012,-0.037686,-0.037406,-0.036817,-0.038485,-0.039145,-0.036393,-0.03612,-0.035873,-0.033601,-0.0319,-0.033235,-0.035687,-0.038739,-0.038757,-0.040075,-0.035799,-0.034605,-0.034894,-0.033493,-0.033767,-0.032753,2500,-0.062943,-0.002563,Inf diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/sin_sim_fast_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/sin_sim_fast_res.csv new file mode 100644 index 0000000..f4fac33 --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/sin_sim_fast_res.csv @@ -0,0 +1,50 @@ +0.75325,-0.0061959,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.029367,0.00013223,0.0088617,0.036483,0.059686,0.10271,0.086341,0.091568,0.079864,0.076881,0.077772,0.070927,0.064113,0.067275,0.061909,0.059393,0.05793,0.059131,0.060241,0.059819,0.058792,0.058474,0.067112,0.067901,0.066396,0.065374,0.064466,0.065373,0.063603,0.063405,0.055159,0.057021,0.058992,0.061243,0.052468,0.05264,0.056053,0.05676,0.057955,0.061801,0.056026,0.060167,0.064303,0.064223,0.068924,0.067794,0.053103,0.061367,0.055612,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.027249,0.047023,0.06181,0.066779,0.085309,0.12363,0.10316,0.10402,0.089501,0.081677,0.080665,0.071975,0.07086,0.075153,0.072289,0.072822,0.069121,0.067533,0.066158,0.069798,0.073845,0.074012,0.081641,0.08107,0.079124,0.077793,0.076633,0.077858,0.076138,0.076536,0.067601,0.070017,0.072578,0.072242,0.066246,0.066788,0.066579,0.069507,0.06446,0.063002,0.059307,0.06507,0.063019,0.066952,0.073698,0.069154,0.04793,0.059888,0.055537,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.037804,0.018302,0.025549,0.032515,0.044142,0.082304,0.061372,0.063751,0.048118,0.042707,0.04192,0.044431,0.044281,0.047916,0.042768,0.046962,0.041553,0.03817,0.038214,0.041798,0.043714,0.044326,0.049499,0.05135,0.0494,0.048731,0.04732,0.049031,0.047811,0.048832,0.040842,0.043372,0.046137,0.046844,0.041441,0.040905,0.04105,0.038554,0.030898,0.033278,0.027349,0.036159,0.038353,0.03473,0.043053,0.044515,0.032235,0.039885,0.044701,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.034932,0.013458,0.013186,0.025363,0.030605,0.060365,0.050096,0.048406,0.046921,0.044254,0.040371,0.041505,0.041796,0.042531,0.038892,0.040473,0.035438,0.032427,0.036597,0.038437,0.040875,0.043057,0.046692,0.048836,0.0472,0.04762,0.046274,0.047413,0.046784,0.047017,0.040679,0.040502,0.044109,0.044203,0.040786,0.039525,0.033207,0.031882,0.026194,0.030841,0.025468,0.032932,0.033861,0.027309,0.038299,0.041212,0.034459,0.042329,0.046992,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.031642,0.0045006,-0.00087513,0.013541,0.018486,0.05137,0.038414,0.033643,0.032214,0.034386,0.0282,0.030935,0.02892,0.031682,0.028032,0.027578,0.022511,0.01942,0.024644,0.028462,0.030908,0.031922,0.03432,0.037079,0.036172,0.036731,0.036104,0.037144,0.036453,0.035764,0.03057,0.031406,0.035152,0.036457,0.033359,0.031652,0.027734,0.019211,0.016391,0.023012,0.018111,0.024525,0.026584,0.020425,0.033577,0.035652,0.029125,0.040988,0.046386,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.039602,-0.0035492,-0.0088508,0.0002103,0.005502,0.033348,0.022805,0.018889,0.017441,0.022251,0.015747,0.016132,0.012306,0.015131,0.016497,0.016222,0.013603,0.012466,0.016144,0.019565,0.022161,0.023121,0.025254,0.028387,0.026937,0.027567,0.027219,0.028178,0.027806,0.027133,0.02222,0.023888,0.027026,0.029344,0.026214,0.025906,0.021388,0.015192,0.014443,0.017484,0.013529,0.012938,0.015558,0.0075891,0.021513,0.024689,0.022245,0.031908,0.038615,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.042161,-0.012844,-0.013313,-0.0051185,0.00025596,0.032619,0.024781,0.020521,0.022621,0.026291,0.019928,0.021262,0.017105,0.019822,0.021283,0.019463,0.0172,0.019344,0.021784,0.02409,0.027025,0.027177,0.029259,0.032844,0.031722,0.032729,0.032722,0.033814,0.033525,0.033184,0.028592,0.029758,0.032572,0.035653,0.033578,0.032647,0.029583,0.025022,0.023104,0.025718,0.020733,0.021842,0.022683,0.017129,0.02479,0.025719,0.026355,0.033802,0.036886,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.048665,-0.02428,-0.020654,-0.016573,-0.013869,0.019323,0.011233,0.014092,0.01702,0.018447,0.010405,0.0098096,0.0041883,0.0051115,0.0082721,0.005121,0.0059573,0.0082887,0.0095549,0.010827,0.012768,0.012711,0.014065,0.016835,0.01671,0.017028,0.017365,0.018316,0.017849,0.017632,0.012403,0.013931,0.016699,0.019705,0.01786,0.016664,0.014811,0.0086313,0.0065781,0.010047,0.00059602,0.0041594,0.0031222,-0.0022277,0.0044508,0.0026577,0.004987,0.012156,0.014735,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.055186,-0.034726,-0.030786,-0.030025,-0.020774,0.012217,0.0038666,0.0097333,0.01045,0.012167,0.0070808,0.0069817,-9.1731e-05,0.00064017,0.002262,-0.0010147,-0.0014166,0.0027875,0.0030586,0.0050799,0.0061982,0.0054655,0.0061476,0.0084751,0.0083979,0.0083379,0.00883,0.0096746,0.0092981,0.0089108,0.0034674,0.0056887,0.0083139,0.0097916,0.0076459,0.0069444,0.0065328,-0.001543,-0.0048616,-0.0005993,-0.0078696,-0.0024296,-0.0025335,-0.008065,-0.0019378,-0.0011087,-0.0049832,0.0058506,0.0056931,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.042622,-0.027647,-0.028774,-0.022451,-0.017293,0.01173,0.0027147,0.0078076,0.01552,0.015152,0.0093035,0.0088525,0.0019471,0.0012419,0.0014789,-0.0029173,-0.0027593,0.0014301,0.0028362,0.0040294,0.0044194,0.003093,0.0037637,0.0055184,0.0054658,0.0050834,0.0056678,0.0063313,0.0060312,0.0056528,-0.00032001,9.8085e-05,0.0024931,0.0033304,0.0012737,0.0015662,0.002381,-0.0041432,-0.0068251,-0.0027965,-0.010192,-0.0058462,-0.0042426,-0.011342,-0.0033105,-0.00038499,-0.0036373,0.0065478,0.0032137,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.03653,-0.02413,-0.021312,-0.018839,-0.01532,0.010787,0.0035411,0.0065063,0.013922,0.013321,0.0059354,0.0040232,-0.0029354,-0.0049276,-0.0059156,-0.010762,-0.011635,-0.0068142,-0.0053117,-0.0035403,-0.0027377,-0.0046284,-0.0038634,-0.0026087,-0.0022385,-0.0026383,-0.0019714,-0.0013211,-0.0012983,-0.0016372,-0.0076485,-0.0083283,-0.0056305,-0.0070693,-0.0091362,-0.0093537,-0.0085151,-0.014359,-0.015509,-0.010921,-0.018509,-0.012486,-0.010381,-0.017508,-0.0087386,-0.0061793,-0.006961,0.0013522,-0.0001533,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.0383,-0.02969,-0.025842,-0.026172,-0.024549,-0.00041449,-0.005463,-0.0041297,0.0017861,0.0017605,-0.0056146,-0.0088389,-0.015535,-0.016633,-0.017973,-0.023793,-0.024176,-0.018972,-0.018274,-0.016795,-0.016062,-0.018485,-0.018263,-0.017491,-0.017051,-0.017876,-0.017205,-0.016717,-0.016609,-0.016656,-0.022116,-0.022341,-0.020461,-0.021435,-0.024682,-0.023926,-0.023262,-0.030003,-0.032647,-0.027731,-0.034811,-0.028861,-0.026783,-0.033857,-0.024028,-0.022789,-0.020803,-0.015378,-0.01667,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.043855,-0.037661,-0.033375,-0.030367,-0.029066,-0.0069192,-0.013501,-0.0096315,-0.0052129,-0.0049495,-0.013599,-0.016059,-0.022538,-0.023047,-0.02544,-0.032185,-0.033463,-0.027336,-0.02736,-0.025575,-0.02483,-0.026905,-0.027112,-0.025933,-0.025268,-0.026325,-0.025701,-0.025275,-0.025107,-0.024919,-0.030319,-0.031356,-0.029833,-0.030699,-0.033551,-0.032442,-0.031138,-0.036698,-0.04193,-0.036838,-0.044162,-0.036676,-0.034392,-0.043699,-0.034485,-0.031024,-0.0329,-0.027875,-0.027605,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.022732,-0.025946,-0.02643,-0.026607,-0.024469,0.0019519,-0.0015951,0.0026661,0.0079189,0.0070826,-0.002947,-0.0066414,-0.011495,-0.013059,-0.016431,-0.022253,-0.023045,-0.016957,-0.015931,-0.014175,-0.013521,-0.015333,-0.015532,-0.01468,-0.013445,-0.014504,-0.013578,-0.013202,-0.012967,-0.012569,-0.018378,-0.02069,-0.019266,-0.020003,-0.022591,-0.020968,-0.020714,-0.026963,-0.032085,-0.02705,-0.033523,-0.025325,-0.022286,-0.032,-0.025382,-0.021586,-0.022033,-0.015564,-0.017828,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.01796,-0.025707,-0.028874,-0.028252,-0.027983,-0.0011064,-0.0060852,-0.0016079,0.0024016,0.001817,-0.0061367,-0.0098976,-0.015696,-0.017644,-0.021885,-0.028485,-0.029223,-0.023481,-0.021444,-0.020208,-0.020032,-0.022255,-0.021535,-0.021087,-0.019469,-0.020754,-0.019971,-0.019928,-0.019484,-0.018854,-0.024918,-0.026762,-0.025272,-0.026628,-0.028571,-0.026286,-0.025933,-0.031242,-0.036904,-0.031946,-0.038571,-0.030148,-0.027059,-0.038159,-0.03336,-0.028918,-0.027469,-0.020591,-0.023446,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.014496,-0.026177,-0.031722,-0.030217,-0.031634,-0.0040675,-0.0086866,-0.0020457,0.001599,0.0015476,-0.0053161,-0.0091263,-0.015836,-0.017909,-0.021021,-0.028343,-0.028697,-0.02209,-0.020372,-0.018587,-0.018054,-0.020063,-0.018876,-0.01872,-0.01681,-0.018155,-0.017509,-0.017301,-0.016825,-0.0162,-0.022002,-0.024164,-0.022307,-0.023237,-0.025792,-0.023007,-0.023795,-0.030177,-0.035696,-0.029931,-0.036481,-0.02809,-0.025499,-0.036712,-0.031584,-0.027053,-0.028109,-0.0194,-0.021908,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.018367,-0.03158,-0.03845,-0.035745,-0.038241,-0.011941,-0.017389,-0.0087666,-0.0060666,-0.0026867,-0.0096947,-0.010236,-0.016442,-0.017409,-0.020857,-0.026923,-0.027434,-0.02142,-0.020193,-0.018846,-0.0187,-0.019287,-0.018111,-0.018224,-0.016565,-0.017951,-0.017182,-0.017029,-0.016524,-0.016243,-0.021963,-0.023774,-0.021653,-0.022601,-0.025157,-0.022368,-0.023828,-0.030421,-0.035149,-0.029342,-0.035855,-0.027316,-0.025382,-0.037562,-0.031369,-0.026114,-0.026811,-0.017676,-0.020093,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.013268,-0.029078,-0.033226,-0.029975,-0.033336,-0.0070869,-0.011401,-0.0041119,-0.0017427,0.00057443,-0.0064515,-0.0075101,-0.012862,-0.014022,-0.017398,-0.022804,-0.023237,-0.017692,-0.016883,-0.01541,-0.015312,-0.015769,-0.014366,-0.0143,-0.01284,-0.014369,-0.013489,-0.013296,-0.012817,-0.012516,-0.018517,-0.02023,-0.017823,-0.019666,-0.022049,-0.019789,-0.021965,-0.02932,-0.034347,-0.029539,-0.03532,-0.027544,-0.024815,-0.036128,-0.029732,-0.02423,-0.024644,-0.018586,-0.019126,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.0076248,-0.027215,-0.029019,-0.027646,-0.030808,-0.0028832,-0.0085669,-0.0013593,-5.3686e-06,0.0020245,-0.0058142,-0.0075923,-0.013626,-0.015414,-0.018434,-0.022553,-0.022789,-0.017655,-0.016598,-0.015458,-0.015665,-0.016216,-0.014618,-0.01467,-0.012898,-0.01457,-0.013361,-0.013072,-0.012541,-0.012194,-0.018029,-0.020019,-0.018072,-0.019827,-0.022346,-0.019683,-0.022221,-0.029054,-0.033947,-0.029987,-0.035129,-0.027447,-0.024637,-0.035207,-0.02859,-0.022594,-0.02282,-0.018472,-0.018499,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.010353,-0.031136,-0.031033,-0.030865,-0.032865,-0.004487,-0.008948,-0.0018189,0.00030752,0.0025682,-0.0044924,-0.0068822,-0.01232,-0.014483,-0.017247,-0.020492,-0.020524,-0.015326,-0.014575,-0.012984,-0.013382,-0.014119,-0.012712,-0.012647,-0.010728,-0.012508,-0.01136,-0.011094,-0.010517,-0.010082,-0.015904,-0.017704,-0.015936,-0.017729,-0.020424,-0.017616,-0.020831,-0.027274,-0.032275,-0.02956,-0.034774,-0.02749,-0.024087,-0.034067,-0.026771,-0.020941,-0.020354,-0.017227,-0.017812,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.012812,-0.034643,-0.031176,-0.032212,-0.035121,-0.0063273,-0.011514,-0.0023036,-2.2292e-05,0.0024024,-0.0050791,-0.0052097,-0.01058,-0.01225,-0.015467,-0.01841,-0.018251,-0.013357,-0.012595,-0.011252,-0.011783,-0.012664,-0.011166,-0.011121,-0.0092688,-0.011031,-0.0099492,-0.0096295,-0.0089954,-0.0084786,-0.014186,-0.015808,-0.013839,-0.015827,-0.019073,-0.016613,-0.019737,-0.026078,-0.031321,-0.028164,-0.032951,-0.02579,-0.021918,-0.031385,-0.023561,-0.018266,-0.017944,-0.015685,-0.015259,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.0074847,-0.029549,-0.027685,-0.029066,-0.031978,-0.0039287,-0.0097899,0.00018445,0.0019493,0.0039338,-0.0034424,-0.0039146,-0.0088555,-0.010543,-0.013909,-0.017113,-0.016678,-0.011969,-0.011379,-0.0097352,-0.010406,-0.011023,-0.0095596,-0.0095996,-0.0078197,-0.009566,-0.0085275,-0.008221,-0.0074374,-0.0068721,-0.012518,-0.014037,-0.011949,-0.014307,-0.018067,-0.015853,-0.018771,-0.025147,-0.03016,-0.026771,-0.031314,-0.024516,-0.020755,-0.029907,-0.022764,-0.017191,-0.017288,-0.015303,-0.014187,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.005377,-0.028964,-0.025643,-0.027827,-0.031447,-0.0037245,-0.010061,-3.317e-05,0.0021347,0.0047145,-0.0025584,-0.0023536,-0.0067581,-0.0085692,-0.012185,-0.015135,-0.014742,-0.010193,-0.0097525,-0.0078993,-0.0086109,-0.0093416,-0.0079004,-0.0078974,-0.006153,-0.0075957,-0.0065966,-0.0062941,-0.0055215,-0.0050824,-0.010677,-0.01222,-0.010031,-0.012283,-0.015934,-0.013762,-0.016526,-0.022741,-0.027868,-0.025041,-0.0295,-0.022462,-0.018485,-0.028047,-0.02063,-0.014781,-0.015415,-0.013012,-0.01274,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.00689,-0.028943,-0.026184,-0.027737,-0.030504,-0.0032215,-0.0096422,0.00071144,0.0024576,0.0047704,-0.0024457,-0.0024646,-0.0068952,-0.0085031,-0.012071,-0.015017,-0.014776,-0.010381,-0.010105,-0.0083573,-0.0092068,-0.0098483,-0.0080791,-0.0080642,-0.0063782,-0.0079043,-0.0069347,-0.0066044,-0.0058227,-0.005345,-0.010965,-0.012454,-0.010264,-0.01248,-0.016004,-0.013707,-0.016453,-0.022697,-0.027646,-0.024631,-0.028904,-0.022036,-0.018641,-0.028168,-0.020478,-0.014354,-0.015209,-0.013328,-0.01253,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.0076879,-0.026035,-0.021614,-0.021457,-0.025155,0.0014615,-0.0045685,0.0053064,0.0064969,0.0085299,0.0011201,0.00099405,-0.0030529,-0.0046851,-0.0083173,-0.011371,-0.011324,-0.0069989,-0.0066223,-0.0050329,-0.0058987,-0.0063022,-0.0045661,-0.0045044,-0.0028108,-0.0043509,-0.0033283,-0.0029711,-0.0022835,-0.0017966,-0.0073951,-0.0088697,-0.0066654,-0.0088642,-0.012309,-0.010026,-0.012751,-0.01888,-0.023831,-0.021117,-0.025379,-0.018833,-0.01542,-0.024697,-0.017007,-0.010603,-0.011411,-0.010968,-0.010767,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.0073093,-0.026519,-0.022186,-0.02066,-0.0241,0.0023394,-0.0038654,0.0058994,0.0069863,0.0092162,0.0016641,0.0014715,-0.0026419,-0.004331,-0.007924,-0.011019,-0.011095,-0.0069638,-0.0066213,-0.0049699,-0.0058296,-0.0062573,-0.0045425,-0.0045442,-0.0028988,-0.0044785,-0.003464,-0.003143,-0.0024203,-0.0019387,-0.0075217,-0.0090995,-0.0067766,-0.0091798,-0.012763,-0.010437,-0.013231,-0.019733,-0.024609,-0.021814,-0.026441,-0.019792,-0.01628,-0.026207,-0.018365,-0.0118,-0.012745,-0.012094,-0.011627,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.0074073,-0.026638,-0.023206,-0.022338,-0.025785,0.00055489,-0.0051117,0.0048132,0.006157,0.0083814,0.00082168,0.00060924,-0.0036145,-0.0053223,-0.0088023,-0.011911,-0.011685,-0.0075219,-0.0073281,-0.0055814,-0.0062248,-0.0066949,-0.0050391,-0.0050503,-0.003471,-0.0050556,-0.0039966,-0.0037155,-0.0029917,-0.0024609,-0.0081361,-0.0097548,-0.0073279,-0.0098341,-0.013391,-0.011046,-0.013808,-0.020283,-0.025118,-0.022296,-0.02697,-0.020625,-0.017063,-0.026673,-0.018789,-0.012176,-0.013068,-0.012683,-0.012097,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.0074943,-0.026267,-0.022526,-0.022178,-0.026542,3.6386e-05,-0.006512,0.0036383,0.0052077,0.007076,-0.00029102,-0.00035304,-0.0045688,-0.0062561,-0.0094839,-0.012474,-0.012161,-0.0079586,-0.0078074,-0.0060486,-0.0068681,-0.0071383,-0.0054388,-0.0054974,-0.0039681,-0.0054763,-0.0044005,-0.0041164,-0.0033873,-0.002851,-0.0085458,-0.0098503,-0.007472,-0.0099168,-0.013577,-0.011315,-0.014085,-0.020561,-0.025491,-0.022765,-0.027203,-0.021001,-0.017575,-0.026966,-0.019028,-0.012008,-0.012933,-0.012821,-0.012537,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.0086611,-0.027237,-0.022746,-0.023997,-0.027398,-0.0004475,-0.0071278,0.0032389,0.0045952,0.0067526,-0.00031766,-0.00069167,-0.0046607,-0.0064374,-0.0094522,-0.012535,-0.012319,-0.0084383,-0.0083313,-0.0064666,-0.0071809,-0.0076337,-0.0060824,-0.0063287,-0.0047451,-0.0062801,-0.005176,-0.004898,-0.0041064,-0.0035953,-0.0090669,-0.010324,-0.0079371,-0.010456,-0.014115,-0.012044,-0.014488,-0.021005,-0.026095,-0.023568,-0.027394,-0.021437,-0.018138,-0.027503,-0.019322,-0.012614,-0.013801,-0.014066,-0.01417,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.0068638,-0.027861,-0.02355,-0.025073,-0.027577,-0.000128,-0.0068723,0.0028364,0.003739,0.0063523,-0.0011504,-0.0026813,-0.0071046,-0.0091891,-0.012122,-0.01489,-0.014417,-0.010339,-0.010464,-0.0087284,-0.0094839,-0.0097933,-0.0081753,-0.008312,-0.0066444,-0.0085346,-0.0073852,-0.0072121,-0.0064215,-0.0058024,-0.011244,-0.012613,-0.010371,-0.012848,-0.016637,-0.014519,-0.017206,-0.02339,-0.027626,-0.025397,-0.028423,-0.022318,-0.019379,-0.028854,-0.020209,-0.013975,-0.014753,-0.014223,-0.014375,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.007946,-0.029189,-0.023428,-0.023808,-0.027346,-0.00041224,-0.0065523,0.0021831,0.0037492,0.0069183,-0.00091889,-0.0026487,-0.0065642,-0.0090281,-0.011512,-0.013878,-0.014803,-0.010462,-0.010934,-0.0089778,-0.010145,-0.010317,-0.0088472,-0.0089304,-0.0071481,-0.0089362,-0.0078737,-0.0077208,-0.0068422,-0.0063064,-0.011707,-0.013115,-0.010815,-0.013257,-0.017255,-0.015107,-0.018087,-0.023938,-0.028204,-0.02511,-0.028228,-0.0213,-0.01724,-0.026906,-0.018067,-0.012106,-0.013696,-0.011913,-0.012078,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.0073372,-0.031188,-0.025396,-0.024533,-0.027387,-0.0019302,-0.0069442,0.0017592,0.0025794,0.0064643,-0.0014962,-0.0025789,-0.0058643,-0.0077528,-0.010031,-0.012328,-0.013977,-0.0096893,-0.0098192,-0.0075898,-0.0092874,-0.0096442,-0.0085953,-0.0087415,-0.0072245,-0.0089515,-0.0078397,-0.0076617,-0.0068172,-0.0063867,-0.011732,-0.013352,-0.010974,-0.013092,-0.017302,-0.015519,-0.018878,-0.024902,-0.028504,-0.02548,-0.027532,-0.020142,-0.016773,-0.02603,-0.015448,-0.010484,-0.011806,-0.0089539,-0.00907,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.0037865,-0.028594,-0.024589,-0.02377,-0.025909,-0.0018094,-0.0095432,0.00019266,0.00069062,0.0054598,-0.0021185,-0.0024182,-0.0063404,-0.0084143,-0.01027,-0.011958,-0.013058,-0.0086664,-0.0094456,-0.0074039,-0.0087497,-0.0088113,-0.0078177,-0.008234,-0.0067867,-0.0087405,-0.0076655,-0.0075392,-0.0067355,-0.0063029,-0.011772,-0.012942,-0.010733,-0.013174,-0.017702,-0.016357,-0.02002,-0.026506,-0.029434,-0.02635,-0.0267,-0.019237,-0.016684,-0.024681,-0.014499,-0.010071,-0.011622,-0.0072587,-0.0074881,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.0060309,-0.029446,-0.023195,-0.02404,-0.025519,-0.0017839,-0.0081014,0.0026121,0.0029774,0.0065523,-3.5172e-06,-0.00043734,-0.0052745,-0.0077627,-0.0088912,-0.011158,-0.01166,-0.0068234,-0.0075666,-0.005152,-0.007131,-0.0077104,-0.0067722,-0.0074151,-0.0057659,-0.0076717,-0.0065001,-0.0063387,-0.0055807,-0.0048873,-0.010504,-0.011981,-0.0097077,-0.011509,-0.01621,-0.014925,-0.019135,-0.025509,-0.028192,-0.024827,-0.02571,-0.018296,-0.015431,-0.022946,-0.013091,-0.0092886,-0.00867,-0.0061053,-0.0073601,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.0011459,-0.02765,-0.022087,-0.021701,-0.025126,-7.6015e-05,-0.0047441,0.005398,0.0070213,0.0099467,9.7278e-06,-0.0033264,-0.0082552,-0.0097672,-0.012042,-0.013979,-0.01458,-0.0098714,-0.010045,-0.0079164,-0.0094113,-0.010079,-0.0088057,-0.0091229,-0.0072372,-0.009399,-0.0080113,-0.0080483,-0.0070246,-0.0065076,-0.012269,-0.013533,-0.011032,-0.013263,-0.018363,-0.016373,-0.0204,-0.027403,-0.028633,-0.025117,-0.024154,-0.01502,-0.013351,-0.021909,-0.0115,-0.0071849,-0.008229,-0.0023529,-0.0020926,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,0.00031747,-0.025018,-0.02188,-0.019068,-0.022182,0.0039979,-0.00089861,0.0058539,0.0074727,0.011567,0.0029954,-0.0013511,-0.0051853,-0.0068451,-0.0086969,-0.011744,-0.012341,-0.0070781,-0.0066598,-0.0040593,-0.0050486,-0.0068215,-0.006053,-0.0059612,-0.0042127,-0.0064043,-0.0050426,-0.0050256,-0.0040762,-0.0034953,-0.0092243,-0.0106,-0.0082659,-0.010978,-0.016129,-0.014046,-0.017699,-0.024235,-0.025786,-0.023351,-0.023422,-0.014514,-0.012068,-0.021651,-0.012737,-0.0073567,-0.0089546,-0.0034748,-0.0054646,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.00099519,-0.030774,-0.023962,-0.025023,-0.028098,-0.00014904,-0.0029614,0.0052591,0.0049985,0.010359,0.0023536,-0.00076776,-0.0034712,-0.0051427,-0.0071472,-0.010557,-0.01037,-0.005786,-0.0060945,-0.0036302,-0.0041162,-0.0056902,-0.0052628,-0.0053985,-0.0033965,-0.0055558,-0.0041023,-0.0040603,-0.0029649,-0.002579,-0.0076769,-0.0093853,-0.0075733,-0.0093416,-0.014307,-0.011523,-0.015901,-0.022197,-0.024667,-0.022749,-0.022724,-0.014243,-0.011261,-0.02042,-0.012593,-0.0080368,-0.0085866,-0.0052888,-0.009483,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.0019636,-0.03194,-0.023744,-0.027011,-0.029948,-0.00053758,-0.0015189,0.0058735,0.0035926,0.0080524,-0.0012573,-0.0045772,-0.0080404,-0.0086798,-0.01079,-0.014163,-0.01321,-0.0095404,-0.01001,-0.0070741,-0.0073164,-0.0084316,-0.0078705,-0.0079934,-0.0060999,-0.0080047,-0.0064321,-0.006221,-0.0051908,-0.0042994,-0.0095516,-0.011362,-0.0087651,-0.010997,-0.016384,-0.01195,-0.015404,-0.022412,-0.025108,-0.022125,-0.023127,-0.01441,-0.010693,-0.019649,-0.013369,-0.006619,-0.0088935,-0.0055543,-0.010184,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.0040302,-0.035728,-0.026076,-0.026349,-0.030347,-0.0034992,-0.0051789,0.0021059,0.0015791,0.0060854,-0.0046251,-0.0078467,-0.011457,-0.011023,-0.013252,-0.016609,-0.015472,-0.01251,-0.013673,-0.011342,-0.011076,-0.011713,-0.010766,-0.010531,-0.0088644,-0.010492,-0.0091124,-0.0086246,-0.0076649,-0.0069805,-0.012379,-0.013953,-0.011568,-0.014253,-0.018963,-0.014014,-0.017853,-0.025513,-0.02762,-0.024653,-0.026613,-0.016491,-0.013962,-0.023899,-0.015121,-0.0072607,-0.01001,-0.0048687,-0.010126,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.0013131,-0.032543,-0.020428,-0.022879,-0.026177,-0.0040022,-0.0067611,0.0020722,0.0031507,0.0088951,-0.00019191,-0.002106,-0.0063281,-0.0059719,-0.0077197,-0.010702,-0.0087456,-0.0057846,-0.0074723,-0.0050574,-0.0042551,-0.0048807,-0.004008,-0.0035562,-0.0021298,-0.0037761,-0.0025225,-0.0019937,-0.0012983,-0.00055248,-0.0061591,-0.0078596,-0.0052873,-0.0079129,-0.013187,-0.0091328,-0.013294,-0.021741,-0.024874,-0.021791,-0.023904,-0.01438,-0.011252,-0.020899,-0.013192,-0.0072011,-0.0072349,-0.00070666,-0.0089567,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.0076694,-0.03653,-0.022226,-0.02433,-0.026285,-0.0046585,-0.0069764,0.0023018,0.0049578,0.0085951,-0.00034088,-0.0022537,-0.0051683,-0.0055298,-0.0082779,-0.010221,-0.0079961,-0.0053943,-0.0063557,-0.0047298,-0.0045849,-0.0047178,-0.0042701,-0.004083,-0.0032168,-0.0048984,-0.0035158,-0.0029502,-0.0023511,-0.001404,-0.0068637,-0.0089653,-0.0061415,-0.0092477,-0.01441,-0.010015,-0.013635,-0.021669,-0.024819,-0.022897,-0.026016,-0.016531,-0.013346,-0.021598,-0.013254,-0.0078917,-0.0085579,-0.0025282,-0.013067,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.0068096,-0.037617,-0.026707,-0.027744,-0.030648,-0.007198,-0.011739,-0.00083228,0.0034906,0.0053873,-0.0032486,-0.0051947,-0.0067878,-0.0060224,-0.0085948,-0.011149,-0.0090909,-0.0065649,-0.0076957,-0.0069197,-0.0063986,-0.0060496,-0.0051833,-0.005119,-0.0050025,-0.0063855,-0.0054872,-0.004887,-0.004274,-0.0034611,-0.008266,-0.010541,-0.0077867,-0.011031,-0.015965,-0.010875,-0.013876,-0.021422,-0.024322,-0.021951,-0.026117,-0.017472,-0.012998,-0.021258,-0.014696,-0.010191,-0.0093406,-0.0057693,-0.015534,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.00089197,-0.031912,-0.022983,-0.023582,-0.026805,-0.0037264,-0.008847,0.001568,0.0057949,0.0072014,-0.0032315,-0.0059901,-0.0071574,-0.0065413,-0.0079829,-0.011421,-0.0094121,-0.0062182,-0.0074398,-0.0067852,-0.0064654,-0.0060685,-0.0047978,-0.0048177,-0.0043739,-0.0066251,-0.0058383,-0.0052047,-0.0046596,-0.0036213,-0.0080453,-0.010392,-0.0070274,-0.010746,-0.014692,-0.0089549,-0.011991,-0.017708,-0.019455,-0.018386,-0.02292,-0.015162,-0.011,-0.018958,-0.014195,-0.01017,-0.0080966,-0.0070118,-0.016338,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,-0.001018,-0.02619,-0.021077,-0.025805,-0.025759,-0.0012045,-0.006646,0.0052584,0.0092846,0.008682,-0.0016003,-0.004359,-0.0057602,-0.0063609,-0.0065433,-0.01181,-0.0088976,-0.0049725,-0.007208,-0.0062993,-0.006032,-0.0055548,-0.0046942,-0.0046758,-0.0038714,-0.0061044,-0.0052441,-0.0047145,-0.0041104,-0.0032308,-0.0076453,-0.010154,-0.0067008,-0.010924,-0.014666,-0.0096337,-0.012829,-0.019363,-0.022141,-0.020105,-0.025667,-0.016559,-0.01202,-0.019588,-0.013783,-0.0097302,-0.0098998,-0.0074731,-0.013477,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,0.0056892,-0.020206,-0.020758,-0.021911,-0.023703,-0.0004618,-0.0049792,0.0060501,0.011766,0.0082104,-0.0040987,-0.0069574,-0.011449,-0.010729,-0.012251,-0.016154,-0.015554,-0.011971,-0.014089,-0.012536,-0.01167,-0.011483,-0.01078,-0.01065,-0.0099244,-0.011819,-0.010956,-0.010544,-0.009621,-0.0089961,-0.013547,-0.015831,-0.01178,-0.015851,-0.020077,-0.014198,-0.016694,-0.023947,-0.024281,-0.02171,-0.028265,-0.016628,-0.012057,-0.020161,-0.014465,-0.0095007,-0.01185,-0.0053408,-0.0076557,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,0.00037061,-0.022114,-0.018571,-0.020667,-0.019598,0.0048216,-0.0023591,0.010089,0.017268,0.011517,-0.0005004,-0.0017823,-0.0063148,-0.0066064,-0.0068526,-0.01236,-0.012137,-0.0097694,-0.011722,-0.0095474,-0.0086663,-0.0086364,-0.0078725,-0.0077245,-0.0072294,-0.0088289,-0.0081087,-0.007676,-0.0066916,-0.006273,-0.01101,-0.013747,-0.0091094,-0.013338,-0.017454,-0.012676,-0.016071,-0.023443,-0.024929,-0.021732,-0.02926,-0.015829,-0.010245,-0.019598,-0.01398,-0.0091182,-0.013519,-0.0062474,-0.0056,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,0.0012698,-0.019985,-0.016347,-0.020917,-0.019563,0.0034608,-0.0021754,0.01174,0.016745,0.011132,0.0013538,-0.00014346,-0.0044774,-0.0064193,-0.0070049,-0.011811,-0.010565,-0.0084539,-0.010348,-0.0081995,-0.0087827,-0.0088063,-0.0075622,-0.0077034,-0.0068383,-0.0085244,-0.0081487,-0.0078946,-0.0068501,-0.0066899,-0.01158,-0.014043,-0.01024,-0.014037,-0.018118,-0.01363,-0.016473,-0.023291,-0.024256,-0.021326,-0.028016,-0.015153,-0.0088004,-0.017585,-0.012503,-0.0086751,-0.01281,-0.0052124,-0.0047944,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,0.0047123,-0.020464,-0.019331,-0.022812,-0.02095,4.7915e-05,-0.0076434,0.0060284,0.0098569,0.0029569,-0.0068548,-0.0075331,-0.012149,-0.012722,-0.014661,-0.019477,-0.017929,-0.015072,-0.016558,-0.014873,-0.015265,-0.014753,-0.013093,-0.012809,-0.012183,-0.013524,-0.012974,-0.012672,-0.011842,-0.011708,-0.016699,-0.018554,-0.015467,-0.01914,-0.021743,-0.017041,-0.019871,-0.026683,-0.027437,-0.02381,-0.030378,-0.017527,-0.011114,-0.020999,-0.017692,-0.013027,-0.016142,-0.0085207,-0.0049486,2500,-0.027246,0.014854,Inf +0.75325,-0.0061959,0,0.0054333,-0.019134,-0.019194,-0.019236,-0.022133,-0.0054851,-0.010256,0.0026054,0.0043503,-0.00040056,-0.011758,-0.010944,-0.016779,-0.017836,-0.020187,-0.025107,-0.022663,-0.020168,-0.021676,-0.019935,-0.02002,-0.019266,-0.017556,-0.017269,-0.016545,-0.017733,-0.017134,-0.016763,-0.015884,-0.015265,-0.020358,-0.02124,-0.018115,-0.022228,-0.024107,-0.018373,-0.020924,-0.027288,-0.027718,-0.024342,-0.031832,-0.018376,-0.012097,-0.021472,-0.018846,-0.013713,-0.017388,-0.0099708,-0.0061959,2500,-0.027246,0.014854,Inf diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/spiral_sim_fast_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/spiral_sim_fast_res.csv new file mode 100644 index 0000000..baad2fa --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/spiral_sim_fast_res.csv @@ -0,0 +1,50 @@ +0,0.30349,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,0.28511,0.32188,10 +0,0.30349,0,0.24378,0.30349,0.24896,0.22054,0.21944,0.19903,0.18915,0.18118,0.16494,0.15062,0.14034,0.13211,0.12851,0.12257,0.11761,0.11258,0.10908,0.10605,0.10468,0.10234,0.10336,0.1013,0.10018,0.099135,0.10027,0.09814,0.097968,0.097931,0.098184,0.10156,0.10253,0.10077,0.097418,0.099778,0.097231,0.09479,0.087557,0.090965,0.087201,0.090646,0.087567,0.083009,0.072478,0.076257,0.066286,0.057691,0.056768,0.060855,0.064634,53,0.28511,0.32188,10 +0,0.30349,0,0.18202,0.24311,0.22808,0.22098,0.2205,0.20616,0.19364,0.1945,0.18381,0.16619,0.15327,0.14275,0.13577,0.13479,0.12816,0.12151,0.11874,0.1146,0.11365,0.11263,0.11533,0.11261,0.11077,0.10936,0.10972,0.10799,0.10783,0.10785,0.10825,0.10911,0.11053,0.11026,0.10689,0.11034,0.1107,0.10736,0.1049,0.10975,0.10043,0.098489,0.092504,0.086572,0.07741,0.078742,0.072,0.06663,0.065752,0.067286,0.068683,53,0.28511,0.32188,10 +0,0.30349,0,0.15833,0.23459,0.23061,0.2198,0.21641,0.21053,0.20336,0.20182,0.19089,0.1714,0.15693,0.14749,0.14097,0.14213,0.13649,0.12883,0.12486,0.12002,0.11906,0.12044,0.12304,0.1199,0.11783,0.1162,0.11603,0.1137,0.11355,0.1136,0.11281,0.11246,0.1136,0.1147,0.11344,0.11664,0.11853,0.11767,0.11455,0.11373,0.10643,0.10717,0.10077,0.09353,0.085894,0.085782,0.076831,0.068764,0.067373,0.071118,0.074568,53,0.28511,0.32188,10 +0,0.30349,0,0.12524,0.18736,0.19044,0.18366,0.18478,0.1865,0.17949,0.17428,0.16796,0.14767,0.13795,0.12967,0.12147,0.12013,0.11592,0.11251,0.11064,0.10901,0.10865,0.10896,0.11029,0.1067,0.10661,0.10472,0.1042,0.10204,0.10179,0.1008,0.10034,0.10016,0.10095,0.10035,0.10075,0.10315,0.10332,0.099991,0.099482,0.10124,0.095788,0.096843,0.091473,0.087931,0.08012,0.079807,0.071728,0.064511,0.061652,0.063427,0.06499,53,0.28511,0.32188,10 +0,0.30349,0,0.10353,0.16375,0.16796,0.16082,0.16642,0.16429,0.15792,0.15255,0.14589,0.12476,0.11349,0.10607,0.10123,0.097948,0.092168,0.088213,0.085027,0.082159,0.086663,0.087895,0.090022,0.085985,0.085706,0.083548,0.082761,0.081408,0.081253,0.079442,0.079868,0.079757,0.080545,0.079764,0.079562,0.079605,0.079627,0.076311,0.076226,0.075699,0.071568,0.072637,0.070683,0.068115,0.060924,0.063718,0.057306,0.05132,0.049071,0.049139,0.049078,53,0.28511,0.32188,10 +0,0.30349,0,0.096609,0.15687,0.15485,0.1583,0.16315,0.16072,0.15127,0.14553,0.13649,0.11732,0.10454,0.09772,0.091282,0.088727,0.08604,0.080785,0.077874,0.07559,0.080761,0.081087,0.084422,0.080975,0.081072,0.080269,0.080738,0.080008,0.079597,0.077069,0.077964,0.079106,0.080334,0.079849,0.078963,0.078717,0.076537,0.074954,0.076452,0.074853,0.070901,0.072629,0.070729,0.070388,0.06125,0.062127,0.054154,0.050805,0.048534,0.046792,0.045011,53,0.28511,0.32188,10 +0,0.30349,0,0.082393,0.14599,0.14838,0.15884,0.16302,0.15696,0.14496,0.14371,0.14132,0.12591,0.11148,0.103,0.095055,0.092763,0.090044,0.08461,0.083983,0.084651,0.089672,0.089466,0.092854,0.089006,0.090012,0.0917,0.092965,0.09162,0.091217,0.088611,0.089568,0.091649,0.093522,0.093237,0.091938,0.091156,0.090059,0.089612,0.092107,0.091747,0.087368,0.090175,0.087785,0.084639,0.073972,0.076111,0.067306,0.063803,0.060918,0.058546,0.05619,53,0.28511,0.32188,10 +0,0.30349,0,0.079425,0.13389,0.13754,0.14771,0.16149,0.15552,0.14418,0.14667,0.14176,0.1264,0.11074,0.10189,0.092731,0.090518,0.086588,0.081854,0.080943,0.083164,0.089505,0.088649,0.092586,0.089017,0.090171,0.09281,0.095053,0.094168,0.092738,0.089739,0.090373,0.092651,0.094223,0.094428,0.094057,0.090632,0.090647,0.091381,0.094957,0.094375,0.09004,0.092228,0.089768,0.087037,0.077095,0.080635,0.071771,0.06866,0.066071,0.065186,0.063167,53,0.28511,0.32188,10 +0,0.30349,0,0.092954,0.14086,0.14602,0.1513,0.16091,0.15852,0.1463,0.14895,0.1419,0.12502,0.10816,0.09806,0.087788,0.086521,0.087501,0.081759,0.079967,0.083358,0.089479,0.088283,0.09264,0.088951,0.090296,0.092212,0.093705,0.09277,0.091411,0.088101,0.087522,0.089775,0.09168,0.090928,0.091286,0.088257,0.08848,0.090314,0.094951,0.095707,0.08972,0.091674,0.088105,0.084035,0.073887,0.077266,0.070358,0.06737,0.065278,0.065918,0.065356,53,0.28511,0.32188,10 +0,0.30349,0,0.090154,0.13335,0.14106,0.15111,0.15992,0.1551,0.1478,0.15046,0.14277,0.12431,0.10889,0.098771,0.087295,0.084796,0.089317,0.084528,0.082542,0.086842,0.092435,0.091112,0.095681,0.091679,0.09264,0.093917,0.094774,0.0941,0.091839,0.088437,0.087268,0.089682,0.091914,0.090343,0.089342,0.08719,0.08671,0.088878,0.092778,0.094148,0.089728,0.093055,0.090877,0.088248,0.078347,0.080529,0.075038,0.072297,0.069867,0.069261,0.067588,53,0.28511,0.32188,10 +0,0.30349,0,0.08337,0.1279,0.13493,0.14265,0.14964,0.14507,0.1362,0.13905,0.13019,0.11072,0.094256,0.083073,0.070625,0.067036,0.070445,0.066556,0.065359,0.06883,0.075418,0.074816,0.078856,0.076119,0.077146,0.078948,0.080352,0.079718,0.077962,0.075074,0.074186,0.076816,0.078494,0.077183,0.075945,0.072778,0.072012,0.072968,0.074676,0.076103,0.072752,0.075299,0.074146,0.072163,0.063229,0.06477,0.059974,0.05789,0.055996,0.055056,0.053972,53,0.28511,0.32188,10 +0,0.30349,0,0.077773,0.12425,0.12908,0.13767,0.14603,0.14168,0.1328,0.13411,0.12622,0.10543,0.08952,0.079563,0.069709,0.066565,0.070414,0.067055,0.065493,0.068851,0.074897,0.074901,0.079111,0.07595,0.077363,0.078954,0.08038,0.079684,0.077886,0.075046,0.073499,0.076004,0.077333,0.07529,0.073457,0.071022,0.070163,0.072059,0.07476,0.0773,0.074018,0.074754,0.072634,0.070799,0.063217,0.063661,0.058677,0.056597,0.054903,0.053548,0.052922,53,0.28511,0.32188,10 +0,0.30349,0,0.071877,0.12123,0.12829,0.13689,0.14854,0.14212,0.13305,0.13273,0.12435,0.10244,0.0855,0.075471,0.065398,0.06132,0.064869,0.061177,0.060267,0.063647,0.069127,0.069361,0.073567,0.070919,0.071916,0.074064,0.075731,0.074367,0.072616,0.069863,0.068439,0.070476,0.071616,0.069863,0.068729,0.067011,0.065283,0.066937,0.069935,0.071284,0.068069,0.067861,0.066039,0.065666,0.059531,0.06,0.055113,0.053121,0.051981,0.049969,0.048803,53,0.28511,0.32188,10 +0,0.30349,0,0.066867,0.1176,0.13032,0.13871,0.14821,0.14187,0.13118,0.1313,0.12161,0.099675,0.083413,0.073804,0.062765,0.057769,0.061283,0.058012,0.056458,0.059924,0.064912,0.064992,0.068813,0.066061,0.066991,0.068855,0.070251,0.068624,0.066421,0.063128,0.061651,0.06339,0.064846,0.063467,0.062533,0.059531,0.057227,0.05868,0.062706,0.063411,0.060519,0.06066,0.060163,0.059852,0.053824,0.05408,0.049653,0.048083,0.04695,0.04557,0.044215,53,0.28511,0.32188,10 +0,0.30349,0,0.070895,0.11707,0.12738,0.13561,0.14501,0.14021,0.13021,0.13075,0.11978,0.10044,0.084896,0.075176,0.063794,0.05791,0.061908,0.059216,0.057818,0.061591,0.067058,0.066985,0.070533,0.068325,0.068994,0.070586,0.071678,0.069761,0.067062,0.063509,0.0622,0.063226,0.064682,0.063415,0.063049,0.059642,0.057459,0.059356,0.063204,0.064828,0.062516,0.06299,0.06302,0.063694,0.058607,0.05867,0.054248,0.053575,0.053269,0.052652,0.052002,53,0.28511,0.32188,10 +0,0.30349,0,0.069951,0.11621,0.12913,0.13895,0.14773,0.14284,0.13292,0.13197,0.12104,0.10321,0.088077,0.078195,0.066708,0.060991,0.06634,0.0637,0.062501,0.065748,0.070958,0.070512,0.075438,0.072931,0.07335,0.074769,0.075723,0.073757,0.071389,0.067878,0.066964,0.067923,0.06915,0.068029,0.067736,0.064834,0.06243,0.064123,0.066637,0.067655,0.065617,0.066347,0.065677,0.066255,0.060712,0.060482,0.05701,0.055743,0.055674,0.055325,0.055508,53,0.28511,0.32188,10 +0,0.30349,0,0.070326,0.11875,0.13177,0.14133,0.14823,0.14268,0.13296,0.13529,0.12553,0.10775,0.093713,0.082874,0.072218,0.066561,0.071206,0.069051,0.068346,0.072358,0.077177,0.077437,0.082066,0.079548,0.079906,0.081173,0.082002,0.079982,0.077832,0.074503,0.073402,0.074461,0.075255,0.074359,0.073662,0.070968,0.069051,0.070103,0.071848,0.071813,0.069624,0.071112,0.071162,0.072474,0.066599,0.065922,0.062011,0.060058,0.059996,0.059585,0.059177,53,0.28511,0.32188,10 +0,0.30349,0,0.066841,0.11592,0.12768,0.13607,0.14345,0.13832,0.12998,0.1314,0.12197,0.10663,0.092633,0.082642,0.072756,0.067969,0.073185,0.071809,0.071465,0.075086,0.080626,0.08121,0.086384,0.083634,0.084214,0.085477,0.08631,0.084246,0.082307,0.079284,0.078232,0.079374,0.079848,0.079225,0.078332,0.075656,0.074148,0.074834,0.076111,0.07537,0.073814,0.074484,0.073348,0.073828,0.066999,0.06709,0.062846,0.06165,0.061135,0.061417,0.061652,53,0.28511,0.32188,10 +0,0.30349,0,0.064522,0.11295,0.12544,0.13392,0.14142,0.13553,0.12643,0.12795,0.11892,0.10296,0.089104,0.079587,0.070233,0.066835,0.072178,0.071007,0.071064,0.074624,0.079934,0.080699,0.086191,0.083709,0.084056,0.085407,0.086333,0.08423,0.08249,0.079555,0.078547,0.079793,0.079937,0.079487,0.078495,0.075733,0.074598,0.075088,0.076093,0.074879,0.073094,0.073235,0.071103,0.072309,0.06518,0.065578,0.06129,0.059353,0.059547,0.059873,0.060152,53,0.28511,0.32188,10 +0,0.30349,0,0.065276,0.11222,0.1238,0.1315,0.13839,0.13193,0.12223,0.12394,0.11444,0.099457,0.0851,0.076412,0.066605,0.062776,0.068122,0.067133,0.067524,0.071512,0.076613,0.077525,0.083051,0.080715,0.081257,0.082688,0.08378,0.08165,0.080015,0.077091,0.076181,0.077527,0.077565,0.077283,0.076235,0.073421,0.072431,0.072791,0.073599,0.072007,0.070036,0.069127,0.066843,0.06742,0.060394,0.060627,0.055797,0.054309,0.054824,0.055145,0.055494,53,0.28511,0.32188,10 +0,0.30349,0,0.065164,0.11117,0.12208,0.131,0.13831,0.13165,0.12228,0.1248,0.11614,0.10052,0.0875,0.079077,0.069936,0.066164,0.071619,0.070955,0.071276,0.075599,0.080755,0.081504,0.086885,0.084358,0.084782,0.086146,0.087185,0.084825,0.083182,0.080026,0.07888,0.079956,0.080092,0.07954,0.078243,0.075552,0.074353,0.075005,0.076123,0.074859,0.072132,0.071225,0.069301,0.069737,0.061951,0.062307,0.057378,0.056061,0.056967,0.057648,0.058331,53,0.28511,0.32188,10 +0,0.30349,0,0.065457,0.11047,0.12073,0.13126,0.13885,0.13331,0.12328,0.12527,0.11771,0.10235,0.089828,0.081972,0.072958,0.068836,0.074016,0.073411,0.073515,0.077777,0.082787,0.083392,0.08865,0.086196,0.086444,0.088004,0.089108,0.086552,0.084904,0.08169,0.080353,0.0812,0.081452,0.080694,0.078913,0.075848,0.074538,0.075079,0.076507,0.075167,0.072115,0.071525,0.069598,0.07008,0.062664,0.063403,0.058444,0.057055,0.058019,0.05874,0.059604,53,0.28511,0.32188,10 +0,0.30349,0,0.065779,0.10993,0.11962,0.13129,0.13895,0.13413,0.12398,0.12742,0.11995,0.10473,0.091777,0.083552,0.074192,0.069774,0.075204,0.074671,0.074844,0.07895,0.084175,0.085082,0.090267,0.087702,0.088076,0.089523,0.090514,0.087931,0.086118,0.082944,0.081627,0.082536,0.082817,0.081928,0.08011,0.076662,0.07514,0.075205,0.076278,0.074223,0.070917,0.069956,0.06841,0.069187,0.061952,0.063077,0.058462,0.057423,0.05853,0.05943,0.060388,53,0.28511,0.32188,10 +0,0.30349,0,0.06481,0.10867,0.11874,0.13005,0.138,0.13392,0.12507,0.12838,0.12123,0.10589,0.093007,0.084681,0.075169,0.070961,0.076455,0.075771,0.075808,0.080094,0.085504,0.086324,0.091438,0.088803,0.089118,0.090464,0.091354,0.088864,0.086886,0.083714,0.082431,0.083372,0.083709,0.082833,0.080943,0.077353,0.075687,0.075593,0.07663,0.074438,0.070892,0.070172,0.067903,0.068864,0.061731,0.062578,0.057457,0.056719,0.057954,0.058966,0.060003,53,0.28511,0.32188,10 +0,0.30349,0,0.064112,0.10861,0.11833,0.13036,0.138,0.13443,0.1265,0.12952,0.12258,0.10745,0.095109,0.086647,0.077081,0.072723,0.078326,0.07748,0.077669,0.081862,0.087291,0.088089,0.093159,0.090476,0.090907,0.092301,0.093248,0.090745,0.088637,0.085464,0.084209,0.085168,0.085534,0.084699,0.082854,0.079328,0.077736,0.077651,0.078614,0.076514,0.072856,0.072232,0.069301,0.070302,0.06302,0.063989,0.058587,0.057459,0.058771,0.059916,0.061075,53,0.28511,0.32188,10 +0,0.30349,0,0.064682,0.10963,0.11951,0.13229,0.13963,0.13599,0.12887,0.13168,0.12499,0.10972,0.097639,0.089035,0.079364,0.075335,0.080945,0.079993,0.080138,0.084277,0.089672,0.090441,0.095504,0.09281,0.093219,0.094592,0.095517,0.093006,0.090921,0.087742,0.08651,0.087467,0.087809,0.086909,0.085065,0.081588,0.080015,0.079956,0.080936,0.07885,0.074807,0.074247,0.070759,0.071791,0.06451,0.065506,0.060171,0.059064,0.060411,0.061572,0.062745,53,0.28511,0.32188,10 +0,0.30349,0,0.064527,0.1101,0.12036,0.13321,0.14067,0.13684,0.12941,0.13247,0.12573,0.11064,0.098577,0.089953,0.080266,0.076224,0.081657,0.08066,0.080744,0.085117,0.090482,0.091184,0.096238,0.093542,0.093902,0.095299,0.096255,0.093745,0.091702,0.088549,0.087317,0.088271,0.088634,0.087733,0.08596,0.082533,0.080748,0.08076,0.08193,0.079717,0.075216,0.074477,0.07083,0.071389,0.06416,0.065116,0.059819,0.058576,0.060074,0.061382,0.062696,53,0.28511,0.32188,10 +0,0.30349,0,0.064743,0.10995,0.12035,0.13331,0.14086,0.13694,0.12953,0.13279,0.12577,0.1106,0.098629,0.09015,0.080146,0.076111,0.08136,0.080302,0.080425,0.084827,0.09029,0.090942,0.096012,0.093322,0.093694,0.095154,0.096177,0.093748,0.091818,0.088665,0.087456,0.088399,0.088742,0.087841,0.086063,0.082723,0.08084,0.080964,0.082397,0.080178,0.075596,0.074781,0.071058,0.071451,0.064518,0.065783,0.060552,0.059202,0.060598,0.061811,0.063038,53,0.28511,0.32188,10 +0,0.30349,0,0.063955,0.10961,0.12075,0.1331,0.14084,0.13735,0.13012,0.13374,0.12684,0.11142,0.099467,0.090768,0.080593,0.076599,0.081768,0.080636,0.080413,0.084871,0.090375,0.090757,0.095856,0.093066,0.093506,0.094825,0.095774,0.093359,0.091388,0.088199,0.086983,0.087887,0.08825,0.087337,0.085679,0.082486,0.080563,0.080797,0.082303,0.080039,0.075315,0.074324,0.070449,0.07042,0.063602,0.06476,0.059767,0.058813,0.060083,0.06152,0.063081,53,0.28511,0.32188,10 +0,0.30349,0,0.063594,0.10984,0.12137,0.13287,0.14097,0.13782,0.13091,0.13492,0.12801,0.11284,0.10048,0.091552,0.081353,0.077305,0.082378,0.081184,0.080867,0.085472,0.090678,0.090749,0.095576,0.092656,0.09302,0.094241,0.094994,0.092658,0.090553,0.087317,0.086109,0.086951,0.087325,0.086289,0.084751,0.081719,0.079808,0.080154,0.081738,0.079439,0.074917,0.073786,0.070082,0.06991,0.063036,0.063973,0.059622,0.058432,0.059919,0.061531,0.063252,53,0.28511,0.32188,10 +0,0.30349,0,0.063078,0.10834,0.12106,0.13267,0.14026,0.13792,0.13018,0.13483,0.12734,0.11146,0.099773,0.090718,0.080627,0.076527,0.08117,0.079761,0.079155,0.083773,0.089154,0.08942,0.094375,0.090828,0.091124,0.091905,0.092488,0.090151,0.087983,0.084651,0.083417,0.084107,0.084363,0.083201,0.081677,0.078827,0.076951,0.077457,0.079238,0.077194,0.072684,0.071865,0.068203,0.068016,0.061686,0.062708,0.059191,0.057961,0.059405,0.060676,0.061902,53,0.28511,0.32188,10 +0,0.30349,0,0.065279,0.10883,0.11998,0.13274,0.14125,0.13976,0.13242,0.13737,0.12966,0.11298,0.10003,0.090264,0.079998,0.075022,0.079093,0.078164,0.077794,0.081918,0.087517,0.087542,0.092379,0.08852,0.088968,0.089415,0.089783,0.087504,0.085487,0.082058,0.08087,0.081415,0.081525,0.080203,0.078385,0.075917,0.073939,0.074388,0.076166,0.074209,0.06964,0.06884,0.065111,0.064825,0.059327,0.059756,0.056095,0.054328,0.056207,0.057426,0.058603,53,0.28511,0.32188,10 +0,0.30349,0,0.063589,0.10891,0.1197,0.13155,0.13975,0.13937,0.13197,0.13522,0.12851,0.11201,0.098641,0.088355,0.075925,0.070852,0.075407,0.074055,0.073878,0.077502,0.082888,0.083121,0.088072,0.083917,0.084336,0.084894,0.085351,0.083008,0.081016,0.0778,0.077013,0.077551,0.077738,0.076846,0.075383,0.072943,0.070573,0.070557,0.071828,0.069369,0.064293,0.063154,0.059567,0.059274,0.054204,0.054372,0.051013,0.049589,0.050906,0.052134,0.053773,53,0.28511,0.32188,10 +0,0.30349,0,0.06003,0.10547,0.1159,0.12796,0.13755,0.13535,0.12871,0.13205,0.12417,0.1081,0.095771,0.086382,0.074562,0.069165,0.074236,0.071884,0.07191,0.07544,0.081076,0.081522,0.086576,0.082298,0.082902,0.083595,0.084104,0.081894,0.080029,0.076828,0.076533,0.076958,0.077176,0.077016,0.07614,0.073482,0.070638,0.070059,0.071085,0.067984,0.062568,0.060734,0.057451,0.056425,0.051414,0.05186,0.047858,0.045774,0.047618,0.048712,0.049724,53,0.28511,0.32188,10 +0,0.30349,0,0.059108,0.10631,0.11603,0.12937,0.13916,0.13659,0.13108,0.13315,0.12581,0.11076,0.098838,0.090291,0.079293,0.074097,0.07972,0.077036,0.076237,0.079416,0.08502,0.084329,0.089333,0.085358,0.085921,0.086763,0.087366,0.084966,0.082963,0.079816,0.079396,0.079705,0.079901,0.079612,0.079037,0.07592,0.072984,0.072982,0.074634,0.071877,0.065581,0.063906,0.060005,0.05928,0.054026,0.054335,0.050047,0.047723,0.048625,0.049563,0.050431,53,0.28511,0.32188,10 +0,0.30349,0,0.053809,0.10414,0.11342,0.12468,0.13346,0.12971,0.12517,0.12701,0.121,0.10565,0.094471,0.086901,0.076852,0.07135,0.076977,0.074947,0.073669,0.0765,0.081865,0.08125,0.086277,0.082424,0.083183,0.084028,0.084731,0.082647,0.080795,0.077667,0.077279,0.077815,0.077915,0.077852,0.077236,0.073946,0.070726,0.070354,0.071368,0.067977,0.061048,0.058706,0.054717,0.054056,0.0492,0.049992,0.046137,0.04385,0.044817,0.045055,0.045275,53,0.28511,0.32188,10 +0,0.30349,0,0.048591,0.098959,0.10812,0.1215,0.13059,0.12855,0.12432,0.12743,0.122,0.10802,0.098061,0.091567,0.081952,0.077411,0.082543,0.079859,0.077911,0.080488,0.085485,0.084222,0.089499,0.08604,0.0866,0.087794,0.088836,0.086277,0.084594,0.081122,0.080648,0.081015,0.080988,0.08075,0.080477,0.077768,0.075506,0.076563,0.079121,0.077157,0.07104,0.068868,0.064553,0.063767,0.057501,0.057544,0.052365,0.049629,0.050181,0.050306,0.050556,53,0.28511,0.32188,10 +0,0.30349,0,0.046851,0.092546,0.10142,0.11706,0.12801,0.1277,0.12506,0.12775,0.12136,0.10888,0.098113,0.08929,0.077781,0.071686,0.076239,0.072172,0.070523,0.073134,0.078471,0.077618,0.083055,0.07886,0.079798,0.080567,0.081226,0.079061,0.077416,0.074,0.074225,0.074944,0.075264,0.075749,0.076075,0.073784,0.070923,0.071237,0.072979,0.07023,0.063365,0.061046,0.057169,0.055517,0.05007,0.050102,0.045558,0.043949,0.044308,0.044883,0.04542,53,0.28511,0.32188,10 +0,0.30349,0,0.037987,0.088483,0.097197,0.11502,0.1216,0.12346,0.12052,0.12483,0.12011,0.10932,0.097652,0.088086,0.076051,0.071157,0.074994,0.070502,0.069162,0.071813,0.077258,0.076842,0.08234,0.078697,0.08003,0.08112,0.082095,0.08029,0.079234,0.075955,0.07687,0.077865,0.078737,0.079895,0.080692,0.078715,0.07611,0.076861,0.07868,0.075821,0.068931,0.066048,0.06217,0.059015,0.052241,0.052743,0.046911,0.04567,0.045986,0.04694,0.047791,53,0.28511,0.32188,10 +0,0.30349,0,0.042848,0.093935,0.10395,0.12303,0.12821,0.13136,0.12642,0.13003,0.12219,0.10938,0.099355,0.088777,0.078222,0.073647,0.076974,0.073562,0.07265,0.075946,0.081046,0.08115,0.086952,0.08381,0.085425,0.08675,0.08795,0.085319,0.083699,0.079416,0.079813,0.081003,0.081697,0.082457,0.083355,0.082225,0.079859,0.082042,0.085955,0.085219,0.078173,0.07539,0.069947,0.066735,0.058401,0.058095,0.051371,0.049104,0.048814,0.048285,0.047763,53,0.28511,0.32188,10 +0,0.30349,0,0.047384,0.098591,0.10674,0.12464,0.12893,0.12956,0.12266,0.12636,0.1195,0.10565,0.097438,0.085706,0.076789,0.073541,0.077184,0.074902,0.073991,0.077906,0.082726,0.083355,0.089408,0.086806,0.088691,0.090021,0.091223,0.088284,0.086362,0.081603,0.081476,0.082417,0.082654,0.082982,0.083904,0.082963,0.08078,0.084226,0.08946,0.090506,0.083454,0.080803,0.073943,0.070736,0.06103,0.059672,0.051653,0.050022,0.04961,0.04843,0.047269,53,0.28511,0.32188,10 +0,0.30349,0,0.045209,0.094432,0.10231,0.11947,0.12329,0.12388,0.11454,0.12008,0.1136,0.10193,0.092945,0.081916,0.07268,0.069562,0.074119,0.071181,0.070597,0.073202,0.07843,0.079552,0.085833,0.083096,0.085243,0.086753,0.087436,0.08401,0.081396,0.075813,0.075139,0.074943,0.074736,0.07467,0.076001,0.075249,0.073191,0.076847,0.08231,0.083833,0.077295,0.075131,0.068753,0.065898,0.057164,0.055041,0.047842,0.04527,0.043617,0.042221,0.040868,53,0.28511,0.32188,10 +0,0.30349,0,0.04009,0.088325,0.095682,0.11241,0.1187,0.11961,0.11114,0.11672,0.11046,0.09948,0.092266,0.082971,0.074553,0.071684,0.076077,0.073742,0.073986,0.076419,0.08159,0.082536,0.08835,0.086143,0.087871,0.088443,0.088247,0.085046,0.082729,0.077309,0.075786,0.075678,0.07494,0.074396,0.075946,0.075241,0.073239,0.077847,0.084696,0.087332,0.080737,0.078656,0.070985,0.068132,0.058144,0.054557,0.0462,0.044276,0.042158,0.040383,0.038688,53,0.28511,0.32188,10 +0,0.30349,0,0.044637,0.088786,0.095963,0.1116,0.1156,0.11652,0.11042,0.11551,0.10781,0.095892,0.08892,0.078903,0.07088,0.066824,0.071137,0.069945,0.070069,0.073138,0.078689,0.079443,0.08547,0.083421,0.084973,0.08444,0.084259,0.081147,0.078341,0.073115,0.07159,0.071367,0.070294,0.069344,0.070398,0.069654,0.067595,0.071858,0.078385,0.08104,0.074792,0.072879,0.066037,0.063308,0.054154,0.050172,0.042505,0.040191,0.037475,0.03452,0.031733,53,0.28511,0.32188,10 +0,0.30349,0,0.04901,0.086119,0.0907,0.10858,0.11054,0.11206,0.10833,0.11322,0.10595,0.093007,0.086462,0.077306,0.068568,0.062666,0.067081,0.066067,0.06588,0.069562,0.074413,0.075062,0.081284,0.079648,0.081478,0.081151,0.081167,0.078232,0.07564,0.070605,0.069074,0.068856,0.067667,0.066333,0.067017,0.065944,0.064041,0.067067,0.072842,0.075115,0.069045,0.06696,0.060358,0.057505,0.049038,0.044608,0.037522,0.034779,0.031571,0.02889,0.026342,53,0.28511,0.32188,10 +0,0.30349,0,0.045828,0.079149,0.084409,0.10188,0.10639,0.10838,0.10681,0.11193,0.10656,0.093379,0.087752,0.079396,0.071126,0.064965,0.069449,0.068012,0.06807,0.072342,0.077148,0.078071,0.084483,0.08293,0.084885,0.084816,0.084978,0.082242,0.079729,0.07504,0.073605,0.073401,0.072276,0.070744,0.070542,0.069118,0.06728,0.070125,0.076098,0.078398,0.071962,0.069382,0.061539,0.05827,0.048614,0.043571,0.03536,0.033014,0.029195,0.025975,0.022941,53,0.28511,0.32188,10 +0,0.30349,0,0.042794,0.078916,0.083362,0.097434,0.10006,0.1003,0.098258,0.10516,0.10046,0.088659,0.083298,0.076713,0.068441,0.062956,0.067754,0.066876,0.067122,0.071409,0.076187,0.076967,0.083545,0.08217,0.084024,0.084135,0.084573,0.082034,0.079611,0.075076,0.073584,0.073185,0.071912,0.070335,0.069838,0.068209,0.065522,0.067636,0.072636,0.07357,0.066803,0.063753,0.056691,0.052913,0.04464,0.039326,0.031839,0.02822,0.023706,0.019858,0.016254,53,0.28511,0.32188,10 +0,0.30349,0,0.047285,0.083796,0.089766,0.10246,0.10143,0.098992,0.097825,0.10439,0.10009,0.087481,0.083892,0.077333,0.068957,0.06459,0.070296,0.069568,0.068918,0.073317,0.077719,0.078668,0.08446,0.083245,0.085079,0.085352,0.085957,0.083004,0.079886,0.074771,0.072708,0.072117,0.070462,0.06856,0.068251,0.066389,0.062864,0.065308,0.070591,0.07213,0.06481,0.062457,0.054928,0.051788,0.043329,0.038664,0.031449,0.027927,0.023261,0.019208,0.015416,53,0.28511,0.32188,10 +0,0.30349,0,0.045321,0.076163,0.082236,0.09491,0.094144,0.094766,0.094817,0.099835,0.097913,0.086905,0.083704,0.077115,0.070073,0.066491,0.072287,0.071951,0.071986,0.076431,0.081363,0.082944,0.089016,0.08828,0.090392,0.091017,0.091761,0.089274,0.086412,0.082093,0.080482,0.080743,0.079829,0.078122,0.0775,0.074578,0.071335,0.073177,0.076525,0.076119,0.068559,0.064951,0.056534,0.053347,0.043358,0.038042,0.029384,0.025391,0.020225,0.015679,0.011446,53,0.28511,0.32188,10 diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/square_sim__fast_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/square_sim__fast_res.csv new file mode 100644 index 0000000..67538c9 --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/square_sim__fast_res.csv @@ -0,0 +1,50 @@ +0.80319,-0.011596,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,-0.029471,0.040345,0.028794,0.020678,0.0082736,-0.0019827,0.00691,-0.0014421,-0.0024536,-0.0095861,-0.016169,-0.013792,-0.011084,-0.011088,-0.0095943,-0.0091471,-0.0090858,0.0016599,0.0022857,-0.00074176,0.00011739,0.0023521,0.0018653,0.00069135,0.0017499,0.001277,0.0011112,0.0013875,0.0022672,-1.8257e-06,0.0015224,-0.0018383,0.000306,0.002188,1.6929e-05,7.3552e-05,-0.011221,-0.010784,-0.019017,-0.015924,-0.01879,-0.017489,-0.010369,-0.0085714,-0.0060171,-0.0039841,-0.011071,-0.029117,-0.019325,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,-0.030337,0.020295,0.028962,0.025551,0.0081279,-0.006272,0.0045845,0.0090065,0.0026897,-0.0075289,-0.0036889,-0.0064253,-0.008264,-0.011893,-0.0069196,-0.0093936,-0.0082186,0.0012579,0.0069229,0.0063221,0.0068674,0.0070245,0.011918,0.011799,0.011831,0.011167,0.012946,0.01334,0.014556,0.012801,0.012995,0.0077055,0.0095017,0.011662,0.010664,0.013451,-0.0017055,0.0021225,-0.002278,0.0036208,0.0052378,0.0098624,0.014975,0.014033,0.020125,0.021217,0.01532,-0.0022208,0.0032678,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,-0.03104,0.0097581,0.014872,0.015681,-0.0040358,-0.02031,-0.012807,-0.013229,-0.015752,-0.0077393,-0.0082085,-0.011559,-0.013901,-0.018127,-0.013184,-0.015384,-0.0086296,0.0014839,0.0067502,0.0065599,0.0084438,0.010177,0.01362,0.014539,0.01401,0.011861,0.013084,0.013548,0.014238,0.013412,0.01437,0.011044,0.012868,0.014617,0.015809,0.017913,0.0081844,0.0139,0.010189,0.015877,0.0076461,0.011399,0.014841,0.014684,0.019292,0.018289,0.017849,0.0028536,0.01131,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.049135,0.057534,0.058686,0.052029,0.02693,0.011648,0.015316,0.010591,0.015782,0.024479,0.023432,0.017067,0.01575,0.0094517,0.011619,0.0077326,0.013436,0.023577,0.031317,0.032593,0.03327,0.034499,0.036787,0.038112,0.037985,0.036571,0.037605,0.038096,0.039026,0.037484,0.038114,0.03518,0.037597,0.038919,0.041316,0.04312,0.029271,0.033144,0.031778,0.038809,0.031478,0.03439,0.034562,0.036786,0.043113,0.035675,0.037805,0.021112,0.028376,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.033177,0.049349,0.061262,0.052785,0.025134,0.0072706,0.018669,0.014401,0.019575,0.030632,0.026909,0.023895,0.022579,0.014699,0.014707,0.010404,0.014066,0.023307,0.032704,0.03472,0.034941,0.039064,0.041262,0.04196,0.042332,0.04086,0.041733,0.041276,0.042454,0.041553,0.042027,0.040031,0.04303,0.043535,0.046253,0.049442,0.038561,0.041443,0.039603,0.042933,0.03842,0.033476,0.032825,0.035278,0.044015,0.037665,0.036062,0.019634,0.025567,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.032576,0.059052,0.063331,0.060902,0.030149,0.0094245,0.021011,0.015813,0.019753,0.031398,0.027611,0.025774,0.022528,0.017763,0.015982,0.011328,0.013375,0.021982,0.030576,0.03138,0.032873,0.035968,0.038592,0.038789,0.038765,0.037207,0.037762,0.037871,0.039303,0.038863,0.038832,0.036105,0.037929,0.037969,0.040728,0.044179,0.03509,0.038153,0.038433,0.038029,0.033952,0.025132,0.023609,0.028933,0.036331,0.031071,0.027246,0.010803,0.013396,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.0368,0.054018,0.061721,0.055263,0.028758,0.0088654,0.024252,0.016604,0.01785,0.026618,0.025532,0.024008,0.019171,0.012984,0.011379,0.0066416,0.0082362,0.016039,0.023139,0.022906,0.023497,0.026696,0.028602,0.028524,0.028428,0.026875,0.028177,0.02782,0.029348,0.029322,0.029823,0.026759,0.029221,0.027964,0.031954,0.034442,0.023698,0.027393,0.027602,0.02306,0.018634,0.007347,0.0085816,0.013147,0.018353,0.016637,0.016423,0.0018686,0.0023581,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.031217,0.04395,0.048113,0.05021,0.032253,0.01255,0.026222,0.016438,0.018085,0.024363,0.022793,0.021227,0.016028,0.0085838,0.0055888,0.0024205,0.0040871,0.010494,0.016317,0.016937,0.017338,0.020492,0.02185,0.021655,0.021366,0.019736,0.02061,0.020362,0.021174,0.020053,0.020744,0.018242,0.020718,0.019587,0.022112,0.025075,0.015188,0.016314,0.018401,0.014366,0.0079263,-0.00069818,-0.00059967,0.0015531,0.0059473,0.0071415,0.0079314,-0.0060437,-0.0047738,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.047894,0.05771,0.05586,0.055828,0.041164,0.018683,0.033502,0.02344,0.022773,0.032299,0.031413,0.028028,0.022782,0.014047,0.01152,0.0073042,0.0088445,0.014185,0.020872,0.021078,0.022023,0.025701,0.026553,0.026014,0.025455,0.023743,0.023735,0.023541,0.024562,0.023796,0.024859,0.022878,0.025382,0.025153,0.027318,0.02846,0.016571,0.019065,0.021165,0.016279,0.0098855,0.0019874,0.0027453,0.0034567,0.0044295,0.0077131,0.010653,-0.004851,-0.0015176,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.06034,0.066419,0.062324,0.058329,0.040938,0.021448,0.033652,0.023535,0.026048,0.033584,0.03405,0.03033,0.023781,0.016454,0.013928,0.010534,0.011072,0.015447,0.022276,0.021727,0.023227,0.026298,0.026687,0.026324,0.026006,0.02523,0.025179,0.025055,0.026272,0.025792,0.027204,0.025146,0.026212,0.023764,0.024943,0.026181,0.014478,0.018305,0.02176,0.013239,0.0073594,-0.0010341,-0.0014638,-0.0045271,-0.001231,0.0026173,0.0078614,-0.0080171,-0.0042951,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.057659,0.060168,0.06246,0.055528,0.037735,0.019287,0.035349,0.025332,0.025972,0.032989,0.031897,0.029049,0.023489,0.017212,0.013576,0.010956,0.011285,0.014777,0.020742,0.020788,0.022787,0.025439,0.026055,0.025403,0.024849,0.02399,0.023767,0.023596,0.025002,0.024653,0.02577,0.023243,0.024796,0.022619,0.023867,0.024681,0.014365,0.019361,0.024002,0.016869,0.010664,0.0023842,0.0019448,0.0004873,0.0033535,0.0057887,0.0099351,-0.0058384,-0.0028179,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.062733,0.05935,0.058573,0.049437,0.031862,0.011809,0.027536,0.018848,0.022387,0.029372,0.027995,0.023887,0.018237,0.010913,0.0073417,0.0056617,0.0051587,0.0085026,0.01631,0.015688,0.017418,0.019565,0.020273,0.019429,0.018976,0.018446,0.018361,0.018086,0.019116,0.018432,0.018974,0.016566,0.01827,0.016067,0.016707,0.016713,0.007752,0.012739,0.018699,0.010537,0.0058613,-0.00085891,-0.00087941,-0.0042939,-0.0016736,0.001404,0.0063574,-0.008956,-0.0059067,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.061913,0.059465,0.058275,0.050326,0.030615,0.0088324,0.022867,0.018891,0.022382,0.030867,0.032978,0.028421,0.021692,0.015052,0.01053,0.0080519,0.0083422,0.01099,0.018116,0.017916,0.019504,0.02162,0.021973,0.021246,0.020431,0.019813,0.019693,0.019641,0.020833,0.020367,0.020873,0.018827,0.020307,0.017538,0.017907,0.017656,0.0089234,0.013757,0.018754,0.010247,0.0060046,-0.0016763,-0.0020952,-0.0039757,-0.0020918,0.002475,0.0056076,-0.0093673,-0.006218,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.056947,0.055757,0.052504,0.045472,0.024012,0.0033036,0.016088,0.012244,0.014575,0.023928,0.024937,0.022312,0.016886,0.0092943,0.003851,0.00065477,0.00025126,0.0039576,0.011146,0.010833,0.012445,0.014748,0.015528,0.015208,0.014336,0.014052,0.01371,0.013719,0.014742,0.014544,0.015361,0.013666,0.015209,0.013101,0.013671,0.012852,0.0038124,0.0089004,0.014062,0.0060442,0.0029955,-0.0035005,-0.0026924,-0.0067186,-0.0055835,-0.0030861,0.0018806,-0.014145,-0.0092524,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.052161,0.052042,0.049122,0.041897,0.018758,-0.0033388,0.011058,0.0059449,0.0093463,0.017568,0.017533,0.013966,0.0082903,0.0016012,-0.0036807,-0.007061,-0.0074539,-0.0043687,0.0022744,0.002032,0.0031896,0.0051012,0.0058152,0.0051787,0.0041874,0.004075,0.0038792,0.0039019,0.0049444,0.0046544,0.0053386,0.0029676,0.0039224,0.0022002,0.0036065,0.0036519,-0.0043344,-0.00032036,0.0048123,-0.0020038,-0.0037992,-0.011326,-0.010147,-0.013546,-0.010752,-0.0076469,-0.002358,-0.018552,-0.013882,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.051195,0.04868,0.047202,0.040193,0.016909,-0.0052948,0.0078244,0.0029398,0.0064999,0.014536,0.016429,0.012898,0.0063793,0.0019931,-0.0040556,-0.0080609,-0.0085341,-0.0053003,0.00083475,0.00011676,0.0015262,0.0030937,0.0042522,0.0036757,0.0027456,0.0026669,0.0023596,0.0023424,0.0035263,0.0034163,0.0041333,0.0020531,0.0030076,0.00010882,0.0021493,0.001765,-0.0066407,-0.002293,0.001123,-0.0052636,-0.0060234,-0.013857,-0.012826,-0.015732,-0.012595,-0.010194,-0.0034813,-0.019362,-0.014787,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.047082,0.043601,0.044159,0.03573,0.014473,-0.009012,0.0037165,-0.00021535,0.0032383,0.013151,0.016329,0.01268,0.007134,0.0019874,-0.0047807,-0.0093692,-0.010397,-0.0076698,-0.001994,-0.0029073,-0.0018635,-1.3924e-06,0.00090497,0.00030829,-0.00048614,-0.00063611,-0.00094715,-0.0010121,-0.00016361,-9.8333e-05,-0.00012968,-0.0021128,-0.00082397,-0.0039001,-0.0014994,-0.0012266,-0.0088501,-0.0053176,-0.0027444,-0.0082163,-0.0096112,-0.016446,-0.016726,-0.021225,-0.017515,-0.014942,-0.0067561,-0.022536,-0.01662,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.043337,0.038976,0.038298,0.028934,0.010012,-0.011703,0.0025909,-0.0018135,0.0020418,0.012527,0.017358,0.013736,0.008556,0.0031058,-0.0027722,-0.0079,-0.0089727,-0.0066904,-0.0011806,-0.0024847,-0.0015644,0.00024023,0.0012578,0.00064947,-5.9648e-05,-0.00027079,-0.00060392,-0.00048279,0.00042192,0.00068893,0.00058766,-0.001834,-0.00047541,-0.004082,-0.0022032,-0.0020778,-0.0096778,-0.0054297,-0.0021351,-0.0068907,-0.0088589,-0.015846,-0.016115,-0.021051,-0.016854,-0.013334,-0.0052799,-0.021398,-0.015781,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.04214,0.037709,0.035476,0.024922,0.0048664,-0.017198,-0.0023575,-0.0055814,-0.0025236,0.0071802,0.012132,0.0085489,0.0033236,-0.0018711,-0.0076032,-0.012671,-0.014215,-0.012094,-0.0069666,-0.0080943,-0.0074955,-0.0056471,-0.004241,-0.0047436,-0.0055842,-0.0057751,-0.006286,-0.0063096,-0.0052753,-0.0049848,-0.0057376,-0.0079113,-0.0065898,-0.0097298,-0.0072827,-0.0072484,-0.014141,-0.010696,-0.0078869,-0.013015,-0.014814,-0.021535,-0.023789,-0.028237,-0.024396,-0.020269,-0.012076,-0.027771,-0.021695,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.042143,0.035768,0.033399,0.023151,0.0042616,-0.017041,-0.0015351,-0.0057228,-0.0026775,0.0074398,0.013133,0.0096552,0.003769,-0.0014611,-0.0070657,-0.012115,-0.01378,-0.012042,-0.0065768,-0.0077058,-0.0069862,-0.0053719,-0.0038349,-0.0041178,-0.0050802,-0.0053253,-0.0058583,-0.0057592,-0.0046894,-0.0044168,-0.0050165,-0.0070009,-0.005953,-0.009299,-0.0064069,-0.0063599,-0.013939,-0.0098785,-0.0064527,-0.011865,-0.013027,-0.020083,-0.022441,-0.027735,-0.02304,-0.018802,-0.0097313,-0.025576,-0.019787,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.042487,0.035946,0.032112,0.023799,0.0057161,-0.015645,0.0010577,-0.002694,0.00037285,0.010626,0.016146,0.012962,0.008386,0.0033899,-0.0013715,-0.0061725,-0.0078238,-0.0059723,-0.00065279,-0.0020633,-0.0014211,0.00025709,0.0016271,0.001178,0.00010368,-7.4979e-05,-0.00063072,-0.0005586,0.00022416,0.00048265,5.0176e-06,-0.0022389,-0.0010079,-0.0046099,-0.0013983,-0.0010079,-0.0082364,-0.0050914,-0.0026569,-0.0082037,-0.009306,-0.015888,-0.017766,-0.022559,-0.018157,-0.013412,-0.0053847,-0.021874,-0.016605,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.042086,0.03689,0.031691,0.022359,0.0061385,-0.016117,0.00039071,-0.0032977,-0.00030941,0.0099629,0.016016,0.012722,0.0076699,0.0022207,-0.0027167,-0.0078677,-0.0093499,-0.0075653,-0.0025185,-0.0041132,-0.0035417,-0.0020151,-0.00079902,-0.0012195,-0.0022024,-0.0023781,-0.0030412,-0.0030076,-0.0020687,-0.0018172,-0.0024991,-0.0047133,-0.0037158,-0.0071903,-0.0042017,-0.0037242,-0.010897,-0.0078909,-0.0049051,-0.010542,-0.012072,-0.019574,-0.021233,-0.027159,-0.022297,-0.017212,-0.008237,-0.024918,-0.019312,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.040243,0.037342,0.032555,0.022305,0.0071612,-0.015647,0.0017573,-0.0020032,0.0017185,0.012136,0.018032,0.01555,0.01055,0.005687,0.00075857,-0.0045158,-0.0060465,-0.0044716,0.00037958,-0.00067813,5.1699e-06,0.0015816,0.0027433,0.0022367,0.0011866,0.0011153,0.00050351,0.00054863,0.0015349,0.0017439,0.0010647,-0.0013783,-0.00026343,-0.0035559,-0.00057144,0.00012521,-0.0071765,-0.0043392,-0.001484,-0.0068544,-0.0083978,-0.015632,-0.01702,-0.022673,-0.017544,-0.01267,-0.0044725,-0.02147,-0.016404,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.039525,0.03689,0.031952,0.022387,0.0065874,-0.016184,0.0012999,-0.0029146,0.00041863,0.010924,0.017471,0.014976,0.0096604,0.0044966,-0.00053842,-0.0055943,-0.0073448,-0.0053946,-0.00063135,-0.0015915,-0.00094969,0.00063109,0.001741,0.0012061,9.4843e-05,-4.1507e-06,-0.00062221,-0.00052022,0.00052144,0.00077264,0.00017327,-0.0024574,-0.0012137,-0.0046062,-0.0013808,-0.00043554,-0.0077334,-0.0045785,-0.0019933,-0.007385,-0.0094555,-0.017091,-0.018339,-0.02445,-0.019238,-0.014315,-0.0061177,-0.023065,-0.018656,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.044607,0.042453,0.036156,0.025744,0.010573,-0.012651,0.0043137,-0.00010866,0.0035497,0.013738,0.020408,0.018339,0.013132,0.0077215,0.0026569,-0.002588,-0.0039648,-0.0020893,0.0025494,0.0014733,0.0020249,0.0035247,0.0045637,0.0039724,0.0029774,0.0028249,0.0021967,0.0021576,0.0030411,0.0033301,0.0027906,0.00013582,0.0014197,-0.0018585,0.0012431,0.0021215,-0.0053202,-0.001999,0.00016773,-0.0056036,-0.0074736,-0.014921,-0.016485,-0.022377,-0.016947,-0.012232,-0.0042912,-0.021391,-0.016744,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.04427,0.042745,0.036284,0.025977,0.011923,-0.011715,0.0049822,0.00029542,0.0037255,0.013724,0.020212,0.018694,0.013581,0.0081652,0.0031846,-0.0019789,-0.0030521,-0.00099514,0.0037113,0.00287,0.0033565,0.004859,0.0058493,0.0052186,0.004192,0.0040266,0.0034099,0.0033766,0.0042883,0.004584,0.0038916,0.0012528,0.0025939,-0.00068715,0.0023682,0.0031942,-0.0041404,-0.00091516,0.0013883,-0.0041713,-0.0059471,-0.013311,-0.014803,-0.020895,-0.015392,-0.010856,-0.0034106,-0.020624,-0.015594,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.044915,0.044291,0.037569,0.026808,0.012927,-0.011404,0.0052144,0.0004806,0.0038596,0.014175,0.020613,0.018738,0.013599,0.0082083,0.003314,-0.0021657,-0.0032192,-0.0011112,0.003731,0.0026458,0.0032109,0.0046252,0.0056042,0.0049671,0.0039439,0.0037871,0.0031167,0.0030356,0.0039492,0.0043081,0.0036264,0.00097869,0.0023624,-0.00089402,0.0020601,0.0026859,-0.0048466,-0.0015762,0.00066882,-0.0046977,-0.0066396,-0.013764,-0.015244,-0.021505,-0.01593,-0.011517,-0.0039918,-0.021192,-0.015902,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.043911,0.044519,0.037875,0.026668,0.012891,-0.011232,0.005398,0.00072047,0.0039842,0.014319,0.020783,0.018947,0.013877,0.0085286,0.0036739,-0.0018057,-0.0028331,-0.0006648,0.003979,0.0029799,0.0035393,0.0049592,0.0058376,0.0052169,0.0042294,0.0040762,0.003474,0.0033907,0.0042783,0.0046361,0.0038292,0.0011095,0.0023898,-0.00088113,0.0019788,0.0024751,-0.0051628,-0.001924,0.00029159,-0.0046306,-0.0062597,-0.013419,-0.014614,-0.020359,-0.014175,-0.010044,-0.0026749,-0.019754,-0.014988,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.044225,0.045103,0.038597,0.026783,0.013189,-0.010965,0.0057382,0.00095578,0.0040313,0.014443,0.020985,0.01924,0.014311,0.0090215,0.0042515,-0.0012691,-0.0022512,0.00011112,0.0047919,0.0038743,0.0045272,0.0059783,0.0068817,0.0062717,0.0053077,0.0050076,0.0044085,0.0043142,0.0051866,0.0055574,0.004709,0.0019645,0.0032068,8.9788e-05,0.0030151,0.0035666,-0.0039025,-0.00093592,0.0013389,-0.003683,-0.0052423,-0.012508,-0.013797,-0.019671,-0.013495,-0.0092967,-0.0021437,-0.019085,-0.014479,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.042919,0.044459,0.036977,0.024412,0.011277,-0.012462,0.0045336,-0.00015104,0.0031902,0.013453,0.020197,0.018569,0.013706,0.0085872,0.0039938,-0.001458,-0.0024519,-2.337e-05,0.0047442,0.0039272,0.0046575,0.0061737,0.0071316,0.0065144,0.0055061,0.0053041,0.0047007,0.0046328,0.0054512,0.0058752,0.0049792,0.0021845,0.0033524,0.00039406,0.0033525,0.004251,-0.003068,-0.00013698,0.0022933,-0.0029207,-0.0042818,-0.011753,-0.013271,-0.019383,-0.013487,-0.009325,-0.0015178,-0.018366,-0.013718,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.042587,0.042096,0.03531,0.022983,0.0096884,-0.013436,0.0039117,-0.00038696,0.0032747,0.013232,0.019584,0.018241,0.012868,0.0075561,0.0029296,-0.0024214,-0.0036189,-0.001225,0.0036585,0.0029655,0.0037329,0.0053333,0.006093,0.0055235,0.0044271,0.004237,0.0034994,0.0034221,0.0042029,0.0045816,0.0036315,0.00084555,0.0022057,-0.00087576,0.001924,0.0030991,-0.0039805,-0.0012668,0.0011919,-0.0037455,-0.0053356,-0.01234,-0.013887,-0.020259,-0.014667,-0.01051,-0.0028847,-0.019638,-0.014749,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.041768,0.041141,0.03536,0.0232,0.009765,-0.013797,0.0039845,0.00020164,0.0034861,0.013286,0.019782,0.017812,0.012297,0.007337,0.0030384,-0.0020349,-0.0029918,-0.00039952,0.0046486,0.0040735,0.0045825,0.0062512,0.0069334,0.0063939,0.0053179,0.0051585,0.0043566,0.0042836,0.0050821,0.0055847,0.0045437,0.001661,0.002879,-0.00039638,0.0024559,0.0037758,-0.003578,-0.0012108,0.0009,-0.0036705,-0.0046528,-0.012007,-0.013533,-0.019321,-0.013154,-0.0093307,-0.0019867,-0.018685,-0.014356,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.041822,0.042346,0.035845,0.023504,0.010945,-0.011796,0.0056302,0.0017867,0.0054315,0.014473,0.020508,0.018104,0.012764,0.0079303,0.0040276,-0.00086481,-0.0015322,0.0013025,0.0065507,0.0061054,0.0067304,0.0083042,0.0091139,0.0086701,0.0076269,0.0074603,0.0066864,0.0065951,0.0073085,0.0078924,0.0068823,0.003942,0.0051771,0.0020848,0.0045916,0.0058155,-0.0012114,0.0013531,0.0035273,-0.00090751,-0.0024039,-0.0098136,-0.011253,-0.017279,-0.011294,-0.0077528,0.00075482,-0.016556,-0.012629,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.044258,0.045434,0.038075,0.026772,0.013429,-0.0098849,0.0076966,0.0024117,0.0052802,0.014925,0.021543,0.019757,0.01344,0.0087591,0.0045349,-0.0011322,-0.0015871,0.0015614,0.0070729,0.0069307,0.0074687,0.0092418,0.0099707,0.0092162,0.0082854,0.0079365,0.0071951,0.0071067,0.0077917,0.0082575,0.0071069,0.0041099,0.0051229,0.0024654,0.0050135,0.0065495,-0.00029561,0.002064,0.0039433,-0.00021313,-0.00046737,-0.0084736,-0.0088438,-0.014545,-0.0084371,-0.0058163,0.0016886,-0.015434,-0.011812,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.042947,0.044352,0.036948,0.027262,0.01527,-0.010742,0.0076897,0.0033922,0.0070689,0.017403,0.023865,0.022771,0.016415,0.012367,0.0078475,0.0021971,0.0021879,0.0043873,0.010214,0.010432,0.010122,0.011708,0.012509,0.011963,0.01089,0.010602,0.0098851,0.0097626,0.010686,0.011006,0.010123,0.0075936,0.0084092,0.0053533,0.0088951,0.010707,0.0036371,0.0055668,0.0077263,0.0028578,0.0025271,-0.0062006,-0.0073826,-0.013926,-0.0079537,-0.0052525,0.00185,-0.015171,-0.010293,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.042999,0.046523,0.040759,0.032342,0.021602,-0.0045446,0.014544,0.011218,0.015166,0.024128,0.029706,0.02655,0.020975,0.016234,0.011605,0.0055206,0.0052754,0.00793,0.014123,0.014283,0.013994,0.015775,0.016526,0.015973,0.014766,0.014329,0.01364,0.013408,0.014434,0.014586,0.013535,0.0109,0.011794,0.0082815,0.011595,0.013746,0.0064698,0.0089366,0.010245,0.0054365,0.0042292,-0.0035636,-0.0045334,-0.012107,-0.0053918,-0.003206,0.0036144,-0.014361,-0.0095302,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.046936,0.045809,0.042493,0.03338,0.024541,-0.0020169,0.015274,0.013323,0.018371,0.028289,0.032086,0.029968,0.023173,0.017007,0.013281,0.0067896,0.0064568,0.0090485,0.015222,0.015339,0.015207,0.016878,0.017908,0.01728,0.016051,0.015639,0.014989,0.014774,0.016532,0.016487,0.015414,0.012578,0.013094,0.010007,0.01389,0.015272,0.0079232,0.010382,0.013489,0.0077465,0.0055037,-0.0024416,-0.0044844,-0.011592,-0.004998,-0.0029453,0.0048366,-0.012387,-0.0080646,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.051276,0.048014,0.046916,0.033307,0.018117,-0.0080631,0.010748,0.00844,0.010008,0.021074,0.026075,0.025206,0.018891,0.013209,0.009971,0.0043338,0.0036902,0.0053015,0.011003,0.010302,0.010077,0.010687,0.01164,0.011185,0.010098,0.0097715,0.0091203,0.0088699,0.010639,0.010848,0.010406,0.0075563,0.0079863,0.0060553,0.0099915,0.010655,0.003989,0.0061457,0.0083222,0.0032522,0.0010441,-0.0062616,-0.0082198,-0.014302,-0.0090397,-0.0059846,0.00038559,-0.015575,-0.010977,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.040665,0.035961,0.039258,0.02926,0.010914,-0.012146,0.0066606,0.0049012,0.0080539,0.018778,0.024233,0.022116,0.016123,0.011672,0.0095254,0.0034186,0.0018623,0.0028907,0.007951,0.0072396,0.0075056,0.0080249,0.0092435,0.0085606,0.0074054,0.0077213,0.0069682,0.0073639,0.0095392,0.0095195,0.009932,0.007682,0.0076697,0.0051026,0.0093618,0.0091654,0.001705,0.0046539,0.0085127,0.0024292,-0.00090857,-0.0072909,-0.010445,-0.017722,-0.012494,-0.0095694,-0.0006291,-0.014785,-0.0083783,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.045632,0.042474,0.043982,0.033401,0.01592,-0.012886,0.0013385,-0.0039443,-0.0011119,0.0097023,0.016507,0.015885,0.011256,0.0062419,0.0039985,-0.001064,-0.0036443,-0.0019373,0.0027128,0.0026345,0.0027964,0.0037421,0.0047694,0.0042432,0.0031903,0.0037457,0.0033691,0.0039781,0.0059161,0.0056752,0.005778,0.0038368,0.0041092,0.0016277,0.0064045,0.0053752,-0.0028405,0.00059398,0.0061718,0.0004922,-0.0026376,-0.010079,-0.013065,-0.019799,-0.013473,-0.01124,-0.00024991,-0.013017,-0.0063039,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.050857,0.049375,0.043416,0.03597,0.016759,-0.014115,-0.0019858,-0.010174,-0.0066442,0.0054938,0.013662,0.014561,0.011377,0.0077553,0.0044768,-0.00084074,-0.0024283,-0.00080104,0.0031358,0.0027235,0.0030152,0.0037585,0.0047544,0.0044683,0.0036933,0.0043399,0.003993,0.0045442,0.0065996,0.0061023,0.0058447,0.0035461,0.0044099,0.0030161,0.0067009,0.0047221,-0.0043693,-0.0013155,0.0052868,0.00030307,-0.0028811,-0.0096202,-0.014005,-0.022156,-0.01611,-0.014025,-0.0016389,-0.013546,-0.0047889,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.040933,0.042923,0.03737,0.033635,0.014261,-0.015632,-0.0018097,-0.012228,-0.0069665,0.0047678,0.013208,0.013983,0.012221,0.0091723,0.0047809,-0.0030829,-0.0036921,-0.0013069,0.0025019,0.0023235,0.0031864,0.0044152,0.004515,0.0039955,0.0034949,0.0041087,0.0037564,0.0042635,0.0060306,0.0052893,0.0051703,0.0030501,0.0033814,0.0012389,0.0048181,0.0041501,-0.0046293,-0.0014869,0.0050857,0.00042957,-0.0012094,-0.0079098,-0.010523,-0.01816,-0.011216,-0.010018,0.0020882,-0.0089122,-0.00046147,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.046425,0.04676,0.03853,0.034549,0.011892,-0.019298,-0.0061634,-0.018673,-0.015539,-0.0057047,0.0041495,0.0039171,0.0011899,-0.00043692,-0.0034835,-0.010056,-0.010536,-0.0080717,-0.0043145,-0.0037909,-0.0027416,-0.0018401,-0.0019602,-0.0032312,-0.0034702,-0.0027736,-0.003168,-0.0027334,-0.0010745,-0.0014811,-0.0015886,-0.0039418,-0.0040833,-0.0055631,-0.0029325,-0.0033744,-0.012854,-0.0083209,-0.0014264,-0.0050152,-0.0066756,-0.012306,-0.014561,-0.023473,-0.01501,-0.013633,-0.00027494,-0.010882,-0.00059312,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.045448,0.049847,0.037816,0.026654,0.0049651,-0.021916,-0.0069875,-0.01681,-0.011907,-0.0034178,0.0076562,0.0079,0.0066713,0.0050135,0.0020372,-0.0053109,-0.0060349,-0.0050097,-0.0018978,-0.0018017,-0.00070059,-0.00041639,-7.3242e-05,-0.0016276,-0.003088,-0.0025176,-0.0030879,-0.0030299,-0.0016712,-0.0015694,-0.0015119,-0.0032244,-0.0035717,-0.0058642,-0.0035078,-0.0041165,-0.011416,-0.005963,-0.00084507,-0.0045208,-0.0063748,-0.013331,-0.017065,-0.024947,-0.01869,-0.017359,-0.0050664,-0.014052,-0.0043425,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.050889,0.056828,0.03935,0.02428,0.0032514,-0.0197,-0.0055723,-0.015437,-0.0088013,0.0011114,0.01037,0.010881,0.0085698,0.0036499,-0.0010509,-0.0090783,-0.010049,-0.0094002,-0.0090608,-0.0085766,-0.0080961,-0.0083903,-0.0081741,-0.0093159,-0.010924,-0.010267,-0.011028,-0.01103,-0.010115,-0.010023,-0.010287,-0.012097,-0.012033,-0.013974,-0.011911,-0.013452,-0.019643,-0.015611,-0.010265,-0.013045,-0.014459,-0.020393,-0.023239,-0.030043,-0.023653,-0.022233,-0.010387,-0.017885,-0.0080753,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.049247,0.041242,0.030474,0.02047,0.0016609,-0.017225,-0.0071846,-0.016139,-0.012277,-0.0059193,0.0047945,0.0040532,0.0034501,0.00029086,-0.0061881,-0.013664,-0.014579,-0.013006,-0.014494,-0.013214,-0.01209,-0.012616,-0.012758,-0.013963,-0.015196,-0.014448,-0.0145,-0.0145,-0.013687,-0.013644,-0.014295,-0.016489,-0.015684,-0.018438,-0.015386,-0.01655,-0.023725,-0.021267,-0.01758,-0.0179,-0.0164,-0.019938,-0.020362,-0.024356,-0.01595,-0.01484,-0.0037908,-0.0112,-0.0045115,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.055558,0.049883,0.034427,0.019793,0.00012429,-0.022319,-0.012844,-0.021989,-0.021751,-0.016275,-0.0054065,-0.0063631,-0.0052662,-0.0084854,-0.014362,-0.020285,-0.024066,-0.022892,-0.023389,-0.022557,-0.021854,-0.022611,-0.023196,-0.023968,-0.02485,-0.024722,-0.024715,-0.024914,-0.024214,-0.023943,-0.02421,-0.026216,-0.025813,-0.027787,-0.024915,-0.027093,-0.032893,-0.029894,-0.025642,-0.023656,-0.022442,-0.023391,-0.025513,-0.028482,-0.019688,-0.020592,-0.012036,-0.017758,-0.010582,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.054085,0.053996,0.038942,0.025682,0.010894,-0.013469,-0.0043267,-0.015799,-0.016209,-0.010471,-0.0013432,-9.1654e-05,0.00088635,-0.0039976,-0.0094892,-0.013551,-0.017277,-0.017125,-0.017538,-0.017164,-0.018272,-0.018203,-0.019719,-0.021001,-0.022015,-0.02173,-0.021663,-0.021948,-0.021613,-0.02176,-0.022272,-0.024196,-0.024567,-0.026611,-0.025299,-0.025995,-0.029338,-0.023667,-0.020626,-0.020877,-0.019715,-0.022804,-0.024721,-0.024958,-0.01754,-0.016843,-0.0097691,-0.014433,-0.010721,2500,-0.043218,0.020026,Inf +0.80319,-0.011596,0,0.040047,0.043316,0.035845,0.024568,0.012283,-0.006472,0.0001385,-0.010361,-0.01071,-0.0049291,0.0039467,0.0050375,0.0041101,-0.00024765,-0.0055494,-0.0077457,-0.0096898,-0.01003,-0.009167,-0.010493,-0.011635,-0.011783,-0.01374,-0.015172,-0.016954,-0.016665,-0.017045,-0.017489,-0.017514,-0.018129,-0.018244,-0.020478,-0.020428,-0.022676,-0.022968,-0.022277,-0.023246,-0.017764,-0.015409,-0.017898,-0.016967,-0.022188,-0.023732,-0.023292,-0.017378,-0.017622,-0.011291,-0.014583,-0.011596,2500,-0.043218,0.020026,Inf diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/square_sim_fast_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/square_sim_fast_res.csv new file mode 100644 index 0000000..f029ed7 --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/square_sim_fast_res.csv @@ -0,0 +1,50 @@ +0.40373,0.0070139,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.027241,-0.024776,-0.013142,0.0032728,0.003429,-9.3177e-05,0.027526,0.024559,0.038763,0.030783,0.033225,0.046564,0.043129,0.040921,0.035579,0.040415,0.036137,0.036631,0.035274,0.032173,0.035842,0.037865,0.039768,0.038867,0.038245,0.038,0.036762,0.037681,0.037285,0.036336,0.037054,0.035148,0.03775,0.037626,0.038164,0.034187,0.037821,0.036086,0.040259,0.044429,0.04871,0.052917,0.042815,0.044353,0.048789,0.049233,0.053779,0.0542,0.058988,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.038604,-0.035308,-0.022667,-0.0028027,-0.0098842,-0.0084891,0.013711,0.0088004,0.02172,0.035669,0.038523,0.04372,0.041825,0.047516,0.044843,0.048047,0.044504,0.045822,0.042352,0.042513,0.043244,0.044248,0.047001,0.04788,0.047096,0.04713,0.046391,0.047722,0.047346,0.047332,0.04934,0.04846,0.052166,0.054054,0.056564,0.051794,0.051858,0.046273,0.052306,0.053966,0.057536,0.061778,0.057908,0.062316,0.068628,0.072011,0.078335,0.08172,0.084353,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0086725,-0.0064415,0.0025482,0.014168,0.01932,0.031521,0.049412,0.0434,0.053451,0.065572,0.063684,0.069426,0.064288,0.075442,0.077235,0.077128,0.076328,0.077874,0.073062,0.071522,0.074087,0.074969,0.07727,0.077536,0.077179,0.07715,0.076357,0.077898,0.078211,0.074562,0.077226,0.075273,0.077409,0.080401,0.082398,0.077554,0.07689,0.070948,0.07561,0.077272,0.080306,0.086022,0.08135,0.085191,0.086124,0.088974,0.096744,0.09778,0.10272,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.020305,0.00026293,0.0096954,0.021082,0.033806,0.038511,0.052867,0.047006,0.057045,0.063911,0.061205,0.06503,0.062872,0.072219,0.072868,0.07052,0.07179,0.073688,0.067822,0.065978,0.068961,0.069828,0.071926,0.072555,0.072528,0.072464,0.071361,0.07059,0.071108,0.068032,0.070623,0.067998,0.071259,0.075347,0.077329,0.074872,0.068853,0.064195,0.068378,0.069241,0.072855,0.080504,0.079228,0.082983,0.084452,0.087861,0.092523,0.096574,0.10007,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,0.00099489,0.014805,0.035875,0.038046,0.043389,0.050518,0.05899,0.052583,0.061163,0.066697,0.068599,0.073057,0.07684,0.087057,0.085485,0.083329,0.082779,0.082872,0.076187,0.073299,0.076331,0.07703,0.078842,0.079676,0.079954,0.079885,0.078697,0.078273,0.079267,0.074155,0.077331,0.073674,0.07647,0.080466,0.08235,0.080572,0.076603,0.073886,0.079268,0.076233,0.076877,0.084463,0.081624,0.087135,0.085477,0.090797,0.094426,0.10053,0.10391,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0086984,0.0082769,0.023218,0.025384,0.034088,0.040553,0.048822,0.043326,0.048631,0.053331,0.055435,0.05741,0.058942,0.070134,0.067862,0.065449,0.065512,0.064182,0.060002,0.057002,0.062441,0.063324,0.064923,0.065772,0.065936,0.0658,0.064817,0.064855,0.064223,0.060359,0.063327,0.058174,0.060365,0.064605,0.065689,0.064784,0.060894,0.058616,0.064349,0.062192,0.063307,0.070486,0.067699,0.070464,0.07169,0.076706,0.077837,0.084298,0.087893,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0020302,0.0065591,0.016368,0.015045,0.027976,0.031294,0.039889,0.035146,0.040655,0.043035,0.04309,0.046006,0.049245,0.059922,0.057655,0.055266,0.053926,0.051366,0.047253,0.044537,0.05006,0.050206,0.05166,0.052392,0.052556,0.052356,0.05101,0.051456,0.051064,0.04685,0.050054,0.04497,0.047493,0.050744,0.053103,0.051621,0.046414,0.045146,0.049581,0.046079,0.048085,0.055638,0.050454,0.053899,0.055844,0.061321,0.063,0.070105,0.071852,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,0.00031629,0.0088233,0.013694,0.011153,0.020909,0.023453,0.032478,0.029471,0.03793,0.038247,0.036477,0.041723,0.045132,0.054016,0.051604,0.048617,0.048308,0.044664,0.040735,0.038761,0.043365,0.043362,0.04483,0.045531,0.045505,0.04529,0.044069,0.044556,0.043664,0.039945,0.041954,0.037856,0.040115,0.041299,0.042453,0.040237,0.035884,0.036088,0.042047,0.038519,0.041274,0.047514,0.03874,0.042602,0.043821,0.048457,0.052727,0.060194,0.060904,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.001971,0.0019902,0.007095,0.0050465,0.01637,0.01817,0.024812,0.022062,0.028455,0.028198,0.026497,0.032195,0.034067,0.043035,0.03937,0.036537,0.037017,0.03437,0.031243,0.029498,0.034051,0.033844,0.03482,0.035219,0.035019,0.034792,0.033688,0.033839,0.032399,0.028964,0.03034,0.027184,0.027616,0.026449,0.027857,0.023627,0.019408,0.021085,0.026683,0.022011,0.024338,0.031511,0.022105,0.028384,0.02636,0.031612,0.038522,0.045721,0.049503,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0085801,0.00084668,0.0064955,0.0045618,0.014981,0.014363,0.020986,0.01882,0.023285,0.02558,0.027403,0.033113,0.034685,0.043566,0.03872,0.034782,0.035375,0.032858,0.029955,0.029177,0.033991,0.033297,0.03486,0.03501,0.034718,0.034416,0.033399,0.033815,0.031966,0.027607,0.027937,0.024499,0.025711,0.023972,0.025269,0.017913,0.013205,0.015219,0.019898,0.015794,0.01707,0.025839,0.014162,0.022276,0.022142,0.025918,0.032582,0.041871,0.046483,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.014635,-0.00097465,0.0015683,-0.0001921,0.011768,0.011201,0.020168,0.018628,0.021342,0.022063,0.022451,0.027972,0.028286,0.037175,0.031767,0.027605,0.028329,0.028144,0.025424,0.023912,0.028087,0.026912,0.029085,0.028998,0.028671,0.028355,0.02731,0.027634,0.025451,0.021233,0.021404,0.018671,0.019369,0.015482,0.017075,0.0098168,0.0045023,0.0064965,0.011628,0.0089956,0.0094949,0.017911,0.0062129,0.014963,0.014951,0.020611,0.027846,0.036097,0.041219,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.012752,-0.0036986,-0.0039324,-0.0022615,0.010634,0.0079979,0.021384,0.020801,0.023881,0.023015,0.021977,0.027001,0.027188,0.034838,0.028412,0.02434,0.02484,0.025385,0.023588,0.022008,0.02644,0.024837,0.026967,0.026666,0.026473,0.026064,0.024972,0.025201,0.023391,0.019691,0.020319,0.016611,0.015937,0.011962,0.013934,0.0059469,-3.9284e-05,0.0017777,0.0080446,0.0059233,0.0063519,0.014837,0.0037313,0.013905,0.013632,0.019843,0.025399,0.03537,0.040129,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0032712,0.006193,0.006536,0.0045137,0.017109,0.012075,0.028813,0.026351,0.028839,0.028267,0.02812,0.032951,0.033076,0.040496,0.033046,0.028032,0.028459,0.028839,0.02678,0.025062,0.029399,0.028359,0.031024,0.030749,0.030706,0.030281,0.029189,0.029614,0.028093,0.024709,0.025348,0.021897,0.020032,0.016675,0.018781,0.011056,0.0043176,0.0047571,0.010904,0.0072344,0.0087324,0.017315,0.0074125,0.017055,0.016971,0.02435,0.029569,0.040808,0.045184,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.00047819,0.0091281,0.012999,0.0095126,0.019543,0.016522,0.031241,0.028256,0.029261,0.028797,0.028639,0.03443,0.034753,0.04243,0.035813,0.03307,0.033165,0.033761,0.031885,0.030137,0.034265,0.033779,0.03616,0.035911,0.035905,0.035467,0.034275,0.034839,0.033178,0.029602,0.029928,0.026342,0.024994,0.022202,0.02448,0.017418,0.010513,0.009814,0.015281,0.01249,0.014851,0.022074,0.013204,0.02372,0.024517,0.031139,0.035759,0.047988,0.049654,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,0.011661,0.025649,0.031771,0.024004,0.035354,0.035049,0.047184,0.043914,0.044703,0.045125,0.044402,0.051253,0.052376,0.058902,0.053864,0.051686,0.051063,0.050949,0.048508,0.047432,0.051057,0.050744,0.053434,0.053129,0.053021,0.052505,0.05123,0.051884,0.050382,0.046359,0.046914,0.043003,0.041954,0.039515,0.041586,0.033583,0.026595,0.0256,0.031541,0.027019,0.028991,0.035629,0.02729,0.038252,0.039487,0.046508,0.050211,0.062892,0.065009,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,0.010769,0.022066,0.031143,0.024558,0.03411,0.032326,0.046483,0.047224,0.049881,0.051983,0.050131,0.055945,0.057975,0.065332,0.06038,0.058403,0.057959,0.057217,0.054239,0.052687,0.057114,0.056523,0.059265,0.059316,0.059112,0.058631,0.057466,0.058256,0.056763,0.0524,0.052561,0.047914,0.046833,0.044849,0.047103,0.039628,0.032534,0.032111,0.037232,0.032515,0.035181,0.041447,0.033869,0.043584,0.045567,0.053311,0.056732,0.068812,0.070538,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,0.0071259,0.021022,0.030778,0.025977,0.033955,0.031845,0.046293,0.050247,0.054045,0.057171,0.055471,0.060419,0.063662,0.070255,0.066245,0.064582,0.064204,0.062908,0.059439,0.058407,0.062912,0.062362,0.065068,0.065137,0.064864,0.06437,0.063128,0.064044,0.062721,0.058017,0.057984,0.052332,0.051606,0.049449,0.051053,0.044009,0.037384,0.037467,0.042612,0.037631,0.040918,0.046868,0.03895,0.048343,0.050278,0.057985,0.061289,0.072133,0.074796,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,0.0060758,0.018037,0.027777,0.023732,0.030597,0.027488,0.04443,0.048343,0.052546,0.05551,0.055158,0.059367,0.061929,0.069988,0.066441,0.065039,0.064136,0.062351,0.05934,0.058492,0.062674,0.062109,0.06479,0.064859,0.064508,0.064063,0.062921,0.063821,0.062448,0.057998,0.057944,0.052287,0.051083,0.048327,0.050388,0.042564,0.036459,0.037095,0.042165,0.037838,0.040361,0.046362,0.03708,0.047377,0.048731,0.05586,0.058604,0.068678,0.071531,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,0.0030717,0.01714,0.028079,0.022583,0.028356,0.025299,0.042026,0.045102,0.048556,0.05083,0.050808,0.055464,0.057928,0.06546,0.061363,0.059444,0.058047,0.05612,0.053075,0.052376,0.056472,0.055775,0.058648,0.058665,0.058239,0.05784,0.056651,0.057543,0.055868,0.051703,0.051398,0.04579,0.044508,0.041381,0.043344,0.034693,0.028546,0.029305,0.034258,0.02992,0.033313,0.03927,0.029635,0.039913,0.041373,0.04799,0.051958,0.062587,0.064668,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,0.00037409,0.015764,0.028865,0.022859,0.02757,0.024075,0.04011,0.044029,0.047021,0.05029,0.049625,0.05469,0.057713,0.065089,0.060452,0.058743,0.056897,0.054552,0.0516,0.050567,0.054899,0.054301,0.057114,0.057026,0.056604,0.056194,0.054974,0.055995,0.054279,0.050244,0.049836,0.044104,0.042769,0.038936,0.040381,0.032104,0.026069,0.027328,0.031643,0.02789,0.03194,0.037887,0.02802,0.038359,0.040131,0.046291,0.051117,0.061093,0.063274,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0012384,0.012948,0.025193,0.022289,0.027384,0.022969,0.038297,0.041524,0.043892,0.046591,0.045776,0.051026,0.054331,0.062305,0.057197,0.055656,0.053999,0.051276,0.048424,0.047415,0.051518,0.050828,0.053492,0.053304,0.052819,0.052382,0.051189,0.052127,0.050374,0.046556,0.045834,0.040377,0.039117,0.034771,0.036352,0.027398,0.021803,0.022419,0.02734,0.023433,0.027039,0.03329,0.022311,0.032975,0.034418,0.040709,0.045539,0.056073,0.058302,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0033058,0.013118,0.026235,0.023234,0.027449,0.026252,0.041488,0.044012,0.048921,0.0516,0.050204,0.055444,0.058291,0.065861,0.060656,0.058737,0.057971,0.054925,0.052109,0.051155,0.055503,0.054864,0.057478,0.057287,0.056831,0.056392,0.055206,0.05609,0.054305,0.05042,0.049721,0.044394,0.04319,0.03877,0.040394,0.031616,0.025924,0.026402,0.031639,0.027993,0.031911,0.038478,0.027703,0.037844,0.03957,0.045656,0.050458,0.060761,0.062778,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0034207,0.012916,0.02525,0.024006,0.027529,0.02574,0.040539,0.042617,0.04825,0.05183,0.050915,0.05652,0.059032,0.06672,0.06119,0.059363,0.059014,0.055717,0.053167,0.052347,0.056685,0.05621,0.058746,0.058534,0.058038,0.057593,0.056421,0.057232,0.055427,0.051535,0.05097,0.045766,0.04438,0.039461,0.040802,0.031838,0.026203,0.026686,0.031716,0.028371,0.03214,0.038761,0.02749,0.037531,0.038982,0.045218,0.050282,0.060224,0.062381,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0039087,0.013668,0.026505,0.02462,0.029866,0.027528,0.042095,0.044564,0.051284,0.054529,0.053308,0.058662,0.060934,0.068736,0.063103,0.061269,0.060721,0.057254,0.054626,0.05368,0.058052,0.057502,0.059988,0.059909,0.059387,0.058993,0.057875,0.058697,0.056944,0.052989,0.052337,0.04721,0.045793,0.040974,0.042443,0.033414,0.02789,0.0282,0.033411,0.030221,0.033555,0.040087,0.028446,0.038354,0.039595,0.045744,0.050998,0.061249,0.063335,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0045902,0.012676,0.026342,0.02412,0.029112,0.026541,0.040827,0.043474,0.050018,0.053221,0.051837,0.05722,0.059433,0.067535,0.061843,0.060308,0.059636,0.056051,0.053428,0.052386,0.056944,0.056586,0.059027,0.058978,0.058451,0.058054,0.056946,0.057788,0.056083,0.052144,0.051573,0.046481,0.045072,0.040201,0.041623,0.032539,0.027003,0.027432,0.032811,0.029786,0.032583,0.039333,0.027395,0.037332,0.038424,0.044563,0.049915,0.060275,0.062361,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0041503,0.012776,0.026254,0.024232,0.02937,0.026656,0.041614,0.044137,0.050576,0.053682,0.052236,0.05786,0.059867,0.067905,0.062207,0.060786,0.060059,0.056474,0.053804,0.052604,0.057132,0.056847,0.059272,0.05921,0.058701,0.058305,0.057198,0.057992,0.056366,0.052434,0.051783,0.046718,0.045374,0.040484,0.041949,0.032852,0.0275,0.02776,0.033201,0.030229,0.032954,0.039447,0.027304,0.03731,0.03833,0.044568,0.04998,0.060448,0.062633,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0035195,0.013634,0.026992,0.024785,0.029508,0.027567,0.042483,0.044697,0.051073,0.05418,0.053223,0.058827,0.060836,0.068867,0.063314,0.061896,0.061174,0.05746,0.054805,0.053617,0.058146,0.057872,0.060309,0.060252,0.059735,0.059358,0.058255,0.059056,0.057403,0.053459,0.052746,0.047684,0.04632,0.041573,0.043078,0.034075,0.028698,0.028924,0.034385,0.031518,0.034425,0.040607,0.028552,0.038343,0.039421,0.045479,0.050822,0.061207,0.063388,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0029272,0.012793,0.026072,0.023246,0.028391,0.025699,0.040859,0.042827,0.0488,0.051855,0.051327,0.056733,0.058878,0.066433,0.060622,0.059318,0.058578,0.054725,0.051813,0.050438,0.055016,0.054656,0.057043,0.057021,0.056553,0.05618,0.055077,0.055866,0.054335,0.050557,0.049878,0.044903,0.043515,0.038746,0.04017,0.031159,0.025991,0.026313,0.031608,0.028883,0.031293,0.037431,0.025409,0.035174,0.036253,0.042302,0.047663,0.058156,0.060641,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0042827,0.012355,0.026124,0.022603,0.027684,0.025362,0.040765,0.042991,0.049177,0.052436,0.052108,0.056856,0.058688,0.066386,0.060606,0.059458,0.058302,0.054423,0.051444,0.049927,0.054377,0.053944,0.056371,0.056379,0.055846,0.055476,0.05437,0.055347,0.053774,0.050035,0.049283,0.044374,0.042846,0.037997,0.039391,0.030238,0.025074,0.025269,0.030495,0.027712,0.029562,0.035501,0.023365,0.032972,0.034296,0.040453,0.04598,0.056365,0.059023,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0031272,0.013893,0.027299,0.022212,0.027278,0.024012,0.039786,0.040769,0.047299,0.050654,0.050628,0.055623,0.056687,0.06437,0.058213,0.057162,0.055545,0.051853,0.048766,0.047382,0.051651,0.051153,0.053522,0.053494,0.052972,0.052609,0.051502,0.052422,0.050795,0.047438,0.04657,0.042016,0.040442,0.035507,0.036751,0.027521,0.022248,0.022273,0.027478,0.024904,0.026218,0.03183,0.019637,0.029272,0.030874,0.037453,0.043056,0.053386,0.056397,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0015961,0.012546,0.025261,0.020088,0.024631,0.022101,0.037093,0.037406,0.044415,0.04778,0.048163,0.053145,0.0539,0.061432,0.05478,0.054009,0.052002,0.048043,0.045163,0.043662,0.048067,0.047295,0.0497,0.049676,0.049191,0.04884,0.047763,0.048635,0.047097,0.043909,0.042966,0.03859,0.036892,0.031839,0.033109,0.023767,0.018621,0.018649,0.023627,0.021264,0.022782,0.028155,0.015817,0.025215,0.027098,0.03416,0.039502,0.049989,0.053644,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0017269,0.010917,0.022546,0.01763,0.023117,0.019551,0.035199,0.035392,0.042524,0.045693,0.045319,0.049963,0.051141,0.058431,0.052193,0.051403,0.049498,0.045693,0.042794,0.041096,0.045473,0.044705,0.047054,0.047018,0.046522,0.046249,0.045165,0.045965,0.044797,0.0415,0.040809,0.036298,0.034493,0.029898,0.031248,0.022299,0.016919,0.016804,0.021539,0.019679,0.020842,0.026025,0.014116,0.023071,0.024582,0.031752,0.036678,0.047224,0.050933,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0016462,0.012345,0.023833,0.018817,0.025006,0.021975,0.037354,0.037082,0.044706,0.047578,0.046972,0.051571,0.053175,0.059652,0.053065,0.052653,0.051111,0.0475,0.043909,0.042486,0.047037,0.046236,0.048698,0.0485,0.04806,0.047698,0.046639,0.047355,0.046076,0.042744,0.04194,0.037237,0.035249,0.030966,0.032096,0.023394,0.017709,0.017228,0.021604,0.019578,0.021079,0.026385,0.014858,0.023174,0.025864,0.033146,0.037379,0.047266,0.050587,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0017047,0.014013,0.025335,0.018896,0.025506,0.021959,0.036256,0.036072,0.042883,0.045692,0.044901,0.049369,0.050821,0.057346,0.05072,0.050781,0.049674,0.046488,0.043083,0.041985,0.046766,0.045822,0.048417,0.048319,0.04795,0.047361,0.046479,0.047122,0.045698,0.042185,0.041212,0.036577,0.034775,0.030708,0.032297,0.023438,0.017721,0.017261,0.021333,0.018803,0.020631,0.025312,0.015124,0.022709,0.02634,0.032852,0.036353,0.045431,0.048005,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0026058,0.013648,0.026516,0.019707,0.026014,0.022674,0.037786,0.038429,0.045158,0.048641,0.047199,0.05178,0.052625,0.059244,0.053189,0.053428,0.052791,0.049728,0.045684,0.044944,0.049729,0.04883,0.051247,0.050999,0.050702,0.050124,0.049262,0.049854,0.048253,0.044566,0.043303,0.038386,0.036387,0.03251,0.034257,0.025692,0.019533,0.019104,0.023859,0.020702,0.023221,0.027125,0.017684,0.025347,0.029961,0.036113,0.039245,0.048917,0.050345,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0052501,0.01396,0.027042,0.021817,0.029253,0.024775,0.039913,0.04153,0.049077,0.051161,0.050515,0.055312,0.056225,0.062555,0.056852,0.057676,0.055747,0.053217,0.048502,0.048187,0.053063,0.052145,0.054625,0.054483,0.054271,0.053707,0.05289,0.053534,0.051719,0.047989,0.04659,0.041505,0.039082,0.03552,0.037376,0.028338,0.022273,0.021235,0.025939,0.023002,0.024717,0.028843,0.018587,0.026249,0.031476,0.038042,0.041707,0.051349,0.052005,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0041001,0.017306,0.028832,0.025287,0.031381,0.025063,0.039646,0.042455,0.050999,0.052074,0.051865,0.056838,0.056295,0.062786,0.055822,0.056475,0.055199,0.052588,0.048464,0.047561,0.052445,0.051832,0.054122,0.054081,0.053964,0.053511,0.052663,0.053557,0.051999,0.048061,0.046652,0.041224,0.038374,0.034373,0.03644,0.026946,0.021102,0.020557,0.024484,0.022479,0.024229,0.028067,0.017628,0.026496,0.030691,0.037015,0.041145,0.051894,0.053483,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0063322,0.0084738,0.021181,0.018972,0.024532,0.018647,0.034749,0.038938,0.047206,0.047629,0.046982,0.051823,0.049853,0.056084,0.050041,0.051434,0.050265,0.046659,0.042344,0.040556,0.045801,0.045477,0.047815,0.047527,0.047507,0.047141,0.046273,0.047388,0.045994,0.042455,0.041061,0.035957,0.033478,0.029077,0.032094,0.022201,0.016567,0.016045,0.020328,0.018773,0.019734,0.024503,0.013358,0.02286,0.027052,0.03505,0.039011,0.050176,0.052932,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.011916,-0.00049602,0.013607,0.014773,0.020901,0.010838,0.028732,0.03359,0.043294,0.045184,0.042728,0.047015,0.04419,0.051391,0.043198,0.044287,0.042806,0.038762,0.034767,0.03241,0.037376,0.037422,0.039818,0.039352,0.039325,0.038976,0.038105,0.03935,0.03851,0.035433,0.034628,0.030096,0.027716,0.02283,0.025131,0.01482,0.010104,0.010238,0.015678,0.014446,0.014382,0.020856,0.0088439,0.019924,0.022824,0.031548,0.03514,0.046262,0.051386,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0059586,0.0074819,0.02306,0.021628,0.026799,0.0094139,0.026122,0.030158,0.041289,0.044635,0.041236,0.045204,0.041383,0.049553,0.040598,0.040473,0.039927,0.0363,0.031609,0.029531,0.034374,0.034537,0.036927,0.036189,0.036245,0.035888,0.035028,0.036062,0.0354,0.032867,0.032329,0.028215,0.025264,0.01983,0.021805,0.010986,0.0067921,0.0072185,0.012176,0.011311,0.01142,0.018153,0.0051936,0.017536,0.020195,0.030415,0.034748,0.045052,0.052241,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,0.00061391,0.0070182,0.025604,0.02034,0.027965,0.0091809,0.025394,0.02874,0.041298,0.044853,0.042059,0.047324,0.043401,0.05252,0.043736,0.042841,0.043336,0.040772,0.037129,0.035149,0.039162,0.038581,0.040833,0.040138,0.040028,0.039847,0.039004,0.03979,0.038865,0.037286,0.036111,0.032667,0.029962,0.024518,0.025505,0.015001,0.0098993,0.01011,0.016999,0.016039,0.014682,0.021078,0.0081351,0.019801,0.020712,0.02891,0.03296,0.04469,0.051282,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,0.0002533,0.0011557,0.01942,0.014606,0.022903,0.0049551,0.019382,0.022703,0.036828,0.038596,0.035534,0.039514,0.037331,0.044794,0.03777,0.038169,0.038649,0.035483,0.032956,0.030888,0.033743,0.033697,0.035153,0.03474,0.034467,0.034081,0.033211,0.034336,0.033065,0.031857,0.030357,0.027238,0.023901,0.017896,0.017975,0.0077135,0.0025196,0.0025012,0.0096311,0.0089387,0.0078844,0.014043,0.0002688,0.011718,0.01233,0.020703,0.024836,0.03625,0.045324,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0020414,0.0043363,0.020187,0.014534,0.021716,0.0071303,0.023223,0.024589,0.037561,0.038534,0.037288,0.0427,0.039874,0.047039,0.039424,0.037671,0.038421,0.033141,0.030424,0.027133,0.029424,0.029892,0.031692,0.031549,0.030668,0.030318,0.029417,0.030589,0.029897,0.028195,0.027177,0.024043,0.021862,0.018747,0.017858,0.010225,0.005665,0.0058503,0.01129,0.011185,0.010769,0.014976,0.0047784,0.015485,0.016628,0.023735,0.028966,0.038864,0.04513,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0051468,0.0069659,0.01986,0.017955,0.02298,0.0093708,0.020747,0.017839,0.030381,0.030973,0.026952,0.031268,0.029497,0.036258,0.029572,0.025713,0.027611,0.021978,0.020391,0.016689,0.019043,0.019482,0.021248,0.020793,0.019692,0.019386,0.018377,0.01969,0.020196,0.018066,0.01769,0.014069,0.012637,0.011492,0.0097399,0.0045493,0.0016078,0.002273,0.0061041,0.0046551,0.0046181,0.0081921,0.0016641,0.010115,0.013058,0.019317,0.02246,0.031265,0.035251,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,0.0027475,0.0065604,0.022908,0.020285,0.025554,0.015273,0.026329,0.025714,0.036741,0.037791,0.033451,0.039181,0.036194,0.043987,0.03763,0.033963,0.035033,0.029168,0.027341,0.024337,0.025749,0.026383,0.028525,0.028392,0.027363,0.027197,0.026267,0.027573,0.028087,0.025874,0.025203,0.0215,0.020242,0.018428,0.015659,0.0095651,0.0055351,0.0059912,0.0090563,0.0076409,0.0082744,0.0098056,0.00176,0.0094524,0.010415,0.014494,0.02013,0.027787,0.031774,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0029071,-0.00039083,0.016287,0.010477,0.019331,0.012708,0.022757,0.021761,0.031883,0.033353,0.031119,0.037013,0.034153,0.04304,0.03731,0.033249,0.033152,0.027024,0.026322,0.024378,0.02482,0.025464,0.027933,0.02786,0.027117,0.026953,0.025994,0.027142,0.027181,0.024691,0.024306,0.021182,0.019113,0.017554,0.015583,0.010369,0.006436,0.006925,0.0083883,0.0069186,0.0072625,0.0070455,0.002477,0.0090658,0.0099779,0.011914,0.015356,0.021779,0.023528,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.0089855,0.00034913,0.015861,0.013897,0.02064,0.012608,0.022174,0.02042,0.028158,0.031571,0.028045,0.03415,0.03308,0.04179,0.036774,0.033519,0.033847,0.029207,0.028826,0.027515,0.028689,0.029261,0.031335,0.031555,0.030749,0.030748,0.02976,0.030757,0.030317,0.027542,0.026823,0.023081,0.020576,0.018145,0.015259,0.0098566,0.0068113,0.007899,0.0086625,0.0057585,0.0057126,0.0077049,0.0015605,0.0076019,0.0066827,0.0086488,0.01139,0.017402,0.021302,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.020445,-0.01214,0.0042446,0.0037358,0.011444,0.0073168,0.016517,0.017428,0.021654,0.025407,0.021889,0.029488,0.027638,0.03486,0.029039,0.027375,0.028941,0.024819,0.024615,0.021764,0.02367,0.02478,0.02718,0.02737,0.026795,0.026572,0.025714,0.026343,0.025984,0.022771,0.022377,0.019126,0.016377,0.013995,0.011283,0.0067228,0.0038652,0.0047893,0.0041024,0.0012402,-0.00030923,0.0015011,-0.0022368,0.0017108,0.0027601,0.0045519,0.0068322,0.010438,0.012073,2500,-0.059936,0.073964,480 +0.40373,0.0070139,0,-0.018655,-0.011167,0.0031297,0.0071183,0.010007,0.0055694,0.013786,0.014639,0.018455,0.024412,0.021423,0.02599,0.026269,0.032224,0.028582,0.025317,0.027145,0.021591,0.021778,0.020238,0.022201,0.023077,0.024537,0.024128,0.022862,0.022683,0.021514,0.02173,0.022103,0.018409,0.018816,0.014899,0.01358,0.012013,0.010281,0.007754,0.0056361,0.0068709,0.0059986,0.0014416,0.0018673,0.0032981,0.0026792,0.0038565,0.0048634,0.0040423,0.005787,0.0082653,0.0070139,2500,-0.059936,0.073964,480 diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/step_sim_fast_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/step_sim_fast_res.csv new file mode 100644 index 0000000..57babff --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/step_sim_fast_res.csv @@ -0,0 +1,50 @@ +0,0.77822,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2239,0.74244,0.81401,10 +0,0.77822,0,0.16911,0.14807,0.13502,0.11794,0.091529,0.094665,0.079851,0.082835,0.079074,0.087613,0.089805,0.078641,0.087127,0.098875,0.10837,0.1049,0.10999,0.12755,0.12253,0.14749,0.16377,0.16421,0.17191,0.16718,0.16236,0.16233,0.16334,0.16307,0.16284,0.16264,0.16248,0.16234,0.16222,0.16212,0.16203,0.16196,0.16191,0.16186,0.15872,0.15876,0.15881,0.15886,0.15892,0.15897,0.15903,0.15909,0.15915,0.1592,0.15926,2239,0.74244,0.81401,10 +0,0.77822,0,0.13329,0.11404,0.10278,0.10751,0.10632,0.11648,0.10822,0.10897,0.098735,0.10085,0.1141,0.13266,0.14733,0.15672,0.17054,0.16426,0.15992,0.16976,0.17235,0.18822,0.21411,0.21774,0.22329,0.21986,0.21922,0.22006,0.21738,0.21702,0.21671,0.21645,0.21624,0.21605,0.21589,0.21576,0.21565,0.21556,0.21548,0.21542,0.21122,0.21128,0.21135,0.21142,0.21149,0.21157,0.21165,0.21172,0.2118,0.21188,0.21196,2239,0.74244,0.81401,10 +0,0.77822,0,0.15808,0.11628,0.1037,0.14746,0.14565,0.16784,0.16168,0.16987,0.16086,0.16265,0.17059,0.18777,0.2025,0.21227,0.21802,0.21248,0.21021,0.22281,0.23079,0.2428,0.26098,0.26651,0.27456,0.27183,0.27093,0.27253,0.27405,0.27352,0.27306,0.27267,0.27233,0.27204,0.27178,0.27157,0.27138,0.27122,0.27108,0.27096,0.26732,0.26732,0.26733,0.26735,0.26737,0.2674,0.26743,0.26747,0.26752,0.26756,0.26761,2239,0.74244,0.81401,10 +0,0.77822,0,0.15503,0.12789,0.13028,0.16308,0.16548,0.19243,0.19169,0.19285,0.17912,0.1867,0.19773,0.21405,0.23106,0.23552,0.2493,0.25344,0.24602,0.25555,0.26558,0.2786,0.30383,0.31074,0.31923,0.31481,0.31393,0.31641,0.31971,0.31937,0.31909,0.31886,0.31869,0.31856,0.31846,0.31839,0.31834,0.31832,0.31831,0.31832,0.31235,0.31253,0.31271,0.31289,0.31307,0.31326,0.31344,0.31265,0.31285,0.31305,0.31325,2239,0.74244,0.81401,10 +0,0.77822,0,0.18522,0.13794,0.14386,0.16553,0.18381,0.21707,0.21737,0.22823,0.22455,0.23769,0.24505,0.25492,0.26635,0.26987,0.28072,0.28332,0.28433,0.29783,0.30218,0.31563,0.3411,0.34608,0.35515,0.3511,0.35043,0.35564,0.36206,0.36181,0.36162,0.3615,0.36141,0.36137,0.36136,0.36017,0.36024,0.36033,0.36043,0.36055,0.35273,0.35177,0.35213,0.35248,0.35282,0.35315,0.35348,0.3529,0.35324,0.35357,0.35389,2239,0.74244,0.81401,10 +0,0.77822,0,0.18584,0.13473,0.13942,0.1717,0.18968,0.22829,0.22339,0.23505,0.2406,0.25616,0.26896,0.27652,0.29347,0.29951,0.30893,0.30988,0.31557,0.32708,0.33416,0.35085,0.38087,0.38391,0.3931,0.39073,0.39147,0.39431,0.39827,0.39788,0.39758,0.39734,0.39716,0.39703,0.39694,0.39576,0.39576,0.39579,0.39584,0.3959,0.38862,0.3877,0.388,0.38829,0.38858,0.38887,0.38915,0.3886,0.38889,0.38918,0.38947,2239,0.74244,0.81401,10 +0,0.77822,0,0.1907,0.15052,0.16816,0.18836,0.2125,0.24524,0.24267,0.25114,0.25564,0.27027,0.28341,0.29163,0.3173,0.32857,0.33562,0.33782,0.34326,0.35218,0.3615,0.37849,0.4027,0.40884,0.41996,0.41924,0.4207,0.42405,0.42713,0.42677,0.4265,0.42629,0.42614,0.42605,0.42599,0.42492,0.42495,0.42501,0.42509,0.42518,0.41838,0.41755,0.41787,0.41818,0.41849,0.4188,0.4191,0.41769,0.41802,0.41835,0.41867,2239,0.74244,0.81401,10 +0,0.77822,0,0.18907,0.15726,0.16666,0.18727,0.20568,0.23701,0.23122,0.24157,0.25343,0.26609,0.2885,0.29312,0.3234,0.33599,0.34432,0.34783,0.35884,0.37406,0.3794,0.39658,0.42256,0.42988,0.44144,0.44238,0.44371,0.44766,0.45312,0.45286,0.45267,0.45256,0.45127,0.45129,0.45135,0.45044,0.45058,0.45074,0.45091,0.45109,0.44396,0.44226,0.44269,0.44311,0.44353,0.44394,0.44434,0.44227,0.4427,0.44313,0.44355,2239,0.74244,0.81401,10 +0,0.77822,0,0.18943,0.1587,0.16199,0.19203,0.20991,0.23935,0.23935,0.25446,0.27002,0.28282,0.30732,0.31049,0.34174,0.3581,0.36452,0.36641,0.37725,0.39141,0.39752,0.41745,0.4488,0.45707,0.47139,0.47099,0.47094,0.4734,0.47633,0.47618,0.47611,0.47611,0.47384,0.474,0.47419,0.47344,0.4737,0.47397,0.47425,0.47454,0.46692,0.4645,0.46505,0.4656,0.46613,0.46665,0.46716,0.46528,0.46581,0.46633,0.46684,2239,0.74244,0.81401,10 +0,0.77822,0,0.1867,0.15957,0.15769,0.18768,0.20666,0.23577,0.24237,0.26057,0.28267,0.29765,0.32168,0.32185,0.35334,0.37016,0.38026,0.38626,0.39849,0.41338,0.42116,0.44001,0.47231,0.48049,0.495,0.49355,0.49359,0.4961,0.49779,0.49783,0.49795,0.49705,0.49505,0.49539,0.49575,0.49445,0.49488,0.49533,0.49577,0.49621,0.48752,0.48448,0.48522,0.48594,0.48664,0.48732,0.48798,0.48503,0.48573,0.48642,0.48708,2239,0.74244,0.81401,10 +0,0.77822,0,0.18556,0.15351,0.15942,0.19237,0.21707,0.24539,0.2571,0.27799,0.29835,0.31009,0.33242,0.33717,0.36566,0.38272,0.39245,0.40223,0.41699,0.43132,0.43924,0.45955,0.49502,0.50221,0.51713,0.51381,0.51293,0.51567,0.51706,0.5174,0.51779,0.51618,0.51351,0.51414,0.51478,0.51377,0.51446,0.51513,0.5158,0.51646,0.50738,0.50463,0.50556,0.50647,0.50666,0.50753,0.50838,0.50496,0.50522,0.50609,0.50693,2239,0.74244,0.81401,10 +0,0.77822,0,0.17753,0.15148,0.16153,0.19301,0.22123,0.24653,0.26095,0.28397,0.30461,0.3187,0.3404,0.34795,0.37708,0.39623,0.40878,0.41878,0.43548,0.45073,0.46064,0.48279,0.51938,0.52678,0.54077,0.53665,0.53594,0.53938,0.54122,0.54175,0.5415,0.5392,0.53579,0.53666,0.53751,0.53672,0.5376,0.53846,0.5393,0.53953,0.53072,0.52753,0.52863,0.5297,0.52942,0.53046,0.53146,0.52824,0.52806,0.52908,0.53007,2239,0.74244,0.81401,10 +0,0.77822,0,0.17443,0.14934,0.16099,0.19197,0.22244,0.24803,0.26786,0.29446,0.31907,0.33791,0.35688,0.36458,0.3915,0.40992,0.42233,0.43674,0.45323,0.46945,0.47993,0.5018,0.53957,0.54798,0.56255,0.55866,0.55828,0.56089,0.56477,0.56546,0.56538,0.56236,0.55915,0.56017,0.56118,0.55988,0.56091,0.56193,0.56291,0.56328,0.55413,0.5511,0.55234,0.55354,0.55281,0.55342,0.55456,0.551,0.55042,0.55158,0.5527,2239,0.74244,0.81401,10 +0,0.77822,0,0.18704,0.15679,0.16417,0.19727,0.22489,0.25064,0.27139,0.29967,0.32234,0.34157,0.36267,0.37247,0.40465,0.42609,0.43933,0.45472,0.47378,0.48798,0.49648,0.51827,0.5558,0.56514,0.58051,0.57532,0.57547,0.57878,0.58331,0.58433,0.58456,0.58184,0.57823,0.57953,0.58081,0.57914,0.58044,0.58169,0.58291,0.5835,0.57392,0.57052,0.57149,0.57291,0.57183,0.57213,0.57349,0.56918,0.56788,0.56928,0.57062,2239,0.74244,0.81401,10 +0,0.77822,0,0.18253,0.15077,0.16118,0.19265,0.22611,0.25219,0.27609,0.30833,0.33276,0.35017,0.36955,0.37957,0.4103,0.43163,0.44622,0.4631,0.48321,0.49735,0.50609,0.52791,0.56795,0.57819,0.59442,0.58954,0.58993,0.59497,0.59941,0.60079,0.60076,0.59777,0.59385,0.59549,0.59708,0.59521,0.59628,0.59784,0.59885,0.59928,0.58934,0.58565,0.5869,0.58807,0.58726,0.58736,0.58898,0.58405,0.583,0.58464,0.58623,2239,0.74244,0.81401,10 +0,0.77822,0,0.18036,0.15235,0.1649,0.19366,0.22722,0.25786,0.28169,0.31458,0.34209,0.36124,0.38046,0.39179,0.4236,0.44456,0.45992,0.47776,0.49921,0.5124,0.52244,0.544,0.5836,0.59335,0.60977,0.60374,0.60474,0.61132,0.61558,0.61718,0.61683,0.61351,0.60982,0.61167,0.61346,0.61178,0.61302,0.61474,0.61591,0.61611,0.60531,0.60179,0.60321,0.60454,0.60389,0.60368,0.60544,0.60021,0.59932,0.6011,0.60282,2239,0.74244,0.81401,10 +0,0.77822,0,0.18159,0.15434,0.1693,0.19824,0.23164,0.26071,0.28317,0.31762,0.3473,0.3697,0.38864,0.39983,0.43162,0.45392,0.46906,0.48661,0.50908,0.52215,0.53207,0.55382,0.59351,0.60391,0.62009,0.61394,0.61463,0.62259,0.62671,0.62873,0.6283,0.62482,0.62087,0.6231,0.62524,0.62344,0.62466,0.6267,0.62785,0.62799,0.6164,0.6127,0.61408,0.61522,0.61448,0.61456,0.6166,0.61091,0.60965,0.6117,0.61368,2239,0.74244,0.81401,10 +0,0.77822,0,0.17888,0.15612,0.17263,0.20502,0.24061,0.27,0.29172,0.32731,0.36085,0.38416,0.40349,0.41331,0.44511,0.46743,0.48315,0.50019,0.5245,0.53806,0.54774,0.57036,0.60985,0.61993,0.6358,0.62963,0.62992,0.63834,0.64281,0.64504,0.64481,0.64149,0.6372,0.63961,0.64193,0.63986,0.64124,0.64344,0.64474,0.64503,0.63352,0.62948,0.63021,0.63109,0.63015,0.63038,0.63257,0.62667,0.62497,0.62718,0.62931,2239,0.74244,0.81401,10 +0,0.77822,0,0.1789,0.1588,0.1794,0.21448,0.25051,0.28082,0.30249,0.33686,0.37042,0.39474,0.41403,0.42451,0.45641,0.47872,0.49488,0.5142,0.53857,0.55191,0.56242,0.58503,0.62534,0.63517,0.65169,0.6457,0.64562,0.65371,0.6586,0.66105,0.66067,0.65753,0.65293,0.65554,0.65805,0.65613,0.65738,0.65976,0.66093,0.66138,0.64962,0.64528,0.64547,0.64609,0.64499,0.64538,0.64774,0.64159,0.63953,0.6419,0.64419,2239,0.74244,0.81401,10 +0,0.77822,0,0.17731,0.16285,0.18264,0.21907,0.25506,0.2854,0.30709,0.34064,0.37346,0.39921,0.41771,0.42883,0.46303,0.4879,0.50552,0.52605,0.55063,0.56308,0.57434,0.59838,0.63956,0.6492,0.6668,0.66113,0.66107,0.66888,0.67377,0.67645,0.67624,0.67286,0.668,0.67082,0.67352,0.67174,0.67269,0.67524,0.67658,0.67692,0.66487,0.66025,0.6602,0.66098,0.65978,0.66005,0.66258,0.6562,0.65404,0.65657,0.65901,2239,0.74244,0.81401,10 +0,0.77822,0,0.17584,0.16263,0.18144,0.21955,0.25586,0.28604,0.30755,0.34051,0.3739,0.40038,0.41903,0.43029,0.46672,0.49165,0.5108,0.53244,0.55728,0.56906,0.58024,0.605,0.6468,0.65708,0.67461,0.66966,0.66942,0.67786,0.68319,0.68612,0.68588,0.68233,0.67727,0.67989,0.68283,0.68098,0.68145,0.68423,0.68577,0.68612,0.67397,0.66951,0.66909,0.67005,0.66881,0.66901,0.67172,0.66496,0.66276,0.66546,0.66807,2239,0.74244,0.81401,10 +0,0.77822,0,0.17708,0.16386,0.18294,0.22219,0.25885,0.28948,0.31074,0.34433,0.37706,0.4029,0.42094,0.43252,0.4689,0.49482,0.51342,0.53453,0.5595,0.57109,0.58178,0.60668,0.64878,0.65955,0.67775,0.67301,0.67293,0.68246,0.68793,0.69096,0.69046,0.68685,0.68203,0.68468,0.68749,0.68536,0.68605,0.68897,0.69041,0.69066,0.67843,0.67398,0.67374,0.67467,0.67345,0.67361,0.67643,0.6697,0.6675,0.67022,0.67291,2239,0.74244,0.81401,10 +0,0.77822,0,0.17886,0.16404,0.18476,0.22436,0.2613,0.29317,0.31427,0.34845,0.38159,0.40683,0.42523,0.43667,0.47379,0.49924,0.51803,0.53905,0.56412,0.57607,0.58651,0.61107,0.65328,0.66446,0.68323,0.6785,0.67882,0.68874,0.6944,0.69745,0.69689,0.69311,0.68842,0.69105,0.69368,0.69136,0.69218,0.69519,0.69671,0.69698,0.68455,0.6802,0.67991,0.68094,0.67982,0.68008,0.68295,0.67631,0.67391,0.6766,0.67933,2239,0.74244,0.81401,10 +0,0.77822,0,0.18006,0.16455,0.18475,0.22507,0.26179,0.29337,0.31453,0.3496,0.3832,0.40816,0.4268,0.43822,0.47512,0.50102,0.51979,0.54057,0.56587,0.57779,0.58829,0.61312,0.65517,0.66634,0.68512,0.68051,0.68049,0.69122,0.69708,0.70027,0.69975,0.6961,0.69143,0.69412,0.69665,0.69416,0.6946,0.69778,0.69933,0.69971,0.68735,0.68302,0.68259,0.68355,0.68237,0.68273,0.68574,0.67902,0.67671,0.67943,0.68226,2239,0.74244,0.81401,10 +0,0.77822,0,0.18061,0.16547,0.18576,0.22602,0.26284,0.29485,0.31715,0.35191,0.38592,0.41058,0.42892,0.44022,0.47691,0.50259,0.52114,0.54238,0.5678,0.57972,0.5904,0.61502,0.65717,0.6683,0.68741,0.68274,0.68269,0.6939,0.69999,0.70326,0.70268,0.69911,0.69454,0.69701,0.6994,0.69677,0.69695,0.69999,0.70168,0.70213,0.68994,0.68567,0.68521,0.68609,0.68498,0.68529,0.68841,0.68171,0.67938,0.68211,0.68502,2239,0.74244,0.81401,10 +0,0.77822,0,0.18158,0.16648,0.18592,0.22609,0.26284,0.29518,0.3182,0.35358,0.38749,0.41247,0.43066,0.44202,0.47864,0.50425,0.52292,0.54408,0.56941,0.58136,0.59225,0.61724,0.65937,0.67054,0.68986,0.68513,0.6848,0.69611,0.70234,0.70586,0.70543,0.70182,0.69719,0.69965,0.70204,0.69951,0.69947,0.70275,0.70468,0.70529,0.69304,0.68874,0.68812,0.68889,0.68774,0.68791,0.69122,0.68463,0.68217,0.685,0.68807,2239,0.74244,0.81401,10 +0,0.77822,0,0.18072,0.16616,0.1857,0.22663,0.26333,0.29592,0.31884,0.3542,0.38849,0.41298,0.43123,0.44269,0.47975,0.50537,0.5238,0.54506,0.57063,0.582,0.59289,0.61799,0.66007,0.67121,0.69061,0.68613,0.68586,0.69751,0.70383,0.70759,0.7073,0.70358,0.69884,0.70133,0.7037,0.70116,0.70089,0.70442,0.70651,0.70729,0.69511,0.69098,0.69027,0.69091,0.68974,0.68977,0.69327,0.6866,0.68413,0.68704,0.69025,2239,0.74244,0.81401,10 +0,0.77822,0,0.17976,0.16456,0.18461,0.22607,0.26295,0.29591,0.31896,0.35439,0.38877,0.41337,0.43121,0.44222,0.47937,0.50523,0.52325,0.54462,0.57028,0.58175,0.59256,0.61773,0.65985,0.67058,0.6897,0.68523,0.68481,0.69642,0.70275,0.70681,0.70677,0.70309,0.69846,0.70111,0.70342,0.70086,0.70047,0.70413,0.7064,0.70736,0.69531,0.69114,0.69032,0.69075,0.68956,0.68952,0.69318,0.68643,0.68388,0.6869,0.69028,2239,0.74244,0.81401,10 +0,0.77822,0,0.17841,0.16204,0.183,0.22497,0.26225,0.2952,0.31855,0.35414,0.3881,0.41294,0.4311,0.44221,0.47953,0.50544,0.52367,0.54523,0.57102,0.58197,0.59295,0.61821,0.66034,0.67124,0.69024,0.68544,0.68491,0.69661,0.70287,0.70735,0.7074,0.7036,0.69895,0.70169,0.70404,0.70143,0.70084,0.70468,0.70713,0.70829,0.69663,0.69242,0.69134,0.69156,0.69034,0.69028,0.69417,0.68724,0.68447,0.68768,0.69132,2239,0.74244,0.81401,10 +0,0.77822,0,0.17884,0.16304,0.18431,0.22635,0.26365,0.29669,0.32028,0.35612,0.39025,0.41468,0.4329,0.44372,0.48119,0.50731,0.52576,0.54748,0.5733,0.5844,0.59549,0.62053,0.66255,0.67364,0.69251,0.68742,0.68677,0.69857,0.70501,0.70983,0.70982,0.70611,0.70178,0.70447,0.7068,0.70401,0.70312,0.70697,0.70949,0.71068,0.69913,0.69516,0.69374,0.69369,0.69254,0.69256,0.69666,0.6897,0.68678,0.69014,0.69398,2239,0.74244,0.81401,10 +0,0.77822,0,0.17963,0.1645,0.18397,0.22648,0.26412,0.29601,0.31989,0.35608,0.39055,0.41533,0.43362,0.44411,0.48184,0.50829,0.52707,0.54906,0.57455,0.5855,0.59684,0.62176,0.66379,0.67517,0.69402,0.68833,0.68737,0.69936,0.70606,0.7113,0.71128,0.7074,0.70299,0.70576,0.70816,0.70524,0.70418,0.70812,0.71084,0.71207,0.70065,0.69661,0.69493,0.69463,0.69344,0.6934,0.69777,0.69084,0.68788,0.69144,0.69555,2239,0.74244,0.81401,10 +0,0.77822,0,0.17967,0.16442,0.18478,0.22774,0.26479,0.29715,0.32083,0.35742,0.39189,0.41709,0.43469,0.44429,0.48186,0.50875,0.52795,0.55032,0.57472,0.58525,0.59629,0.62148,0.66364,0.67549,0.69448,0.68878,0.68756,0.69989,0.70647,0.71222,0.71212,0.70815,0.70371,0.7065,0.70904,0.70628,0.7049,0.70898,0.71174,0.71299,0.70118,0.69714,0.69526,0.69476,0.6938,0.69375,0.69842,0.69142,0.68824,0.69206,0.69647,2239,0.74244,0.81401,10 +0,0.77822,0,0.18073,0.16655,0.18757,0.2307,0.26645,0.29926,0.32347,0.36043,0.3953,0.41897,0.43704,0.44486,0.4828,0.51017,0.5295,0.55228,0.5768,0.58774,0.59912,0.62445,0.66652,0.67879,0.69784,0.69203,0.69045,0.70303,0.70934,0.71564,0.71564,0.71191,0.70773,0.71043,0.71313,0.71054,0.70904,0.71327,0.71624,0.71761,0.70521,0.7015,0.69947,0.69882,0.69767,0.69743,0.70242,0.69516,0.69185,0.69593,0.70066,2239,0.74244,0.81401,10 +0,0.77822,0,0.18198,0.1625,0.18542,0.22956,0.26604,0.29894,0.32387,0.3608,0.39624,0.41952,0.43819,0.44671,0.48507,0.51297,0.53161,0.55456,0.57942,0.58984,0.60162,0.62714,0.66919,0.68121,0.70033,0.69485,0.69328,0.7061,0.71215,0.71902,0.71936,0.71587,0.71137,0.71403,0.71694,0.7142,0.71242,0.71686,0.71988,0.72157,0.70908,0.70513,0.7028,0.70206,0.70113,0.7009,0.70623,0.69891,0.69522,0.69959,0.70466,2239,0.74244,0.81401,10 +0,0.77822,0,0.18159,0.16255,0.18326,0.22863,0.26599,0.29973,0.32552,0.36184,0.39798,0.42022,0.43843,0.44784,0.48678,0.51536,0.53399,0.55753,0.58285,0.5926,0.60288,0.62876,0.67089,0.6829,0.70232,0.69677,0.69547,0.70874,0.71451,0.72213,0.72239,0.71856,0.71458,0.71742,0.72068,0.71777,0.71598,0.72075,0.72405,0.72571,0.7125,0.70892,0.70627,0.70554,0.70441,0.70431,0.71007,0.70211,0.69777,0.70254,0.70804,2239,0.74244,0.81401,10 +0,0.77822,0,0.18339,0.1661,0.18786,0.23225,0.26881,0.30326,0.32901,0.36471,0.40157,0.42459,0.44353,0.45312,0.49261,0.51904,0.53843,0.56179,0.58757,0.59796,0.60779,0.6339,0.67594,0.68861,0.70828,0.70201,0.70032,0.714,0.71937,0.72777,0.72793,0.72359,0.72001,0.72311,0.72679,0.7237,0.7216,0.72675,0.73003,0.73165,0.71812,0.71479,0.71216,0.71152,0.71007,0.71015,0.71638,0.70814,0.70329,0.70847,0.71442,2239,0.74244,0.81401,10 +0,0.77822,0,0.1851,0.16972,0.19111,0.23597,0.27286,0.30795,0.3335,0.36982,0.4058,0.42961,0.44738,0.45796,0.49718,0.52312,0.54329,0.56727,0.59346,0.60448,0.61482,0.64106,0.68286,0.6962,0.71609,0.71028,0.70887,0.72288,0.7284,0.73739,0.73782,0.73279,0.72944,0.73266,0.73663,0.73379,0.73121,0.73661,0.73968,0.74108,0.72757,0.72379,0.72072,0.72011,0.71872,0.71893,0.72553,0.71735,0.71196,0.71747,0.72379,2239,0.74244,0.81401,10 +0,0.77822,0,0.18629,0.17103,0.19397,0.2392,0.27632,0.31054,0.33699,0.37388,0.4095,0.43408,0.45261,0.46417,0.50382,0.53052,0.55139,0.57586,0.60227,0.61251,0.62329,0.64947,0.69075,0.70474,0.72482,0.71939,0.71834,0.73263,0.73811,0.74767,0.74826,0.74324,0.73913,0.74252,0.74679,0.74353,0.74085,0.74653,0.7497,0.75128,0.73762,0.73393,0.73036,0.72983,0.72854,0.7289,0.73584,0.7276,0.72166,0.72749,0.73415,2239,0.74244,0.81401,10 +0,0.77822,0,0.18688,0.1741,0.19821,0.24337,0.2804,0.31506,0.34225,0.37951,0.41563,0.44081,0.45997,0.47244,0.51236,0.53974,0.56121,0.58605,0.61251,0.62322,0.63429,0.65934,0.69978,0.71449,0.73477,0.72811,0.72679,0.74142,0.74678,0.75681,0.75671,0.75178,0.7478,0.75134,0.75588,0.75262,0.74987,0.75576,0.75901,0.76057,0.74668,0.74308,0.7394,0.73894,0.73775,0.73825,0.74547,0.73663,0.73052,0.73661,0.74354,2239,0.74244,0.81401,10 +0,0.77822,0,0.18231,0.17372,0.1996,0.24515,0.28241,0.31765,0.3444,0.38215,0.41757,0.44349,0.46077,0.4716,0.51193,0.54011,0.56235,0.58776,0.61347,0.62492,0.63657,0.66076,0.7007,0.71626,0.73689,0.73004,0.72858,0.74369,0.74839,0.7591,0.75855,0.75391,0.74939,0.75326,0.75825,0.7546,0.75196,0.75823,0.76172,0.76295,0.74795,0.74466,0.74103,0.7408,0.73987,0.74065,0.74827,0.7384,0.73227,0.73874,0.74606,2239,0.74244,0.81401,10 +0,0.77822,0,0.17753,0.1731,0.20059,0.24619,0.28341,0.31905,0.34654,0.38454,0.42037,0.44684,0.46482,0.47667,0.51566,0.54443,0.56723,0.59294,0.61868,0.63063,0.64258,0.66647,0.70537,0.72075,0.74164,0.73542,0.7347,0.75013,0.75387,0.76487,0.76426,0.75972,0.75446,0.75841,0.76358,0.7598,0.75714,0.76353,0.76706,0.76827,0.75254,0.74938,0.74572,0.74558,0.74477,0.74569,0.75349,0.74347,0.73727,0.74391,0.75141,2239,0.74244,0.81401,10 +0,0.77822,0,0.17734,0.17242,0.20138,0.24696,0.28409,0.32004,0.34821,0.38638,0.42257,0.44785,0.46652,0.47937,0.51846,0.54776,0.56985,0.59585,0.62161,0.63275,0.64506,0.6687,0.70665,0.72279,0.74389,0.73829,0.73827,0.75398,0.75765,0.76891,0.76826,0.76385,0.7587,0.76272,0.76804,0.76355,0.76088,0.76739,0.77095,0.77216,0.75576,0.75269,0.749,0.74895,0.74827,0.74932,0.75728,0.74611,0.73988,0.7467,0.75437,2239,0.74244,0.81401,10 +0,0.77822,0,0.17676,0.17424,0.20191,0.24734,0.28428,0.32045,0.34918,0.38744,0.42223,0.44803,0.46732,0.4811,0.5202,0.54994,0.5725,0.59869,0.62437,0.63598,0.64852,0.67179,0.70867,0.72543,0.74664,0.74162,0.74223,0.75811,0.76164,0.77302,0.77228,0.76794,0.76288,0.76689,0.77228,0.76775,0.76503,0.77157,0.7751,0.77624,0.75936,0.75568,0.75197,0.75198,0.7514,0.75254,0.76059,0.74936,0.7431,0.75001,0.75778,2239,0.74244,0.81401,10 +0,0.77822,0,0.1759,0.17573,0.20424,0.24911,0.28358,0.31992,0.34918,0.38747,0.42253,0.44875,0.46856,0.48318,0.52221,0.55231,0.57528,0.60157,0.62711,0.63912,0.65182,0.67466,0.71038,0.72679,0.74812,0.74376,0.74504,0.7611,0.76367,0.77513,0.77431,0.77006,0.76508,0.76908,0.77452,0.76986,0.76711,0.77364,0.77714,0.77822,0.76149,0.75726,0.75352,0.75358,0.75308,0.75429,0.76238,0.75107,0.7448,0.75175,0.75957,2239,0.74244,0.81401,10 +0,0.77822,0,0.17507,0.17707,0.20636,0.24849,0.28288,0.31938,0.34912,0.38606,0.4214,0.4449,0.46536,0.48088,0.5199,0.54922,0.57267,0.59794,0.62353,0.63608,0.64913,0.67176,0.7066,0.72371,0.74525,0.74161,0.74362,0.75994,0.76256,0.77416,0.77336,0.76927,0.76447,0.76851,0.77405,0.76872,0.76601,0.77262,0.77614,0.77724,0.75944,0.75479,0.75113,0.75131,0.75096,0.75231,0.7605,0.7482,0.74201,0.74909,0.75702,2239,0.74244,0.81401,10 +0,0.77822,0,0.17369,0.1779,0.20788,0.24946,0.28168,0.3182,0.34833,0.38522,0.4207,0.44465,0.46552,0.48177,0.52058,0.5502,0.57394,0.59928,0.62462,0.6375,0.65065,0.67278,0.7064,0.72304,0.74455,0.74154,0.74413,0.76048,0.76214,0.77374,0.77291,0.76897,0.76432,0.76834,0.7739,0.76856,0.76588,0.77245,0.77593,0.777,0.75884,0.75434,0.75072,0.75096,0.7507,0.75213,0.7603,0.74808,0.74195,0.74903,0.75695,2239,0.74244,0.81401,10 +0,0.77822,0,0.17223,0.1786,0.20637,0.24782,0.27992,0.31648,0.34698,0.38383,0.41941,0.44381,0.46508,0.48204,0.52064,0.55053,0.57455,0.59995,0.62505,0.63824,0.65149,0.67312,0.70554,0.72271,0.74421,0.74189,0.74508,0.76146,0.76307,0.77451,0.77358,0.76971,0.76515,0.76907,0.77455,0.76917,0.76646,0.77292,0.7763,0.77729,0.75861,0.75423,0.75062,0.75088,0.75068,0.75213,0.76022,0.74811,0.74204,0.74906,0.7569,2239,0.74244,0.81401,10 +0,0.77822,0,0.17073,0.17912,0.20488,0.24616,0.27814,0.31469,0.34552,0.38229,0.41796,0.44275,0.46438,0.482,0.52035,0.55048,0.57474,0.60018,0.62503,0.63851,0.65184,0.67299,0.70425,0.72186,0.74329,0.74159,0.74531,0.76166,0.76321,0.77451,0.77352,0.76975,0.76531,0.76914,0.77456,0.76917,0.76648,0.77283,0.77613,0.77705,0.75789,0.75364,0.75008,0.75037,0.75023,0.75172,0.75972,0.74776,0.74178,0.74873,0.75649,2239,0.74244,0.81401,10 +0,0.77822,0,0.16925,0.1795,0.20608,0.24677,0.27833,0.31472,0.34573,0.38234,0.41801,0.4431,0.46498,0.48315,0.52124,0.55155,0.57599,0.60141,0.62598,0.63967,0.65302,0.67368,0.70382,0.72178,0.74309,0.74193,0.74608,0.76235,0.76381,0.77494,0.77388,0.77019,0.76584,0.76957,0.77491,0.76952,0.76682,0.77305,0.77626,0.77711,0.75817,0.75402,0.75049,0.75078,0.75068,0.75217,0.76007,0.74824,0.74232,0.74919,0.75685,2239,0.74244,0.81401,10 diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/two_parab_sim_fast_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/two_parab_sim_fast_res.csv new file mode 100644 index 0000000..a2ba6cd --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/two_parab_sim_fast_res.csv @@ -0,0 +1,50 @@ +0.49086,0.00068971,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,-0.0082352,0.0027043,-0.013223,-0.010056,-0.010042,-0.013761,-0.014997,-0.022441,-0.017504,0.0092179,0.021881,0.034661,0.035283,0.031748,0.027686,0.035968,0.036217,0.033056,0.03615,0.039554,0.03724,0.03819,0.037044,0.036174,0.035849,0.035839,0.036052,0.035436,0.036592,0.038002,0.038312,0.035335,0.037627,0.03506,0.034967,0.038819,0.039423,0.032514,0.029655,0.034199,0.031524,0.035828,0.032183,0.033118,0.030376,0.034571,0.025527,0.0059278,0.011595,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,-0.010173,0.059556,0.030285,0.041665,0.029187,0.016876,0.024749,0.016178,0.016121,0.031797,0.0373,0.041951,0.04194,0.035659,0.040656,0.044006,0.043392,0.040176,0.042909,0.045599,0.043977,0.043529,0.042519,0.041279,0.040826,0.040643,0.041035,0.041291,0.043698,0.045728,0.045481,0.043484,0.041688,0.041845,0.04072,0.046307,0.04781,0.037463,0.028804,0.033116,0.0274,0.034076,0.030539,0.030372,0.027937,0.024916,0.022144,0.0037481,0.0059129,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.0034455,0.062302,0.031663,0.037287,0.027938,0.024703,0.032159,0.023055,0.018418,0.047187,0.049676,0.053415,0.060717,0.057817,0.059849,0.062831,0.062469,0.058887,0.061436,0.063201,0.060525,0.05925,0.058211,0.057047,0.056096,0.055933,0.055931,0.055745,0.058446,0.060967,0.061828,0.059713,0.059434,0.059187,0.060185,0.065039,0.068395,0.05675,0.047636,0.046927,0.040767,0.048896,0.044716,0.046817,0.045164,0.036306,0.030792,0.013353,0.014828,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.011738,0.053649,0.058972,0.062114,0.06128,0.0507,0.051692,0.0386,0.039688,0.06664,0.075387,0.075224,0.078536,0.074428,0.075666,0.079713,0.077694,0.075269,0.076857,0.078295,0.074766,0.072847,0.071818,0.070812,0.07108,0.070875,0.070728,0.069933,0.071596,0.074219,0.075917,0.07463,0.074113,0.072794,0.07242,0.076956,0.081871,0.073218,0.06325,0.064589,0.057552,0.064968,0.062974,0.066552,0.066667,0.052915,0.049705,0.027196,0.028889,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.018758,0.056159,0.053605,0.051249,0.052434,0.038894,0.045688,0.036882,0.042348,0.064111,0.073931,0.071173,0.075133,0.07323,0.072608,0.074725,0.073038,0.069978,0.07161,0.071796,0.067495,0.064972,0.063363,0.063324,0.06319,0.062912,0.0631,0.06201,0.064061,0.067201,0.069748,0.068516,0.06672,0.062983,0.063914,0.067241,0.073931,0.064491,0.054041,0.056629,0.049499,0.058814,0.056472,0.06207,0.062263,0.045643,0.038278,0.016975,0.017495,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.0072592,0.046776,0.039208,0.05262,0.057434,0.040534,0.048283,0.046414,0.057331,0.074406,0.088849,0.090623,0.093436,0.089312,0.087887,0.091014,0.088793,0.084829,0.086597,0.087043,0.083052,0.080718,0.078827,0.078563,0.078022,0.07776,0.078045,0.076713,0.079005,0.081692,0.084532,0.082909,0.082038,0.076455,0.077222,0.081625,0.08913,0.078392,0.070115,0.070913,0.065724,0.075632,0.072932,0.078092,0.07945,0.060468,0.048527,0.026925,0.027825,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.027897,0.063094,0.048122,0.069289,0.077251,0.058409,0.061684,0.060556,0.071555,0.085047,0.099774,0.10093,0.10136,0.096778,0.097484,0.1007,0.097345,0.0939,0.095864,0.096603,0.093088,0.093287,0.091595,0.091742,0.091264,0.09147,0.091894,0.090926,0.093489,0.096018,0.099358,0.098502,0.097664,0.091497,0.090646,0.09609,0.10449,0.095462,0.083293,0.085432,0.078722,0.087973,0.085649,0.091808,0.091643,0.0731,0.060214,0.040941,0.038112,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.023142,0.051727,0.050008,0.070729,0.081237,0.064196,0.064088,0.066639,0.076708,0.089818,0.10546,0.10447,0.10363,0.10274,0.10406,0.10593,0.10166,0.097423,0.098401,0.099342,0.096405,0.096312,0.094345,0.094643,0.094525,0.095217,0.09573,0.095119,0.097908,0.10041,0.10337,0.10168,0.10048,0.095538,0.095889,0.10021,0.10716,0.09734,0.085032,0.086851,0.082002,0.089445,0.088661,0.092112,0.093397,0.074815,0.059104,0.04005,0.039145,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.034929,0.053586,0.046972,0.071368,0.083915,0.064167,0.067337,0.067243,0.077654,0.090363,0.10456,0.10184,0.10218,0.099832,0.0999,0.10194,0.096754,0.091653,0.093503,0.093625,0.090056,0.089955,0.087659,0.087959,0.087671,0.088403,0.089499,0.088751,0.091771,0.094695,0.09768,0.096427,0.095231,0.089118,0.088969,0.093299,0.10154,0.09358,0.081832,0.080969,0.078008,0.085962,0.083599,0.088556,0.087737,0.071439,0.05473,0.036555,0.035463,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.026804,0.04221,0.032811,0.059931,0.077214,0.061211,0.063897,0.069312,0.08065,0.091941,0.10602,0.10169,0.10051,0.096854,0.095785,0.098106,0.093446,0.090135,0.091147,0.091093,0.086948,0.086371,0.084367,0.0844,0.083894,0.084608,0.085137,0.084729,0.088051,0.091001,0.09454,0.092636,0.091498,0.085422,0.086485,0.091424,0.098952,0.09076,0.078585,0.076955,0.073504,0.080043,0.07933,0.082265,0.078195,0.064089,0.047183,0.030153,0.028463,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.019815,0.035433,0.025092,0.049927,0.071739,0.055625,0.05634,0.062554,0.077501,0.086993,0.10159,0.097243,0.094827,0.090082,0.089674,0.091495,0.086789,0.083397,0.08405,0.083296,0.078568,0.077532,0.075124,0.074902,0.074784,0.07532,0.075761,0.075363,0.079009,0.081965,0.086098,0.08493,0.083672,0.078544,0.080796,0.086312,0.092064,0.081335,0.06803,0.065034,0.06342,0.071593,0.070471,0.073785,0.071398,0.057475,0.040262,0.023878,0.020627,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.024025,0.036723,0.022703,0.044895,0.064575,0.046895,0.046035,0.052078,0.065684,0.075458,0.088892,0.084318,0.081016,0.075438,0.07459,0.075543,0.069997,0.065742,0.066396,0.065428,0.061397,0.059895,0.057131,0.056996,0.05686,0.057429,0.05818,0.058133,0.061525,0.064369,0.069044,0.067965,0.065499,0.061017,0.063822,0.069585,0.075071,0.06605,0.05233,0.050063,0.048444,0.056535,0.056095,0.058322,0.056905,0.042796,0.026158,0.010272,0.007427,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.018313,0.044516,0.026268,0.04689,0.069125,0.052527,0.049503,0.060199,0.076927,0.089649,0.10124,0.095747,0.093838,0.088701,0.08742,0.087566,0.08174,0.077172,0.077769,0.077619,0.073859,0.072346,0.069367,0.069506,0.0693,0.069864,0.070692,0.070913,0.074506,0.077238,0.081049,0.08038,0.078078,0.074125,0.077563,0.083969,0.090088,0.07883,0.065845,0.063342,0.059919,0.068703,0.068141,0.071004,0.068191,0.052894,0.037016,0.020652,0.018573,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.023896,0.054664,0.032044,0.051769,0.075206,0.058827,0.053697,0.063328,0.078401,0.095172,0.10611,0.099328,0.096548,0.090361,0.090039,0.090313,0.084163,0.078936,0.079918,0.079242,0.075769,0.073913,0.070823,0.070857,0.070589,0.071151,0.072062,0.07265,0.07564,0.078372,0.081544,0.081384,0.079031,0.075709,0.079618,0.086899,0.093238,0.082404,0.068552,0.065031,0.059484,0.069376,0.06986,0.072853,0.067674,0.053509,0.036747,0.020366,0.016054,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.021715,0.051532,0.036139,0.055524,0.076315,0.059423,0.052656,0.062686,0.07695,0.093082,0.10576,0.097939,0.096329,0.089879,0.089612,0.089189,0.083359,0.077832,0.078265,0.077741,0.074497,0.072573,0.069507,0.069364,0.06904,0.069868,0.070786,0.071582,0.0741,0.07691,0.080406,0.080128,0.077449,0.074018,0.078152,0.085685,0.092873,0.082208,0.067651,0.063212,0.058784,0.068072,0.069562,0.072097,0.065637,0.052657,0.033867,0.017379,0.011192,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.030606,0.054416,0.037391,0.054246,0.073115,0.054922,0.0481,0.057366,0.070473,0.088002,0.099963,0.091671,0.089309,0.082195,0.081401,0.080342,0.074661,0.069039,0.068943,0.067917,0.065201,0.063417,0.060211,0.059902,0.059503,0.06019,0.061035,0.06207,0.064218,0.067055,0.070908,0.071161,0.06845,0.065048,0.070068,0.077356,0.08488,0.075375,0.060465,0.055924,0.051878,0.060837,0.0616,0.063249,0.05514,0.043599,0.023807,0.0080534,0.0020003,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.029584,0.052299,0.036768,0.051818,0.070768,0.051414,0.043516,0.052197,0.065763,0.082932,0.094086,0.086619,0.083614,0.076301,0.07488,0.074717,0.068521,0.063953,0.063417,0.062547,0.059946,0.057893,0.054799,0.05458,0.054041,0.054611,0.05547,0.056415,0.058557,0.061491,0.065443,0.065649,0.062433,0.058161,0.063322,0.070997,0.079351,0.070045,0.056096,0.052089,0.04743,0.05649,0.058181,0.059557,0.051686,0.041111,0.021008,0.0057046,-0.00039618,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.025973,0.047284,0.031098,0.045364,0.065311,0.045142,0.037223,0.046373,0.059175,0.075561,0.087612,0.079522,0.07658,0.06966,0.068861,0.068198,0.062136,0.058207,0.057973,0.056769,0.055599,0.053912,0.050692,0.050715,0.050138,0.050608,0.051544,0.05266,0.05487,0.057983,0.062264,0.062842,0.059677,0.055867,0.061337,0.069162,0.077596,0.06707,0.052783,0.04935,0.043642,0.053562,0.055025,0.055114,0.047214,0.036488,0.017335,0.0025058,-0.0031935,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.022959,0.043168,0.025623,0.0394,0.059968,0.042118,0.034587,0.042957,0.055106,0.071055,0.082579,0.075438,0.072192,0.064755,0.063931,0.063183,0.057131,0.05275,0.052436,0.051162,0.049865,0.047939,0.045062,0.045204,0.044655,0.045129,0.045961,0.047233,0.049188,0.052446,0.056758,0.057701,0.054896,0.050987,0.057104,0.065178,0.07334,0.062947,0.048381,0.04481,0.039453,0.049635,0.051694,0.051473,0.043526,0.033551,0.014258,-0.00020752,-0.0067512,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.020922,0.040333,0.021443,0.035339,0.055797,0.03723,0.029666,0.037887,0.051716,0.067493,0.078981,0.071281,0.06756,0.060425,0.059125,0.058665,0.052204,0.048041,0.047653,0.047314,0.045949,0.043976,0.040972,0.041241,0.040659,0.041134,0.042026,0.04326,0.045388,0.048425,0.052733,0.053456,0.050809,0.047293,0.05379,0.062075,0.070251,0.059846,0.045281,0.042426,0.037634,0.04808,0.049479,0.049917,0.041815,0.0309,0.012073,-0.0019809,-0.0086528,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.020462,0.038549,0.020008,0.034051,0.053808,0.037129,0.029234,0.036818,0.050459,0.065755,0.077318,0.069111,0.065439,0.058054,0.057419,0.056796,0.050023,0.045525,0.045165,0.044574,0.042974,0.041075,0.038066,0.038277,0.037551,0.037951,0.038895,0.040082,0.041721,0.044671,0.048776,0.049772,0.047124,0.042821,0.049833,0.058401,0.06678,0.056879,0.042793,0.040277,0.035435,0.045644,0.047204,0.047769,0.039248,0.028869,0.010512,-0.0032513,-0.0097773,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.018511,0.035883,0.016973,0.03062,0.049979,0.033209,0.024835,0.032792,0.046097,0.062119,0.073543,0.065155,0.06153,0.053832,0.052858,0.05195,0.044927,0.040498,0.040024,0.039386,0.037906,0.036022,0.033009,0.033337,0.032528,0.032883,0.033877,0.035057,0.036481,0.039405,0.043209,0.044435,0.042042,0.03776,0.044877,0.053552,0.061913,0.052514,0.038496,0.036549,0.032081,0.04229,0.044393,0.044599,0.036322,0.026447,0.0082759,-0.0051454,-0.011901,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.016923,0.034171,0.014454,0.028317,0.04732,0.03012,0.021335,0.028978,0.042976,0.059943,0.071098,0.062789,0.05924,0.052583,0.05134,0.050439,0.04324,0.038571,0.037969,0.037801,0.036521,0.034636,0.031732,0.031981,0.031195,0.031552,0.032581,0.033717,0.035191,0.038094,0.041916,0.043236,0.040861,0.036328,0.043776,0.052487,0.060638,0.05124,0.037027,0.035475,0.030594,0.040898,0.0434,0.043583,0.035654,0.025049,0.0072067,-0.0060071,-0.012382,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.016305,0.034812,0.017737,0.031615,0.049829,0.032919,0.023921,0.031071,0.044638,0.061256,0.072501,0.064398,0.060539,0.054209,0.053443,0.052824,0.04544,0.040749,0.040368,0.040396,0.039003,0.037113,0.034151,0.034338,0.033622,0.033979,0.035026,0.035808,0.037339,0.040315,0.044235,0.045624,0.04335,0.038937,0.046559,0.055169,0.06315,0.053893,0.039479,0.037499,0.032603,0.043083,0.045195,0.045177,0.036964,0.025932,0.0078703,-0.0052308,-0.011793,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.015692,0.036746,0.021213,0.034428,0.052122,0.034986,0.025874,0.033236,0.046812,0.063502,0.07454,0.066025,0.061878,0.05531,0.054449,0.054321,0.046846,0.042078,0.041631,0.041954,0.040815,0.03889,0.03594,0.03622,0.035496,0.035853,0.036887,0.037576,0.039131,0.041973,0.04591,0.047358,0.045101,0.040736,0.048433,0.057126,0.06511,0.055908,0.04146,0.039398,0.034667,0.045211,0.04711,0.047066,0.038714,0.02727,0.0091404,-0.0036876,-0.010289,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.015334,0.036384,0.021051,0.034953,0.052382,0.035543,0.026233,0.033471,0.04738,0.064518,0.075481,0.06694,0.063003,0.056339,0.05563,0.055449,0.047793,0.042913,0.042428,0.042717,0.041552,0.039582,0.036667,0.037113,0.036384,0.036741,0.037779,0.038302,0.039873,0.042735,0.0467,0.048176,0.04589,0.041205,0.049075,0.057824,0.065864,0.056708,0.042257,0.040144,0.035462,0.046046,0.047742,0.047749,0.039303,0.027509,0.0095541,-0.0030664,-0.0096756,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.015294,0.036223,0.020884,0.034537,0.052002,0.034669,0.024777,0.032067,0.046033,0.063204,0.074207,0.06547,0.06187,0.055215,0.054841,0.054642,0.04701,0.042451,0.042258,0.042429,0.041461,0.039439,0.036519,0.036963,0.036287,0.036723,0.037762,0.038252,0.039838,0.042714,0.046686,0.048174,0.045892,0.04121,0.049094,0.057857,0.065912,0.056834,0.04238,0.040236,0.035732,0.046324,0.047907,0.047918,0.039405,0.027532,0.0095504,-0.0029202,-0.0095359,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.015506,0.036517,0.020812,0.034716,0.05225,0.034707,0.024882,0.032232,0.046848,0.06437,0.075752,0.067198,0.063381,0.056648,0.056313,0.056197,0.0484,0.043736,0.04369,0.04389,0.042903,0.04085,0.037904,0.038366,0.037643,0.038078,0.039186,0.03951,0.041169,0.044023,0.048094,0.049547,0.047228,0.042268,0.05018,0.058883,0.066902,0.057958,0.043448,0.041405,0.036813,0.047573,0.049273,0.04919,0.04052,0.028454,0.010382,-0.0019205,-0.0086103,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.013993,0.035159,0.020208,0.034588,0.05244,0.035268,0.025338,0.033005,0.047788,0.065066,0.076752,0.068174,0.064526,0.057476,0.057015,0.057031,0.049353,0.044423,0.044533,0.045003,0.04411,0.042132,0.039238,0.039766,0.038995,0.039413,0.04058,0.040804,0.042427,0.045202,0.049235,0.050644,0.048372,0.043794,0.05166,0.060129,0.067911,0.058884,0.044359,0.042091,0.037201,0.047707,0.04928,0.048869,0.039867,0.027786,0.010188,-0.0016823,-0.0087991,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.015,0.035341,0.021514,0.036677,0.054667,0.036966,0.0264,0.033778,0.048506,0.065909,0.077766,0.069424,0.066297,0.059145,0.058674,0.058527,0.050879,0.046152,0.046384,0.047111,0.046328,0.044298,0.0414,0.04197,0.041192,0.041607,0.042746,0.042845,0.044395,0.047146,0.051407,0.052892,0.050494,0.045825,0.05384,0.062037,0.069965,0.060702,0.046124,0.043693,0.039045,0.049653,0.05091,0.050626,0.041439,0.028915,0.011253,-0.00011463,-0.0073348,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.01643,0.035955,0.021297,0.034369,0.051604,0.033775,0.02418,0.032067,0.047195,0.06388,0.076079,0.068168,0.06473,0.058121,0.057199,0.057246,0.049427,0.044924,0.044704,0.045749,0.045122,0.042929,0.040005,0.040623,0.039691,0.03999,0.041099,0.04112,0.042588,0.045231,0.049344,0.050875,0.048355,0.043865,0.051604,0.059727,0.067684,0.058531,0.044052,0.04193,0.037041,0.04732,0.048414,0.047905,0.038733,0.025985,0.0094089,-0.001209,-0.0083895,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.018313,0.03845,0.024152,0.037569,0.05408,0.035996,0.026549,0.033987,0.048608,0.065276,0.077656,0.070038,0.066969,0.060733,0.060149,0.060439,0.052341,0.047618,0.047632,0.048575,0.047614,0.045249,0.042457,0.043149,0.042221,0.042724,0.043881,0.043992,0.045314,0.048162,0.052036,0.053378,0.05069,0.046007,0.053568,0.061217,0.068689,0.060218,0.045643,0.043446,0.038237,0.048201,0.048833,0.048585,0.039044,0.026921,0.010024,-0.00033358,-0.0079759,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.021463,0.041369,0.02734,0.04158,0.057466,0.03902,0.029709,0.03715,0.052336,0.068987,0.081831,0.074694,0.072065,0.066437,0.065852,0.066621,0.05833,0.053648,0.054061,0.055375,0.054554,0.052484,0.049815,0.050552,0.049744,0.050244,0.051431,0.05151,0.052587,0.055293,0.059161,0.060381,0.057564,0.052454,0.060477,0.068407,0.075836,0.067349,0.05209,0.049435,0.044134,0.053929,0.054458,0.054348,0.044614,0.032313,0.014739,0.0046675,-0.0034295,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.011941,0.031349,0.016778,0.034178,0.051995,0.034669,0.026949,0.034122,0.050182,0.066537,0.077847,0.071717,0.069927,0.064356,0.063341,0.063533,0.055497,0.050966,0.051345,0.052505,0.051469,0.0492,0.046674,0.047275,0.046422,0.046913,0.048025,0.048045,0.049452,0.051893,0.056368,0.057669,0.054927,0.049482,0.057499,0.065776,0.074013,0.066117,0.051441,0.048044,0.044539,0.054472,0.054675,0.055836,0.046169,0.03433,0.016196,0.0070739,-0.0010855,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.0098504,0.032063,0.018322,0.036269,0.053976,0.034589,0.028231,0.036346,0.050816,0.067819,0.07975,0.074487,0.072522,0.067198,0.06548,0.065836,0.058081,0.053931,0.054477,0.056021,0.055209,0.052643,0.050062,0.050621,0.049826,0.050228,0.05109,0.050926,0.052411,0.054722,0.059292,0.060268,0.057154,0.051458,0.059245,0.068626,0.077053,0.068443,0.053877,0.051036,0.048169,0.058745,0.059188,0.060624,0.05093,0.038935,0.021014,0.012681,0.0045933,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.013669,0.036997,0.01915,0.033343,0.052581,0.03215,0.023504,0.031925,0.04695,0.064731,0.077443,0.071649,0.06791,0.063222,0.061696,0.062613,0.054979,0.050136,0.050881,0.052067,0.051628,0.049363,0.046858,0.047379,0.046466,0.046677,0.047629,0.047311,0.04858,0.050914,0.055083,0.056069,0.052782,0.047803,0.054847,0.064037,0.072178,0.063885,0.049611,0.047531,0.043979,0.054308,0.054767,0.055515,0.046171,0.034405,0.018596,0.011173,0.0034664,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.014371,0.039031,0.022181,0.033881,0.054465,0.03335,0.026382,0.035886,0.051666,0.069229,0.081737,0.076362,0.0735,0.069025,0.067861,0.068163,0.060171,0.054876,0.056146,0.057818,0.057446,0.055578,0.053278,0.053707,0.052772,0.052893,0.053925,0.05337,0.05449,0.056696,0.060368,0.060804,0.057051,0.052131,0.059382,0.068819,0.076307,0.069128,0.055055,0.051797,0.04816,0.057786,0.057859,0.058385,0.048984,0.037491,0.021792,0.014273,0.0064528,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.013386,0.038341,0.023215,0.035106,0.056949,0.035696,0.027569,0.038217,0.053713,0.069848,0.083117,0.078864,0.076179,0.071752,0.069823,0.070342,0.063216,0.05839,0.060177,0.062233,0.062339,0.060578,0.058305,0.058962,0.058106,0.058221,0.05913,0.058345,0.05977,0.061887,0.065545,0.065759,0.061871,0.056423,0.063833,0.074429,0.082552,0.074955,0.060739,0.057154,0.05387,0.064544,0.064549,0.065071,0.055365,0.043545,0.027838,0.02085,0.012934,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.018128,0.0444,0.029883,0.042677,0.065182,0.044278,0.033921,0.043243,0.058805,0.074822,0.088739,0.083458,0.0811,0.076864,0.074602,0.075823,0.068909,0.064897,0.066971,0.069532,0.070137,0.068092,0.065775,0.066616,0.065839,0.065948,0.067035,0.066338,0.068083,0.070166,0.074974,0.075122,0.071219,0.065174,0.072602,0.08439,0.093004,0.084821,0.070094,0.066115,0.063757,0.074828,0.074875,0.075929,0.064946,0.052702,0.036523,0.029994,0.021673,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.019682,0.042774,0.03178,0.043652,0.066001,0.047358,0.037671,0.048147,0.063689,0.080489,0.092733,0.087534,0.086137,0.082848,0.081512,0.083131,0.076136,0.072962,0.075254,0.078338,0.079456,0.07786,0.075706,0.076666,0.075616,0.075764,0.076828,0.075731,0.077141,0.079321,0.08433,0.085051,0.080955,0.074298,0.081092,0.093,0.10165,0.093153,0.07746,0.074159,0.072327,0.0835,0.083044,0.084362,0.072914,0.060469,0.04325,0.036772,0.027982,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.010779,0.034483,0.023123,0.034671,0.056307,0.037849,0.028388,0.039536,0.054212,0.070246,0.08168,0.075219,0.075216,0.071187,0.06966,0.072012,0.064418,0.06037,0.062685,0.065548,0.066468,0.064831,0.062951,0.063699,0.062743,0.06295,0.064047,0.063123,0.064751,0.067082,0.071597,0.071893,0.068202,0.062145,0.069058,0.080728,0.089196,0.083034,0.068541,0.064434,0.063391,0.07434,0.074187,0.076046,0.065347,0.053982,0.037949,0.03231,0.024009,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.016633,0.041837,0.033463,0.041979,0.062185,0.043447,0.03604,0.048277,0.063692,0.080437,0.090637,0.083368,0.082545,0.077144,0.0731,0.074666,0.067329,0.06215,0.064015,0.067418,0.068433,0.066446,0.064008,0.064644,0.0632,0.063399,0.064344,0.063386,0.065277,0.067444,0.071877,0.071532,0.067937,0.061338,0.067773,0.080046,0.089225,0.0849,0.071303,0.066973,0.067987,0.079264,0.078569,0.08194,0.071499,0.06069,0.043624,0.038494,0.030285,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.013351,0.037154,0.030593,0.037418,0.050817,0.029357,0.020304,0.02704,0.044411,0.060875,0.072681,0.064207,0.063331,0.057712,0.053392,0.05577,0.049496,0.044243,0.045364,0.048524,0.049251,0.047671,0.045257,0.04564,0.044199,0.044337,0.04559,0.044931,0.04713,0.048947,0.053445,0.053855,0.051388,0.045526,0.051867,0.062926,0.071016,0.068147,0.056214,0.052358,0.054426,0.064447,0.063011,0.067232,0.058027,0.048745,0.033239,0.029155,0.021888,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.011093,0.034042,0.028259,0.032506,0.044314,0.024448,0.014476,0.023131,0.037478,0.05504,0.066027,0.057882,0.055127,0.049025,0.04592,0.047887,0.041525,0.035854,0.037004,0.038899,0.03932,0.036797,0.034331,0.034915,0.033619,0.033613,0.034563,0.033848,0.035926,0.037309,0.041695,0.042328,0.039949,0.034653,0.039804,0.049429,0.057102,0.05521,0.044553,0.040813,0.043531,0.05205,0.049706,0.054427,0.046214,0.038168,0.024093,0.020867,0.014371,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,0.01023,0.030276,0.029226,0.03011,0.041548,0.023194,0.013258,0.020611,0.03415,0.051743,0.060701,0.051296,0.048484,0.042819,0.040271,0.042261,0.035906,0.030457,0.030869,0.031991,0.032386,0.029421,0.027011,0.027808,0.026665,0.026291,0.027301,0.026125,0.027765,0.028656,0.032934,0.033599,0.030984,0.02688,0.030721,0.038765,0.044948,0.042044,0.032367,0.029412,0.03084,0.037844,0.037254,0.040698,0.033676,0.026678,0.015949,0.013475,0.00818,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,-0.0051062,0.023191,0.020968,0.026282,0.032149,0.015779,0.0025031,0.0059621,0.019767,0.035719,0.044626,0.035641,0.032998,0.027473,0.024981,0.026004,0.020907,0.015587,0.015831,0.016908,0.016907,0.014136,0.011638,0.012038,0.01081,0.010448,0.011565,0.010756,0.012731,0.013682,0.017973,0.019474,0.017432,0.013973,0.018441,0.026231,0.032426,0.030959,0.022923,0.018905,0.021404,0.028057,0.026369,0.03063,0.024815,0.019248,0.0097109,0.0079397,0.0035572,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,-0.013932,0.020437,0.011258,0.010059,0.012784,0.0013025,-0.012786,-0.014772,0.0011719,0.015221,0.022698,0.014358,0.01228,0.0074865,0.006155,0.0056065,0.00036966,-0.0039011,-0.0036156,-0.0038522,-0.0041153,-0.0069045,-0.0090113,-0.0084532,-0.0092784,-0.009583,-0.0085788,-0.0089147,-0.0072913,-0.0061043,-0.0019582,0.00016841,-0.0013667,-0.0030207,0.0013833,0.0079059,0.012928,0.010698,0.0045966,0.0024148,0.0038852,0.0093636,0.0092729,0.01252,0.0086266,0.0047474,-0.0011111,-0.0021964,-0.0048114,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,-0.02049,0.0088123,-0.0023109,-0.0046839,0.0028368,-0.0095277,-0.019367,-0.018333,-0.005373,0.006154,0.015486,0.0077365,0.0060446,0.0018104,-0.0016334,-0.0024352,-0.0083478,-0.012248,-0.012062,-0.011473,-0.011993,-0.014583,-0.017011,-0.016751,-0.017577,-0.017861,-0.016924,-0.016654,-0.014111,-0.012603,-0.0087419,-0.0074893,-0.0082227,-0.010714,-0.006063,0.0019135,0.0086499,0.0092344,0.0048504,0.0027392,0.0070159,0.013686,0.013437,0.018833,0.015799,0.012973,0.0053591,0.0040219,0.002043,2500,-0.069318,0.070698,5080 +0.49086,0.00068971,0,-0.03392,-0.0048217,-0.016276,-0.012252,-0.0043804,-0.015828,-0.030095,-0.030374,-0.01774,-0.0083917,-0.001014,-0.0086405,-0.010348,-0.014339,-0.017656,-0.018896,-0.024252,-0.027834,-0.027785,-0.027764,-0.028619,-0.030964,-0.033051,-0.0326,-0.032988,-0.032909,-0.031869,-0.031153,-0.02862,-0.02689,-0.023003,-0.021489,-0.021641,-0.023107,-0.018653,-0.010886,-0.0042312,-0.0035842,-0.0062479,-0.0066666,-0.0021741,0.0043805,0.0054802,0.010853,0.0093902,0.0079163,0.0020907,0.0011784,0.00068971,2500,-0.069318,0.070698,5080 diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/ubern_sim_fast_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/ubern_sim_fast_res.csv new file mode 100644 index 0000000..f50b1f8 --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/ubern_sim_fast_res.csv @@ -0,0 +1,50 @@ +9.9253e-06,0.41383,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.32663,0.25958,0.22332,0.21478,0.20581,0.19174,0.18846,0.17472,0.16238,0.15349,0.14534,0.13769,0.13015,0.12439,0.12268,0.11858,0.11355,0.11032,0.10747,0.10726,0.10794,0.10627,0.10517,0.10437,0.104,0.10406,0.1043,0.10481,0.10551,0.1051,0.10619,0.10752,0.10889,0.10737,0.10561,0.1077,0.10993,0.10995,0.10895,0.10725,0.096291,0.090821,0.093331,0.088963,0.073248,0.067507,0.060786,0.039829,0.01367,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.37968,0.3293,0.28379,0.27195,0.24628,0.22177,0.2069,0.19025,0.1821,0.17769,0.1674,0.15775,0.1483,0.14095,0.1387,0.13335,0.12876,0.12454,0.12172,0.12142,0.12204,0.11981,0.11928,0.11905,0.11856,0.11863,0.11898,0.11863,0.1196,0.11913,0.12067,0.12256,0.12453,0.1249,0.12529,0.12712,0.12812,0.12832,0.12504,0.12343,0.11412,0.10256,0.096848,0.091545,0.064742,0.05379,0.048219,0.033245,0.01059,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.38556,0.38181,0.33524,0.32364,0.29102,0.27688,0.26691,0.24932,0.2379,0.23201,0.21866,0.20613,0.19386,0.18433,0.18147,0.17455,0.17211,0.16757,0.16356,0.162,0.16215,0.15928,0.15822,0.15759,0.15695,0.15721,0.15766,0.15687,0.15811,0.15764,0.15961,0.16202,0.16289,0.1629,0.16299,0.16577,0.16679,0.16657,0.16309,0.1544,0.14411,0.13086,0.12744,0.11997,0.090986,0.073904,0.06185,0.051413,0.027643,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.38623,0.41383,0.36999,0.36642,0.33154,0.31718,0.30619,0.28707,0.27783,0.26856,0.2544,0.24316,0.23206,0.22074,0.21586,0.20765,0.20318,0.19753,0.19399,0.19366,0.1927,0.18929,0.1878,0.18715,0.1864,0.18686,0.18738,0.18692,0.18803,0.18806,0.19039,0.19218,0.19097,0.19192,0.19307,0.19574,0.19778,0.19708,0.19336,0.18678,0.17549,0.16078,0.1512,0.14235,0.11219,0.09461,0.080748,0.067141,0.042087,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.3508,0.38262,0.35231,0.36114,0.33796,0.32414,0.31646,0.29763,0.29239,0.28351,0.26932,0.26027,0.24882,0.23597,0.2294,0.22094,0.21609,0.21111,0.20747,0.20681,0.20489,0.20094,0.19899,0.19801,0.19714,0.19732,0.19796,0.19781,0.19848,0.199,0.20151,0.20269,0.20208,0.20398,0.20617,0.20978,0.21037,0.20835,0.20491,0.19853,0.18655,0.17111,0.15685,0.1437,0.11493,0.1007,0.086531,0.072774,0.047075,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.33693,0.3601,0.33657,0.35458,0.33943,0.32635,0.31688,0.29543,0.2894,0.28002,0.26787,0.25854,0.24536,0.2326,0.22452,0.21565,0.20948,0.20421,0.20034,0.19932,0.19648,0.19252,0.19041,0.1891,0.18811,0.18834,0.18914,0.18936,0.18972,0.19078,0.1923,0.19376,0.19419,0.19715,0.20049,0.20448,0.20525,0.19994,0.19574,0.19179,0.18006,0.16471,0.14715,0.13087,0.10365,0.089705,0.075822,0.057864,0.03251,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.31393,0.35115,0.33153,0.35965,0.34363,0.32859,0.32339,0.31307,0.30533,0.29517,0.28125,0.27368,0.26361,0.24974,0.24687,0.23715,0.22971,0.22439,0.21979,0.21866,0.21519,0.21161,0.20924,0.20772,0.20666,0.20689,0.20773,0.20814,0.20856,0.20991,0.21122,0.21308,0.2132,0.21667,0.2206,0.22509,0.22582,0.22178,0.21865,0.21456,0.20201,0.18538,0.16665,0.14904,0.12163,0.10642,0.091339,0.071458,0.045138,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.29766,0.34269,0.33782,0.36804,0.37325,0.36201,0.35848,0.34461,0.33366,0.32551,0.31394,0.30749,0.29786,0.28254,0.27818,0.26743,0.25862,0.25336,0.24799,0.24661,0.24296,0.23894,0.23629,0.23456,0.23383,0.23405,0.23494,0.235,0.23544,0.23706,0.23867,0.24091,0.24145,0.24351,0.24804,0.25307,0.25356,0.24658,0.24431,0.24121,0.22776,0.20935,0.18976,0.17339,0.14733,0.13322,0.11639,0.095032,0.066728,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.28132,0.32208,0.32296,0.36272,0.38024,0.36937,0.37185,0.36215,0.35032,0.34133,0.33052,0.32458,0.31541,0.29997,0.29731,0.28567,0.27574,0.27019,0.26413,0.26205,0.25781,0.25371,0.25094,0.24901,0.24818,0.24841,0.24937,0.24961,0.25013,0.25203,0.25397,0.25546,0.25649,0.25915,0.263,0.26554,0.26534,0.25774,0.25524,0.25219,0.23841,0.21898,0.19671,0.18211,0.15801,0.14249,0.1244,0.10517,0.075913,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.27312,0.30869,0.30658,0.35095,0.37407,0.36601,0.37433,0.37157,0.35899,0.34952,0.33861,0.33331,0.32355,0.30791,0.30508,0.29258,0.2833,0.27763,0.27091,0.26878,0.26448,0.2603,0.25722,0.25555,0.25464,0.25489,0.25592,0.25636,0.25712,0.2593,0.26113,0.2631,0.26407,0.26684,0.27135,0.27393,0.27294,0.2657,0.26334,0.26147,0.24705,0.2269,0.20409,0.18494,0.16277,0.14339,0.12434,0.10404,0.074366,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.26178,0.30686,0.30348,0.35194,0.37657,0.37388,0.38038,0.3771,0.36822,0.35975,0.34963,0.3428,0.33354,0.31686,0.31561,0.30232,0.29212,0.28705,0.28031,0.27757,0.27309,0.26854,0.26518,0.26331,0.26238,0.2628,0.26394,0.26455,0.26559,0.26803,0.27017,0.27179,0.27322,0.27571,0.27932,0.28254,0.2816,0.27532,0.27306,0.27004,0.25528,0.2333,0.20959,0.18938,0.16879,0.14869,0.12905,0.10839,0.077854,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.2537,0.29946,0.29921,0.35302,0.37892,0.37525,0.38825,0.38562,0.37857,0.37092,0.36133,0.35651,0.3498,0.33199,0.32964,0.31549,0.30653,0.30075,0.2943,0.29099,0.28598,0.28104,0.27782,0.27576,0.27475,0.27518,0.27639,0.27715,0.27838,0.28075,0.28319,0.28466,0.28577,0.28878,0.29295,0.29611,0.29516,0.28866,0.28714,0.28372,0.26803,0.24534,0.22103,0.19922,0.17972,0.15827,0.13708,0.11452,0.082536,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.2443,0.29561,0.29711,0.34954,0.37604,0.37809,0.39154,0.39144,0.38667,0.3801,0.37066,0.36531,0.35736,0.33954,0.33693,0.32212,0.31387,0.30748,0.30152,0.29772,0.29226,0.287,0.28375,0.28153,0.28045,0.28115,0.28258,0.28349,0.28462,0.2872,0.28992,0.29175,0.2916,0.29509,0.29944,0.30193,0.30034,0.29428,0.29354,0.29105,0.27496,0.25349,0.23035,0.20701,0.18862,0.16686,0.14544,0.1189,0.085673,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.25092,0.29585,0.29411,0.34376,0.36821,0.37315,0.38745,0.38834,0.38792,0.38272,0.37313,0.36982,0.36167,0.34455,0.34272,0.32721,0.31821,0.31232,0.30677,0.3028,0.29789,0.2923,0.28881,0.28638,0.28523,0.28595,0.28745,0.28828,0.28959,0.2924,0.29539,0.29713,0.29693,0.30089,0.30478,0.30715,0.30558,0.30028,0.29945,0.29661,0.27999,0.25624,0.23034,0.20683,0.18975,0.16753,0.14746,0.12238,0.088289,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.25075,0.29297,0.28921,0.34111,0.36568,0.36919,0.3864,0.38593,0.38723,0.38569,0.37675,0.37509,0.36784,0.35252,0.3498,0.33345,0.32416,0.31894,0.31282,0.30868,0.30414,0.29881,0.29503,0.29239,0.29116,0.2919,0.29349,0.29448,0.29574,0.29881,0.30211,0.30424,0.30445,0.30891,0.31224,0.31461,0.31302,0.3084,0.30734,0.30533,0.28825,0.2638,0.23658,0.21254,0.19633,0.17492,0.1519,0.12328,0.087963,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.25314,0.29202,0.29054,0.34045,0.36342,0.3683,0.38633,0.3846,0.38622,0.38361,0.37669,0.37669,0.36959,0.35478,0.35128,0.33536,0.32677,0.32171,0.31581,0.31152,0.30654,0.30111,0.29729,0.29465,0.29352,0.29438,0.29608,0.29719,0.29823,0.30109,0.30469,0.3072,0.30783,0.31277,0.31618,0.31911,0.31785,0.31325,0.31288,0.31092,0.2932,0.26818,0.23976,0.21532,0.20001,0.17947,0.15727,0.12814,0.092222,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.2498,0.29149,0.288,0.33647,0.3583,0.36222,0.3813,0.37854,0.38112,0.38067,0.37386,0.37454,0.37069,0.35645,0.35368,0.33813,0.32934,0.32375,0.31833,0.31432,0.30894,0.30336,0.29933,0.2967,0.29571,0.2965,0.29821,0.29947,0.30067,0.30376,0.30736,0.30993,0.31093,0.31602,0.31949,0.32294,0.32139,0.31629,0.31658,0.31539,0.2973,0.27189,0.24251,0.2178,0.20333,0.18122,0.1585,0.12886,0.092609,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.24694,0.28907,0.28409,0.33145,0.35243,0.35836,0.3783,0.37554,0.37726,0.37685,0.37079,0.37131,0.36742,0.35423,0.35249,0.33738,0.32841,0.32232,0.31712,0.3127,0.30748,0.30175,0.29748,0.29468,0.29384,0.29466,0.29647,0.29788,0.29925,0.30236,0.30624,0.30873,0.30974,0.31449,0.3179,0.3219,0.32024,0.315,0.31457,0.31424,0.29604,0.27053,0.24107,0.21633,0.20216,0.17852,0.15558,0.12574,0.089463,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.24369,0.28619,0.28403,0.32983,0.34957,0.35544,0.37452,0.3715,0.37242,0.37237,0.36861,0.36904,0.36593,0.35327,0.35135,0.33714,0.3286,0.32256,0.31732,0.31252,0.30743,0.30161,0.2973,0.29436,0.29366,0.29435,0.29613,0.29767,0.29924,0.30234,0.30628,0.30877,0.31012,0.31526,0.3187,0.32317,0.32156,0.31686,0.31642,0.31678,0.29823,0.27254,0.24293,0.21808,0.20405,0.17997,0.15543,0.12531,0.088923,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.24383,0.28462,0.28259,0.32829,0.34883,0.35376,0.37212,0.37225,0.37377,0.37297,0.36849,0.36827,0.36496,0.35275,0.35086,0.33848,0.33056,0.32442,0.31881,0.31419,0.3091,0.30337,0.29886,0.29595,0.29519,0.29591,0.29778,0.29943,0.30101,0.3042,0.30819,0.31094,0.31259,0.31781,0.32162,0.32649,0.32528,0.32035,0.31962,0.31974,0.30058,0.27454,0.2446,0.2195,0.2057,0.18122,0.1564,0.12611,0.089543,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.24245,0.28355,0.28143,0.3273,0.34953,0.35363,0.37139,0.37084,0.37177,0.37038,0.36533,0.36461,0.36126,0.34971,0.34938,0.33704,0.32959,0.32419,0.31875,0.31478,0.30963,0.30411,0.29942,0.29658,0.29578,0.29647,0.29829,0.30007,0.30177,0.30498,0.30909,0.31209,0.314,0.31932,0.32326,0.32849,0.32673,0.32159,0.3204,0.32109,0.30169,0.2755,0.24542,0.22022,0.20667,0.18187,0.1568,0.1263,0.089604,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.24144,0.2819,0.27904,0.32446,0.34698,0.35064,0.36858,0.36751,0.36925,0.36858,0.36303,0.36186,0.359,0.34781,0.34758,0.33613,0.32888,0.32379,0.31833,0.31432,0.3092,0.30372,0.29923,0.29644,0.2956,0.29631,0.29809,0.29994,0.30176,0.30494,0.30892,0.31192,0.31408,0.31953,0.32378,0.3291,0.32768,0.32255,0.32134,0.32231,0.30268,0.27636,0.24615,0.22086,0.20761,0.1825,0.15716,0.12649,0.089645,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.24146,0.28112,0.27752,0.3225,0.34493,0.34862,0.3667,0.36591,0.36723,0.36644,0.36089,0.35933,0.35735,0.34607,0.34579,0.33479,0.32724,0.32232,0.31741,0.31357,0.30859,0.30322,0.29857,0.29591,0.29503,0.29577,0.29758,0.29944,0.30135,0.30459,0.30866,0.31168,0.31406,0.31976,0.32408,0.32971,0.32805,0.3229,0.32206,0.32275,0.30288,0.27642,0.2461,0.22046,0.20765,0.18216,0.15652,0.1256,0.088581,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.24071,0.27993,0.27584,0.32051,0.34268,0.34753,0.36564,0.3653,0.36629,0.36517,0.35929,0.35744,0.3552,0.34407,0.34402,0.33275,0.32548,0.32076,0.31586,0.31219,0.30724,0.30187,0.29726,0.29474,0.29393,0.2947,0.29655,0.29845,0.30044,0.30368,0.30781,0.31098,0.31333,0.319,0.32287,0.32859,0.32718,0.32228,0.32173,0.32272,0.3027,0.27622,0.24586,0.22021,0.20773,0.18205,0.15626,0.12528,0.088274,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.24013,0.27868,0.27415,0.31841,0.34153,0.34605,0.36445,0.36444,0.36673,0.36597,0.3603,0.35841,0.35647,0.34527,0.34522,0.33394,0.32661,0.32176,0.31692,0.31335,0.30859,0.30315,0.29847,0.29598,0.29515,0.29592,0.29779,0.29969,0.30169,0.30497,0.30911,0.31236,0.31479,0.32024,0.32408,0.32985,0.32833,0.32359,0.32295,0.32415,0.30404,0.27743,0.24641,0.22068,0.20848,0.18264,0.15673,0.12571,0.088785,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.23947,0.27717,0.27228,0.31643,0.33997,0.34545,0.36399,0.36379,0.36619,0.36578,0.35995,0.35767,0.3556,0.3447,0.34452,0.33316,0.32621,0.32107,0.31614,0.31265,0.30784,0.30251,0.29783,0.29534,0.29455,0.29534,0.29722,0.29916,0.30119,0.30452,0.30871,0.31192,0.31443,0.31998,0.32398,0.32962,0.32809,0.32314,0.32234,0.32371,0.30352,0.27664,0.24565,0.21965,0.20803,0.18202,0.15601,0.125,0.088106,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.23905,0.2766,0.27155,0.31558,0.33905,0.34511,0.36415,0.36385,0.3665,0.36617,0.36032,0.35796,0.35581,0.34484,0.3446,0.33322,0.32634,0.32103,0.31606,0.31241,0.30775,0.30248,0.2978,0.29534,0.29454,0.29533,0.29721,0.29916,0.30119,0.30453,0.30875,0.31189,0.31438,0.3199,0.32375,0.32955,0.32807,0.32318,0.3221,0.32336,0.30326,0.27649,0.24559,0.21953,0.20827,0.18213,0.15602,0.12498,0.088216,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.23905,0.27603,0.27059,0.31471,0.33826,0.34438,0.36348,0.36288,0.36579,0.36518,0.35934,0.35674,0.3546,0.34364,0.3434,0.33202,0.32491,0.31962,0.31475,0.31106,0.30649,0.30118,0.29648,0.29406,0.29331,0.29413,0.29604,0.298,0.30006,0.30341,0.30759,0.31074,0.31315,0.31846,0.32214,0.32792,0.32635,0.32163,0.32038,0.32182,0.30178,0.27493,0.24411,0.21811,0.20734,0.1812,0.15512,0.12418,0.087698,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.23884,0.27589,0.27061,0.31475,0.33833,0.34451,0.36391,0.36316,0.36619,0.36571,0.35998,0.3577,0.35563,0.34478,0.34461,0.33336,0.32632,0.32088,0.31578,0.31204,0.30752,0.30227,0.29755,0.2951,0.29436,0.29512,0.29704,0.29897,0.30112,0.30449,0.30867,0.31168,0.31418,0.31948,0.32317,0.32908,0.32741,0.3226,0.32127,0.32319,0.30302,0.27589,0.24472,0.2184,0.20799,0.1818,0.15572,0.12495,0.088633,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.23878,0.27469,0.26998,0.31434,0.33814,0.3439,0.36347,0.36192,0.3652,0.36519,0.35958,0.35752,0.35565,0.34402,0.34404,0.33255,0.32569,0.32008,0.31486,0.31125,0.30693,0.30167,0.29695,0.29452,0.2938,0.29465,0.29654,0.29857,0.30071,0.304,0.30822,0.31126,0.31372,0.31891,0.3225,0.32824,0.32643,0.32142,0.31979,0.32149,0.30149,0.27465,0.24349,0.21719,0.20737,0.18129,0.15539,0.12502,0.089064,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.2388,0.27502,0.26952,0.31417,0.33825,0.34357,0.36249,0.36132,0.3649,0.36517,0.35967,0.35774,0.35612,0.34418,0.34439,0.33291,0.32626,0.32064,0.31512,0.31143,0.30698,0.30163,0.29659,0.29414,0.29336,0.29421,0.29601,0.29798,0.30004,0.30323,0.30754,0.31065,0.31306,0.31822,0.32161,0.32719,0.32506,0.31999,0.31828,0.31967,0.29958,0.27272,0.24185,0.21555,0.20634,0.18037,0.15463,0.12465,0.089047,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.23881,0.27544,0.2684,0.31348,0.33796,0.34254,0.36178,0.35986,0.36386,0.36455,0.3595,0.35788,0.35579,0.34387,0.34391,0.33281,0.32575,0.32041,0.31485,0.31106,0.30651,0.30136,0.29647,0.29369,0.29294,0.29368,0.29546,0.29757,0.29973,0.30286,0.30721,0.31025,0.3126,0.31765,0.32076,0.32629,0.32432,0.31907,0.31701,0.31816,0.29825,0.27128,0.24019,0.21414,0.20584,0.18004,0.15428,0.12434,0.089083,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.239,0.27618,0.26997,0.31535,0.34012,0.34508,0.36449,0.36309,0.36702,0.36819,0.36272,0.36067,0.35842,0.34703,0.34747,0.33642,0.3297,0.32434,0.31911,0.31563,0.31138,0.30587,0.30097,0.29832,0.29736,0.2982,0.29991,0.30231,0.3046,0.30779,0.31222,0.31494,0.31734,0.32223,0.32513,0.33138,0.32963,0.32404,0.32175,0.32339,0.3031,0.27576,0.2441,0.2179,0.2102,0.18438,0.1586,0.12843,0.093262,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.23232,0.27206,0.26762,0.3137,0.33608,0.34202,0.36203,0.36087,0.36547,0.3673,0.36082,0.35888,0.35689,0.34618,0.34538,0.33495,0.32829,0.32337,0.31751,0.31391,0.30928,0.30369,0.29883,0.29612,0.29516,0.29607,0.2979,0.30021,0.30234,0.30576,0.31034,0.31323,0.3158,0.32027,0.32309,0.32913,0.32714,0.32152,0.31889,0.32016,0.29972,0.2723,0.24035,0.21426,0.20842,0.1828,0.15722,0.12706,0.092276,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.23251,0.2718,0.26862,0.31517,0.33536,0.34208,0.36253,0.36215,0.36737,0.36941,0.36366,0.36235,0.36033,0.34857,0.34691,0.33713,0.33022,0.32579,0.32038,0.31718,0.31294,0.30711,0.30186,0.29912,0.29819,0.29907,0.30084,0.30339,0.30594,0.30947,0.31396,0.31688,0.31998,0.32395,0.32625,0.33306,0.33049,0.32513,0.3218,0.3241,0.3036,0.27575,0.24316,0.21688,0.2121,0.18643,0.16064,0.13032,0.095583,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.23249,0.27128,0.26453,0.31206,0.33327,0.33764,0.35888,0.35954,0.36557,0.36843,0.36235,0.35989,0.35861,0.34773,0.34522,0.3362,0.3299,0.32559,0.32071,0.31714,0.31334,0.30763,0.30272,0.2997,0.29878,0.2997,0.3016,0.30416,0.30649,0.31063,0.31475,0.31803,0.32147,0.32555,0.32813,0.33422,0.33186,0.32623,0.3224,0.3242,0.30335,0.27527,0.24261,0.21573,0.21297,0.18731,0.16163,0.13157,0.09703,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.23226,0.27193,0.26176,0.31016,0.33044,0.33273,0.35483,0.35579,0.36143,0.36526,0.3595,0.3555,0.3551,0.34524,0.34203,0.33349,0.32752,0.32291,0.31864,0.31435,0.31063,0.30537,0.30021,0.29744,0.29643,0.29737,0.29961,0.30195,0.30403,0.30829,0.31227,0.31619,0.32011,0.32429,0.32656,0.33241,0.3297,0.32396,0.32094,0.32224,0.30116,0.27299,0.24049,0.21301,0.21219,0.18665,0.16137,0.13173,0.097528,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.23151,0.27203,0.26361,0.30831,0.32846,0.33192,0.3545,0.35656,0.36306,0.3678,0.36312,0.3593,0.35968,0.35088,0.34792,0.33864,0.33169,0.32729,0.32235,0.31824,0.31414,0.30874,0.30358,0.30063,0.29972,0.30052,0.30269,0.30477,0.30715,0.31121,0.31535,0.31914,0.32373,0.32841,0.33045,0.33716,0.33413,0.32925,0.32572,0.32856,0.30707,0.27786,0.24524,0.21754,0.21776,0.19196,0.16688,0.13732,0.10311,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.23083,0.27226,0.26091,0.30651,0.32769,0.32917,0.35242,0.35572,0.36091,0.36444,0.36099,0.35647,0.35698,0.34871,0.34459,0.33637,0.33027,0.32665,0.32192,0.31768,0.31366,0.30845,0.30377,0.30086,0.29994,0.30089,0.30327,0.30538,0.30776,0.31193,0.316,0.32008,0.32566,0.33006,0.33206,0.33823,0.33596,0.33087,0.32706,0.3292,0.30752,0.27818,0.24577,0.21728,0.21913,0.19344,0.16886,0.13974,0.10589,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.22989,0.27229,0.26317,0.30492,0.32716,0.32997,0.35364,0.35819,0.36441,0.36821,0.36368,0.35947,0.35934,0.35145,0.34844,0.34032,0.33408,0.33065,0.32593,0.32248,0.31919,0.31334,0.30899,0.30644,0.30557,0.30673,0.30901,0.31112,0.31422,0.3187,0.32283,0.32644,0.33264,0.33665,0.33823,0.34538,0.34203,0.33701,0.33393,0.33735,0.31536,0.2858,0.25228,0.22396,0.22685,0.20141,0.17681,0.14762,0.1142,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.2294,0.2729,0.261,0.30389,0.32584,0.33013,0.35438,0.36026,0.36758,0.37169,0.36666,0.36131,0.36129,0.35391,0.35204,0.34405,0.3377,0.33412,0.32942,0.32619,0.32253,0.3167,0.31197,0.30976,0.30907,0.31014,0.31246,0.31495,0.31811,0.32207,0.3259,0.32967,0.33619,0.33926,0.34062,0.34842,0.34505,0.34016,0.33689,0.34188,0.31988,0.29038,0.25582,0.22807,0.23221,0.20703,0.18243,0.15325,0.12051,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.22274,0.26201,0.2542,0.29824,0.32148,0.32734,0.35206,0.35621,0.36472,0.36862,0.36358,0.35773,0.35891,0.35233,0.35022,0.34201,0.33676,0.33418,0.32983,0.32659,0.32312,0.31808,0.31377,0.31174,0.31091,0.31224,0.31484,0.31732,0.32042,0.32435,0.32851,0.33216,0.3384,0.34237,0.34437,0.35173,0.34846,0.34312,0.33911,0.34328,0.3215,0.29244,0.25876,0.23142,0.23575,0.21103,0.18696,0.15886,0.12699,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.22108,0.26141,0.2507,0.29567,0.31997,0.3272,0.35023,0.35144,0.36118,0.36644,0.36303,0.35717,0.35752,0.35095,0.34861,0.34021,0.33535,0.33306,0.32929,0.32541,0.32277,0.31807,0.31425,0.31216,0.31143,0.31287,0.31562,0.31844,0.32107,0.32595,0.3294,0.33294,0.3393,0.34299,0.34495,0.35218,0.34843,0.34321,0.34028,0.3442,0.32264,0.29391,0.26075,0.2339,0.23843,0.21399,0.19013,0.16226,0.1313,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.20854,0.25329,0.24652,0.29257,0.31807,0.32675,0.3503,0.35311,0.36392,0.36896,0.36553,0.36123,0.36129,0.35481,0.35241,0.34431,0.33864,0.33626,0.33216,0.32816,0.32573,0.32111,0.31691,0.31495,0.3142,0.31551,0.31819,0.32059,0.32363,0.32828,0.33247,0.33626,0.34277,0.34732,0.34989,0.35776,0.35467,0.34817,0.34498,0.3506,0.32918,0.30044,0.26749,0.24062,0.24464,0.22023,0.19633,0.16841,0.13804,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.20667,0.24903,0.23727,0.28465,0.31164,0.32002,0.34248,0.34397,0.35441,0.36103,0.35945,0.35692,0.35633,0.3503,0.34935,0.34123,0.33305,0.33076,0.32674,0.32287,0.32023,0.31533,0.31131,0.30957,0.30898,0.31052,0.31335,0.31557,0.31854,0.32396,0.32799,0.33164,0.33783,0.34224,0.34471,0.35218,0.34929,0.34292,0.33909,0.34377,0.32302,0.29547,0.26397,0.23829,0.24247,0.21924,0.19656,0.17044,0.14155,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.19857,0.23153,0.2218,0.26761,0.29385,0.30498,0.32891,0.33263,0.34459,0.35073,0.35106,0.3489,0.34848,0.34117,0.33997,0.33065,0.32288,0.31963,0.31344,0.30847,0.30582,0.30109,0.29605,0.2945,0.29402,0.2954,0.29816,0.30074,0.30387,0.30856,0.31183,0.31568,0.32209,0.32694,0.32824,0.33586,0.33189,0.3254,0.32145,0.32805,0.30859,0.28286,0.25341,0.22948,0.2335,0.21199,0.19107,0.16731,0.14045,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.18188,0.21178,0.20209,0.23573,0.26511,0.27553,0.29786,0.30116,0.3113,0.31946,0.31861,0.31631,0.31562,0.30777,0.30719,0.2968,0.28965,0.28788,0.28115,0.27676,0.27352,0.26783,0.26295,0.26161,0.26133,0.26262,0.26535,0.26744,0.27093,0.27478,0.27886,0.28164,0.28859,0.29207,0.29311,0.3024,0.29867,0.29276,0.28935,0.29897,0.28194,0.25928,0.23321,0.21216,0.2164,0.19762,0.17942,0.15904,0.13523,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.1641,0.1898,0.17897,0.20274,0.22913,0.23799,0.26304,0.26473,0.26986,0.2769,0.2756,0.27583,0.27243,0.26476,0.26597,0.25401,0.24666,0.24408,0.23893,0.23466,0.23256,0.22746,0.22315,0.222,0.2219,0.22357,0.22657,0.22949,0.23294,0.23761,0.24083,0.24382,0.25064,0.25387,0.25495,0.26386,0.26072,0.25569,0.25321,0.26301,0.24883,0.22964,0.20726,0.18943,0.19458,0.17882,0.16362,0.14687,0.12638,203,0.18819,0.63947,30 +9.9253e-06,0.41383,0,0.14424,0.16533,0.15302,0.16584,0.18939,0.19723,0.22034,0.22146,0.22502,0.23118,0.22986,0.23025,0.22737,0.22047,0.22185,0.21095,0.20452,0.20238,0.19766,0.19395,0.1922,0.18735,0.18316,0.1822,0.18226,0.18384,0.1868,0.18989,0.19362,0.1982,0.20163,0.20519,0.21243,0.21645,0.21839,0.22757,0.22581,0.22217,0.22096,0.23105,0.21945,0.20339,0.18418,0.169,0.17424,0.16099,0.1481,0.13355,0.1162,203,0.18819,0.63947,30 diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/w_sim_fast_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/w_sim_fast_res.csv new file mode 100644 index 0000000..3c3e42f --- /dev/null +++ b/mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/w_sim_fast_res.csv @@ -0,0 +1,50 @@ +0.55149,-0.0043101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.028245,-0.028568,-0.0092051,-0.022065,-0.031006,-0.0319,-0.0047913,-0.0076251,-0.015519,0.011383,0.0079568,0.010895,0.010385,0.0047066,0.0077369,0.0028496,0.0096,0.010284,0.0098309,0.016542,0.018283,0.016698,0.014479,0.018321,0.019447,0.019301,0.020028,0.018807,0.019292,0.02026,0.021531,0.023147,0.022018,0.024423,0.024105,0.027386,0.018825,0.018047,0.016813,0.016736,0.022785,0.029097,0.025129,0.025714,0.032419,0.023751,0.013053,0.022037,0.013411,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.035785,-0.043909,-0.038361,-0.026307,-0.024386,-0.031244,-0.014945,-0.021814,-0.023699,-0.0019051,-0.0082026,-0.0064759,-0.004496,-0.0086187,0.0005838,-0.00018998,0.010627,0.014633,0.012006,0.020134,0.020174,0.017771,0.015167,0.016593,0.017279,0.019323,0.02036,0.018799,0.019651,0.019804,0.021353,0.02344,0.024045,0.027126,0.028744,0.027093,0.016968,0.019294,0.020032,0.018655,0.02194,0.024302,0.017535,0.022761,0.031764,0.031107,0.017954,0.02494,0.020428,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.046447,-0.030358,-0.028442,-0.018943,-0.00046068,0.0040811,0.02204,0.015864,0.009296,0.027489,0.025784,0.026329,0.024963,0.020962,0.029652,0.026326,0.041448,0.042782,0.038445,0.044045,0.044579,0.041516,0.038273,0.039432,0.041678,0.042996,0.044642,0.043219,0.044202,0.044381,0.045394,0.04615,0.045759,0.048063,0.048167,0.048272,0.041071,0.042396,0.041077,0.042365,0.041113,0.046166,0.043088,0.047731,0.051701,0.044821,0.0279,0.038429,0.039312,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.054345,-0.032347,-0.037411,-0.033834,-0.012468,-0.012507,-0.00019773,-0.0089947,-0.018069,-0.0047471,0.0096874,0.0086804,0.0046713,0.0060893,0.011512,0.0094647,0.025754,0.0251,0.020994,0.024467,0.023701,0.021725,0.01914,0.020527,0.022887,0.024557,0.026675,0.025741,0.026173,0.026693,0.028298,0.029856,0.02848,0.030691,0.027918,0.027885,0.020532,0.02232,0.023961,0.025071,0.020566,0.028883,0.030033,0.03312,0.034872,0.033324,0.01276,0.024515,0.026669,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.060214,-0.045444,-0.045587,-0.02904,-0.011718,-0.0052065,0.0064047,-0.0052461,-0.016681,-0.0076519,0.0068308,0.010026,0.0060501,0.0072264,0.010034,0.0095983,0.02558,0.023352,0.020376,0.025278,0.023541,0.022499,0.021601,0.023293,0.026427,0.027546,0.029262,0.028398,0.028984,0.028072,0.027737,0.02915,0.028781,0.030416,0.02734,0.027597,0.022535,0.021647,0.023931,0.02717,0.025582,0.032144,0.025715,0.031699,0.036382,0.038229,0.017336,0.031461,0.032789,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.066733,-0.05048,-0.055465,-0.038383,-0.024894,-0.021749,-0.01101,-0.015103,-0.025162,-0.019175,-0.0057388,4.381e-05,-0.00013184,-0.00099226,0.0012924,-0.00082982,0.013835,0.010292,0.0076534,0.012034,0.010531,0.010702,0.0091464,0.0097863,0.012121,0.013701,0.014726,0.013904,0.014629,0.013867,0.014115,0.015802,0.015275,0.017844,0.01552,0.014354,0.011198,0.012222,0.012801,0.015267,0.010175,0.014172,0.0086999,0.015146,0.017522,0.023284,-4.8335e-05,0.014726,0.017648,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.062255,-0.053524,-0.062674,-0.046627,-0.023276,-0.023701,-0.0082573,-0.014994,-0.025737,-0.017397,-0.0070263,-0.0017341,-0.0038574,-0.0001327,0.0056976,0.0042157,0.018998,0.015311,0.011628,0.014708,0.012452,0.01369,0.013034,0.013091,0.015993,0.017161,0.017966,0.016764,0.017471,0.016133,0.01651,0.018206,0.018407,0.020298,0.017538,0.017576,0.015851,0.018217,0.018593,0.018427,0.012822,0.018747,0.014046,0.019003,0.022123,0.025598,0.0065878,0.020854,0.019721,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.063066,-0.054646,-0.055945,-0.036605,-0.01713,-0.017699,-0.0039788,-0.010686,-0.015845,-0.0059604,0.0016183,0.0047012,0.00091891,0.0041376,0.0143,0.015455,0.029386,0.024666,0.022163,0.024173,0.021283,0.02182,0.021215,0.020779,0.023359,0.02457,0.025193,0.024195,0.025326,0.02366,0.024378,0.02612,0.025186,0.026127,0.024353,0.024385,0.023819,0.027269,0.025524,0.026885,0.019775,0.02721,0.018672,0.022067,0.027175,0.028864,0.006799,0.02318,0.021899,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.060604,-0.055503,-0.057322,-0.041968,-0.02545,-0.019949,-0.002391,-0.011254,-0.018361,-0.010754,-0.0014077,0.0019023,-0.0018191,0.0023432,0.011871,0.012519,0.024775,0.022922,0.022122,0.025819,0.023602,0.024623,0.023537,0.023445,0.025574,0.026532,0.027006,0.026015,0.027222,0.025723,0.026768,0.028514,0.026956,0.028533,0.026857,0.02781,0.027017,0.031518,0.03113,0.031751,0.026456,0.031711,0.023795,0.026172,0.032994,0.03385,0.011272,0.025393,0.024191,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.045753,-0.038674,-0.038453,-0.029051,-0.011485,-0.004418,0.014885,0.005183,-0.0020576,0.0078532,0.018648,0.022219,0.017156,0.023392,0.033054,0.034924,0.045763,0.042916,0.04118,0.044552,0.041798,0.042374,0.041266,0.04182,0.043618,0.044326,0.044608,0.043405,0.044676,0.043387,0.04464,0.04618,0.04468,0.046688,0.045605,0.046434,0.04511,0.050272,0.049475,0.049012,0.042847,0.046598,0.036751,0.040336,0.047276,0.047511,0.023804,0.037105,0.035381,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.037758,-0.037173,-0.037938,-0.027889,-0.008364,-0.0040032,0.014594,0.0054393,-0.0013637,0.0081539,0.021122,0.024476,0.023629,0.028946,0.038496,0.040387,0.051416,0.048755,0.046197,0.048775,0.046067,0.04613,0.045728,0.045889,0.047343,0.047814,0.048094,0.046882,0.048234,0.04646,0.047976,0.049007,0.048023,0.049045,0.048662,0.049671,0.048236,0.051295,0.05059,0.051401,0.04471,0.045628,0.036665,0.041927,0.050407,0.04819,0.027124,0.04022,0.04096,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.039748,-0.042664,-0.038165,-0.028619,-0.0071919,-0.0034229,0.012584,0.0077506,0.0006918,0.0083059,0.019433,0.021321,0.019194,0.025524,0.0337,0.034509,0.045108,0.043711,0.043211,0.046219,0.043798,0.043609,0.043904,0.044619,0.045729,0.045975,0.046284,0.045203,0.046628,0.04507,0.046529,0.047087,0.046611,0.047521,0.046285,0.04732,0.044545,0.047411,0.046726,0.048798,0.043731,0.046135,0.03721,0.040904,0.050859,0.048262,0.029759,0.04437,0.042894,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.044683,-0.047274,-0.045297,-0.031637,-0.010221,-0.0051815,0.0088691,0.004192,-0.0029949,0.0047612,0.014515,0.016335,0.013063,0.018283,0.025381,0.025276,0.038427,0.036273,0.035509,0.03963,0.040146,0.040353,0.040271,0.041946,0.043178,0.043672,0.044033,0.042957,0.043683,0.042357,0.043992,0.044191,0.044163,0.044327,0.04374,0.044978,0.043031,0.045328,0.045713,0.047772,0.044032,0.045017,0.035835,0.03955,0.050971,0.049312,0.030176,0.041671,0.041032,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.049605,-0.054424,-0.054394,-0.036143,-0.01369,-0.0043296,0.007984,0.0018011,-0.0038157,0.0044111,0.012952,0.013645,0.011064,0.016308,0.025241,0.024588,0.037845,0.03571,0.034295,0.038236,0.038281,0.038085,0.037631,0.039009,0.040648,0.040667,0.040888,0.039984,0.040803,0.039191,0.040394,0.040926,0.040832,0.041237,0.040647,0.042573,0.0406,0.04219,0.042762,0.045365,0.039799,0.04218,0.032726,0.033545,0.046676,0.044037,0.022964,0.033854,0.036131,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.047295,-0.055954,-0.051888,-0.03094,-0.0080712,-0.00066659,0.013985,0.0069873,-3.5476e-05,0.008975,0.019076,0.019788,0.016877,0.021201,0.030454,0.030698,0.043288,0.0422,0.040604,0.04424,0.043876,0.043959,0.043211,0.044905,0.046346,0.046662,0.046807,0.045812,0.046317,0.044844,0.045299,0.045842,0.045794,0.04547,0.045331,0.047778,0.046368,0.047739,0.049036,0.051451,0.042585,0.046019,0.035923,0.035736,0.050085,0.04611,0.024204,0.03555,0.038051,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.04484,-0.057256,-0.049889,-0.028849,-0.0079979,-0.0021977,0.011062,0.0051821,-0.0030633,0.0058961,0.016708,0.017789,0.015399,0.021056,0.030197,0.030555,0.042481,0.040758,0.038589,0.042278,0.042062,0.041791,0.04116,0.042822,0.044421,0.045037,0.045267,0.044326,0.044865,0.043483,0.044004,0.044645,0.04495,0.044205,0.044568,0.047153,0.045159,0.046808,0.047881,0.049966,0.039789,0.043753,0.034061,0.033772,0.0495,0.045223,0.024827,0.036298,0.040641,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.045793,-0.060546,-0.04742,-0.028373,-0.004386,0.0028722,0.014778,0.0095642,0.0011734,0.011638,0.021506,0.022416,0.019267,0.024216,0.03273,0.033591,0.045668,0.044237,0.042053,0.045362,0.045244,0.045036,0.043976,0.045435,0.046872,0.047369,0.047193,0.046323,0.046673,0.045381,0.045646,0.0465,0.046406,0.045649,0.046164,0.048617,0.0471,0.048316,0.049296,0.050886,0.040442,0.043686,0.034182,0.033938,0.050726,0.045501,0.025247,0.035514,0.039948,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.049125,-0.059719,-0.047048,-0.029565,-0.0047234,0.0021291,0.014574,0.0083684,0.0019889,0.011638,0.021455,0.021647,0.017805,0.023554,0.031855,0.032674,0.044647,0.043651,0.042141,0.045099,0.04504,0.045813,0.044995,0.046251,0.047537,0.047925,0.047695,0.046756,0.04724,0.046021,0.046337,0.047255,0.047242,0.046767,0.047484,0.050063,0.048973,0.050685,0.051658,0.052085,0.042307,0.04567,0.036893,0.034316,0.051589,0.046893,0.027569,0.037778,0.040392,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.048903,-0.060729,-0.047989,-0.029103,-0.0050677,0.00072466,0.014477,0.0073574,0.00080408,0.010336,0.019479,0.020683,0.016815,0.021994,0.030488,0.031645,0.04403,0.042607,0.041745,0.044367,0.044193,0.044906,0.044593,0.045871,0.047178,0.047464,0.04727,0.04637,0.04681,0.045702,0.046163,0.047102,0.047321,0.046899,0.047943,0.05053,0.049409,0.050336,0.051074,0.05144,0.042081,0.046197,0.035534,0.03384,0.051191,0.046945,0.028604,0.038126,0.03942,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.04978,-0.062068,-0.05067,-0.032734,-0.0085479,-0.0035272,0.010903,0.0038695,-0.0017418,0.0071591,0.017002,0.01762,0.01339,0.01808,0.028124,0.028838,0.041218,0.039672,0.038823,0.041137,0.040707,0.041282,0.041042,0.042424,0.043475,0.043919,0.043812,0.042934,0.043327,0.042282,0.042893,0.043841,0.044291,0.044032,0.04442,0.046446,0.045052,0.046502,0.046817,0.047816,0.037907,0.042845,0.032757,0.031931,0.048325,0.043537,0.025515,0.035042,0.037791,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.05235,-0.064508,-0.051126,-0.033424,-0.010116,-0.00269,0.011419,0.0051233,0.00045724,0.010195,0.019401,0.019863,0.015347,0.019549,0.03052,0.030806,0.04346,0.04247,0.041476,0.044208,0.044163,0.044553,0.044155,0.045395,0.046853,0.047291,0.047419,0.046445,0.046763,0.045792,0.046094,0.047177,0.0478,0.047736,0.048302,0.050523,0.049161,0.050944,0.051017,0.05228,0.041747,0.04704,0.036996,0.035175,0.05165,0.046973,0.029268,0.039422,0.041265,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.054578,-0.067179,-0.049938,-0.033063,-0.010634,-0.0039502,0.011511,0.0045418,0.00068658,0.0098789,0.020585,0.02056,0.01558,0.019369,0.030718,0.031389,0.044006,0.043221,0.042552,0.045254,0.045119,0.045829,0.045289,0.046446,0.048019,0.048733,0.048825,0.048058,0.048414,0.047513,0.047342,0.048456,0.048869,0.048882,0.049672,0.051879,0.050798,0.052651,0.053086,0.0546,0.04335,0.048311,0.038782,0.035946,0.052675,0.048637,0.030479,0.040094,0.042808,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.057524,-0.070651,-0.052102,-0.035359,-0.013293,-0.007075,0.0080632,0.00066866,-0.0033843,0.0061059,0.016845,0.016891,0.012042,0.015528,0.027028,0.027421,0.040245,0.039218,0.038837,0.041797,0.041559,0.042124,0.041458,0.042808,0.044537,0.04519,0.045405,0.044636,0.045013,0.044189,0.044111,0.045358,0.045824,0.045943,0.046206,0.048431,0.047287,0.049497,0.050091,0.052025,0.040621,0.045989,0.037165,0.034879,0.051147,0.047928,0.03051,0.040029,0.041228,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.058825,-0.072349,-0.054168,-0.037679,-0.015556,-0.0089511,0.0059179,-0.0012897,-0.0055969,0.0036651,0.014211,0.014621,0.0097906,0.01309,0.024324,0.024545,0.037833,0.036661,0.036364,0.039373,0.039329,0.039806,0.039064,0.040565,0.042539,0.043208,0.043457,0.042687,0.042974,0.042224,0.042192,0.043615,0.043898,0.043881,0.043992,0.046416,0.045077,0.047804,0.048853,0.050708,0.039364,0.045036,0.036519,0.034026,0.049843,0.047663,0.030607,0.040482,0.042084,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.059677,-0.071453,-0.052329,-0.034924,-0.011593,-0.0055102,0.009464,0.0023919,-0.0023291,0.0066582,0.018536,0.01945,0.014449,0.017336,0.028413,0.028502,0.041671,0.040732,0.040384,0.043319,0.043549,0.044241,0.043399,0.044852,0.046803,0.047448,0.047684,0.046905,0.047201,0.046462,0.046324,0.047772,0.048102,0.048124,0.048276,0.0508,0.048839,0.051993,0.053097,0.055416,0.044119,0.049622,0.040818,0.037844,0.054315,0.051918,0.035508,0.045073,0.044827,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.059771,-0.071659,-0.052672,-0.034286,-0.011954,-0.0059549,0.0089259,0.0019599,-0.0030977,0.0058212,0.017635,0.018968,0.01392,0.017262,0.028273,0.028118,0.041225,0.040402,0.040021,0.042922,0.043162,0.043832,0.043124,0.044727,0.046711,0.047241,0.047366,0.046565,0.046866,0.045953,0.045729,0.047073,0.047227,0.047147,0.047338,0.049984,0.048073,0.051595,0.053139,0.055108,0.043895,0.049552,0.040897,0.037686,0.05488,0.052467,0.0364,0.045973,0.044767,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.064538,-0.076828,-0.057096,-0.038129,-0.017233,-0.010898,0.0041925,-0.0037775,-0.0087983,-0.00022319,0.012362,0.013753,0.0088415,0.012587,0.023046,0.022937,0.036023,0.035306,0.034959,0.037498,0.037776,0.038647,0.03794,0.039402,0.041404,0.041947,0.042074,0.041278,0.041613,0.040981,0.040776,0.042002,0.042057,0.042005,0.042396,0.045087,0.043126,0.047116,0.048523,0.050786,0.03969,0.045988,0.037454,0.034073,0.051354,0.049054,0.034535,0.044028,0.041406,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.063768,-0.078682,-0.058463,-0.041246,-0.021389,-0.014667,-0.000368,-0.0088628,-0.013129,-0.0046706,0.0080716,0.0092605,0.0043343,0.0075629,0.018079,0.018323,0.031445,0.030811,0.030178,0.032993,0.033355,0.034262,0.033312,0.034796,0.036904,0.03745,0.037582,0.036794,0.037137,0.03673,0.036524,0.037741,0.037784,0.037549,0.037935,0.040616,0.038656,0.042776,0.044186,0.046585,0.035719,0.042761,0.033891,0.030551,0.047438,0.044899,0.031864,0.041681,0.038399,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.062779,-0.078926,-0.0583,-0.041402,-0.021436,-0.014467,1.1402e-05,-0.0082373,-0.0131,-0.0046723,0.0081923,0.0089952,0.0033081,0.0070614,0.017668,0.018046,0.031227,0.0307,0.030164,0.033051,0.033367,0.034329,0.033432,0.034878,0.036902,0.037466,0.03761,0.036881,0.037209,0.036751,0.036535,0.037591,0.037781,0.037562,0.037806,0.040382,0.038172,0.042197,0.043475,0.046264,0.03528,0.043204,0.034156,0.030609,0.047196,0.04535,0.03312,0.042067,0.03843,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.061516,-0.076979,-0.057467,-0.040131,-0.019907,-0.013719,0.001063,-0.0068106,-0.011905,-0.0033303,0.0097295,0.010793,0.0050165,0.0088755,0.019576,0.020151,0.033456,0.032788,0.032384,0.035014,0.034958,0.035801,0.035,0.036392,0.038466,0.03907,0.039207,0.03843,0.038732,0.038224,0.038044,0.039009,0.039145,0.039022,0.039594,0.04204,0.039796,0.04384,0.04552,0.048694,0.03741,0.044913,0.035932,0.031701,0.0485,0.047446,0.03473,0.043091,0.038663,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.061826,-0.076404,-0.056324,-0.039499,-0.018847,-0.013597,0.0015592,-0.0058585,-0.011084,-0.0022437,0.010035,0.010733,0.0050354,0.0089417,0.019829,0.02035,0.033695,0.033229,0.033007,0.035162,0.035115,0.036064,0.034928,0.036325,0.038307,0.038741,0.038864,0.038087,0.038363,0.037807,0.037604,0.03851,0.038862,0.038682,0.039099,0.041577,0.039683,0.043328,0.044983,0.048188,0.037565,0.044844,0.035548,0.030968,0.047302,0.045874,0.034212,0.042063,0.036597,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.059601,-0.080016,-0.058496,-0.040595,-0.01918,-0.013607,-0.00029064,-0.0075194,-0.012696,-0.0039849,0.0078978,0.0087585,0.0034817,0.0072313,0.018376,0.019329,0.032863,0.032394,0.031906,0.034072,0.03397,0.035052,0.034047,0.03554,0.037722,0.038242,0.038451,0.037683,0.038231,0.037676,0.037527,0.038471,0.038832,0.039021,0.039201,0.041822,0.03968,0.043333,0.04516,0.04821,0.038335,0.046044,0.037571,0.03269,0.049312,0.048619,0.038161,0.045427,0.03862,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.058774,-0.078672,-0.055632,-0.036651,-0.01614,-0.011654,0.00096541,-0.007416,-0.012839,-0.0045123,0.0079954,0.0086718,0.0031551,0.0068909,0.018471,0.019625,0.033179,0.032119,0.031664,0.033662,0.033664,0.034359,0.033583,0.035116,0.037428,0.037838,0.038099,0.037273,0.037786,0.037229,0.036925,0.037739,0.038102,0.03836,0.038185,0.040609,0.038053,0.042465,0.044353,0.046718,0.036265,0.044372,0.036308,0.030643,0.04828,0.047479,0.037405,0.044311,0.037099,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.061127,-0.083179,-0.063282,-0.041935,-0.019639,-0.018432,-0.004601,-0.014788,-0.019074,-0.01078,0.0010983,0.002535,-0.0028489,0.0015218,0.012232,0.013948,0.026977,0.026412,0.026135,0.02794,0.028018,0.028947,0.028447,0.029728,0.032153,0.032777,0.033172,0.032465,0.033031,0.033061,0.032924,0.033694,0.034285,0.034271,0.034185,0.036214,0.033626,0.03916,0.040478,0.044087,0.033077,0.043034,0.034249,0.028305,0.046485,0.044747,0.036273,0.042541,0.035364,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.064568,-0.086866,-0.070156,-0.046338,-0.024583,-0.024661,-0.0095165,-0.018183,-0.024507,-0.015243,-0.003024,-0.0030358,-0.0075287,-0.0047207,0.0065244,0.008881,0.022285,0.021779,0.020831,0.022771,0.023191,0.024214,0.023531,0.025014,0.027492,0.028197,0.028649,0.027962,0.028572,0.028968,0.028756,0.029618,0.029926,0.029959,0.029499,0.031442,0.029237,0.034875,0.036383,0.040369,0.028752,0.040476,0.030911,0.024819,0.044258,0.041447,0.033979,0.040391,0.033405,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.06457,-0.090171,-0.074925,-0.048714,-0.025211,-0.025721,-0.012269,-0.020379,-0.026998,-0.019374,-0.0067543,-0.0062243,-0.011068,-0.008624,0.0024519,0.0050113,0.018822,0.016887,0.016533,0.018005,0.01881,0.01876,0.017496,0.01883,0.021451,0.022172,0.022688,0.022088,0.022615,0.022997,0.022703,0.023463,0.023463,0.023151,0.023062,0.025472,0.023075,0.027993,0.029254,0.033709,0.022457,0.033063,0.024757,0.019717,0.037781,0.034988,0.028236,0.034063,0.027663,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.068782,-0.088708,-0.070834,-0.04664,-0.021765,-0.024529,-0.010498,-0.018364,-0.023985,-0.015268,-0.0029471,-0.0018574,-0.0080029,-0.0046448,0.0062447,0.0088253,0.022139,0.019915,0.01911,0.019926,0.021186,0.020554,0.019666,0.020888,0.023706,0.024587,0.024858,0.02428,0.024553,0.024812,0.024267,0.025049,0.02464,0.02405,0.023387,0.026826,0.023748,0.029553,0.03123,0.035166,0.024418,0.034324,0.025627,0.019245,0.03543,0.034271,0.026967,0.032465,0.02588,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.063919,-0.08722,-0.06969,-0.047734,-0.021125,-0.021918,-0.010019,-0.018057,-0.022063,-0.014149,-0.0041319,-0.0033733,-0.0082545,-0.0059327,0.0056112,0.0084639,0.021586,0.018496,0.017656,0.019035,0.019604,0.018341,0.017821,0.019001,0.021787,0.022709,0.023061,0.022508,0.022748,0.022814,0.022312,0.022763,0.022637,0.022113,0.021649,0.024349,0.022055,0.027544,0.02936,0.033522,0.021896,0.031876,0.022941,0.017192,0.032419,0.031956,0.023186,0.029633,0.022899,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.06963,-0.09102,-0.07243,-0.052179,-0.027876,-0.026299,-0.014802,-0.022615,-0.025941,-0.020023,-0.0088823,-0.0084163,-0.013371,-0.011433,0.00032356,0.0019753,0.014455,0.01223,0.010422,0.011804,0.011724,0.010069,0.0099011,0.010441,0.012651,0.013452,0.013834,0.013421,0.013798,0.013748,0.013205,0.013632,0.013345,0.012678,0.011749,0.014303,0.012624,0.017252,0.01927,0.024533,0.012264,0.023739,0.013967,0.0093412,0.024263,0.022558,0.015316,0.021169,0.015088,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.068967,-0.085391,-0.067093,-0.046757,-0.023661,-0.022803,-0.012049,-0.019639,-0.021336,-0.01618,-0.0041222,-0.0039613,-0.007568,-0.0046334,0.0058465,0.0083755,0.019566,0.018201,0.016487,0.018005,0.017439,0.016295,0.016192,0.016755,0.0192,0.019669,0.020008,0.019481,0.019663,0.01938,0.018962,0.019515,0.01911,0.017904,0.016324,0.019455,0.01778,0.022129,0.024863,0.028703,0.018667,0.028152,0.018251,0.014078,0.028848,0.027316,0.01806,0.023007,0.016815,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.065269,-0.088937,-0.066851,-0.043951,-0.023029,-0.021993,-0.011108,-0.017706,-0.019452,-0.012869,-0.0011508,-0.0022277,-0.0059152,-0.0018703,0.0075683,0.0098896,0.021632,0.020111,0.019275,0.020024,0.019443,0.018728,0.018697,0.019292,0.021983,0.022747,0.023136,0.022638,0.022962,0.022738,0.022314,0.023065,0.023035,0.021264,0.02065,0.022779,0.022238,0.027417,0.028716,0.032441,0.022504,0.03319,0.021784,0.018656,0.032785,0.029111,0.020128,0.024529,0.018684,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.062193,-0.089075,-0.063732,-0.041215,-0.021518,-0.020694,-0.0096909,-0.015587,-0.019114,-0.01337,-0.00057534,-0.00016704,-0.0039357,0.00052697,0.0090513,0.011177,0.021334,0.020794,0.020821,0.020691,0.020153,0.019977,0.019892,0.020359,0.022672,0.023438,0.023871,0.023227,0.02342,0.023111,0.022824,0.023415,0.023068,0.021238,0.020332,0.02199,0.020569,0.02671,0.027942,0.030214,0.021327,0.031289,0.021417,0.016628,0.030093,0.026767,0.018352,0.021637,0.016072,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.059668,-0.083979,-0.059312,-0.037039,-0.017366,-0.016023,-0.0065455,-0.01178,-0.015271,-0.0081864,0.0054805,0.0060139,0.0017187,0.0061595,0.014446,0.015749,0.026474,0.025648,0.026469,0.027079,0.025837,0.025338,0.024863,0.025153,0.027235,0.02819,0.028552,0.027798,0.027796,0.027358,0.026856,0.028119,0.027264,0.025392,0.024739,0.025452,0.02315,0.028877,0.031339,0.032165,0.02212,0.033036,0.024769,0.01906,0.030057,0.027938,0.019321,0.02208,0.016513,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.062956,-0.084178,-0.059388,-0.040211,-0.024375,-0.022848,-0.01335,-0.018003,-0.019386,-0.014768,-0.0021416,-0.0020532,-0.0047993,-0.00055653,0.0085562,0.0090314,0.018506,0.017614,0.017875,0.018611,0.018007,0.016892,0.016854,0.017509,0.019748,0.02071,0.021164,0.020574,0.020955,0.02035,0.019758,0.020606,0.019509,0.018355,0.01709,0.017841,0.015486,0.020025,0.023921,0.024611,0.015377,0.0244,0.019431,0.012395,0.021386,0.023333,0.015557,0.017652,0.012774,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.061558,-0.079404,-0.056809,-0.035369,-0.022901,-0.021518,-0.012579,-0.018401,-0.019175,-0.015102,-0.0014829,-0.0010926,-0.0051077,-0.0011355,0.0071262,0.0071712,0.017222,0.016393,0.01613,0.016337,0.016344,0.014453,0.013671,0.014496,0.016942,0.017434,0.017058,0.016286,0.016541,0.016287,0.01559,0.016891,0.015881,0.015391,0.013986,0.015543,0.013496,0.016822,0.020367,0.019804,0.012391,0.020647,0.015314,0.011331,0.019783,0.021121,0.011619,0.013381,0.0094894,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.069502,-0.079513,-0.059491,-0.043002,-0.030248,-0.030395,-0.021257,-0.027353,-0.02866,-0.024334,-0.011887,-0.013218,-0.017962,-0.014377,-0.0053208,-0.0056109,0.0039962,0.0030051,0.0015892,0.0015925,0.002138,-0.00010387,-0.0019304,-0.0007828,0.0012633,0.0012339,0.00097379,3.6825e-05,0.00019275,0.0001696,0.00023125,0.0011918,0.00075969,0.00063631,-0.00034345,0.0011921,-0.000246,0.0031854,0.0068432,0.0064712,0.00064959,0.0090412,0.0038354,0.0018226,0.0099948,0.01098,0.002825,0.0047436,0.002362,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.069625,-0.086605,-0.067375,-0.049591,-0.033582,-0.036421,-0.025125,-0.033407,-0.03472,-0.028669,-0.01506,-0.018152,-0.022215,-0.018932,-0.010885,-0.011258,-0.0036426,-0.0049744,-0.0066826,-0.0059316,-0.0060233,-0.0087439,-0.01004,-0.0093624,-0.0087252,-0.0091845,-0.0097971,-0.010669,-0.010297,-0.010264,-0.0097302,-0.0088192,-0.0089102,-0.0088726,-0.0096278,-0.008241,-0.0084722,-0.0061809,-0.0014828,-0.0030481,-0.0060518,0.00044701,-0.0046969,-0.005071,0.0025035,0.0016892,-0.0054324,-0.0033506,-0.0043203,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.069319,-0.0897,-0.066552,-0.053487,-0.034707,-0.038029,-0.02655,-0.03512,-0.034387,-0.02944,-0.018394,-0.019782,-0.023989,-0.020612,-0.013366,-0.013711,-0.0067156,-0.0089389,-0.01167,-0.010205,-0.010155,-0.013694,-0.015434,-0.014392,-0.014178,-0.01525,-0.015968,-0.017119,-0.016836,-0.017025,-0.015897,-0.014959,-0.014604,-0.013946,-0.013702,-0.012415,-0.01157,-0.010438,-0.0046598,-0.0061312,-0.0080578,-0.003491,-0.008618,-0.0063868,-0.00010407,-0.00075305,-0.0096712,-0.0075547,-0.0074096,2500,-0.081787,0.073166,Inf +0.55149,-0.0043101,0,-0.072784,-0.085859,-0.063728,-0.054428,-0.038306,-0.038774,-0.028665,-0.038201,-0.035558,-0.032204,-0.020014,-0.021609,-0.025312,-0.022142,-0.016023,-0.017894,-0.011699,-0.015122,-0.016852,-0.014734,-0.014336,-0.017219,-0.018192,-0.01663,-0.016112,-0.016534,-0.016636,-0.017614,-0.017461,-0.017239,-0.015797,-0.014656,-0.013358,-0.013334,-0.012046,-0.011677,-0.010514,-0.0088193,-0.0037042,-0.004675,-0.0066388,-0.001271,-0.0062712,-0.0039035,0.002493,0.0016095,-0.0070416,-0.0049227,-0.0043101,2500,-0.081787,0.073166,Inf diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/circle_sim_x.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/circle_sim_x.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/circle_sim_x.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/circle_sim_x.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/circle_sim_y.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/circle_sim_y.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/circle_sim_y.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/circle_sim_y.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/cub_sim_x.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/cub_sim_x.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/cub_sim_x.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/cub_sim_x.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/cub_sim_y.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/cub_sim_y.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/cub_sim_y.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/cub_sim_y.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/ellipsis_sim_x.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/ellipsis_sim_x.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/ellipsis_sim_x.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/ellipsis_sim_x.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/ellipsis_sim_y.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/ellipsis_sim_y.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/ellipsis_sim_y.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/ellipsis_sim_y.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/exp_sim_x.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/exp_sim_x.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/exp_sim_x.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/exp_sim_x.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/exp_sim_y.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/exp_sim_y.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/exp_sim_y.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/exp_sim_y.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/joint_sim_x.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/joint_sim_x.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/joint_sim_x.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/joint_sim_x.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/joint_sim_y.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/joint_sim_y.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/joint_sim_y.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/joint_sim_y.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/linear_sim_x.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/linear_sim_x.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/linear_sim_x.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/linear_sim_x.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/linear_sim_y.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/linear_sim_y.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/linear_sim_y.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/linear_sim_y.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/log_sim_x.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/log_sim_x.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/log_sim_x.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/log_sim_x.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/log_sim_y.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/log_sim_y.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/log_sim_y.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/log_sim_y.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/multi_indep_sim_x.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/multi_indep_sim_x.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/multi_indep_sim_x.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/multi_indep_sim_x.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/multi_indep_sim_y.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/multi_indep_sim_y.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/multi_indep_sim_y.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/multi_indep_sim_y.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/multi_noise_sim_x.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/multi_noise_sim_x.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/multi_noise_sim_x.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/multi_noise_sim_x.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/multi_noise_sim_y.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/multi_noise_sim_y.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/multi_noise_sim_y.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/multi_noise_sim_y.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/quad_sim_x.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/quad_sim_x.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/quad_sim_x.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/quad_sim_x.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/quad_sim_y.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/quad_sim_y.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/quad_sim_y.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/quad_sim_y.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/root_sim_x.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/root_sim_x.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/root_sim_x.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/root_sim_x.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/root_sim_y.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/root_sim_y.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/root_sim_y.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/root_sim_y.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/sin_sim_16_x.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/sin_sim_16_x.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/sin_sim_16_x.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/sin_sim_16_x.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/sin_sim_16_y.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/sin_sim_16_y.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/sin_sim_16_y.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/sin_sim_16_y.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/sin_sim_x.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/sin_sim_x.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/sin_sim_x.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/sin_sim_x.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/sin_sim_y.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/sin_sim_y.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/sin_sim_y.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/sin_sim_y.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/spiral_sim_x.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/spiral_sim_x.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/spiral_sim_x.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/spiral_sim_x.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/spiral_sim_y.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/spiral_sim_y.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/spiral_sim_y.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/spiral_sim_y.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/square_sim__x.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/square_sim__x.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/square_sim__x.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/square_sim__x.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/square_sim__y.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/square_sim__y.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/square_sim__y.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/square_sim__y.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/square_sim_x.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/square_sim_x.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/square_sim_x.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/square_sim_x.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/square_sim_y.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/square_sim_y.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/square_sim_y.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/square_sim_y.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/step_sim_x.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/step_sim_x.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/step_sim_x.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/step_sim_x.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/step_sim_y.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/step_sim_y.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/step_sim_y.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/step_sim_y.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/two_parab_sim_x.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/two_parab_sim_x.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/two_parab_sim_x.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/two_parab_sim_x.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/two_parab_sim_y.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/two_parab_sim_y.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/two_parab_sim_y.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/two_parab_sim_y.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/ubern_sim_x.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/ubern_sim_x.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/ubern_sim_x.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/ubern_sim_x.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/ubern_sim_y.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/ubern_sim_y.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/ubern_sim_y.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/ubern_sim_y.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/w_sim_x.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/w_sim_x.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/w_sim_x.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/w_sim_x.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/w_sim_y.csv b/mgcpy/independence_tests/unit_tests/mgc/data/input/w_sim_y.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/w_sim_y.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/input/w_sim_y.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/circle_sim_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/mgc/circle_sim_res.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/circle_sim_res.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/mgc/circle_sim_res.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/cub_sim_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/mgc/cub_sim_res.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/cub_sim_res.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/mgc/cub_sim_res.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/ellipsis_sim_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/mgc/ellipsis_sim_res.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/ellipsis_sim_res.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/mgc/ellipsis_sim_res.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/exp_sim_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/mgc/exp_sim_res.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/exp_sim_res.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/mgc/exp_sim_res.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/joint_sim_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/mgc/joint_sim_res.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/joint_sim_res.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/mgc/joint_sim_res.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/linear_sim_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/mgc/linear_sim_res.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/linear_sim_res.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/mgc/linear_sim_res.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/log_sim_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/mgc/log_sim_res.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/log_sim_res.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/mgc/log_sim_res.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/multi_indep_sim_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/mgc/multi_indep_sim_res.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/multi_indep_sim_res.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/mgc/multi_indep_sim_res.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/multi_noise_sim_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/mgc/multi_noise_sim_res.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/multi_noise_sim_res.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/mgc/multi_noise_sim_res.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/quad_sim_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/mgc/quad_sim_res.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/quad_sim_res.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/mgc/quad_sim_res.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/root_sim_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/mgc/root_sim_res.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/root_sim_res.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/mgc/root_sim_res.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/sin_sim_16_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/mgc/sin_sim_16_res.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/sin_sim_16_res.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/mgc/sin_sim_16_res.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/sin_sim_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/mgc/sin_sim_res.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/sin_sim_res.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/mgc/sin_sim_res.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/spiral_sim_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/mgc/spiral_sim_res.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/spiral_sim_res.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/mgc/spiral_sim_res.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/square_sim__res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/mgc/square_sim__res.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/square_sim__res.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/mgc/square_sim__res.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/square_sim_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/mgc/square_sim_res.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/square_sim_res.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/mgc/square_sim_res.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/step_sim_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/mgc/step_sim_res.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/step_sim_res.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/mgc/step_sim_res.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/two_parab_sim_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/mgc/two_parab_sim_res.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/two_parab_sim_res.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/mgc/two_parab_sim_res.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/ubern_sim_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/mgc/ubern_sim_res.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/ubern_sim_res.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/mgc/ubern_sim_res.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/data/w_sim_res.csv b/mgcpy/independence_tests/unit_tests/mgc/data/mgc/w_sim_res.csv similarity index 100% rename from mgcpy/independence_tests/unit_tests/mgc/data/w_sim_res.csv rename to mgcpy/independence_tests/unit_tests/mgc/data/mgc/w_sim_res.csv diff --git a/mgcpy/independence_tests/unit_tests/mgc/fast_mgc_test.py b/mgcpy/independence_tests/unit_tests/mgc/fast_mgc_test.py index b4b3bf7..6e5a8e7 100644 --- a/mgcpy/independence_tests/unit_tests/mgc/fast_mgc_test.py +++ b/mgcpy/independence_tests/unit_tests/mgc/fast_mgc_test.py @@ -27,3 +27,44 @@ def test_fast_mgc_test_non_linear(): mgc = MGC() p_value_res, _ = mgc.p_value(X, Y, is_fast=True) assert np.allclose(p_value, p_value_res, rtol=0.1) + + +def load_results(file_name, results_dir="./mgcpy/independence_tests/unit_tests/mgc/data/fast_mgc/"): + mgc_results = np.genfromtxt(results_dir + file_name, delimiter=',') + + pMGC = mgc_results[:, 0][0] + statMGC = mgc_results[:, 1][0] + localCorr = mgc_results[:, 2:52] + optimalScale = np.array(np.unravel_index(int(mgc_results[:, 52][0])-1, (50, 50))) + 1 # add 1 to match Matlab indexing + ConfidenceInterval = mgc_results[:, 53:55][0] + RequiredSize = mgc_results[:, 55][0] + + return (pMGC, statMGC, localCorr, optimalScale, ConfidenceInterval, RequiredSize) + + +def test_mgc_test_all(): + data_dir = "./mgcpy/independence_tests/unit_tests/mgc/data/" + + # excluding step_sim, the matlab code has some bug in this case, need to figure out what + simulations = ["linear_sim", "exp_sim", "cub_sim", "joint_sim", + "quad_sim", "w_sim", "spiral_sim", "ubern_sim", "log_sim", "root_sim", + "sin_sim", "sin_sim_16", "square_sim", "two_parab_sim", "circle_sim", + "ellipsis_sim", "square_sim_", "multi_noise_sim", "multi_indep_sim"] + + print("\nSimulations being used to test MGC: ") + for simulation in simulations: + print(simulation) + + X = np.genfromtxt(data_dir + "input/" + simulation + "_x.csv", delimiter=',').reshape(-1, 1) + Y = np.genfromtxt(data_dir + "input/" + simulation + "_y.csv", delimiter=',').reshape(-1, 1) + + pMGC, statMGC, localCorr, optimalScale, ConfidenceInterval, RequiredSize = load_results(simulation + "_fast_res.csv") + + mgc = MGC() + p_value, metadata = mgc.p_value(X, Y, is_fast=True) + assert np.allclose(pMGC, p_value, rtol=1.e-4) + assert np.allclose(statMGC, metadata["test_statistic"], rtol=1.e-4) + assert np.allclose(localCorr, metadata["local_correlation_matrix"], rtol=1.e-4) + assert np.allclose(optimalScale, metadata["optimal_scale"]) + assert np.allclose(ConfidenceInterval, metadata["confidence_interval"], rtol=1.e-3) + assert np.allclose(RequiredSize, metadata["required_size"]) diff --git a/mgcpy/independence_tests/unit_tests/mgc/p_value_test.py b/mgcpy/independence_tests/unit_tests/mgc/p_value_test.py index 71f2281..5528375 100644 --- a/mgcpy/independence_tests/unit_tests/mgc/p_value_test.py +++ b/mgcpy/independence_tests/unit_tests/mgc/p_value_test.py @@ -31,7 +31,7 @@ def test_mgc_test_non_linear(): assert np.allclose(p_value, p_value_res, rtol=0.1) -def load_results(file_name, results_dir="./mgcpy/independence_tests/unit_tests/mgc/data/"): +def load_results(file_name, results_dir="./mgcpy/independence_tests/unit_tests/mgc/data/mgc/"): mgc_results = np.genfromtxt(results_dir + file_name, delimiter=',')[1:] pMGC = mgc_results[:, 0][0] @@ -54,11 +54,11 @@ def test_mgc_test_all(): for simulation in simulations: print(simulation) - X = np.genfromtxt(data_dir + simulation + "_x.csv", delimiter=',').reshape(-1, 1) - Y = np.genfromtxt(data_dir + simulation + "_y.csv", delimiter=',').reshape(-1, 1) + X = np.genfromtxt(data_dir + "input/" + simulation + "_x.csv", delimiter=',').reshape(-1, 1) + Y = np.genfromtxt(data_dir + "input/" + simulation + "_y.csv", delimiter=',').reshape(-1, 1) if simulation == "step_sim": - mgc_results = np.genfromtxt(data_dir + simulation + "_res.csv", delimiter=',')[1:] + mgc_results = np.genfromtxt(data_dir + "mgc/" + simulation + "_res.csv", delimiter=',')[1:] pMGC = mgc_results[:, 0][0] statMGC = mgc_results[:, 1][0] # pLocalCorr = mgc_results[:, 2:4] From 0cb3b39ee4443d08cd13d3327e6ed43df38b3cda Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Thu, 6 Dec 2018 16:07:38 -0500 Subject: [PATCH 38/60] Add RTD link to readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 3650b48..3fd9f77 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,8 @@ `mgcpy` is a Python package containing tools for multiscale graph correlation and other statistical tests, that is capable of dealing with high dimensional and multivariate data. +**Documentation:** https://mgcpy.readthedocs.io/en/latest/ + ## Installation Guide: ### Install from PyPi From f429fb5d45d217d2652d579efa74148318a09f75 Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Thu, 6 Dec 2018 16:52:29 -0500 Subject: [PATCH 39/60] Update mgcpy bechmarks to compare fast mgc --- mgcpy/benchmarks/mgc_python_performance.ipynb | 172 +++++++++++++++++- 1 file changed, 167 insertions(+), 5 deletions(-) diff --git a/mgcpy/benchmarks/mgc_python_performance.ipynb b/mgcpy/benchmarks/mgc_python_performance.ipynb index 9bb705f..45e4b2e 100644 --- a/mgcpy/benchmarks/mgc_python_performance.ipynb +++ b/mgcpy/benchmarks/mgc_python_performance.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -16,7 +16,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -28,14 +28,14 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ - "def mgc(X, Y):\n", + "def mgc(X, Y, is_fast=False):\n", " mgc = MGC()\n", "# mgc_statistic, independence_test_metadata = mgc.test_statistic(X, Y)\n", - " p_value, metadata = mgc.p_value(X, Y) # p-value call has mgc.test_statistic(X, Y) call\n", + " p_value, metadata = mgc.p_value(X, Y, is_fast=is_fast) # p-value call has mgc.test_statistic(X, Y) call\n", "# print(\"MGC stats from Python:\")\n", "# print(\"MGC test statistic:\", metadata[\"test_statistic\"])\n", "# print(\"P Value:\", p_value)\n", @@ -425,6 +425,168 @@ "plt.legend()" ] }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Linear data (varying num_samples) - Fast MGC\n", + "\n", + "num_samples time_taken(in secs)\n", + "10 [0.009937260998412967, 0.006971208960749209, 0.00851285899989307, 0.007001145975664258, 0.007364065037108958]\n", + "20 [0.013805667986162007, 0.012984061962924898, 0.012354757986031473, 0.013664765981957316, 0.010665838024578989]\n", + "30 [0.01729093200992793, 0.012268604943528771, 0.012671170989051461, 0.011940094991587102, 0.011755009065382183]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/mgcpy-0.0.4-py3.6-macosx-10.13-x86_64.egg/mgcpy/independence_tests/mgc/threshold_smooth.py:54: RuntimeWarning: invalid value encountered in greater\n", + " significant_connected_region = local_correlation_matrix > threshold\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/mgcpy-0.0.4-py3.6-macosx-10.13-x86_64.egg/mgcpy/independence_tests/mgc/threshold_smooth.py:54: RuntimeWarning: invalid value encountered in greater\n", + " significant_connected_region = local_correlation_matrix > threshold\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/mgcpy-0.0.4-py3.6-macosx-10.13-x86_64.egg/mgcpy/independence_tests/mgc/threshold_smooth.py:54: RuntimeWarning: invalid value encountered in greater\n", + " significant_connected_region = local_correlation_matrix > threshold\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/mgcpy-0.0.4-py3.6-macosx-10.13-x86_64.egg/mgcpy/independence_tests/mgc/threshold_smooth.py:54: RuntimeWarning: invalid value encountered in greater\n", + " significant_connected_region = local_correlation_matrix > threshold\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/scipy/stats/_distn_infrastructure.py:1735: RuntimeWarning: divide by zero encountered in double_scalars\n", + " x = np.asarray((x - loc)/scale, dtype=dtyp)\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/mgcpy-0.0.4-py3.6-macosx-10.13-x86_64.egg/mgcpy/independence_tests/mgc/threshold_smooth.py:54: RuntimeWarning: invalid value encountered in greater\n", + " significant_connected_region = local_correlation_matrix > threshold\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/mgcpy-0.0.4-py3.6-macosx-10.13-x86_64.egg/mgcpy/independence_tests/mgc/threshold_smooth.py:54: RuntimeWarning: invalid value encountered in greater\n", + " significant_connected_region = local_correlation_matrix > threshold\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/mgcpy-0.0.4-py3.6-macosx-10.13-x86_64.egg/mgcpy/independence_tests/mgc/threshold_smooth.py:54: RuntimeWarning: invalid value encountered in greater\n", + " significant_connected_region = local_correlation_matrix > threshold\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/mgcpy-0.0.4-py3.6-macosx-10.13-x86_64.egg/mgcpy/independence_tests/mgc/threshold_smooth.py:54: RuntimeWarning: invalid value encountered in greater\n", + " significant_connected_region = local_correlation_matrix > threshold\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/scipy/stats/_distn_infrastructure.py:1735: RuntimeWarning: divide by zero encountered in double_scalars\n", + " x = np.asarray((x - loc)/scale, dtype=dtyp)\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/mgcpy-0.0.4-py3.6-macosx-10.13-x86_64.egg/mgcpy/independence_tests/mgc/threshold_smooth.py:54: RuntimeWarning: invalid value encountered in greater\n", + " significant_connected_region = local_correlation_matrix > threshold\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/mgcpy-0.0.4-py3.6-macosx-10.13-x86_64.egg/mgcpy/independence_tests/mgc/threshold_smooth.py:54: RuntimeWarning: invalid value encountered in greater\n", + " significant_connected_region = local_correlation_matrix > threshold\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/mgcpy-0.0.4-py3.6-macosx-10.13-x86_64.egg/mgcpy/independence_tests/mgc/threshold_smooth.py:54: RuntimeWarning: invalid value encountered in greater\n", + " significant_connected_region = local_correlation_matrix > threshold\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/mgcpy-0.0.4-py3.6-macosx-10.13-x86_64.egg/mgcpy/independence_tests/mgc/threshold_smooth.py:54: RuntimeWarning: invalid value encountered in greater\n", + " significant_connected_region = local_correlation_matrix > threshold\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/scipy/stats/_distn_infrastructure.py:1735: RuntimeWarning: divide by zero encountered in double_scalars\n", + " x = np.asarray((x - loc)/scale, dtype=dtyp)\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/mgcpy-0.0.4-py3.6-macosx-10.13-x86_64.egg/mgcpy/independence_tests/mgc/threshold_smooth.py:54: RuntimeWarning: invalid value encountered in greater\n", + " significant_connected_region = local_correlation_matrix > threshold\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/mgcpy-0.0.4-py3.6-macosx-10.13-x86_64.egg/mgcpy/independence_tests/mgc/threshold_smooth.py:54: RuntimeWarning: invalid value encountered in greater\n", + " significant_connected_region = local_correlation_matrix > threshold\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/mgcpy-0.0.4-py3.6-macosx-10.13-x86_64.egg/mgcpy/independence_tests/mgc/threshold_smooth.py:54: RuntimeWarning: invalid value encountered in greater\n", + " significant_connected_region = local_correlation_matrix > threshold\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/mgcpy-0.0.4-py3.6-macosx-10.13-x86_64.egg/mgcpy/independence_tests/mgc/threshold_smooth.py:54: RuntimeWarning: invalid value encountered in greater\n", + " significant_connected_region = local_correlation_matrix > threshold\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/scipy/stats/_distn_infrastructure.py:1735: RuntimeWarning: divide by zero encountered in double_scalars\n", + " x = np.asarray((x - loc)/scale, dtype=dtyp)\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/mgcpy-0.0.4-py3.6-macosx-10.13-x86_64.egg/mgcpy/independence_tests/mgc/threshold_smooth.py:54: RuntimeWarning: invalid value encountered in greater\n", + " significant_connected_region = local_correlation_matrix > threshold\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/mgcpy-0.0.4-py3.6-macosx-10.13-x86_64.egg/mgcpy/independence_tests/mgc/threshold_smooth.py:54: RuntimeWarning: invalid value encountered in greater\n", + " significant_connected_region = local_correlation_matrix > threshold\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/mgcpy-0.0.4-py3.6-macosx-10.13-x86_64.egg/mgcpy/independence_tests/mgc/threshold_smooth.py:54: RuntimeWarning: invalid value encountered in greater\n", + " significant_connected_region = local_correlation_matrix > threshold\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/mgcpy-0.0.4-py3.6-macosx-10.13-x86_64.egg/mgcpy/independence_tests/mgc/threshold_smooth.py:54: RuntimeWarning: invalid value encountered in greater\n", + " significant_connected_region = local_correlation_matrix > threshold\n", + "/usr/local/var/pyenv/versions/py3/envs/ML/lib/python3.6/site-packages/scipy/stats/_distn_infrastructure.py:1735: RuntimeWarning: divide by zero encountered in double_scalars\n", + " x = np.asarray((x - loc)/scale, dtype=dtyp)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "40 [0.020842907018959522, 0.018102316069416702, 0.022479727980680764, 0.02483542903792113, 0.019535422092303634]\n", + "50 [0.03613659495022148, 0.026224412955343723, 0.025395689997822046, 0.024829013971611857, 0.02520094090141356]\n", + "60 [0.034173641935922205, 0.03446560900192708, 0.03535817901138216, 0.039391946978867054, 0.034553198027424514]\n", + "70 [0.04626641294453293, 0.04520784202031791, 0.04255034390371293, 0.04290726501494646, 0.04613724094815552]\n", + "80 [0.06585719098802656, 0.057089149951934814, 0.05837591795716435, 0.058390229009091854, 0.06029797799419612]\n", + "90 [0.06505067890975624, 0.06504994304850698, 0.06521781696937978, 0.07156319194473326, 0.06859320495277643]\n", + "100 [0.08849724300671369, 0.0775414330419153, 0.07958152203354985, 0.07980452594347298, 0.0788903699722141]\n", + "110 [0.09184161003213376, 0.08922904101200402, 0.09646733594127, 0.09718551696278155, 0.10458254802506417]\n", + "120 [0.1191785610280931, 0.11659046495333314, 0.10537252889480442, 0.1160321970237419, 0.11862371896859258]\n", + "130 [0.13264634809456766, 0.13590998807922006, 0.15327011398039758, 0.14836418896447867, 0.137127390014939]\n", + "140 [0.15582118893507868, 0.1476625050418079, 0.1529817070113495, 0.15209201897960156, 0.14758490701206028]\n", + "150 [0.16182203008793294, 0.17047211597673595, 0.16169877001084387, 0.15995072096120566, 0.16114080895204097]\n", + "\n", + "[(10, [0.009937260998412967, 0.006971208960749209, 0.00851285899989307, 0.007001145975664258, 0.007364065037108958]), (20, [0.013805667986162007, 0.012984061962924898, 0.012354757986031473, 0.013664765981957316, 0.010665838024578989]), (30, [0.01729093200992793, 0.012268604943528771, 0.012671170989051461, 0.011940094991587102, 0.011755009065382183]), (40, [0.020842907018959522, 0.018102316069416702, 0.022479727980680764, 0.02483542903792113, 0.019535422092303634]), (50, [0.03613659495022148, 0.026224412955343723, 0.025395689997822046, 0.024829013971611857, 0.02520094090141356]), (60, [0.034173641935922205, 0.03446560900192708, 0.03535817901138216, 0.039391946978867054, 0.034553198027424514]), (70, [0.04626641294453293, 0.04520784202031791, 0.04255034390371293, 0.04290726501494646, 0.04613724094815552]), (80, [0.06585719098802656, 0.057089149951934814, 0.05837591795716435, 0.058390229009091854, 0.06029797799419612]), (90, [0.06505067890975624, 0.06504994304850698, 0.06521781696937978, 0.07156319194473326, 0.06859320495277643]), (100, [0.08849724300671369, 0.0775414330419153, 0.07958152203354985, 0.07980452594347298, 0.0788903699722141]), (110, [0.09184161003213376, 0.08922904101200402, 0.09646733594127, 0.09718551696278155, 0.10458254802506417]), (120, [0.1191785610280931, 0.11659046495333314, 0.10537252889480442, 0.1160321970237419, 0.11862371896859258]), (130, [0.13264634809456766, 0.13590998807922006, 0.15327011398039758, 0.14836418896447867, 0.137127390014939]), (140, [0.15582118893507868, 0.1476625050418079, 0.1529817070113495, 0.15209201897960156, 0.14758490701206028]), (150, [0.16182203008793294, 0.17047211597673595, 0.16169877001084387, 0.15995072096120566, 0.16114080895204097])]\n" + ] + } + ], + "source": [ + "print(\"Linear data (varying num_samples) - Fast MGC\\n\")\n", + "print(\"num_samples\", \"time_taken(in secs)\")\n", + "num_samples_range = range(10, 151, 10)\n", + "linear_data_fast_mgc = list()\n", + "for num_samples in num_samples_range:\n", + " X, Y = sims.linear_sim(num_samp=num_samples, num_dim=1, noise=0.1)\n", + "\n", + "# start = time.time()\n", + "# mgc(X, Y)\n", + "# end = time.time()\n", + "# time_taken = end - start\n", + " mgc_w = wrapper(mgc, X, Y, True)\n", + " time_taken = timeit.repeat(mgc_w, repeat=5, number=1) # 5 executions\n", + "\n", + " print(num_samples, time_taken)\n", + " linear_data_fast_mgc.append((num_samples, time_taken))\n", + "print()\n", + "print(linear_data_fast_mgc)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkMAAAHACAYAAACh9WxwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAMTQAADE0B0s6tTgAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3XlcVNX/x/HXsMmOLCa4oqZiCbmn4r6Eikvmlrmklqloai6/ilBwifSrmVm4Ry5Z+rVcvi5JLljukoZbWuaSqCiyYywzwP39QUxO4DI4MAN8no/HPL7fuefew3tI4eO5556jUhRFQQghhBCinDIzdgAhhBBCCGOSYkgIIYQQ5ZoUQ0IIIYQo16QYEkIIIUS5JsWQEEIIIco1KYaEEEIIUa5JMSSEEEKIck2KISGEEEKUayZTDG3cuJG2bdvi6OiISqUiOztbpz0rK4vAwEBq1qyJnZ0dNWvWZN26ddp2RVEIDg6mSpUq2NnZ0a5dO86fP1/SH0MIIYQQpYzJFEPOzs4EBASwePHiQtsHDBhAVFQU+/fv5/79+0RFRfHiiy9q2xcuXEh4eDgRERHEx8fj6+uLn58f9+/fL6mPIIQQQohSSGVq23EcPHiQjh07otFosLCwAGD//v307NmTP//8k2eeeabQ62rVqsXkyZOZNGkSANnZ2Xh4eLBo0SKGDRtWYvmFEEIIUbqYzMjQo+zdu5datWoxf/58PDw8qF69OiNHjiQ+Ph6AlJQUrl+/TosWLbTXWFhY0LhxY3755RdjxRZCCCFEKWBh7ABPIj4+nosXL9KpUyf++OMP7t+/z9ChQxk2bBjff/89qampAFSsWFHnOmdnZ23bv+Xm5nL79m0cHBxQqVTF/hmEEEII8fQURSEtLY0qVapgZmaYMZ1SUQzlT6r+z3/+g62tLXZ2dsyePRtfX1/S09NxdHQEIDk5Wee6pKQkqlatWmift2/fpnr16sWeXQghhBCGFxMTQ7Vq1QzSV6kohpo0aVLocZVKhaIoODk54enpSVRUFK1atQLy5gxFR0c/dL6Qg4MDkPfNzC+myovAwEBCQ0ONHaPEyecuX+Rzly/yuYvfnTt3aDW6FYmeiQXaKt+ozKGVh6hcuXKx50hNTaV69era3+OGYDLFUE5ODhqNBrVaDeQ9Sp+dnY2VlRV9+/alatWqBAYGMm/ePP766y9CQkLo0aMHdnZ2AAQEBLBw4UI6depEnTp1mDt3LpaWlvTt27fQr5d/a8zR0bHcFUNWVlbl7jODfO7yRj53+SKfuwS+VgUr0u+ng1XBNieVEzVr1sTKqpDGYmLIKS4mM4F6/fr12NjY4OfnB4C9vT02Njb89NNP2NnZsXfvXi5cuICbmxve3t5Ur16dtWvXaq+fNm0aI0aMoEuXLri6unLo0CH27NmDvb29sT6SEEIIUWasObeGzIqZEKt73DreGv/W/iVaCBmayYwMjRgxghEjRjy03cvLi7179z60XaVSMXv2bGbPnl0M6cqW/IKzvJHPXb7I5y5f5HMXr9tpt3l337vQBrx/9ybrShZp5mk45Djg39qfhbMXlkiO4mJy6wyVlNTUVJycnEhJSSmXQ6tCCCHEk+r/3/58d/E73O3duTj+IrZmtiQmJuLi4lLiI0LF8fvbZEaGhBBCCGF6tl/azncXvwPgs+6fUdE6bxkbd3d3Y8YyKCmGHiEzM1M7oVsIUZCVlRXW1tbGjiGEKCapWamM3z0egN71e9OvQT8jJyoeUgw9RGZmJrVq1eLOnTvGjiKEyXJ3d+fatWtSEAlRRn2w/wNupd3C3sqez7t/XmYXKZZi6CHUajV37twpl+sQCfEk8tf6UKvVUgwJUQYdv3mcsKgwAEI7hVLdqewuVCzF0GOUx3WIhBBClG+aHA2jd4xGQeHFqi8S0DzA2JGKlcmsMySEEEII07Dg6ALOx53HwsyClb1WYm5mbuxIxUqKISGEEEJoXU64zOwf89bsm956Oj6VfYycqPhJMSSEEEIIIG9H+DE7x5CVk0Ud5zrMaDfD2JFKhBRDQgghhABg7Zm1RF6PBGBFzxXYWNoYOVHJkGKoHFmzZg0qlUr7srKyok6dOgQGBpKZmWnseEIIIYwo7q84pv4wFYARjUbQuXZnIycqOfI0WTm0efNmqlWrRlpaGlu3buWjjz4iLS2Nzz77zNjRhBBCGMk7Ee+QmJGIm60bC7uW7r3G9CXFkAGo1WoSEhJwdXU16B4txdVvo0aNePbZZwHo2rUrly9fJjw8nE8//RQzMxksFEKI8mbPH3v4+tzXACz2W4yrrauRE5Us+c33FHJzc5kSNAXvbt40Gd4E727eTAmaQm5urkn2+zBNmjQhPT2d+Pj4YulfCCGE6fpL/Rfjdo0DwK+OH695v2bkRCVPRoaewrSZ01h2YRmZdfLm29zhDn+e/5O0d9MInhFc5H5nzZnF+svryaqTpe33xoUbMBMWzV1kkOwPun79Ok5OTri6lq9/CQghhIDgg8FcT76OjYUNy/yXldktNx5FiqEiUqvV7Dq6S1sI5cuqlMXqH1az2np10b672cAPQAvdw5lumew6uot56nlPfcssJyeH7Oxs7Zyh7777jsWLF2NuXrYX1RJCCKHrdOxpPjn+CQCzO86mlnMtIycyDimGiighIYFU89TCG22BDMChCB1n/H19IdLM00hMTMTd3b0IHf/Dy8tL531AQAATJkx4qj6FEEKULtm52YzeMZpcJZfG7o2Z3HKysSMZjRRDReTq6opjjiN3KLirfe0Ktdn73t4ijeCo1Wq69O/CNa4VaHPIccDFxaVIeR+0detWqlWrxr1791i0aBFLly7lxRdfZPjw4U/dtxBCiNJhyYklnI49jZnKjFW9VmFhVn5LgvL7yZ+SlZUV/q39uXHhBplu/9wqs463pk+bPtR2q13kvl9u83LeXKR/9evf2t8gT5U1bNhQ+zRZp06d8PHxYfr06fTr1w87O7un7l8IIYRpu5Z0jRmReatLT35xMk2rNDVyIuOSp8mewsLZCxn3/DjqXamHx3UP6l2px7jnx7Fw9tOtz1Bc/RamQoUKLFiwgLi4OJYuXWrw/oUQQpgWRVEI2B1Auiadmk41mdVxlrEjGZ1KURTF2CGMITU1FScnJ1JSUnB0dNS7/UFqtZrExERcXFwMvs6QIftds2YNI0eO5PLly9qRoXwtWrTgxo0bXLt2DRub8rH8ung6+vwdEUKYjm/OfcNrW/Ien9/92m661+1u5ET6KY6fPTIyZABWVla4u7sbtBAqzn4LM3fuXO7evcvy5cuL/WsJIYQwjsSMRCbtmQTA4IaDS10hVFxkzlA5MmLECEaMGFFo20svvUQ5HSQUQohyY9oP07iXfg9na2c+8fvE2HFMhowMCSGEEOXAgWsH+DL6SwAWvrSQyvaVjZzIdEgxJIQQQpRxGZoMxuwcA0AHzw6MbDTSyIlMixRDQgghRBn34aEP+SPxDyqYV2BFzxXlcsuNR5FiSAghhCjDzt09x/wj8wGY0W4G9VzrGTmR6ZFiSAghhCijcnJzGL1jNNm52Txf6Xmm+043diSTJMWQEEIIUUYt/3k5J26dQIWKVb1WYWVe/Eu1lEZSDAkhhBBl0M3Um7y//30AApoH0Kp6KyMnMl1SDAkhhBBljKIoTNg9gTR1GlUdqhLaOdTYkUyaFENCCCFEGbP10la2/7YdgM97fI5jBdky51GkGBJCCCHKkJTMFCbsngBAX6++vOz1spETmT4phsqRNWvWoFKptC8HBwdeeOEFPv/8c7Kzs5+4n4MHDxISEkJubq7O8evXr6NSqVi9erWhowshhHhC7+9/n9j7sThWcOSz7p8ZO06pIMVQObR582aOHTvGd999R4sWLXj77beZPXv2E19/8OBBZs2aVaAYEkIIYVxHbhxh2c/LAJjXeR5VHasaOVHpYDLF0MaNG2nbti2Ojo6oVKqHjlScOnUKS0tL2rRpo3M8KyuL8ePH4+bmhoODAz179iQmJqZYM8fHxzO2d2/i4+MLfW9q/eZr1KgRLVu25KWXXmLVqlV06NCBTz/91CB9CyGEMI6s7CxG7xgNQOvqrRnTbIyRE5UeJlMMOTs7ExAQwOLFix96TmZmJiNGjKB9+/YF2qZMmcKhQ4c4deoUt27dwsXFhd69exfb6EV8fDxTOndm8o4dTOncmUuXLum8L2rhUlz9Pkrz5s1JTU2le/fuNG7cuED7tWvXMDMzY/ny5YSEhDBr1iwALC0ttbfcHpSTk8PMmTPx8PCgYsWK9OrVi5s3b+qco9FoCAoKwtPTEysrKzw9PQkKCkKj0WjPyb/ttmLFisf2J4QQ5d1/jvyHi/EXsTSzZGXPlZipTOZXvOlTTExkZKQCKBqNpkDblClTlEmTJinBwcGKr6+v9nhGRoZiY2OjbNu2TXvs3r17ioWFhfLTTz8V+nVSUlIUQElJSSlS+5hevZSLoCig3ANljPszyr2/318EZUyPLoryV4zerzE9ujy631699Pl26vjyyy8VQLl8+bLO8f79+yvm5ubKrl27FEA5ceKETvt7772n2NvbK6mpqUpMTIzyxhtvKIBy+PBh5dixY8qxY8cURVGUa9euKYBSs2ZNZfDgwcru3buVNWvWKK6urkr79u11+hw8eLBibm6uzJgxQ4mIiFCCg4MVCwsLZfDgwdpz9OlPlLzH/R0RQpScS/cuKVZzrBRCUGYcmGHsOMWqOH72lJpi6Mcff1Tq1aun/PXXXwWKoejoaAVQbt++rXNN3bp1lU8//bTQr/O0xdC9e/eUYT4+2kJFeaCAGVYD5d5yFGWD/q97y/++vrB+fXyUe/fu6fPt1JFfDF26dEnRaDRKYmKisnz5csXMzEzp06ePkpOTo9SuXVsZNWqU9hq1Wq1UrlxZGTNmjPZYcHBwof+N8ouXfxcqCxYsUADl1q1biqIoyrlz5xRACQ4O1jlvzpw5CqCcOXNGr/6EcUgxJIRpyMnNUdp92U4hBKXeZ/WUDE2GsSMVq+L42VMqxtDu37/PqFGjWLVqFba2tgXaU1NTAahYsaLOcWdnZ22bobm5uRG4aRNB7s/oHA+qCIFvg5tDEft1yLs+SPejEOThQeCmTbi5uRUx8T+8vLywtLTExcWFgIAAhgwZQnh4OGZmZowZM4aNGzeSkpICwLZt27h79y5jxjz5vecePXrovPf29gbgxo0bAPz0008ADB06VOe8/Pc//vijXv0JIUR5Fv5LOD/9mfdzdWXPlVhbWBs5UeljYewAT2LatGn06NGDdu3aFdru6Ji3mFRycjI2Njba40lJSdq2hwkMDMTKKm+vFj8/P/z8/J4oU3x8PKGDBrHoTpzO8bnJMGVtAxbt2oibm8sT9aXbbyKh/q+yKPmibr+xsUwZNIhF+/c/dUG0detWqlWrhoODAzVr1sTa+p+/OG+88QYzZ85k/fr1TJgwgeXLl9OiRYtC5xI9jIuL7ueuUKECkDfnCyAxMREADw8PnfPc3d112p+0PyGEKK/u3L/D9L15m6++0fgN2nsWnFNbFkRERBAREQGAWq02eP+lohjas2cPycnJfP311wCkp6ej0Whwc3Pj+PHj1K9fHxsbG6KioujduzeQV6xcv379sb/EQ0NDH1swFSZo1CgCz57FDYgnb+RmbmwsbkDg+YsETQhi+f/+p3+/EwIIPH+x8H7PniVo1Kgi9fughg0b8uyzzxba5urqysCBA1mxYgV+fn5ERkYafN2g/OLmzp071KlTR3v8zp07Ou1CCCEeTq1W89Y3b5F8P5nKTpVZ0HWBsSMVmwcHK1JTUwkLCzNo/yZzmywnJ4fMzExtxZeVlUVmZia5ubkcP36c8+fPEx0dTXR0NGPHjqVx48ZER0fj6emJtbU1I0eOZObMmdy4cYO0tDSmTp3Kc889h6+vb7HknRseTqiPD5eAKT4+TD5wgCl/vw/18WFueLhJ9auPgIAAzp8/z5tvvomTkxOvvvqqTnv+yExGRkaR+s8f4du4caPO8Q0bNgDQoUOHIvUrhBDlQW5uLlOCplCrUy12hO+A/0HTy01xquBk7GillskUQ+vXr8fGxkZb+dnb22NjY8NPP/2Eu7s71apV074cHR2xsrKiWrVqWFjkDW4tWrQIX19fGjdujIeHB/Hx8ezYsQMzs+L5iG5ubizav5/FvXqxaP9+vLy8dN4X9VZWcfWrj5YtW9K4cWN++uknhg0bVmCe1nPPPQfAxx9/zIkTJ/j555/16r9hw4YMHjxY+5j+3r17mT17NiEhIQwePFg7J0gIIURB02ZOY9n5ZdxucBsaAi3gQNwBps2cZuxopZfBpmKXMk/7NFlp9LBH6wsTGhqqAMr58+cLtGVnZysBAQFKpUqVFJVKpeT/Mcp/+mvVqlU65+c/IRgZGak9lpWVpXzwwQdKjRo1FAsLC6VGjRrKBx98oKjVau05+vQnSl5Z/DsihKnLyspS6nWsp/AmBV71OtZTsrKyjB2x2BXHzx6VoiiKkeowo0pNTcXJyYmUlJRC5ww9rr2s8/X1xczMjEOHDhk7ijBR5f3viBDGEBsbS8MhDUmsk1igzeO6B6fXn9Y+jFJWFcfPnlIxgVqUjKysLE6fPs2+ffs4evQo27dvN3YkIYQQD7CwsyA1qfAlYxxyHOQBlCKSYkhoxcbG0rp1aypWrEhgYKD2yTwhhBCm4b3I98h2yYZY4IHVSazjrfFv7a9dKkboR4ohoeXp6Uk5vWsqhBAmb9fvuwiPDoc20Pl2Z2KuxJBmnoZDjgP+rf1ZOHuhsSOWWlIMCSGEECYuMSORN3e8CYBfXT++D/kejUZDYmIiLi4uMiL0lKQYEkIIIUzc29+/zZ37d3Cq4MTq3qtRqVRYWVmV+cnSJcVk1hkSQgghREHf/fodX5/L24Hhs+6fUc2xmpETlT1SDAkhhBAmKu6vOMbuGgvAy14vM9Rn6GOuEEUhxZAQQghhghRFYczOMcSnx+Nq48py/+WoVCpjxyqTpBgSQgghTNCGcxvYdmkbAMt7LqeyfWUjJyq7pBgSQgghTMyt1Fu8/f3bALza8FX6P9ffyInKNimGypE1a9agUqm0LwcHB1544QU+//xzsrOz9err4MGDhISEkJubq3P8+vXrqFQqVq9ebcjoTyU3N5dGjRqxcOE/a3D8+3vx4Gvfvn0G/fpXr14lJCSE69evF2hr06YNKpWKdu3aFXrtsGHDUKlUeHp6FmhLS0sjNDSUZs2aaTcvrlGjBgMHDmTHjh2F9rdr1y78/f2pVKkSlpaWuLu706dPH53VxhcuXEjjxo0L/LcVQpQMRVF4c8ebJGcm427vzufdPzd2pDJPiqFyaPPmzRw7dozvvvuOFi1a8PbbbzN79my9+jh48CCzZs0qFb8wv/rqK2JjYwkICCjQlv+9ePDVokULg379q1evMmvWrEKLIQAHBwcOHz5coP3+/fts2bIFBweHAtfExMTQvHlzFi5cSLdu3di0aRN79+5l1qxZpKWl0bt3b06dOqVzzcSJE+nZsyf29vYsXbqUAwcOsGTJEhwcHOjXrx8XLlwAICAggFu3brFhwwaDfH4hhH6++OUL9vyxB4BVvVbhautq5ETlgMG2fC1lDLFr/b1795RevYYo9+7dK/R9URVXvw/btb5Dhw6Ko6OjXn0FBwcrgKLRaHSOP2yneWPy9vZWpk2bpnPsYd+L4rB3714FUCIjIwu0+fr6Ku3atVNq1aqlzJkzp0BGR0dH5ZVXXlFq1qxZ4LpKlSopV69eLfRr7tmzR/n99991+gKUxYsXF3r+yZMnlZiYGO37d955R/Hx8Xnk55Jd64UwvGtJ1xT7UHuFEJSR20YaO45JKo6fPXqNDN2/f5/du3fz3nvv8dprr/HSSy/Rp08fRo8eTVhYGL/++qthKzUTFh8fT+fOQ9mxowqdOw/l0qVLOu/j4+NNqt9Had68OampqcTFxdGrVy8aN25c4Jxr165hZmbG8uXLCQkJYdasWQBYWlpqby89KCcnh5kzZ+Lh4UHFihXp1asXN2/e1DlHo9EQFBSEp6cnVlZWeHp6EhQUhEaj0Z6Tf9ttxYoVj+2vMCdOnODcuXO89tpren9fMjIymDRpEs8//zx2dnZ4eHjQu3dvfvvtN53zbt++zbBhw6hSpQoVKlSgSpUq9OrVi4SEBPbt20fXrl0B6Nixo/Z7dfjwYe31KpWKoUOHsn79ep1+161bR//+/bGxsdE5fvjwYY4cOcKMGTOoVatWodn9/PyoW7eu9v1HH31Eo0aNmDRpUqHnN2/enGrV/lm75NVXX+Xs2bOcPHnyCb5TQghDyFVyGbl9JPfV96nuWJ1P/D4xdqRy44lWoD5+/DhLly7l22+/JSsr66H7V6lUKurXr8+4ceMYMWJEocP7ZcWoUZM5e9YHeIazZ1vRvv0E4uLaAnacPevD4MGT+fLLr/Tud+TIR/c7atRk/vc//ft9lGvXrmFubo69vT3jxo3D39+fkydP6twuWrlyJXZ2dgwZMoSUlBRu3rzJF198weHDhzE3Ny/Q50cffUTr1q0JDw8nLi6OqVOnMnToUA4ePKg95/XXX+e///0vgYGBtGnThqNHj/Lhhx9y9epVvv76a737K8yePXu0c6MKk5OTozNfSqVSaT9PRkYGGRkZzJw5E3d3dxISEggLC6NVq1ZcunSJZ555BoAhQ4YQGxvLwoULqVatGnfv3mXv3r1kZGTQokULlixZwsSJEwkLC6NJkyYAPP/88zo5hg8fzpw5c7Tf95iYGA4ePEhwcDCrVq3SOXf//v0A9OzZ85GfPd+NGzf4/fffmTFjxhOdD9C0aVPs7OzYs2ePwW8bCiEKF3YyjIPXDwIQ3iccJ2sn4wYqTx41bPTbb78pvXr1UszMzBRzc3OlY8eOSlBQkLJ9+3blxIkTyuXLl5WzZ88qkZGRyrJly5Thw4crVatWVVQqlVKpUiVl6dKlSk5OjsGGsQzpaW+T3bt3T/Hx8VMgRIEFD7xCFPBT4J4CShFe9/6+vmC/Pj5+T3WrLP9WyaVLlxSNRqMkJiYqy5cvV8zMzJQ+ffooiqIoOTk5Su3atZVRo0Zpr1Or1UrlypWVMWPGaI897jZZ+/btdY4vWLBAAZRbt24piqIo586dUwAlODhY57w5c+YogHLmzBm9+nuYbt26Ka1bt37o9+LfL19f34f2lZ2drdy/f1+xsbFRlixZoj1ubW2thIWFPfS6x90my/9srVq1UsaPH68oiqJ8+OGHiqenp5Kbm6sMGTJE5zbZm2++Wej3PicnR9FoNNpX/t+9w4cPK4CyevXqh2YsTMuWLZXu3bs/tF1ukwlhOL/F/6bYzLVRCEEJ2Blg7DgmrcRvkzVs2JBTp04xb948YmJiOHDgAHPmzKF37960aNGCZ599Fm9vbzp06MDYsWNZu3YtMTEx7Nmzh7Zt2zJhwgTmz59fHDWc0bm5ubFp02KeeebQv1oOAYsBt6L2/Pf1uv16eBxi06bFuLkVtd9/eHl5YWlpiYuLCwEBAQwZMoTw8HAAzMzMGDNmDBs3biQlJQWAbdu2cffuXcaMGfPEX6NHjx467729vYG8UQqAn376CYChQ3VXU81//+OPP+rV38Pcvn2bSpUqPbR969atREVFaV9ffPGFTvvGjRtp0aIFTk5OWFhYYG9vT0ZGhs6tsmbNmjF//nw+++wzzp8//8g8jzJ8+HA2bdqERqNh3bp1DB06VK8F1t566y0sLS21L30nxf9bpUqVuH379lP1IYR4vJzcHEZsG0FGdga1nWszv2vZ/L1pyh5ZDM2fP58rV64wffp0PDw8nqhDlUrFSy+9xHfffcepU6cKnX9SFsTHxzNo0OS/b2E9qC0NGkzmzJl4YmLQ+3XmTDwNGkwGdPuNjW3LoEGTDTJnKL8AuHTpEn/99Rfr1q3DxcVF2/7GG2+Qk5OjncOyfPlyWrRoodd/ywf7A6hQoQIAmZmZACQmJgIU+HOVv+lgfvuT9vcwmZmZ2nML07BhQ5o1a6Z91a9fX9u2detWBg8eTMOGDfnmm284ceIEUVFRuLi46Hzdb7/9Fn9/fz766CO8vb2pWrUqH374od5P2g0aNIi0tDRCQkL47bffGD58eKHn5c/tiYmJ0Tk+Y8YMoqKiOH78uM7x6tWrA/Dnn3/qlcfGxoaMjAy9rhFC6O/jYx9z7OYxVKhY02cN9lb2xo5U7jyyGHrnnXewtrYucueNGjWiW7duRb7elP0zZ8gO+AsPjz3AX4AdFy/6EBQ0mWrV0PsVFDSZixcL7zd/ztDTyi8A6tevX+h/X1dXVwYOHMiKFSu4fPkykZGReo0KPYn84ubOnTs6x/Pf/7v4KSpXV1eSkpKKdO3GjRvx8vIiPDycHj160KJFCxo2bEhycrLOeZUrV2bp0qXcvn2bixcvMnToUIKCggqMMj2Os7MzPXv2ZN68ebRs2VJnAvSDOnXqBMDOnTt1jtesWZNmzZrRtGlTneM1atSgbt26D1176GESExMNMhIphHi4C3EXmBGZN59vSqsptK35739gi5Ig6wwVUXj4Ynx8zgJx+Pgc48CBz/HxOfb3+7OEhy82qX71FRAQwPnz53nzzTdxcnLi1Vdf1WnPH20p6shB/iKDGzdu1Dmev7ZNhw4ditTvv3l5eXH16tUiXZueno6Fhe4zBuvWrXvkiI+Xlxfz58/HwcFBe8tMn+/V22+/Ta9evZg+ffpDz2nbti2tWrVizpw5XLt27Uk+CoGBgURHR7NkyZJC23/++Wdu3bqlc+zatWs6I2VCCMPS5GgYvm046hw1Xm5ezOk4x9iRyq0neposX1JSErGxsdSpU0fn1sOXX37Jtm3bsLOzY/LkyeXi6RM3Nzf27/+KUaMmEx7+VaHvTalffbVs2ZLGjRvz008/8fbbb2Nra6vT/txzzwHw8ccf0717d8zNzWnWrNkT99+wYUMGDx5MSEgI2dnZtG7dmmPHjjFnzhwGDx6snRP0tNq1a8eXX35JQkICrq76LVzWrVs3JkyYwLRp0+jevTtRUVF8/vnnODo6as9JSEige/fuDBkyBC8vLywsLNiyZQtpaWm89NJLANSvXx97IUXUAAAgAElEQVRzc3O++OILHB0dqVChAl5eXtjbFxwKb9++Pe3bt39sto0bN9K5c2eaNm1KQEAAbdq0wdbWlnv37rFnT95ibQ8+zTlixAhOnz7NpEmTOHLkCAMGDKBy5crcvXuXnTt3smHDBqKjo6latar2c125coWgoCC9vmdCiCcXeiiU07GnMVeZs/bltdhY2jz+IlE89JltPXbsWMXe3l5JT0/XHluyZIliZmamqFQqRaVSKTY2NsqFCxcMNsO7uBhi0cXSRt+FBkNDQxVAOX/+fIG27OxsJSAgQKlUqZKiUqmU/D9KD1t0MTIyssATVVlZWcoHH3yg1KhRQ7GwsFBq1KihfPDBB4pardaeo09/hUlMTFSsra2VNWvW6Bx/ku9Fdna28v777yseHh6KjY2N0qFDByU6OlqpWrWq8sYbbyiKoijp6enK6NGjleeee06xs7NTHB0dlebNmyvffPONTl9hYWGKp6enYm5urgDKoUOHFEXRfZrsYf79NFm+lJQUZe7cuUrjxo0Ve3t7xcrKSqlevboycOBAZefOnYX2tWPHDqV79+6Kq6urYmFhoVSuXFnp06dPgfPXrFmjWFtbK4mJiQ/NVRb/jghRUk7dPqVYzLZQCEH5YP8Hxo5TqhTHzx6Vojxk0aBC+Pj4ULt2bbZt26Y9VrNmTRRF4euvv+bOnTsMHz6c1157zaT2pipMamoqTk5OpKSk6PxL/0nbywNfX1/MzMw4dOjfT8yVLiNGjODmzZsG33OsLOvatSvVqlXjyy+/fOg58ndEiKLJys6i6cqmXLh3AZ/KPkSNjsLK3MrYsUqN4vjZo9dtslu3btG5c2ft+19//ZWYmBjmz59PmzZtgLy9nvIfmxalT1ZWFqdPn2bfvn0cPXpUZwPP0io4OJgGDRrw888/63Urr7z6+eefOXToEBcvXjR2FCHKpJCDIVy4dwFLM0vWvbxOCiEToFcxlJGRofP00ZEjR1CpVHTp0kV7rE6dOgWechGlR2xsLK1bt6ZixYoEBgbSu3dvY0d6arVq1WLNmjXExcUZO0qpEBcXx9q1ax+61YcQouiO3zzOf47+B4Dg9sG84F746viiZOlVDFWtWpVLly5p30dERODo6Kiz1UFSUlKBvZRE6eHp6fnQ7VZKs38/DSce7t8LXAohDCNdk87r214nV8mleZXmvNvmXWNHEn/Tqxjq2LEja9eu5fPPP8fa2pr//e9/9OvXDzOzf57Qv3LlinaRNyGEEELkCdwfyO8Jv1PBvAJrX16LhZlev4JFMdJrnaH3338fe3t7Jk2axFtvvYW1tTUhISHa9tTUVA4fPkzr1q0NnVMIIYQotQ5eP8inJz4FILRzKA0qNTByIvEgvcrSWrVqceHCBb799lsAevfuTY0aNbTtf/zxB2PGjOG1114zbEohhBCilErLSmPk9pEAtK3RlkkvTjJyIvFveo/Rubu7M2HChELbmjRpQpMmTZ46lBBCCFFWTPthGteTr2NracuXfb7E3Mzc2JHEv8gNy8dITU01dgQhTJL83RDi8SL+iGDl6ZUALOy6kDoudYycSBTmkcXQ7Nmzi9SpSqVixowZRbrWVFhZWeHu7i6TwYV4BHd3d6ysZI0UIQqTlJHEG/97A4AutbswttlYIycSD/PIFagffEpMe4FKpf3/D16af1xRFFQqFTk5OYbMaXBPsoJlZmYmarW6hJMJUXpYWVnprD0mhPjH8K3DWX92PY4VHDk37hw1nGo8/iLxWCW+AnVkZGSBY5988gm7d+9myJAhdOjQAXd3d+7cuUNkZCRff/01/v7+TJ482SDhjM3a2lp+0AshhNDbtkvbWH92PQCL/RZLIWTiHvloff4O2vmvP//8k71793L8+HG+/PJLXn/9dfz8/Hj99ddZs2YNR48eJSIighs3bugdZOPGjbRt2xZHR0dUKhXZ2dnathMnTtCrVy/c3d1xdHTE29u70D2TwsLC8PT0xNbWliZNmsi2IEIIIUpcfHo8Y3aOAaBnvZ6MaDTCuIHEY+m1ztAnn3zCoEGDHvrEWLNmzRg4cCCffPKJ3kGcnZ0JCAhg8eLFBdoSEhLo168fZ8+eJSUlhSVLljBp0iSdDWM3b95MYGAga9euJTk5mTfeeIMePXoQExOjdxYhhBCiKBRFYdyuccT9FYeLjQsre67UmV4iTJNexdBvv/2Gh4fHI8+pUqUKv/32m95B/Pz8GDx4MLVr1y7Q1qNHD0aMGMEzzzyDSqWiY8eOdOrUSec23tKlSxk1ahTt27fHysqK8ePHU7duXdasWaN3FiGEEKIoNl3YxLe/5q3FF9YjDA+HR//OFKZBr2LI0dGRI0eOPPKcw4cPY29v/1ShHic1NZUTJ07QuHFj7bHo6GhatGihc17z5s355ZdfijWLEEIIARCbFsv43eMBGPDcAAY9P8jIicST0qsY8vf359ChQ0ybNo20tDSdtrS0NKZOncqRI0fo1auXQUM+SK1WM2jQILy8vBg6dKj2eGpqKhUrVtQ519nZWdZCEUIIUewUReGtnW+RmJHIM3bPsNR/qdweK0X0WnTxo48+4uDBg3zyySesXr2aRo0aUblyZe7evUt0dDSpqanUrl2b0NDQYgmbnp7OK6+8glqtZseOHVhY/BPf0dGR5ORknfOTkpIe+9hdYGCgdp0UPz8//Pz8DB9cCCFEmbYmeg07f98JwIqeK3CzdTNyorIlIiKCiIgIgGJZ8uaR6wwVJiEhgffff5+vv/6a9PR07XFbW1uGDBlCaGgorq6uRQ508OBBOnbsiEaj0Sl2kpKS8Pf3x8XFhW+//bbAI+8dO3akcePGLFq0SHusSZMm9O3bt9AFIItjnQIhhBDli1qt5sy1M3Te3Jm0nDSGvzCctS+vNXasMq3E1xkqjKurKytXrmTp0qVcunSJlJQUnJyc8PLy0ile9JWTk4NGo9FWfFlZWWRnZ2NlZUVcXBwvvfQSDRo04KuvvsLS0rLA9QEBAYwePZq+ffvy4osv8sUXX/D7778zYsSIImcSQgghCpObm8u0mdPYdXQX19XXUaepsatixyfT9X+aWhhfkasXCwsLGjZsaLAg69evZ+TIkdr3+ZOwIyMj+fHHHzl37hxXrlzB2dlZe07btm35/vvvARgwYAB3795l6NChxMXF0aBBA3bt2iXbaQghhDC4aTOnsezCMjLrZGqPqePUzA2dy6K5ix5xpTBFet8mKyvkNpkQQoiiUKvVeHfz5vc6vxdoq3elHuf2nJM9+4qRSdwmu3z5Mp9++iknT54kKSmp0D3IVCoVV65cMUhAIYQQwpQkJCSQal74k8pp5mkkJibi7u5ewqnE09CrGDp27BhdunQhIyMDCwsLKleuXOg8oXI62CSEEKIccHV1JSstq9A2hxwHXFxcSjiReFp6FUPvv/8+WVlZLF++nFGjRj3VhGkhhBCiNDp86zBJdkkQCzywwLR1vDX+rf3lFlkppFc1ExUVRf/+/XnrrbeKK48QQghhsuLT4xm6ZSi0gSpnqmD3hx33Le7jkOOAf2t/Fs5eaOyIogj0KoasrKyoUaNGcWURQgghTJaiKIzaPorY+7FUtK3IsbXHcLdxJzExERcXFxkRKsX0KoZat24te30JIYQol8Kiwtjx+w4AVvdaTQ2nvMEBmSxd+um1N1loaChHjx5l/fr1xZVHCCGEMDln755l2g/TABjdZDT9nutn5ETCkPQaGdq+fTudOnVixIgRrF69mqZNmxbYHBXyHq0vbAsMIYQQorRJ16Tz6revkpWTRQO3BizuttjYkYSB6bXoopnZkw0kqVSqQtcfMiWy6KIQQognMXbnWFacWoGVuRUn3zzJC+4vGDtSuWb0RRcjIyMN8kWFEEKI0mDLxS2sOLUCgIVdF0ohVEbpVQy1b9++uHIIIYQQJiUmJYY3//cmAD3r9WRCiwlGTiSKi14TqIUQQojyICc3hyFbhpCUmYSHvQfhvcNRqVTGjiWKSZGWkL5x4wbr1q3jl19+ITk5GScnJ5o0acKwYcOoWbOmoTMKIYQQJerDQx9y6MYhVKhY33c9lewqGTuSKEZ671q/atUqJk6ciFqtLrAHmZWVFZ9++iljxowxaMjiIBOohRBCFObIjSO0W9OOXCWXd33fZV6XecaOJB5QHL+/9bpNtn//fsaOHUuFChX44IMPOHDgABcvXuTAgQMEBQVhbW3N+PHj2b9/v0HCCSGEECUpOTOZ17a8Rq6SS/MqzZnTcY6xI4kSoNfIULdu3Th+/DinTp2iTp06BdqvXLlC06ZNadmyJXv27DFoUEOTkSEhhBAPUhSFQd8OYvOvm3GwcuCXMb9Qx6Xg7zphXEYfGTp58iQDBw4stBACqFOnDgMGDODkyZMGCSeEEEKUlPBfwtn862YAlvovlUKoHNGrGMrIyMDNze2R51SqVImMjIynCiWEEEKUpEvxl5i4ZyIAw3yGMdRnqJETiZKkVzFUs2ZNDhw48MhzIiMjZWd7IYQQpUZWdhaDvxtMuiadOs51COsRZuxIooTpVQz17duXqKgoAgICSE5O1mlLTU1l0qRJnDx5kldeecWgIYUQQoji8t6+94i+E42FmQXf9PsGhwoOxo4kSpheE6hTU1Np1aoVFy9exMHBgRdeeAEPDw/u3LnDmTNnSE1NxcvLi+PHj5v8pGSZQC2EEGL35d34f+0PwPwu8/k/3/8zciLxOEafQO3o6MjRo0cZPXo0OTk5HD58mM2bN3Po0CGys7MZPXo0R44ckeJCCCGEyYtNi2XEthEAdKndhWmtpxk3kDAavRddzKfRaPjtt99ISUnBycmJ+vXrY2lpaeh8xUZGhoQQovzKVXLx+8qPfVf34WbrxtmxZ/Fw8DB2LPEEjL5r/YMsLS1p2LChQUIIIYQQJenjox+z7+o+ANb0WSOFUDmn122yK1eusG7dOhISEgptj4+PZ926dVy9etUg4YQQQghDi7oVReCBQAAmtpiIfz1/IycSxqZXMTRv3jymTp360GEpJycnpk2bxoIFCwwSTgghhDCktKw0Bn83mOzcbF6o/ALzu843diRhAvQqhg4ePEiXLl0eOjfI0tKSrl27PnYtIiGEEMIYJnw/gStJV7CxsOGbft9gbWFt7EjCBOhVDN26dQtPT89HnlOjRg1u3779NJmEEEIIg9twdgPrzqwD4NNun9KgUgMjJxKmQq9iyMrKitTU1Eeek5aWhkqleqpQQgghhCFdTbrKuF3jAOj/XH/ebPKmkRMJU6JXMdSwYUN27dqFRqMptF2tVrNz506ee+45g4QTQgghnpYmR8Pg7waTpk6jhlMNVvZcKf9oFzr0KoaGDh3KjRs3GDhwIHfu3NFpu3PnDgMHDiQmJobhw4cbNKQQQghRVDMjZ3Ly1knMVGZseGUDzjbOxo4kTIxeiy7m5ubSrVs39u3bh62tLT4+PlStWpVbt25x9uxZ0tPT6dKlC3v27MHMTK86q8TJootCCFH2Hbh2gC7ruqCgENI+hOAOwcaOJJ5Scfz+1nsFao1GQ3BwMMuWLSMlJUV7vGLFigQEBBAcHFwqVqKWYkgIIcq2+PR4fJb5EHs/ljY12hD5eiQWZkVea1iYCJMohvLl5uZy6dIlkpOTqVixIl5eXiY/GvQgKYaEEKLsUhSFPhv7sOP3HVS0rsiZsWeo4VTD2LGEAZjUdhxmZmYyUVoIIYRJCosKY8fvOwBY1WuVFELikYpUDGk0Gvbv38/Fixe5f/8+M2bMACAzM5PU1FTc3NxK1SiREEKIsuPs3bNM+yFvB/rRTUbT/7n+Rk4kTJ3eFcuePXvw9PTE39+fqVOnEhISom2Ljo7Gw8ODTZs26R1k48aNtG3bFkdHR1QqFdnZ2TrtZ8+epV27dtjZ2VGlShVCQkJ48A6foigEBwdTpUoV7OzsaNeuHefPn9c7hxBCiNIrXZPOq9++SlZOFg3cGrC422JjRxKlgF7F0M8//8zLL7+MSqXik08+4bXXXtNpb9myJbVq1WLr1q16B3F2diYgIIDFiwv+wU1LS8PPzw9fX1/i4+OJiIhg9erVOucuXLiQ8PBwIiIiiI+Px9fXFz8/P+7fv693FiGEEKXTlIgpXIy/iJW5Fd/0+wZbS1tjRxKlgF7F0Jw5c7C1teXnn39m4sSJ1K1bt8A5zZs358yZM3oH8fPzY/DgwdSuXbtA25YtW8jJyWHOnDnY2Njg7e3N9OnT+fzzz7XnLF26lGnTpuHt7Y2NjQ1z5sxBrVYXqTATQghR+my5uIUVp1YAsKDrAl5wf8HIiURpoVcxdOTIEV5++WXc3d0fek716tWJjY196mAPio6OpnHjxlhY/DPFqXnz5ly9epXU1FRSUlK4fv06LVq00LZbWFjQuHFjfvnlF4NmEUIIYVrUajVRv0UxassoAPzr+vN2i7eNnEqUJnpNoL5//z5ubm6PPCc9PZ3c3NynCvVvqampVKxYUeeYs7Ozti1/7lBh5zxuLzUhhBClU25uLtNmTmPn0Z1cV19Hk6bB1sOWL6Z8IdttCL3oVQxVrVqVCxcuPPKc6OjoQm91PQ1HR0du3rypcywpKUnbll8MJScnFzinatWqj+w7MDAQKysrIO9WnZ+fn6FiCyGEKEbTZk5j2YVlZNbJ1B7TxGmYP38+i+YuMmIyYWgRERFEREQAeSOBhqZXMdS9e3eWL1/O4cOHadOmTYH277//nqNHj/Lee+8ZLCBAo0aN2LBhA9nZ2dpbZT///DO1a9fWLrjk6elJVFQUrVq1AiA7O5vo6GiGDRv2yL5DQ0Nl0UUhhChl1Go1u47u0imEADTPaNh1dBfz1PO0/9AVpd+DgxWpqamEhYUZtH+95gy9//77VKxYkZdeeol3332XX3/9FYBdu3bx7rvvMmDAADw8PJgyZYreQXJycsjMzNRWfFlZWWRmZpKbm8srr7yCubk5wcHBZGRkcP78eRYuXMj48eO11wcEBLBw4ULOnz9PRkaGdluQvn376p1FCCGEaUtISCDFPKXQtjTzNBITE0s4kSjN9L5N9sMPPzBw4EAWLFigPd67d28URaFOnTps2bLlsfOKCrN+/XpGjhypfW9vbw9AZGQkHTp0ICIigvHjx+Pq6oqjoyNjx47lnXfe0Z4/bdo00tLS6NKlC6mpqTRr1ow9e/Zo+xFCCFF2uLq6kpGSUWibQ44DLi4uJZxIlGZF2pssJyeHXbt2cezYMRISEnBycqJly5b06dNH54kvUyZ7kwkhROm1+cJmBk4cCDaAxz/HreOtGff8OJkzVIaZ1EatpZ0UQ0IIUTrdSr2F9zJvktKTqH2hNhaJFqSZp+GQ44B/a38Wzl4oW0KVYSa1UeuDkpOTURRF+7i7EEIIURxylVxGbB9BUmYSlR0qc3ztcZwsnUhMTMTFxUUmTYsieWzpfO/ePQ4cOMCtW7cKtJ06dYomTZrg6uqKm5sbPj4+HD16tFiCCiGEEEtOLGHf1X0AfNnnSyrZVcLKygp3d3cphESRPbYYWr58OV27dtWu65MvLi4OPz8/oqOjsbS0xM7OjvPnz9O9e3du3LhRbIGFEEKUT+funuO9fXlLt4xvPp7udbsbOZEoKx5bDB0+fJi6devSsGFDneOfffYZiYmJ9O7dm6SkJJKTk1mwYAFpaWl8+umnxRZYCCFE+ZOZncmQLUPIysnCy82L/3T9j7EjiTLkscXQ5cuXad26dYHjO3bswMzMjKVLl2JjY4OZmRlTp07F29ub/fv3F0tYIYQQ5VPQgSDOxZ3DwsyCDa9skN3ohUE9thiKi4ujSpUqOsfyFz708fEp0Obr68u1a9cMm1IIIUS5tf/qfj4+9jEAczrOoYlHEyMnEmXNY4uhnJycApudnjt3jtzcXJo3b17gfBcXFzIzMwscF0IIIfSVlJHE69teB6BtjbZMbz3dyIlEWfTYYqhatWqcPn1a59ihQ4dQqVQ0a9aswPlJSUlUqlTJcAmFEEKUS4qiMHbXWG6l3cKxgiPr+q7D3Mzc2LFEGfTYYqhDhw4cO3aMr776CoC7d++ybNkyVCpVoTu8R0dHU716dcMnFUIIUa5sOLeB/174LwBhPcLwrOhp3ECizHpsMTR9+nQqVKjA66+/jouLC9WrV+fq1av07duXGjVq6JwbFxfHyZMnC93RXgghhHhS15OvM3533mbcg54fxBDvIUZOJMqyxxZD9erVY+fOndSuXZvk5GQA+vXrx6pVqwqcu3LlSnJycujatavhkwohhCgXcnJzGL51OKlZqVRzrMYy/7y7EUIUF732Jrt37x5OTk4PXeUzPT0djUaDo6Ojyf/Blb3JhBDCNM07PI/3978PwP7h++lUq5OREwlTYvS9yR43MdrWVtZ9EEIIUXSnY08zI3IGAFNbTZVCSJQI2dZXCCGESUjXpDNkyxCyc7PxfsabDzt9aOxIopx4ZDE0YcIE7t69W+TOt27dyjfffFPk64UQQpQf/7f3/7gUf4kK5hXY8MoGKlhUMHYkUU48shj6+uuvqV27NuPGjePEiRNP1GFKSgorVqygSZMm9O/fn4SEBIMEFUIIUXbtvrybsKgwAOZ1mYd3ZW8jJxLlySPnDP3xxx/MnDmTlStXsnLlSqpXr46vry/NmjXDw8MDZ2dnMjMzSUhI4NKlSxw/fpyoqCiysrJo0KABO3fupHt32VVYCCHEw9376x6jto8CoEvtLkx8caKRE4ny5omeJouJiWH58uWsWbOG2NjYvAv/9bSYoiiYm5vTuXNnAgIC6NmzJ2ZmpjslSZ4mE0II41MUhb6b+rL9t+04Wztzbtw5qjpWNXYsYcKK4/e3Xo/WA1y4cIHDhw9z48YNEhISsLGx4ZlnnsHHx4e2bduWmsJCiiEhhDC+1adXM3rHaAA2D9hM/+f6GzmReJT4+HiCRo1ibng4bm5uBd6XBKM/Wg/w/PPP8/zzzxvkiwshhCi/LidcZtKeSQC8/sLrUgiZuPj4eKZ07kzg2bN5/7tpE6GDBmnfL9q/v8QKIkMz3ftYQgghyixNjoahW4eSrknHs6InS7ovMXYk8RhBo0YRePYsXsCis2dZ3KENi/5+H3j2LEGjRhk7YpFJMSSEEKLEfXjoQ07eOomZyoz1fdfjWEGmK5i6uV98QahXDeIBN2D53QTcgHgg1MeHueHhxg34FKQYEkIIUaKOxRxj7k9zAXi/zfu0qSGbe5u8zDjcLo0l8I0bBFXUbQry8CBw06ZSe4sMpBgSQghRgtKy0hi2dRg5Sg7NqjQjuH2wsSOJx/nzv7DrOeJ/3ULoZzA3Wbd5bmwsoYMGER8fb5x8BiDFkBBCiBLzTsQ7XEm6go2FDV/1/QpLc0tjRxIPkxkHhwbAkUGQlUDQKksCb6C9NTbWw0N7y0zmDAkhhBBPYOvFrXzxyxcALPJbRH23+kZOJB7qxmbY9TzEfJv3vno/5m47Q6iPD5eAKT4+TD5wgCl/vy/tc4b0XmeorJB1hoQQouTEpsXivcybhIwE/Ov6s2PwjgKL9woTkHkPfh6fVwwBVHCFZmFQYyCoVGV2naGnKoaSkpK4f/8+1atXN0iYkiTFkBBClAxFUei+oTsRVyKoZFuJc+POUdm+srFjiX+78S1EBUDWvbz31V+BZkvBxrT+WxXH72+9b5Pdv3+fqVOn4u7ujpubG7Vq1dK2nThxgh49enD69GmDhBNCCFH6hUWFEXElAoAven8hhZCpyYyHw4Pg8IC8QsjKBVp/A22+NblCqLjotQJ1SkoKbdq04cKFCzRq1Ag3NzcuXryobff29ubQoUN88803NGnSxOBhhRBClC6/3vuV6XunAzCm6Rh61e9l5ERCx43vIGrcP6NB1fpC82XlpgjKp9fI0IcffsiFCxdYs2YNp0+fZsCAATrttra2tG/fnv379xs0pBBCiNJHnaNmyJYhZGZnUtelLh+/9LGxI4l8mfFwZDAc7v/AaNDX0Pa7clcIgZ4jQ1u2bMHPz4/hw4c/9JyaNWsSFRX11MGEEEKUbjMjZxJ9JxpzlTkbXtmAnZWdsSMJgJitEDU279F5gGov/z0a5G7cXEak18jQzZs38fHxeeQ59vb2pKSkPFUoIYQQpduP13/kP0f+A0BIhxCaV21u5ESCrIS80aBDr+QVQlbO0HoDtN1Srgsh0HNkyMHBgbi4uEeec+3atVK9JLcQQoink5yZzPBtw1FQaF29Ne+1ec/YkUSB0aA+0Hx5uS+C8uk1MtS8eXN27txJWlpaoe2xsbHs3r2bNm2KZ5+Zu3fv8tprr1G5cmUqVqxIq1at+PHHH7XtBw8epEmTJtja2lKrVi2WLVtWLDmEEEI83ITdE7iRcgN7K3vW912PhZle/+4WhpSVAEeG6I4GtVoPbbdKIfQAvYqhSZMmkZCQQI8ePXSeIgO4ePEiAwYMIDMzk4kTJxo0ZL6AgABiYmI4f/48CQkJ9O/fn549e5KYmMiff/6Jv78/b7zxBsnJyaxZs4b33nuPrVu3FksWIYQQBX1z7hs2nNsAwGfdP6O2c20jJyrHbm7PW0X6z6/z3lftBf4XoNZQkAUvdei96OKsWbOYNWsWKpUKS0tLNBoNzs7OJCUloSgK8+fPZ/r06cUS9oUXXmDUqFFMmjQJyFvzyMHBgePHj7Nnzx62bdvGL7/8oj3/nXfe4ezZs4U+3SaLLgohhOGo1WrOXDtDl81dSM1JpV+DfmwesFlWmTaGrEQ4NRGu5xWlWFaEZkvAs2wUQSax6GJwcDD79++nd+/eODs7Y25ujkqlokePHuzbt6/YCiGAd999l23bthEbG4tGoyEsLIw6derg4+NDdHQ0LVq00Dm/efPmOsWREEIIw8rNzWVK0BQadmuI7xu+pG5OxfaYLct6LJNCyBhu/i9vNCi/EKraC3r+CrWGlYlCqLgU6UZux44d6dixo6GzPJavry/r16+nStv5f3gAACAASURBVJUqmJub4+LiwtatW7GxsSE1NZV69erpnO/s7ExqamqJ5xRCiPJi2sxpLLuwjMw6mdpjmjgNH837iEVzFxkxWdlV6P5grw9l7ngH3JL/3ljVsiI0/VSKoCdUama15ebm0qlTJ9q1a0dCQgKOjo7s2rWLHj168OOPP+Lo6EhycrLONUlJSY8dQgsMDMTKygoAPz8//Pz8iu0zCCFEWaJWq9l1dJdOIQSgeUbDrqO7mKeep/35KgwjPj6eKZ07E3j2bN7/btpE6CvdCbx4nSnnYVEguNX3hxYrwbaKseMaTEREBBEReVu6qNVqg/df5I1aFUXhzp07aDSaQttr1KjxVMH+LSEhATc3N06fPk3jxo21x5s0acKgQYPIzMxk+/btOvuiTZkyhTNnzsicISGEKAaxsbF4D/UmoXZCgTaP6x6cXn8ad3d5YsmQxvbuzeQdO/AC4oEgVxvmJmTgBlwCFndqxPJ9p8v0aJBJzBnavHkzTZs2xdrammrVqlGrVq0Cr9q1Df/0gKurKw0aNCAsLIzU1FRyc3PZuXMnFy5coGnTpowYMYJLly6xbNky1Go1hw4dIjw8nPHjxxs8ixBCCLiQdoHEhMRC2xxyHHBxcSnhRGXf3PBwQn18iAfcgOV/F0LxQGjDBszdtLdMF0LFRa/bZGFhYUycOBELCwt8fX2pWrUqFhYld6dt+/btTJ8+nWeffZbMzEyqV6/OZ599RpcuXQDYvXs377zzDlOmTKFy5cqEhobyyiuvlFg+IYQoL3648gMvb34ZxVWBO8ADA0DW8db4t/aXW2TFwM3NjcCPhxI04P9Y/sDMkCAPDwI3b5FFj4tIr9tkzz77LH/99RdHjx6lVq1axZmr2MltMiGEKJqdv++k33/7oc5RU9+lPv/P3p3HRVW9Dxz/zLDIIrI4LmjuZpiKS2qKuaekpmmW+1KY5ZJlpP2MyDIJzXSyXCvTNDX122KuoeFakrnjAu6KCypXVtkGZu7vj1EUQQVlGMDn/XrxonPvnXse1GYezj3nPG0utGH73u0k2SThYnShm083pn82Ha023w8fxP2oKsrOCfgPnoY+yjwydIsC+Ht7ow8NLfEJkSU+v/M1rHPp0iWGDx9e7BMhIYQQD+fXY7/S79d+ZJoy8a7gzebBmynvXB6DwUBsbCweHh4yImQJxnTYPZzAsT8RcDMRUjCPCAVFR6MDAsLDCfTzY/6aNVYOtvjJV9pepUoV0tPTLRWLEEKIImz54eX0/aUvmaZMnvF8hq1Dt1LeuTwA9vb2VKxYURIhS0iPha2+cO4ngt6C4NplicQ8EjR2yxb8vb2JBIK9vQlauNDa0RZL+UqGhg4dysaNG+9Zm0wIIUTJtPDAQgb9NgijaqTlEy0JHRKKh6NMkLa4pNOwqSVc2w5o0LX9Cv2uCGZ2744+NBQvLy/0oaFZ7ZL+iMxS8jVnyGg00qdPHy5evMi0adNo0qQJLi4ulozPYmTOkBBC5M3cPXMZvcG8Mrdttbas7b8Wl1LF872/WIn5B3a8ZC62auMErZabq80/5qy+tN7GxobRo0dz6tQpOnTogJubGzY2Njm+CnOFmRBCCMvRh+mzEqHOtTqzYeAGSYQKw7mfIbSDORFyqAiddkgiZEH5ylr++OMPXnnlFYxGIzVq1KBSpUqS+AghRAn1+Y7PCdwaCED3Ot1Z9eoqHGwdrBxVCaeqcDQYws1/7rg1gLbrwLlgNzIW2eUrk/n0009xcnJi/fr1PPfcc5aKSQghhBWpqsrErRMJ2hkEQO+6vVneezn2NjI52qKMBtjzFpz50dz29IXnVoGdTOWwtHwlQ8ePH2fIkCGSCAkhRAmlqirjN49nRtgMAAY2GMiPPX/EVitPASzKEAc7e8PVreZ27beg6WyQP/dCka8/ZZ1OJ8smhRCihDKpJt7Z+A5z9swBYFjjYXz74rfYaG2sHFkJd+MMbOsGiZGABhp/CV7+UlajEOUrGerduzd//vknGRkZ2NnZWSomIYQQhcxoMvLWurf44cAPAIxqOopZXWeh1cgu0hYVE3ZzxVgM2DiCzzKo0svaUT128vWvPCgoCHd3d1599VXOnTtnoZCEEEIUpkxTJkNXD81KhN5v+T6zu86WRMjSzq+C0PbmRMihAjy/XRIhK8nXyFCDBg3IyMhg9+7drF27Fjc3N1xdXXNcp9FoOH36dIEFKYQQwjIMRgMDfxvIL8d+ASCwdSCftf8MjTyisRxVhWNT4VCAue1aD9qtB+dq1o3rMZavZMhkMmFra0vVqreX+OW2Z2M+9nEUQghhJWmZafT5Xx/WnlgLQFD7ID5q85GVoyrhTBnw3wg4c7NsRsVO8Nz/wD7nwIIoPPlKhuTRmBBClAwpGSn0WtmLTac3ATCj8wz8W/pbOaoSzhAPO1+Bq6Hmdq3h0GwOaGUOrrXJmj0hhHjM3DDcoPvP3dl2bhsAc7rOYVSzUdYNqqS7cfbmirEIc7vRNKg7TlaMFRGSDAkhxGMkIS2BLsu6EHYxDA0aFvRYgF9jP2uHVbIpu2FHD0i7BjYO0PInqPqKtaMSd7hvMrRkyRIAevXqhYuLS1Y7L4YMGfJokQkhhChQsamx+C71Ze/lvdhobFjcczEDvQdaO6ySLepXCBsExjRwKA9t1oDuWWtHJe5y36r1Wq0WjUZDREQEderUyWrfj6qqaDQajEZjgQdbkKRqvRDicXIt+RqdfupE+NVwbLW2rOi9gt5P97Z2WCWXqkLEl3Dw/8xt16eh7XooXd2qYZUElvj8vu/I0MKFC9FoNHh6egKwaNGiAulUCCFE4bmcdJnnlzxPhBKBvY09v7z6C92f6m7tsEouUwbsGQ2nvze3K3SE1r+AvZt14xL3dN+RoZJMRoaEEI+DqIQoOi7pyKnYUzjaOrK632o61+ps7bBKLkMC/P0qXNlsbtcaBs3myYqxAmSJz+8Hbi/aoUOHfM0VEkIIUTSciTtDm0VtOBV7Cmc7ZzYO3CiJkCUln4fNrW4nQg2nQPPvJREqBh6YDG3btk32FxJCiGLmuHKcNovacD7hPGVKlWHT4E20rd7W2mGVGIqiMKJHDxRFMbdPbGZEuzooF4+CthS0Wgn1JsjS+WJCCs8IIUQJYTAYiI6O5uDFg7T9sS2Xki7h7uBO6JBQfKr4WDu8EkNRFPw7dmTs2rX4d+xI5NZZ+HfyZexeA/5TbFAa/Q7V+lg7TJEPss+QEEIUcyaTiXETx7F+13qua64TFxuHycOErrOO0NdC8a7gbe0QS5RAPz8CwsPxAvTh4QS+/A76eNABAeeNBH4wj/lrulg7TJEPMjIkhBDF3LiJ45h3dB4nap3ges3rmJqawBG6Xu0qiZAFBC1cSHCDp1EwJ0DzbyZCChDs7U3QwoXWDVDkW55GhrZt25avm2o0Gj7++OOHiUcIIUQ+GAwG1u9aT1qttOwnPOHfg/9iMBiwt7e3TnAllC51BwFvRBP4iTkRuiXQ05OAlSvR6XTWC048lAcurb+10WJeVuDfuk42XRRCiMIRHR1N3QF1SaidkOOc5zlP9v+0n4oVK1ohshLIEAd7x6AcXoZ/MOijzCNCtyiAv7c3+tBQSYgsqNA3Xbylbdu2tG0rqxCEEKIoUVWVuUfmkhCbMxECcDG64OHhUchRlVCXN8LuNyD1MoHfQkDU7UdjgZ6eBEVHm+cMhYcT6OfH/DVrrBywyI88JUPt2rVj4sSJlo5FCCFEHhmMBoavHc6SQ0tAB9qrWkwVTFnnHRQHuvl0k0dkjyojEfa/D6cXmNt2ZQj67nP8h31PQHg4wd7eBKxciX/fvlltvcwZKnZkNZkQQhQzcalx9F7Vm63ntgIw6r1R2O2yY+O/G0myScLF6EI3n25M/2y6lSMt5q5sgX9fh5Qoc7tiJ3j2B3TOVdCH9iPQzw/9woXodDr0oaHZ2qJ4kWRICCGKkbNxZ+m6vCuRSiQaNMzoPIOxLcaieVHDNMM0YmNj8fDwkBGhR5GZDAc/hBOzzG1bZ2g8A2q/mbWJok6ny/Yo7O62KF4kGRJCiGJi98Xd9FjRg2vJ13C0dWTZy8voVbdX1nl7e3uZLP2oYnZB2FC4ccrcLt8GWiyC0jWtG5ewqAcmQ0OHDqVRo0aFEYsQQoh7+C3iNwb+NpC0zDTKO5dnbf+1NK/c3NphlRzGNAifCBHTARVsHMy1xZ56BzSyJV9J98BkaNGiRYURhxBCiFyoqspX/37FuE3jUFHx0nmxYcAGarjXsHZoJcf1vfDvUEg4Zm6XfRZaLoYyT1k3LlFo5DGZEEIUUZmmTN7d+C5z984FoF31dvzW5zfcHd2tHFkJYTTA0c/NX6rRXF2+wSSoOx608vH4OCl2Y39hYWF06NABFxcX3Nzc8PHxwWQyLycNDw+nTZs2ODs7U6lSJT799NM8bRYphBBFzQ3DDXqu6JmVCA32HkzIoBBJhApK/GHY9Cwc+cycCLk3At+9UO9DSYQeQ8UqGQoLC6NLly689tprXL16FUVR+Oqrr9BoNCQlJeHr60urVq1QFIWQkBAWLFjAzJkzrR22EELky+Wky7RZ1Ib1J9cD8GnbT1ncczH2NrJC7JGZMuHoFPjzGYg7CBobqD8ROu8Gd6nj9rh6YDmOoqR169Y0b96cGTNm5Di3ePFixo8fz+XLl7G1NWf1X3/9Nd988w2nT5/Ocb2U4xBCFEWHrx6m6/KuXEy8iJ3WjgU9FjCk4RBrh1UyJB43rxS7vtvcdn0aWiyGsk2tG5fIF0t8fhebkaGUlBR27dqFjY0NzZs3p2zZsjzzzDP8+uuvABw8eJDGjRtnJUIAzZo148yZMyQmJlorbCGEyLNNpzfRamErLiZexM3BjU2DN0kiVBBUE0R+BRsb3UyENOZ5QS/sk0RIAMVoAnVsbCwmk4nFixezbt06GjduzJo1a+jXrx/bt28nMTERNze3bK9xdzc/W09MTJTRHyFEkfb9vu8ZuX4kRtVIdbfqbBiwgbrl6lo7rOLvxhnzLtLXdpjbpWtDyx+hXCurhiWKlodKhoxGI8ePHycuLu6e1enbtGnzSIHdzcXFBYDXXnuNZs2aAfDyyy/Tvn17Vq9eTZkyZbh48WK218TFxQHcNxEKCAjI2qnV19cXX1/fAo1bCCHux6Sa+Cj0I6b+MxWA5pWbs6bfGiqUrmDlyIo5VYVT38KBceYdpQHqjIFGU8w7SotiJSQkhJCQEAAMBkOB3z/fydDkyZP56quvSEjIvUryLfdKkh6Wq6srtWrVQnNzK/S7NWrUiGXLlpGZmZn1qGzv3r3UrFnzvslQcHCwjBoJIawiLTON11a/xsqjKwHo5dWLpS8vxcnOycqRFXPJF8wV5q9sMredqpp3ka7YwbpxiYd252BFYmIic+bMKdD75ysZmjZtGp988gmurq4MHjyYKlWqZJujY2ljxoxhypQp9OvXD29vb9atW8f27dv57LPPePrpp5kwYQKffPIJgYGBnD59munTpzN27NhCi08IIfJKSVHouaIn/1z4BwD/Fv5M6zQNG62NlSMrPhRFIdDPj6CbxVGVmBgC+3UmaMApdI43zBfVegOazAA7+aVX3Fu+Mpnvv/+eypUrs3//fsqVK2epmO7p3XffJSUlhe7duxMfH8+TTz7JypUrefbZZwHzMNro0aMpW7YsZcqUYcSIEbz33nuFHqcQQtzPyesn6bq8K6diT6HVaPnmhW8Y3Xy0tcMqVhRFwb9jRwLCw83fF88muHc3As4k4X8K9J9VQNdpEVTqYu1QRTGQr6X1Dg4ODB8+nFmzZlkypkIhS+uFENbwd9Tf9FzRk+up13G2c2bFKyt4sc6L1g6r2BnRowdj167FC1CAQHcNQXEqOiASmNnVl/nr/7RukMIirL60vkKFCmRmZhZIx0II8bhZcWQFHZd05HrqdTxLe7Lj9R2SCD2koIULCW5QDwXQAfNvJkIKEOztTdDipdYNUBQr+UqG+vTpw+bNm0lPT7dUPEIIUeKoqsqUnVPo/2t/DEYDDco3YPcbu2ni2cTaoRVbOvUEAW/FEZh9RxUCPT0JWLkSnU5nncBEsZSvZGjSpEl4enryyiuvcPbsWUvFJIQQJUaGMYPha4cTsCUAgM61OvO3399Uca1i5ciKKVMmHJ6E8ltrgqddJig+++mg6GiC+/ZFURTrxCeKpXzNGapZsyYZGRlcvnwZMC93v3ujQwCNRpNrCYyiROYMCSEsLSEtgVf/9yqbz2wG4I3GbzC321zsbOysHFkxdeMchA2CmH8YMR3GHuD2nCFPT4Kio2/PGerenflr1lg1XGEZVp8zZDKZsLW1pWrVqlStWhVXV1dUVc3xdauKvBBCPG4MBgPR0dGcijnFc4uey0qEpnScwnfdv5NE6GGd+xk2NoSYfwANQTPeIbhBAyIBf29vxm7Zgr+3N5HcnDO0cKGVAxbFSbEq1FqQZGRICFGQTCYT4yaOY/2u9VzXXCc+Nh6jhxH7tvYseXkJfev3tXaIxVNGIux5G879ZG47Vgafn6BC+5z7DN3VFiWTJT6/JRmSZEgIUQD8A/2Zd3Qeabq02wejoU/NPqz8ZqX1AivOlN2wa4C5vhhAlZeh+XdQqqx14xJWZfXHZHdLSkriwoULUhVeCPFYMxgMrN+1PnsiBOAJB48ctEgtpRLNZIQjQbC5lTkRsnGC5t/Dc79IIiQsIt/JUGZmJlOnTqV27dq4ublRvXp13N3dqV27NlOnTpV9iIQQj51rMde4mHkx13NJNknExsYWckTFWHIUhLaH8I9BNYJ7E+iyH2q/AfeoTSnEo8pXOQ6DwcALL7zA9u3b0Wg0VKlSBU9PT6Kjozl37hwfffQRf/75J5s2bcqqBC+EECVZUnoSb4a+SUpCSq7nXYwueHh4FHJUxdT5VfDfW5Bxc7183fHgHQQ28nkiLCtfI0N6vZ5t27bRrVs3IiIiOHfuHGFhYZw7d47jx4/TvXt3du7ciV6vt1S8QghRZFxIuEDrRa3ZeHYj6MDmavYiqw6KA918uskvhw+ScQP+9YN/+poTIUdP6LAZGk+TREgUinxNoPb29gbg4MGDaLU58yiTyUSjRo1QVZXDhw8XXJQWIBOohRCPYt/lfXT/uTvRN6Kxt7FnwYsLOPDLAdbvWk+STRIuRhe6+XRj+mfTc32/FDdd3wP/DIAbp8ztJ16C5gvAQVaDidxZ4vM7X4/JTp06xZgxY+75P7ZWq6VLly4lopCrEELcy+rI1Qz8bSApGSmUdSzL731/p3W11gxuNJiphqnExsbi4eEhI0L3YzJCxJc35wZlgo0jNPkKar8pc4NEoctXMmRvb8+NGzfue01ycjJ2drKpmBCi5FFVFX2YnvGbx6OiUqdsHdYPWE9tj9pZ19jb21OxYkUrRlkMpFyEXYPh2jZz260htPoZXOtaNSzx+MrX2K23tze//PILMTExuZ5XFIVffvmFhg0bFkhwQghRVGQYMxixbgTjNo9DRaVd9XaEDQvLlgiJPIj6FTZ4306EvPzBd7ckQsKq8pUMvf3228TExNC8eXN++OEHzpw5Q2pqKmfPnmXRokU8++yzxMTE8Pbbb1sqXiGEKHTxafF0Xd6V7/Z/B8BrjV4jZFAIHo6ySizPMpNh93D4+xUwxIFDRWgfAk1mgE0pa0cnHnP5ekzWp08fDh48yNSpU3nzzTdznFdVlQ8++IA+ffoUWIBCCGFNZ+PO8uLPL3Is5hgAwR2CmfDcBDQyryXvYveZJ0knnTC3K70ILRaCQznrxiXETQ9VjuPff//lhx9+4MCBAyQkJODq6krjxo3x8/OjZcuWloizwMlqMiHEg4RdCOOlFS8RkxKDg60DS3ou4dV6r1o7rOJDNUHEdAgPBFMG2DhA4+nw5CiZJC0emtVXk93SokULWrRoUSABCCFEUbTyyEqGrh5KujGd8s7l+aPfH7R4Qt738izlEoQNhauh5rZbA/D5GdzqWTcuIXIhm18IIcQdVFXl8x2f0+/XfqQb03m63NPsfmO3JEL3oCgKI3r0QFGU2+1OzVFW1L+dCD31Lvj+J4mQKLLuOzIUFRUFQOXKlbGxsclq50XVqlUfLTIhhChkBqOBN9e+yeJDiwHoVLMT/3v1f7g6uFo5sqJJURT8O3YkIDzc/H3ZIoJ7dSLgVCz+J0A/SYeu8xKo1MXaoQpxX/edM6TVatFoNERERFCnTp2s9gNvqtEU+YKtMmdICHGn2NRYXl75MtvPbwfgrWfeYlaXWdjZyL5p9zKiRw/Grl2LF6AAge42BMUZ0QGRwMyunZm/PsS6QYoSp9DnDA0ZMgSNRoOrq2u2thBClCQnr5+k2/JunIw9iQYN0ztP570W78n73QMELVyIf4e26A8fQwfMjzMC5sQo2Nsb/eJlVo1PiLx6qNVkJYGMDAkhAHae30nPlT2JTY3Fyc6JZS8vo6dXT2uHVfRlJELkV0T+NY2Zn6UwP/72qRGenozdsgUvLy/rxSdKLEt8fssEaiHEY+unQz/RcUlHYlNjqeRSiZ2v75RE6EEyUyFCD2tqouz6lOCZKQTFZ78kKDqa4L59syZVC1HU5SsZsrGxYfLkyfe95vPPP8fW9qFW7AshRKFQVZWJWycyZPUQMkwZNKzQkN1v7KaJZxNrh1Z0mTLg1Pew9kk48D6kXyfwe1sCokCH+dHYCE9PFMztgPBwAv38rBuzEHmUr2RIVVXy8lTtMX3yJoQoBtIy0xjw2wAm7zD/YvdinRf52+9vnijzhJUjK6JUE5xbAevrwX9vQuol8+aJdccT9MdRgr29iQT8vb0Zu2UL/jfbwd7eBC1caO3ohciTAh/CiYuLw8HBoaBvK4QQjywmOYaXVrxE2MUwAN599l1mdJ6BjdbGypEVQaoKlzfAoY8g/pD5mMYWar0B9QPBqTI6QB8aSqCfH/qFC9HpdDnaQhQHD0yGduzYka197ty5HMcAjEYjUVFRLFu2jKeeeqrgIhRCiAIQERNBt+XdOBt/Fq1GyzcvfMPo5qOtHVbRdG0HHAqAmH9uHtBA9QHQ4FNwqZ3tUp1Ox/w1a+7ZFqI4eOBqsrzuLQTmx2NarZYlS5YwYMCAAgnQUmQ1mRCPj9AzofRe1ZuE9ARK25dm1Sur6PKkbASYQ+x+cxIUfcfeQJV7gPdkcPe2XlxC3MEqtckmTpyIRqNBVVU+++wz2rVrR9u2bXNcZ2NjQ9myZWnfvr0spxRCFBkL9i9g5PqRZJoyqVKmCusGrMO7gnywZ5MQCeEfw4Vfbh8r3w4aBkO54lF8W4hHka99hmrUqMF7773HO++8Y8mYCoWMDAlRchkMBmKUGL46+BUz9swAoGmlpqzptwZPF08rR1eEJEfB4Ulw9kfzRGkAj6bmJKji81JZXhRJVq9af/bs2QLpVAghLMFkMjFu4jjW/rOWi5kXSUtMAx30Gt6Lpb2X4mTnZO0Qi4a0a3A0GE7OA5PBfKxMXWgYBE/0kiRIPHZkQyAhRIkxbuI45h6ZS3rt9KxjNldtqHa4Gk79JBHCEA8R0+H4TMhMNh9zrgYNJkH1QSCr6sRjKl/JUIcOHfJ0nUajITQ09KECEkKIh5Gens7yrctJfzo923FjBSMbwjbwheEL7O3trRSdlWWmwIlZcOwLMMSZjzlUgHqBUHs42JSybnxCWFm+kqFt27bd9/ytidaFUdywV69erF69ms2bN/P8889nxefv709kZCQVKlTggw8+YOTIkRaPRQhhXVduXGHoT0O5arqa6/kkmyRiY2OpWLFiIUdWOBRFIdDPj6Cbe/tktb+fjy7xDzgyGVKjzRfbucHTH8BT74Cts3UDF6KIyNcO1CaTKdevuLg4Nm3aRKNGjejbty8Gg8FS8QKwZMkSUlJSsh07f/483bp1Y9iwYcTHx/Pjjz8yYcIEfv/9d4vGIoSwrv8d/R/159Zn0+VNkJL7NS5GFzw8PAo3sEKiKAr+HTsydu1a/Dt2JDIyEv+OHcztFtVRtowyJ0I2TvD0h/DSGaj3oSRCQtyhQAq1urq68vzzz7N582a2b9/OjBkzCuK2ubp48SKBgYF8//332Y7/+OOP1KlTh9GjR2Nvb0/btm3x8/Nj9uzZFotFCGE9samx9P+1P31+6cP11OuUK1OOF31exEHJvgO+g+JAN59uJfYRWaCfHwHh4XgB+vBwZrb1QR9+GC8g4FwGgd9poM7b0OM0NAoGe3drhyxEkVOgVes9PDzo2rUrCxYsKMjbZlFVFT8/PwIDA6latWq2cwcPHqR58+bZjjVr1owDBw5YJBYhhPWsP7GeenPrseLICgB6evXkyKgj/DHnD0bWG0md03XwPOdJndN1GFlvJNM/m27liC0naOFCgr29swqkzr8Wl1U4NbiWG0G/7oGms8CxZD4iFKIgFPhqsjJlyhAVFVXQtwVg3rx5qKrKm2++meNcYmIiderUyXbM3d2dxMREi8QihCh8iemJ+If488OBHwBwLeXK7K6zGdhgYNZcRX2QnqmGqcTGxuLh4VFiR4Ru0TlnEDChGoGjwpkff/t4YIVyBKzbga66bIIrxIMUaDKUmprK+vXrKV++fEHeFoDTp08zefJk/v3331zPlylThvj4+GzH4uLiHrghU0BAQNabpa+vL76+vgUTsBCiQG09u5XX/3id8wnnAfCt5cuCHgtyrTZvb29fYidLZzEa4PjXKLsmETw5GX32tz+Crsbg37cv+tBQKZgqir2QkBBCQsxlYiwxLzlfO1AvWbIk1+OZmZlcuHCB5cuXc+rUKcaNG8cXX3xRYEGCeU7Qm2++mS25uX79OmXKlKFv375UrlyZP/74g/3792ed9/f359ChQ7ku85cdqIUoHlIyUvjwrw/55r9vAHC2c0bvq2d4k+GFsnK1SLq8EfaNhaQTjJgOYw+AF+ZHY4GengRFR6MDIoGZ3btL4VRRolji8ztfdWZglgAAIABJREFUydC9irbeuoVWq2XgwIEsWLAAOzu7AgnwlpSUFGJjY7Mdq1KlCj///DOdO3cmKSmJunXrMmPGDIYNG8bu3bvp3r07Cxcu5OWXX85xP0mGhCj6wi6EMXT1UE7GngSgddXW/NjzR2q617RyZFaSdAr2vQeX15nbWjuUCiPwf3cLAYePEuztTcDKlQT37UtAeDjB3t4yMiRKHKuX41i0aFGux7VaLe7u7jRt2tRiQ9NOTk44OeXcQVan0+Hh4YGHhwcbNmzgvffew9/fnwoVKhAcHJxrIiSEKNrSM9P5dNunTNs1DZNqopRNKaZ0nMK7Ld5FqynQdR/FQ8YNc/mMyBm3y2d4doFnZqIrUwf9FvO+Qvqb+wzpQ0OztYUQ95evkaGSREaGhCiaDl45yJDfh3D42mEAmlVqxuKei6lbrq6VI7MCVYXzK+DAeEi9ZD5WuhY8MxMqv2jd2ISwEquPDAkhhKVkmjKZ+vdUJm2fRKYpE1utLZ+0/YQJz03AVvsYvlXFHYK9YyBmp7lt4wT1A8HLX8pnCFHA8jXeHBoaip+fH5cvX871/OXLl/Hz83tg2Q4hhLhTREwEPj/48PHWj8k0ZdKgfAP2DN9DYJvAxy8RSr8Oe0bBn01uJ0LVBkD34+adoyUREqLA5etdZtasWURGRlKpUqVcz1eqVImwsDASEhJo165dQcQnhCjBTKqJmf/OJCA0gHRjOlqNlv9r9X980vYTStk+Zh/6JiOc/g4OBYLh5mIRt4bmDRPLt7ZubEKUcPlKhvbv359VFPVennvuOTZt2vRIQQkhSr4zcWd4/Y/X2XF+BwBPejzJ4p6LaVmlpZUjs4JrO82PxOIPmdv2HtAwCGq9CVob68YmxGMgX8nQtWvX7jkqdEuFChW4du3aIwUlhCi5VFXlu33f8f6m90nOSAbgnebvMOX5KTjZ5VwxWqKlXDJPjj7/s7mt0ULtEeD9GZQqa93YhHiM5CsZcnV15cKFC/e95sKFCzg7SzVkIUROlxIvMWzNMEJOm3eSreZajUUvLaJ9jfZWjqyQGdMhUg9HP4dMc0JIudbQ9Btwb2Td2IR4DOUrGWrevDmrV6/mypUrue4ndPnyZVavXk2rVq0KLEAhRPGnqirLDi9jzMYxxKeZ60YMazwMva+eMqUes60tLq0z7x5947S57VgZGn8J1frB47qjthBWlq/VZGPGjCEpKYnWrVuzZs0a0tPTAUhPT+ePP/6gTZs23Lhxg3feecciwQohig+DwUB0dDQX4y7Se1VvBv8+mPi0eCqWrsi6/utY0GPB45UIJZ6Abd1ge3dzIqS1h6c/hBcjoXp/SYSEsKJ8jQx17tyZjz/+mMmTJ9OrVy80Gg3u7u7ExcWhqiqqqvLxxx/zwgsvWCpeIUQRZzKZGDdxHOt3reeaeo3E+ERMHiZ4Dvp792dWl1mUdXqM5sNkJMGRIDj+FZgyzMcqd4cmenCpbd3YhBBAPkeGACZNmsSff/5J165d8fDwICEhAQ8PD7p160ZISAiTJk2yRJxCiGJi3MRxzDsyjxO1ThBfOx5TUxM4Qrer3Vjee3mJTYQURWFEjx4oimJux8Qw4vkmKMufhIhp5kTIpQ602wBt10giJEQRIuU4pByHEAUmNS2V6h2qc61ezhWldU7X4fCfh7G3t7dCZJalKAr+HTtmFUcN+HYiwQOGEHA2heCqoP/YGZ3PRHhqLNiUvJ9fiMJkic/vx7DioRDCEv679B8tZrXgmpr71hpJNknExsYWclSFI9DPj4DwcLwAfXg4M7u8gv5sCl5AQBQE/u4DT38giZAQRdRDJUPh4eFMmDCBl156KdsmjOfOnWPVqlXExcUVWIBCiKJNSVEYvmY4LRa0IDwxHFJyv87F6IKHh0fhBldIgr75mODaHiiADpgfb/6uAMHe3gQtXm7dAIUQ95XvZGjixIk0adKEadOmsXbtWrZu3Zp1zmQy0b9/f5YuXVqgQQohih6jycj8vfOpM6sOCw4sQEWlebXm9G/fHwfFIdu1DooD3Xy6lbxHZPFH4J+B6MJaEPBWLIFu2U8HenoSsHIlOp3OOvEJIfIkX8nQihUrCAoKolOnThw8eJAPP/ww2/maNWvStGlT1qxZU6BBCiGKlt0Xd9N8QXNGrh9JXFocZR3LsqD7AsKGhbFUv5SR9UZS53QdPM95Uud0HUbWG8n0z6ZbO+yCo/wHO3rChgZwfjlKoongOfYExWe/LCg6muC+fbMmVQshiqZ8La3/5ptvqF27Nn/88Qf29vb8/vvvOa6pW7euVK0XooSKSY7hw9AP+eHADwBo0DCi6QiCOgTh4XjzEZgG9EF6phqmEhsbi4eHR8kYEVJVuLoVjgbD1dDbx90aELjQjoBz+7MejQV6ehIUHY0OCAgPJ9DPj/nyS6IQRVa+RoYOHz6Mr6/vfd/YKlWqxNWrVx85MCFE0WE0GZm7Zy51ZtfJSoSerfwse4bvYW63ubcToTvY29tTsWLF4p8IqSpcXAubfGBLx9uJUNlnoc0a6HKIoBUhBHt7Ewn4e3szdssW/G+2g729CVq40Jo/gRDiAfI1MqSqKlrt/fOnq1ev4uDgcN9rhBDFR9iFMN7e+Db7o/cDoHPS8cXzX/Bao9fQakrwglSTEaJWwbEpEH/49vGKz0O9ACjfLmvXaJ1Ohz40lEA/P/QLF+baFkIUXflKhp588kl27dp1z/Mmk4m///6bevXqPXJgQgjrupZ8jQl/TWDRwUUAaDVaRjwzgskdJuc6ElRiGNPh7E9w7Au4cer28Sd6mstn6Jrn+jKdTpftUdjdbSFE0ZWvX+v69OnD/v37mTFjRq7ng4ODOXXqFAMGDCiQ4IQQhc9oMjLnvzk8NfuprESo5RMt2Tt8L3O6zSm5iVBmMkTOhDW14L/h5kRIo4XqA6HrYWjz+z0TISFE8ZavHahTU1Np1aoVhw4domnTpmg0Gvbs2cN7773Hzp072bt3Ly1atGD79u3Y2uZr0KnQyQ7UQuS068IuRm8YzcErBwEo51SOL57/gqGNhpbcR2KGeDgxB47PhPSbq7609lDzdag7HlxqWTc+IUQ2lvj8znc5joSEBN59912WLVuG0WjMOq7Vahk4cCCzZ8/GxcWlQIKzJEmGhLjtWvI1/u+v/+PHgz8C5kdio5qO4rP2n+Hu6G7d4Cwl9ao5AToxBzKTzMdsnODJEeDlD06VrRufECJXRSIZuiU2NpY9e/Zw/fp1XF1dad68OeXKlSuQoAqDJENCQKYpk3l75vHx1o9JSE8AwKeKD3O6zqFRxUZWjs5CkqMgYjqc/h6MaeZjdm7w1Dvmr1Ils5CsECWFJT6/H/pZloeHB76+vgUShBCi8P0T9Q+jN4zm0NVDgPmR2JedvmRww8HF9pGYoigE+vkRdHMFV7a2fSwcm2qeHK1mml/gUME8CvTkCLCTX4qEeFzl6x1vx44debru66+/fqhghBCWd/XGVYauHspzi57j0NVDaDVaxjQfw4kxJ4r13KBblePHrl2Lf8eOREZG3m63qI3y81NwZpE5EXKuBk3nQI+z5gKqkggJ8VjL12MyOzs7PvnkEwIDA3M9Hx8fz9ChQ1m3bl22+URFkTwmE48Dg8HA9evXKVu2LFpbLXP3zOXjrR+TmJ4IQKsqrZjTdQ4NKza0cqSPbkSPHoxduxYvbu4CXaEsQVevowMigZmNYf5nXubl8dX7g9bOugELIR6K1ecM1a1blxMnTtChQweWLl1KhQoVss7t2rWLAQMGEBUVRa9evfj1118LJEBLkWRIlGQmk4lxE8exftd6Em0SsU2zJc0tDaWJAlqo4FyBaZ2mMdh7MJqbGwcWd4qi4N+hA/rDh7lzi0MF8K/ugP73uegaDjUvlxdCFFuW+PzO17vCvn37GDRoEKGhoTRq1IjNmzcDMGXKFNq1a8fVq1eZPXt2kU+EhCjpxk0cx7yj8zhR6wRXql/hotdFFFWBv+HdZ9/l+NvHGdJwSIlJhEiIRBc1lYA3LuSsHF/Bg4AN+9E1el0SISFErh5qNdnixYt5++23SU1N5emnn+bo0aPUqVOHlStX4u3tbYk4C5yMDImSymAw8LTv05yufTrHuWrHq3HirxPFv14YQGYKRP0CpxdAzE6UJPAPBn0UOUeGvL3Rh4ZKWQwhSgCrjwzdMnToUKZOnYrJZOLIkSPodDp27NhRbBIhIUqq+LR4Plz7IWfSz+R63lDKQGxsbCFHVcDiDsKet+H3SvDvUIjZCUDgQmcCbiZCCjDC0xMFslWOF0KI3OQ7GTKZTHz00Ue8++67lC5dGh8fH2JiYmjXrh2HDx9+8A2EEAUuPi2eT7d9SvWZ1dEf1KMm5z7g62J0wcOjGJbTyEiEU9/Bn81gY2M4OQcyEsDGAWoMged3ErTurFSOF0I8lHwlQxcuXKBt27ZMmTKFBg0asHfvXv7++28+//xzTp48ybPPPsvcuXMtFasQ4i5xqXF8svUTqs2sxqTtk0hIT8CttBstG7XEIcYh27UOigPdfLoVn0dkqgrKv/DvMPMo0H9vQexe8zn3Rual8b2ioeViKP8cunLl0IeGMrN7d/ShoXh5eWVryyMyIcS95GvOUNmyZYmLi2PkyJHo9XpKlSqVdW7Xrl3079+fixcv8tJLL/Hbb79ZJOCCInOGRHEWmxrLzH9n8vXur7OWybs7uOPf0p8xzcfgYu+StZosySYJF6ML3Xy6Mf2z6Wi1RXwScXqseWPE0wsg4cjt47alofoAqDUcPJ6BkjL5WwiRL1ZfWu/u7s4PP/zAyy+/nOv5+Ph4Xn/9ddasWSP7DAlhAbGpsXwV9hVf7/6aJIO5npa7gzvvt3yfMc+OoUyp7P+WDQbzHCEPD4+iPSKkqnBtG5z6Hi78Bqb02+fKtoDaw6FqH7ArbbUQhRBFg9XLcRw4cIDq1avf87ybmxu///47s2fPftS4hBB3iE2NRR+m55vd32QlQR6OHrzf8n3ebv52jiToFnt7eypWrFiYoeZP6hU4uxhOLYAbp24ft3c3zwWq9Qa41bdefEKIx8JDF2otbBMmTGD9+vWcP38eZ2dn2rVrx7Rp06hSpUrWNVFRUYwaNYrt27dTqlQp+vXrh16vz/U3YhkZEsXB9ZTr6MP0zPpvVrYkaFzLcbzd/G1cSrlYOcKHYDLClU3mUaBLa2/XCQOo0N78GKxKL/PkaCGEuItVltbv2LGDqKioPN/w0KFDLFmy5JGCyo1Go+HHH39EURQiIiLQaDR0794967zJZOLFF1/Ew8ODS5cusW/fPnbs2MH48eMLPBYhLO16ynU+Cv2I6l9XJ/jvYJIMSZR1LEtwh2DOvXuOD1t/WGQTIUVRGNGjB4qiZG+fPwjhn8KaGrCtK1z83ZwIOVSAp/8PXjwBHbeYS2VIIiSEKEzqA2i1WnXSpEnZjk2dOlX18PDI9fpPP/1U1Wq1D7rtIztw4IAKqLGxsaqqquq2bdtUW1tbNSYmJuua1atXq05OTmpqamqO1yckJKiAmpCQYPFYhcirmOQY9cO/PlRLB5dW+RSVT1HLflFWnbJzipqYlmjt8B4oJiZGHeztrUaA+fvRcHVw3WrmdlXUmPmo6jJUdZlGVbd0UdWo31TVaLB22EKIYsQSn98PnDOk5vIULS0tjfj4+ILPzPJh06ZNVKtWDXd3dwAOHjxIzZo1sy2fbdasGSkpKZw4cUI2hBRFmpKiMGPXDGb9N4vkjGQAyjqWZbzPeEY3H01p++IxcTjQz4+A8HC8AH14OIHPNUIfZzJvfBgFgT84MP+HCVDTD5yrPOh2QghRKPI1gbqo+Ouvv5g0aVK2GmiJiYm4uWUvSnQrUUpMTCzU+ITIq5jkGGaEzWD2f7OzkiCdk47xPuMZ1WxUsUmCALhxjqAPGuJ/eDP6c2nogPlxJsC8I3Rw3Rro14VB+Qr3vY0QQhS2YpcMrVu3jkGDBrF06VJeeOGFrONlypTJMVoVFxeXde5eAgICsiZY+/r64uvra4GohcguJjmG6bumM2fPnGxJ0Ac+HzCy2cjikwSlXYOo/8G55aDsMo8AjYbAz2H+Hf87Bnp6EvDbBnSSCAkhHkJISAghISGAecuQglaskqFly5YxatQoVq1alSNpadSoEWfPnuX69euULVsWgL179+Lk5ESdOnXuec/g4GBZTSYsymAwZP27jM+Iz0qCUjJSACjnVI4PWn3AyKYjcbZ3tnK0eZCRCBdWw/mf4cpmUG/vKaZkViL4uwz08THZXhIUHY1/376yE7QQ4qHcOViRmJjInDlzCvT+xSYZmj17Nh9//DHr1q2jdevWOc63bt0aLy8v3n//fWbNmkVcXBwTJ05k2LBhODjIyhRR+EwmU9Yu0PHaeDJuZJDkkkSmTyZoobxzecb7jC8eSZAxDS5vNCdAl9aa27eUKmveELHaAALf+IKAk+uyiqUGenoSFB2drVjq/DVrrPRDCCFE7vKUDGmKwLb3Y8aMwdbWli5dumQ7vnHjRlq3bo1Wq2Xt2rWMGjUKT09PSpUqRf/+/fnyyy+tFLF43I2bOI65R+aSXuuO3ZSjwXG3I5MnTmZE0xFFOwkyGc27Qp9bDhd+NRdGvcXWGZ7oBdX6g2cn0NoBELTQC/+OHQkIDyfY25uAlSvx79s3q62XYqlCiCLogZsuarXah0qGpByHeJwdvHSQtr3aktgw5+T92qdqczTkaNEsj6GqcH0PnF8O51dC2pXb57R2UKmrOQGq3B1snXK9haIoBPr5EbRwITqdLkdbCCEehdXKcTwgX8qhKIwkCVHYVFVlZ9ROvtz1Jev2rQOb3K9Ltk0mNja2aJXJSIgwjwCd/xlunL7jhMa8K3S1/lC1t7lMxgPodLpsj8LubgshRFHzwGTIZDIVRhxCFFtGk5HfI3/ny11f8t+l/8wHHcE+3R4DOVc9uBhd8PDwsGhMeRqdSY6C8yvMCVDcwew38GhqrhBftS84VbJorEIIYW3FZgK1EEVNakYqPx78kRlhMzgdd3s0pV31doz3Gc9m02bmH5tPmu72ZGMHxYFuPt0s+ohMUZSseTv+HTsSsHIlwTfn7fh3aIv++9fRJa6BmJ3ZX1jmKag2wDwKVOZJi8UnhBBFTbEp1FrQZM6QeFhKisKc/+Ywe89slBRz/S2tRkvvur0Z7zOeZpWbAdlXkyXZJOFidKGbTzemfzYdrfaBZQEf2ogePRi7di1e3FrRVZGg6CvogEhgZmOYP+7mxY6VzbXAqg0A90Ygj7iFEEWcJT6/JRmSZEjk0enY0+jD9Cw6uIjUzFQAHG0d8Wvsh39Lf2q618z1dQaDgdjYWDw8PApl0rSiKOYRoMPHuHO6sgL4VwX9J27o6puXwlO+NWgsl5gJIURBs9oEaiEeZ3su7eHLXV/ya8SvmFTzHDqdk44xzccwqtkodE73XyFlb29v+cnSJiPE7oXLG9FFbyRgyLGcu0CXdSBgiR7dc8PApgiuZBNCCCuRZEiIXJhUExtPbuTLXV+y/fz2rOO13GsxzmccQxsOxdHO0YoRAmkxEB1i3gzxSgikXwdASYLgWaC/q5Zy0PU0/N+Zjz70VVniLoQQd5BkSIg7pGems/zwcqaHTedYzLGs489WfpbxPuPp6dUTG+091sxb2h2jP0RvNO8HxF1Pud0aEvhtMgFRp2QXaCGEyCNJhoQAEtIS+Hbft3y9+2suJ13OOt69TnfG+4znuarPWWf/rHuM/mSxKwMVO0OlLuD5AjhVIqi5IrtACyFEPsgEaplA/Vi7mHiRmf/O5Lt935FkSALA3saeQQ0GMc5nHHXL1S3cgLJGfzaYE6DYveQ2+kOlLuYvXcusUhh3kl2ghRAllawmK0CSDD1e7qwcb29vz+Grh5keNp3lh5eTacoEwLWUKyObjuSdZ9/B08XzkfvMc0LywNEfV6jYKdvojxBCPK5kNZkQ+XTnXj+JNonYptliU96G8/XPw80V5VXKVOG9Fu/xRpM3cCnlUiD93nfjw44d0K+ahi49LA+jP11B1yLX0R8hhBAFQ0aGZGSoRPMP9Gfe0XnZdoEmGkgF71e9+cDnA/rU64OdTcEmGzk2PqxYgaArV3Pf+BBk9EcIIfJIHpMVIEmGSjajychfJ/+iz+A+uVaOrxxZmdN/naZUqVIW6V+5dhX/9q3QHzud+8aHAaCr2gg8b839kdEfIYTIC3lMJsR9qKrKvuh9LD+8nBVHVhAdHX3PyvEmBxNxcXEFuxliymXz3J/oP9Fd2UzA63G5b3z4fSC6516X0R8hhCgiJBkSxd5x5Tg/H/mZ5YeXczL25O0TjuCY4UgqqTleUyCV440GUHZB9J9w+U+IP5R16r4bH45fhT70LXROj9a9EEKIgiHJkCiWLiVeYsWRFfx85Gf2Re/Ldq6JZxMG1B9A3/p90av6HHOGHqlyfPJ5c+ITvRGuhELmjezn7T3A05fAiREERB2UjQ+FEKIYkGRIFBuxqbH8euxXlh9ZzvZz21HvWIFV26M2A+oPoH+D/njpvLKOT/9sOkwk18rxeWJMg6vbzaM/0X9CYuRdF2ig7LNQ6QXzxGePpqC1IWilbHwohBDFhUyglgnURVpKRgprj69l+ZHlbDy5kQxTRtY5z9Ke9Kvfj/71+9O0UtP77hCd58rxqgpJJ28/+rq2DYx3PWZzqGBOfDxfAM9OUKpsrreSjQ+FEKLgyWqyAiTJUNGVYcxg85nNLD+8nNWRq0nOSM4651rKlVeefoUBDQbQtlrbB9YJy1NCknEDrm69mQBthOSz2W+isYFyrczJT6Uu4OYNGm1B/9hCCCHyQFaTiRLLpJrYdWEXyw8vZ9XRVVxPvb0Ls4OtA93rdGdAgwF0qd2FUrZ5Ww5/340P27VC/21/dGk7IWYn3DHiBIBTldvJT4UOYO9akD+uEEKIIkRGhmRkqNDcXRJDVVXCr4bz85Gf+fnIz0QlRGVda6OxoVOtTgyoP4CXvF6iTKn8/x3l2PiwvDtB1+Jy3/hQaw/l295MgF6AMnXBGoVZhRBC3JeMDIli6e6SGI4GRzxreBLXNI6I6xHZrvWp4sOA+gN4td6rlHcu/3AdZtyAuAMEfdgc/2M70Z+ORwfMvxYHmBOj4Kqg968BdbqZE6AK7cDW+ZF+TiGEEMWTjAzJyJDFvffRe8w7Oo/0cum3D94siUEbaFC+AQMaDKBf/X5Ud6uev5tnJEHcAYjdd/sr8Ti3an1FXoaZd218OKJcGcZuXIXXM76P+JMJIYQobDIyJIoFVVU5G3+WrWe3svnkZn7Z8AvGpsbsF3mCx2EPNvttpkmVJnm7cUYixN6R+MTtg8QT5ChyCoAGRa1N8PwY9PHZdz4MiknE3+8D9KHPyKouIYQQkgyJgnEx8SJbzm5h67mtbD27lfMJ580nkgAb8AyB6LaAA5AGntvBVMOOSnb3KEmRkQix+7OP+CSdyP1ajRbKeIH7M+Bx88u9EYG9BxBw+qRsfCiEEOK+JBkSD+XqjatZic+Wc1s4FXsqxzXlncvTwrMFF+etZ1mKkb7rIbwjeIfCyjgYEhuHyWQCQwLE3Z34nMylV24mPk/fTno8moB7o1zn+wQtXCgbHwohhHggmTMkc4by5HrKdbaf3541+nMs5liOazwcPWhXvR0dqnegfY321NXVZeRLL2Vb0fWGEyxI4faKrmZOzB+bknunGhtwvZn43Br1cW8Itnkv6iUbHwohRMkimy4WIEmG7i8hLYEd53eYR3/ObeXQlUPZyl8AlClVhrbV2tK+enva12iPdwVvtLc2IzQkQGIEyrk9+A+YjP5kDHemHgrgXxX0AaBz4WbiU++OEZ9nzJsb5iPxEUIIUfLJBGrxyO7e6+eWZEMyf0f9zdZzW9lydgv7ovdhUk3ZXutk50Trqq1pX709HWp0oHHFRtimx0BiBCT8DRcWmP87MQJSowHzCFDAmxB414quQA9bAr7oga5JxzsSH8fC+CMQQgghspFk6DFx7do1Xn6uJVfKa0h2TMYxxRGPy2m0md6P/xL+Y/el3WSaMrO9ppRNKXyq+NCxelteqPgU3o522N04BQkRcOR32BVhnuh8H4rxCYLnxaOPz17dPSg2E/8pp9CHfiuPq4QQQliVPCZ7DB6TXbpyiYEN6jNfiaeve/ZJzH2dIXwU4AwuNjb0fqIBXcvXoFnp0lThBjZJJ8yTmU2Ge3egtQOXJ827NpfxMn93rQtlnmLEy/2z7wJ9x4quSGBm9+6yoksIIUSeyZyhAlTSkiFVVbmWfI3j148TqURyXDlO5HXz95TZp9lykntOYp78jCMLPiyDQ/o1NLnu2XOTbek7Ep2biY9rXShd05wQ5eLO+mC3VnQF37miKzRURoaEEELkmSRDBciaydC95u3k6bVGA6djT5sTnluJz83v8WnxlNZAZVt4wvb2d7ck+GcWLLjK/Scx3+JQIXvS43oz8XGs/FD1umRFlxBCiIIiyVABskYydPe8HedUZypeU/nt7zDKl89eh0tJUW6P8CiRHFciuRp7jIwb5/C0MWVLdu78b1eb3PvOrSzFG67Q2s+RQQNGYONe/2bi4wX27hb8UxBCCCEeniRDeaCqKp9++inff/89CQkJPPPMM8ydO5f69etnu66wkyFFUehXry6zryk55u28WdaFF38YhsF4ipTEk6gpF3A3peRIdhy0+ehQaw9OT4BjZRRDOd58cyPfXU7NMTLUr7yOFUcjZIRGCCFEsWCJz+/8fLwWC9OnT2fhwoWEhISgKAqtWrXC19eXGzduPPjFFhTw2mtMvqbwAS6sioMhm2BVHHyAC19cT+LMpJkEpq0j2P44U9xS+MADBpaBtk5Qyz57ImSyLY1api5U7AQ1X4N6gdBsHrRdC10OwMvXoG8a9DgNnXYQ+G0G4y+n4ocLx4Ge9lqOA364MPma+ZGVJSmKQo8eg1AUJdeHOvWDAAAgAElEQVS29C19S9/St/QtfVuVWsJUr15dnTlzZlY7IyND1el06pIlS7Jdl5CQoAJqQkJCocS1Y8cO1UFTSYXxqjeeagSo3niqMF51s/NUI6ejqstQb/zsrMb+Vl1NCGmrZoS9oaqHJ6vq6UWqenmTqsYfU1VD/uONjIxU3RxqmPtyqKH+9NNP2dqRkZEF/vPeEhMTo3p7+5p/bm9fNSIiIls7JiZG+pa+pW/pW/qWvvPMEp/fJeoxWUJCAm5ubuzatYuWLVtmHe/cuTP169dHr9dnHSvsx2QvvjiA9eufAMoDyXiyimj6AM7ANbr5nmDd+hVg41DgfffoMYi1ayvd7ttzJ9HRrbP67t79MmvWLC3wfqVv6Vv6lr6La9+3Phlz+96r1yDWrbt33926XebXX+/d970+dfNy/NVXB7Fhw+2+K1bcyZUrt/vu0uUyq1YtzfV+j9ru338QISH37tuSf993kjlDD3DhwgWqVq3KsWPHqFu3btbxvn374uLiwoIFC7KOFXYydPz4cZrWe54bxjcw/8O5JRktf9HCZyWlS9+jgvsdHuZvy2BQ2LdvEDdutMzRd+nSYTRpshR7e8vMGTIYFPbvv3ffjRvf7vtBP9v9zud2zmBQOHRoEMnJOft2dg6jYcOl2NlZpu+MDIXDhweRkpKzbyenMOrXX4qt7b3/zB/lzTIjQyEiYhCpqTn7dnQMw8vLcn1nZiqcODGItLScfTs4hFG7trnvO19zvzfg/JzLyFCIihpEenrOvu3tw6ha9fbPXdB/30ajwsWLgzAYcu+7UqWl2Njk3nd+2rmdMxoVYmIGkZGRs29b2zB0Osv1bTIpxMcPwmjM2beNTRguLkvRarP3fa973u987scU0tIGoao5+4Yw7OyWcmv9bF7unb/3VgUYBOTeN9zuu+AVzb69vcMIDV1aKPNPJRl6gIcZGRo9enTW8nZfX198fX0tEtuIHj3osXYtfWnODV6948yfwGzMuwBZUiTwNvCC9C19S9/St/QtfRdY356ef7Jly2y8vCzXd0hICCEhIYB5e5o5c+ZIMnQ/NWrU4L333uOdd94BIDMzk0qVKjFjxgwGDx6cdZ01RoZaNOpCfNpQcvzGbLOOYSN+Raermqd75Xern+RkhSVLBnH1as5svkKFMIYOXYqzs2Wy+eRkhcWL7933a69l7/tBP9v9zt99LjlZYeHCQVy5krPvihXDGDbMsn1/9929+37rLXPf+blnXo/fuKEwb94goqNz9l2pUhgjRy6ldGnL9T1r1iAuX86973ffNfd9973uvu/DnEtKUtDrB3HxYs6+n3gijHHjluLiYpm/76QkhS++yL3vKlXCmDDh/n3np51b30FBg4iKytl31aphTJy4lDJlLPNnnpioMHHiIM6dy9l39ephBAUtxdVVl+vr73XPB/33re8JCQoffDCIM2f+v707j4uq6v8A/kG2YdiRXREQM/GRHFRcQFFMjVzCRENMH9yiXFLkqVdoGUiWy6OFmdtjT7illln4QCZisqjghgLZ4xLJoKSh7CAwLPP9/eFv7sM4w6KgBPN9v168inPuveecey73fp1zzh3Vsnv2TMOnnyqX3VS5j/vf0tICLFw4E9nZqmX36pWG7dv3wdxc9Z76OH9XjaUVFxcgOHgmbtxQLbt37zTs3LkPFhaWKvs1d/yWbFNcXIA5c2bi+nX+ZOgv75///Cc2b96Mo0ePwsXFBatXr8auXbtw/fp1GBkZCds962CoM4+tc9lcNpfNZXPZXHZHnjPU6VaTyeVyWrlyJdnY2JCBgQGNGDGCsrKyVLZ71qvJNHUFAJfNZXPZXDaXzWW3pafx/O50wVBLPetgiOjhhTRp0uvCBfPo71w2l81lc9lcNpfNZTeNl9a3oc72Ra2MMcaYJuA3UDPGGGOMtTEOhhhjjDGm0TgYYowxxphG42CIMcYYYxqNgyHGGGOMaTQOhhhjjDGm0TgYYowxxphG42CIMcYYYxqNgyHGGGOMaTQOhhhjjDGm0TgYYowxxphG42CIMcYYYxqNgyHGGGOMaTQOhjRQfHx8e1ehXXC7NQu3W7Nwu1lrcDCkgTT1j4fbrVm43ZqF281ag4MhxhhjjGk0nfauQHshIgBAWVlZO9fk2aupqeF2axBut2bhdmsWTWy3or2K53hb0KK2PFoHkpeXBwcHh/auBmOMMcaewO3bt9G9e/c2OZbGBkNyuRx37tyBsbExtLS02rs6jDHGGGsBIkJ5eTns7e3RpUvbzPbR2GCIMcYYYwzgCdSMMcYY03AcDDHGGGNMo3EwxBhjjDGNpnHBEBEhPDwc9vb2MDQ0hLe3N65cudLe1WpTYWFhcHNzg4mJCezs7BAYGIjbt28rbXPr1i1MnDgRxsbGsLS0xOLFi1FTU9NONX46Xn31VWhpaeHEiRNCWlJSEgYMGACxWAxnZ2ds27atHWvYttLS0jB69GgYGxvDzMwMnp6ekMvlAICsrCx4e3vD0NAQ9vb2iIiIaNNlqe0lPz8fM2bMgI2NDczMzDBs2DAkJycL+Z2hvw8ePIgRI0bAxMQEWlpaqKurU8pvrm876j2vqXafO3cOkyZNgq2tLUxMTODm5obo6GiVY2zZsgVOTk4Qi8UYMGAAUlJSnmUTnkhz/a2Qnp4OXV1dDB8+XCldJpNh0aJFsLS0hLGxMSZOnKhy//8raq7dMpkMK1asgKOjIwwNDeHo6Ig9e/YI+a2+zknDrF+/nrp3705ZWVlUWVlJYWFhZG9vT+Xl5e1dtTYTFhZGFy9eJJlMRsXFxRQYGEj9+/cX8uvr68nNzY1mzZpFpaWlJJVKyc3NjZYsWdKOtW5bu3fvpnHjxhEASkhIICIiqVRKYrGYvvjiC5LJZJSUlEQmJib0/ffft3NtWy81NZVMTU1p9+7d9ODBA6qtraWzZ8+SXC6nsrIysrW1pbCwMKqsrKSsrCzq1q0bffrpp+1d7VabMmUKDR8+nO7du0d1dXW0YcMGMjIyosLCwk7T38eOHaP9+/fTv//9bwJAtbW1Ql5L+raj3vOaavePP/5I0dHRlJ+fT3K5nE6ePEnGxsb0ww8/CNt8++23ZGJiQklJSSSTyeiLL74gQ0NDunXrVns0p8WaardCVVUV9evXj1588UXy8vJSylu4cCG5ubmRVCql0tJSmjVrFkkkEqqvr39WTXgizbV70qRJNGbMGPrtt99ILpdTfn4+Xbt2Tchv7XWuccGQk5MTRUVFCb/X1taSpaUl7dmzpx1r9XRdvnyZAFBRURERESUlJZGOjg7dv39f2CYmJobEYjFVVVW1VzXbzO3bt8nBwYFyc3OVgqGIiAiSSCRK24aEhNDo0aPbo5ptavjw4RQaGqo2b9euXWRlZaV0c4mKiqKePXs+q+o9NS+88ILS33N5eTkBoLNnz3a6/k5MTFR5SLSkbzv6PU9du9Xx8/NT+gfdqFGjKCQkRGkbiURCkZGRT6Weba2pdoeGhtLSpUspPDxcKRiqqqoiAwMDiomJEdLu379POjo6lJKS8kzq3Vrq2n3ixAkSiUSUn5/f6H6tvc41apistLQUUqkUgwcPFtJ0dHTg7u6Oy5cvt2PNnq7jx4/D0dER5ubmAICMjAz07NkTlpaWwjYeHh6orKzEjRs32quabYKIMHfuXHzwwQfo0aOHUl5GRoZS3wMP293R+76yshKpqanQ1tbG4MGD0bVrVwwcOBCHDx8G8LDd7u7u0NH53wvnPTw8cPPmzQ7/5tr33nsPMTExuHv3Lmpra7Flyxa4uLjghRde6LT93VBzfasp97yysjKcO3cO7u7uQlpn7f+UlBTExcXhk08+Ucm7fv06qqqqlNptaWkJZ2fnDt3uhIQEODs7Y926dbCzs4ODgwPmzJmDgoICAG3zbNeoYEhx4zczM1NKNzc37/APhcacOHECq1atwvbt24W0srIytedAkdeRbdu2DUSE4OBglbzG2t3R21xUVAS5XI7du3djy5YtyM/Px/vvv4/AwECkpaV16v728vKCSCSCvb09DAwMsHHjRuzevRsGBgadtr8baq5vNeGeV1NTg4CAAPTp0wczZ84U0jtj/1dUVGDu3LnYuXMnxGKxSn5n7e+CggJcvXoVMpkM2dnZuHjxIvLy8jBr1iwAbdNujQqGTExMAAAlJSVK6cXFxUJeZxIXF4epU6di37598PX1FdJNTEzUngNFXkf1+++/46OPPsKXX36pNr+xdnfkNgOAsbExAGD27Nnw8PCAjo4OpkyZAh8fH8TExHTa/pbL5Rg9ejRsbW1RWFiI6upq7Ny5E+PHj0dGRkan7e+Gmuvbzn7Pq6ysxCuvvAKZTIbY2FilT8g6Y/+/8847GD9+PLy9vdXmd9b+VkyqXr9+PQwNDWFjY4PIyEjEx8ejsrKyTdqtUcGQqakpnJyccOHCBSGtrq5O+Ki5M/n666/x+uuv45tvvsGrr76qlCeRSJCTk4PCwkIh7eLFixCLxejdu/ezrmqbOXXqFAoLCzFw4EBYWloKw4D+/v4IDg6GRCJR6nvgYbs7et+bmprCxcWl0a+VkUgkuHz5stLqjIsXL6Jnz54d+gZZXFyMmzdvYsmSJbCwsICOjg78/Pzg4uKC+Pj4TtvfDTXXt535nldcXIwxY8ZAR0cHR48ehZGRkVJ+Z+z/Y8eOYc+ePcL9bf369Th37hwsLS2RnZ2N559/HgYGBkrtLigogFQq7dDtHjBggNp0LS0tEFHbXOdPOMepw1q/fj05ODjQL7/8QpWVlbRixYoOsbLicWzevJnMzMwanTCnWE0WFBREZWVllJubS/3796e33377Gde0bT148IBu376t9AOADhw4IKwuMjAwoK1bt5JMJqOUlBQyNTWlw4cPt3fVWy0qKopsbGzo8uXLVF9fT0eOHCF9fX06e/assOJoxYoVVFlZSb/88gs5ODjQxo0b27varebq6krz5s2j0tJSqq+vp9jYWNLT06OEhIRO0991dXVUVVVF8fHxBIAqKiqoqqqK6uvrW9S3HfWe11S77969S25ubvTaa69RTU2N2v2//fZbMjU1pZSUFJLJZLR169YOsZqsuXY3vL8tW7aMPDw86Pbt28KE44ULF1L//v0pNzeXysrK6O9//zv179//L7+arKl2V1RUUPfu3Wnp0qVUVVVFBQUFNG7cOJo4caKwf2uvc40LhuRyOa1cuZJsbGzIwMCARowYQVlZWe1drTYFgHR0dMjQ0FDpp2FwJJVKafz48WRoaEgWFha0aNEiqq6ubsdaPx1osJqM6OFKBYlEQiKRiBwdHWnLli3tWLu29cknn1D37t3JyMiI3N3dlVaUZGZm0vDhw8nAwIBsbGwoPDyc5HJ5O9a2bdy4cYP8/PzIysqKjI2NqW/fvrRjxw4hvzP0d3R0NAFQ+UlMTCSi5vu2o97zmmp3REQEASCxWKx0j/P19VU6xubNm6lHjx4kEonI3d2dkpKS2qk1Lddcfzf06GoyIqLq6mpauHAhWVhYkKGhIY0fP/4vHwASNd/uq1ev0pgxY8jQ0JDs7Oxo3rx5VFhYKOzf2uucv6iVMcYYYxpNo+YMMcYYY4w9ioMhxhhjjGk0DoYYY4wxptE4GGKMMcaYRuNgiDHGGGMajYMhxhhjjGk0DoYYY4wxptE4GGKsjV28eBFjx46FpaUltLS0IJFI2rtKfwmjRo1q9CtD2ktQUBCsra3x4MGD9q5KpzB79mxoaWlBKpW2d1UAAOnp6dDS0mr0+woZU+BgiHU6VVVVEIlECA0NFdKCg4NhYmKi9B1OT0NZWRkmTJiA8+fPY/r06QgPD8dbb73V7H7V1dXYsGEDhgwZAlNTU+jp6cHOzg4DBw7E4sWLkZyc/FTrrYkuXLiAvXv3IiwsDIaGhkK6VCqFlpaW0o+BgQGsra0xdOhQLF68GKdOnWqzekREREBLSwtJSUltdszGKALShj/GxsYYOHAgPvnkE1RVVT31OrTErl27oKWlhV27drXqOAMHDsTkyZOxcuVKVFRUtE3lWKek0/wmjHUsZ86cgUwmw+jRo4W0n3/+Gd7e3krfav00nD9/Hvfu3cPHH3+MFStWtGifiooKjBw5EpcuXYKtrS38/f1ha2uLiooKZGZm4l//+hdKSkowcuTIp1p3TfP+++/DxMQECxYsUJtvamqKkJAQAA+/9LGoqAiZmZnYtm0btmzZgnHjxmHPnj2wsbF5ltVuE0FBQXBycgIRIS8vD99//z3ef/99HDlyBKdPn4auru4THXfNmjUICwtDt27d2rjGT2758uUYMmQIPv/88xb/TTLNw8EQ63ROnjwJbW1teHt7A3j4L/2bN29i0aJFT73sO3fuAADs7e1bvE9UVBQuXbqEcePGITY2Fnp6ekr5xcXFuHr1apvWU9PduHEDJ06cwPz582FgYKB2GzMzM0RERKik37x5E/PmzcPx48fh6+uLtLQ0iESip1zjtjV79myMGjVK+H316tVwd3fH+fPnsX//fgQFBT3Rce3s7GBnZ9dGtWwbgwcPRp8+fbBjxw6EhYWhSxceEGGq+KpgHV55eTmys7OFn+PHj8PV1RX37t1DdnY2vv32WwCAs7OzsM3jDAf8/PPP8PX1hYWFBfT19dG7d2+EhYWhtLRU2EYxtKJ4iMyZM0cYhmjuo/7U1FQAwIIFC1QCIQAwNzeHp6enUtqdO3cQGRkJLy8v2NraQk9PD/b29pgxYwb++9//qhxDUb/Zs2fj999/x9SpU9G1a1cYGxtj3LhxuHLlCgDg/v37CA4Ohp2dHUQiETw8PJCYmKhyvIZDO7t374a7u7swlDR37lz8+eefTZ/UR8THx2P8+PGwtLSEvr4+XFxc8O6776KkpERl26ysLAQGBsLJyQn6+vqwsrLCgAEDEBISgtra2haV99VXX4GIEBAQ8Fj1BICePXvixx9/RJ8+fZCRkYHt27cr5ScmJiI4OBh9+/aFiYkJDAwM0K9fP6xatQrV1dVK2zo5OWHVqlUAAB8fH6XhK4UbN24gLCwMgwYNgpWVFfT19eHo6Ijg4GDk5eU9dv3VsbOzw5QpUwA8/HSzofT0dPj7+8Pa2looe+HChbh7967KcdTNGWp47UmlUkyfPh2WlpYQiUQYNGgQ4uLilI4xatQozJkzB4Dy31HD45aXl+Ojjz5Cv379YGJiAmNjY7i4uCAgIADp6ekq9Zo+fTpu3bqFhISE1pwm1onxJ0Oswzt8+LBw82zoueeeU/pdcbMHHj6wGv7LuDE7duzAggULYGhoiGnTpsHa2hpJSUlYt24dYmNjcebMGZiZmcHMzAzh4eHIyMjAkSNH4OfnJ0ycbm4CddeuXQE8fOi1VEpKCtauXQsfHx/4+/vDyMgIv/32G7777jv85z//wZkzZ9C/f3+V/aRSKYYMGQJXV1fh4fTDDz9g1KhRSEtLg6+vL0xMTBAQEICioiIcPHgQL7/8Mm7cuIEePXqoHO+zzz7D8ePHERAQAF9fX5w+fRrR0dFISkrCuXPnYGVl1WxbVq1ahYiICFhYWGDixImwtrZGVlYWNmzYgKNHjyItLQ0mJiYAHgZCQ4YMgZaWFl555RU4OzujrKwM2dnZ2Lp1K1avXt2iIZ4TJ05AW1sbQ4cObcHZViUWi/HOO+9g/vz5+Prrr4XhNABYt24drl27Bk9PT0yYMAHV1dU4c+YMIiIikJSUJJQNACEhIYiJiUFycrIwdPWo77//Htu3b4ePjw88PT2hp6eHX3/9FV9++SViY2Nx8eLFNhmWUnxnd8NALC4uDv7+/iAiTJ06FY6OjkhPT8e2bduEITVnZ+cWHT83NxeDBw9Gz549MWvWLBQVFeGbb76Bn58fTpw4AR8fHwAPAyozMzOVvyPg4ad1RARfX1+kpqZi2LBhmD9/PnR0dJCXl4fExESMGDECAwcOVCrby8sLAJCQkICXXnqpVeeJdVIt/n57xv6ipFIpHTp0iA4dOkTLli0jABQZGSmkicVi8vHxEX4/dOgQ3bt3r0XH1dPTI2NjY7p69apS3oIFCwgAvfHGG0rp0dHRBICio6NbXP/Y2FgCQHp6erRgwQKKi4ujO3fuNLlPfn4+lZWVqaRnZGSQoaEh+fr6KqXn5OQQAAJAq1evVsqLjIwkAGRubk5vvvkm1dfXC3l79uwhABQSEqK0T3h4OAEgXV1dunTpklJeSEgIAaC5c+cqpY8cOZIeveWcPHmSANCwYcOouLhYKU9xLhuWHRoaSgAoJiZGpe1FRUVKdW9MRUUFaWtrU79+/dTmK86Vo6Njk8fJzs4mAKStrU21tbVC+u+//05yuVxl+w8++IAA0MGDB5XSFecyMTFRbTl5eXlUXV2tkh4fH09dunSht956q8l6NqTog0fLunPnDllbWxMA2rNnDxERlZeXk4WFBXXp0oVSUlKUtl+7di0BoLFjxyqlBwUFEQDKyckR0hpeexEREUrbHzt2jADQyy+/rJTe1N9RVlYWAaDJkyer5NXX11NRUZFKeklJCQEgDw8PlTzGiIg4GGKdSmhoKOnq6lJFRQUREV2/fp0A0NatWx/7WKtXryYAtHz5cpW8oqIiMjY2JpFIpPSgepJgiIho06ZNZGpqKjw0AJCtrS3NmDGDkpOTH+tYkyZNIn19faqpqRHSFA8kJycnqqurU9o+NzeXAJBYLFYJsOrq6khHR4dGjRqllK54gD8a8BA9fPCYmpqqnBt1wdDkyZMJAF25ckVtWyQSCVlZWQm/K4Kh+Pj4Zs5C4xTXxKMPcoWWBkNVVVVCX+Xn5zdbbmFhIQGgOXPmKKU3Fww1xc3NjZydnVu8vaIPgoKCKDw8nD788EOaO3cumZmZEQAaPHiwcN3s27ePAFBgYKDKcWpra8nJyYkAUG5urpDeVDDk6Oiocu0REfXo0YO6du2qlNaSYEhdvZoiEonIxsbmsfZhmoOHyVincvLkSXh4eAhLpRVL0p9kJdalS5cAQGlVmoK5uTnc3d2RkpKCa9euqR2SehxLlizB/PnzkZCQgNTUVFy+fBmpqanYv38/9u/fj5UrVyIyMlJpnx9//BHbt2/HxYsXUVBQoPLagIKCApXJrBKJRBiiUVBM9u7duzeMjY2V8rS1tWFjY9Po3BR159XU1BQSiQTJycm4evVqk8OEaWlp0NXVxaFDh3Do0CGV/JqaGty/fx+FhYXo2rUrAgICsGnTJkyePBlTp07FmDFj4OXlBRcXl0bLeFRhYSGAh33YGvT/w0qA8tDSgwcPsGnTJvzwww+4ceMGysvLlbb9448/Hrucr7/+Grt27UJmZiaKi4tRX18v5KubZ9ac3bt3C/9vaGiI5557Dv7+/ggNDRWGGZu6/nV0dODt7Q2pVIrLly+rHUJ9lLprDwAcHByQlpbW4rr37dsXEokEBw4cQG5uLvz8/DB8+HAMGjSoyXNhYWGB/Pz8FpfDNAsHQ6xDS0pKEt7PIpfLkZmZiUGDBgmrgI4ePQptbW1hEjUAtSuE1FFMkG5sdYwiXd0k3ychFovh5+cHPz8/AA8DgZ07d2Lp0qX46KOPMGXKFCGw2LRpE0JCQmBubo6xY8eiR48eEIvF0NLSQkxMDDIzMyGTyVTKMDU1VUlTvG5AXZ4iv7GJyY0tK7e1tQUApUnm6hQWFqKurk6YRNyYiooKdO3aFYMHD8apU6fw8ccf47vvvsPevXsBAM8//zzCw8MRGBjY5HEACKvHHp3M/LgUKwe1tbWFwKq2thajR4/G+fPn0a9fPwQEBMDKykoIMFatWqW2X5oSGhqKqKgo2NnZ4aWXXkK3bt2ENuzatQu5ubmPXfeWzJlr6+vfzMxMbbqOjg7kcnmLjgE8PN8nT55EZGQkvvvuO7z33nsAAGNjYwQFBWHNmjUwMjJS2a+qqqrRlYOMcTDEOrSkpCSVB+mFCxdw4cIFpbSG27Q0GFIEB3/++Sf+9re/qeQrVtM0FkS0lp6eHhYtWoSzZ89i3759OHnyJCQSCerq6hAREQFbW1tcunRJ5WH1OP/Kbq3G/qWtWE3W3LkxNTWFXC5HUVFRi8scNmwY4uLiIJPJkJ6ejmPHjmHz5s2YMWMGrKysMGbMmCb3t7a2BvC/T4ielGKV3cCBA4WA8siRIzh//jxmz56N6Ohope3v3r3bbND3qHv37uHzzz9Hv379kJqaqvLJ3YEDB1rRgqY1vP7VedrXf1PMzc3x2Wef4bPPPkN2djaSk5OxY8cOfPHFFygpKRGCZAW5XI6SkpIWT/ZmmoeX1rMOLSIiAvRw7hv+8Y9/QF9fH1VVVSAi4d0827ZtE7ZpOFzRHHd3dwBQ+2bgkpISZGRkQCQSwdXVtU3a0hjFA1BR94KCApSUlMDT01MlEKqoqBCGN54FdW/GLi0tbfG5GTp0KIqLi/Hrr78+dtn6+vrw9PREZGQkPv/8cwAPg5Hm2NnZwcrKCtevX3/sMhUqKyuxceNGAMDrr78upGdnZwNQXrmo0NhbxBVDRw2HvhRu3rwJuVyOcePGqQRCeXl5uHnz5pM1oAWauv7r6uqEt3APGDCgzctu6pw8qlevXpg3bx6Sk5NhZGSk9hq4fv06iIi/Goc1ioMh1mkkJiZi6NChwgvwFDfxliyhV2fmzJnQ1dXF5s2bhYecwsqVK1FWVoaZM2dCX1+/NdXG9u3bcfbsWbV5165dE+bSKF4iaW1tDbFYjPT0dKWvGKitrcXSpUtRUFDQqvo8jr179+Ly5ctKaRERESgtLUVgYGCz52bZsmUAgDfeeEMYdmrowYMHSucmNTVV7TuiFJ9QicXiZuuspaUFb29vFBQUqPRrS+Tk5GDChAm4du0a3N3d8eabbwp5iqXxjwYQN2/eFIZzHqV4tcKtW7dU8hTHO336tFJgUFFRgTfeeOOpfr3M5MmTYWFhgQMHDqhcn1FRUcjJycGYMWNaNF/ocTV1TnJychghE2wAAASQSURBVNQGgcXFxZDJZGqHwhT1VyzfZ+xRPEzGOgXFJzUrV64U0pKSkmBra4s+ffo80TGdnJwQFRWFRYsWYcCAAXjttddgZWWF5ORkpKWloU+fPli3bl2r637s2DEsWLAATk5O8PLygoODA2QyGX777TfEx8ejtrYWS5YsgYeHBwCgS5cuWLJkCdauXQs3Nzf4+fmhpqYGiYmJKCoqgo+Pj9oXJT4NL7/8Mry8vPDaa6/Bzs4Op0+fxunTp+Hk5IS1a9c2u/+LL76ItWvXYvny5Xjuuecwfvx4ODs7o6KiArm5uUhOTsbw4cNx7NgxAMD69etx8uRJjBgxAs7OzjAyMsKvv/6Kn376Cebm5ggODm5Rvf39/XH48GHEx8ejV69earcpKSkRhlTr6upQXFyMzMxMpKWlQS6Xw9fXF7t371YK+CZNmoRevXrh008/xS+//AJ3d3fcunULcXFxmDBhgtqHu4+PD7p06YLly5fjypUrwvyjDz74ALa2tpg+fToOHjwIiUSCcePGobS0FAkJCRCJRJBIJMjIyGhRmx+XkZERvvrqK0ybNg0jR47EtGnT0KNHD6Snp+P48eOwtbXFjh07nkrZw4YNg1gsRlRUFAoLC4U5aG+//TYyMzMxZcoUeHh4wNXVFfb29rh//z6OHDmC2tpatUHn8ePHoa2tLczHY0xFO61iY6xNxcTEqCxPtrW1pYCAgFYfOz4+nsaOHUtmZmakp6dHLi4u9O6776q8F4foyZbWX79+nTZs2EC+vr7k4uJCYrGY9PT0yMHBgV599VWKjY1V2ae2tpY2btxIrq6uwpLhmTNnklQqbXJ5c1BQkNo6AKCRI0eqzXN0dFRZZt5wOXh0dDT179+fRCIRWVpa0uzZs9W+J0nd0nqFU6dO0bRp08jOzo50dXXJ0tKS+vfvT8uWLaMLFy4I28XHx9Ps2bPJ1dWVTExMSCwWU+/eventt98mqVSq9tjqyGQysra2psGDB6vkNXwvjuJHX1+frKysaMiQIbR48WI6depUo8e+desWzZgxg+zt7UkkElHfvn1p3bp1VFtb2+h53rt3r3AOFWUqPHjwgFasWEEuLi6kr69P3bt3p4ULF1JBQUGT51Sdxt4z1JTz58/T5MmTydLSknR1dcnBwYHeeust+uOPP1S2fZJrr7E2/PTTTzR06FAyNDQUzklOTg7dvn2bli9fTp6enmRjY0N6enrUrVs38vX1paNHj6ocp6SkhEQiEfn5+bW4zUzzaBE9xiQKxhjDw6GwVatWtfhN3n9Fa9aswYoVK3Dp0iVhfgzrfDZv3owlS5bg1KlTGD58eHtXh/1F8ZwhxphGWrZsGXr06IEPP/ywvavCnpKqqiqsWbMG/v7+HAixJnEwxBjTSCKRCHv37sWgQYPw4MGD9q4OewqkUimCg4OxYcOG9q4K+4vjCdSMMY3l7e0trNJjnY+rq2uL3yvGNBvPGWKMMcaYRuNhMsYYY4xpNA6GGGOMMabROBhijDHGmEbjYIgxxhhjGo2DIcYYY4xpNA6GGGOMMabROBhijDHGmEb7P00+Zni/ae+IAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt; plt.style.use('classic')\n", + "plt.rcParams[\"legend.loc\"] = \"best\"\n", + "plt.rcParams['figure.facecolor'] = 'white'\n", + "\n", + "num_samples = range(10, 151, 10)\n", + "r_perf_times = {10: [1.179895, 1.435764, 1.392574, 1.364731, 1.244356], 20: [3.626441, 3.38207, 3.435028, 3.312011, 3.472121], 30: [6.725924, 7.19072, 6.850648, 7.024207, 6.970873], 40: [11.60234, 11.26915, 11.36571, 12.27015, 12.33833], 50: [19.56418, 17.98312, 17.36909, 17.16499, 18.17077], 60: [25.21052, 24.80274, 24.37495, 24.47379, 25.59039], 70: [33.09666, 33.38766, 32.52008, 32.90658, 33.6318], 80: [41.91707, 42.18968, 42.25746, 43.52817, 42.34682], 90: [54.26672, 60.08258, 52.39857, 51.12012, 52.91298], 100: [66.36207, 70.70109, 64.84415, 65.04437, 63.17586], 110: [76.69378, 77.56344, 79.68007, 79.66596, 82.81884], 120: [97.89148, 96.41177, 99.12007, 100.0838, 100.4973], 130: [119.39, 117.1136, 118.6135, 117.5654, 116.0784], 140: [139.2461, 136.9656, 137.8895, 136.6488, 139.2114], 150: [158.5903, 156.5999, 161.6194, 160.23, 161.1935]}\n", + "linear_data_copy = [(10, [1.3570548910065554, 1.317704908986343, 1.250599796010647, 1.2129867470066529, 1.2188538330083247]), (20, [2.809477289003553, 2.662971756013576, 2.668166168994503, 2.810354543995345, 2.8085849939961918]), (30, [5.089567081973655, 4.908904140000232, 4.963905091979541, 4.862470469990512, 4.872956630017143]), (40, [7.7755367509962525, 7.639183080988005, 7.636393271997804, 7.643885943980422, 7.673354588012444]), (50, [11.33807383000385, 11.284572928998386, 11.579023433005204, 11.935501523985295, 11.589415601018118]), (60, [15.944066369003849, 15.691345383005682, 15.252294573001564, 15.21922270700452, 15.21380895600305]), (70, [20.097495351015823, 20.11479070200585, 20.14134455099702, 20.623360280005727, 20.394629952003015]), (80, [25.643525285995565, 25.59139153698925, 25.659372112015262, 25.80397002500831, 25.668325702979928]), (90, [32.741740912984824, 31.854122709017247, 31.89940690298681, 31.885286441014614, 32.73692899401067]), (100, [41.03519103198778, 40.1257850920083, 40.30881031299941, 39.976445167005295, 39.989109216985526]), (110, [46.49892311100848, 48.002260846988065, 48.743909012991935, 47.894316210004035, 46.35784816299565]), (120, [57.73439836999751, 59.01353847500286, 56.690341667999746, 56.15975032598362, 57.02876815799391]), (130, [67.02439867099747, 68.27157784899464, 66.59815313798026, 65.15316394198453, 66.08920010898146]), (140, [79.0230416849954, 77.24781862000236, 79.41891040399787, 77.30308651400264, 79.06514339800924]), (150, [90.88946284601116, 86.56499147901195, 86.16265920398291, 86.45272049200139, 87.83721533801872])]\n", + "python_perf_times = [j for i, j in linear_data_copy]\n", + "python_perf_times_fast_mgc = [j for i, j in linear_data_fast_mgc]\n", + "\n", + "plt.plot(num_samples, [np.mean(v) for k, v in r_perf_times.items()], marker='o', markerfacecolor='darkgreen', markersize=6, color='green', linewidth=2, label=\"R\")\n", + "plt.plot(num_samples, [np.mean(i) for i in python_perf_times], marker='X', markerfacecolor='red', markersize=8, color='orange', linewidth=2, label=\"Python\")\n", + "plt.plot(num_samples, [np.mean(i) for i in python_perf_times_fast_mgc], marker='X', markerfacecolor='darkblue', markersize=8, color='blue', linewidth=2, label=\"Python (FastMGC)\")\n", + "\n", + "plt.ylim(-10, 160)\n", + "plt.xlabel('# of Samples (Data Points)', fontsize=18)\n", + "plt.ylabel('Execution Time (Seconds)', fontsize=18)\n", + "plt.legend()" + ] + }, { "cell_type": "code", "execution_count": 33, From 0ab7ed83ab61cd057618d1ebb98002a947e42a34 Mon Sep 17 00:00:00 2001 From: sundaysundya Date: Thu, 6 Dec 2018 17:37:02 -0500 Subject: [PATCH 40/60] correct MDMR test statistic --- demos/MDMR.ipynb | 87 +++++++++++++++++++ mgcpy/independence_tests/mdmr/__init__.py | 1 + mgcpy/independence_tests/mdmr/mdmr.py | 51 +++++------ .../independence_tests/mdmr/mdmrfunctions.py | 72 +++------------ .../unit_tests/mdmr/mdmr_test.py | 8 +- 5 files changed, 132 insertions(+), 87 deletions(-) create mode 100644 demos/MDMR.ipynb diff --git a/demos/MDMR.ipynb b/demos/MDMR.ipynb new file mode 100644 index 0000000..142cfd7 --- /dev/null +++ b/demos/MDMR.ipynb @@ -0,0 +1,87 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "module_path = \"C:\\\\Users\\\\sunda\\\\Desktop\\\\AAA FA18 JHU\\\\NDD1\\\\gitscr\\\\mgcpy\"\n", + "if module_path not in sys.path:\n", + " sys.path.append(module_path)\n", + " \n", + "import numpy as np\n", + "from mgcpy.independence_tests.mdmr.mdmr import MDMR\n", + "from mgcpy.independence_tests.mdmr.mdmrfunctions import compute_distance_matrix" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[25.03876688]\n" + ] + } + ], + "source": [ + "X = np.genfromtxt('../mgcpy/independence_tests/unit_tests/mdmr/data/X_mdmr.csv', delimiter=\",\")\n", + "Y = np.genfromtxt('../mgcpy/independence_tests/unit_tests/mdmr/data/Y_mdmr.csv', delimiter=\",\")\n", + "\n", + "mdmr = MDMR(compute_distance_matrix)\n", + "a, b = mdmr.test_statistic(X, Y)\n", + "print(a)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0.000999]\n" + ] + } + ], + "source": [ + "print(b)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/mgcpy/independence_tests/mdmr/__init__.py b/mgcpy/independence_tests/mdmr/__init__.py index e69de29..90242c0 100644 --- a/mgcpy/independence_tests/mdmr/__init__.py +++ b/mgcpy/independence_tests/mdmr/__init__.py @@ -0,0 +1 @@ +from .mdmr import MDMR \ No newline at end of file diff --git a/mgcpy/independence_tests/mdmr/mdmr.py b/mgcpy/independence_tests/mdmr/mdmr.py index 9f96101..860384c 100644 --- a/mgcpy/independence_tests/mdmr/mdmr.py +++ b/mgcpy/independence_tests/mdmr/mdmr.py @@ -48,8 +48,8 @@ def test_statistic(self, data_matrix_X, data_matrix_Y, permutations = 0, individ a = D.shape[0]**2 D = D.reshape((a,1)) - columns = np.arange(X.shape[1]) - columnsingle = X.shape[1] + predictors = np.arange(X.shape[1]) + predsingle = X.shape[1] check_rank(X) subjects = X.shape[0] @@ -57,56 +57,57 @@ def test_statistic(self, data_matrix_X, data_matrix_Y, permutations = 0, individ raise Exception("# of subjects incompatible between X and D") X = np.hstack((np.ones((X.shape[0], 1)), X)) - col = copy.copy(columns) - col += 1 + predictors = np.array(predictors) + predictors += 1 Gs = gower_center_many(D) - df_among = float(col.shape[0]) - df_resid = float(subjects - X.shape[1]) + m2 = float(X.shape[1] - predictors.shape[0]) + nm = float(subjects - X.shape[1]) permutation_indexes = np.zeros((permutations + 1, subjects), dtype=np.int) permutation_indexes[0, :] = range(subjects) for i in range(1, permutations + 1): permutation_indexes[i,:] = np.random.permutation(subjects) - H2perms = gen_H2_perms(X, col, permutation_indexes) - IHperms = gen_IH_perms(X, col, permutation_indexes) + H2perms = gen_H2_perms(X, predictors, permutation_indexes) + IHperms = gen_IH_perms(X, predictors, permutation_indexes) - F_perms = calc_ftest(H2perms, IHperms, Gs, - df_among, df_resid) + F_perms = calc_ftest(H2perms, IHperms, Gs, m2, nm) - p_vals = fperms_to_pvals(F_perms) + p_vals = None + if permutations > 0: + p_vals = fperms_to_pvals(F_perms) F_permtotal = F_perms[0, :] pvaltotal = p_vals if individual == 0: return F_permtotal, pvaltotal if individual == 1: - results = np.zeros((columnsingle,3)) - for col in range(1, columnsingle+1): - col = copy.copy(col) - # columns += 1 + results = np.zeros((predsingle,3)) + for predictors in range(1, predsingle+1): + predictors = np.array([predictors]) Gs = gower_center_many(D) - df_among = float(col) - df_resid = float(subjects - X.shape[1]) + m2 = float(X.shape[1] - predictors.shape[0]) + nm = float(subjects - X.shape[1]) permutation_indexes = np.zeros((permutations + 1, subjects), dtype=np.int) permutation_indexes[0, :] = range(subjects) for i in range(1, permutations + 1): permutation_indexes[i,:] = np.random.permutation(subjects) - H2perms = gen_H2_perms_single(X, col, permutation_indexes) - IHperms = gen_IH_perms_single(X, col, permutation_indexes) + H2perms = gen_H2_perms(X, predictors, permutation_indexes) + IHperms = gen_IH_perms(X, predictors, permutation_indexes) - F_perms = calc_ftest(H2perms, IHperms, Gs, - df_among, df_resid) + F_perms = calc_ftest(H2perms, IHperms, Gs, m2, nm) - p_vals = fperms_to_pvals(F_perms) - results[col-1,0] = col - results[col-1,1] = F_perms[0, :] - results[col-1,2] = p_vals + p_vals = None + if permutations > 0: + p_vals = fperms_to_pvals(F_perms) + results[predictors-1,0] = predictors + results[predictors-1,1] = F_perms[0, :] + results[predictors-1,2] = p_vals return F_permtotal, pvaltotal, results diff --git a/mgcpy/independence_tests/mdmr/mdmrfunctions.py b/mgcpy/independence_tests/mdmr/mdmrfunctions.py index 7a19f9a..5e269a9 100644 --- a/mgcpy/independence_tests/mdmr/mdmrfunctions.py +++ b/mgcpy/independence_tests/mdmr/mdmrfunctions.py @@ -25,11 +25,9 @@ def compute_distance_matrix(X, disttype): def hatify(X): """ - Returns the "hat" matrix, X*(X.T *X)^-1 *X.T + Returns the "hat" matrix. """ - Q1, _ = np.linalg.qr(X) - H = Q1.dot(Q1.T) - return H + return X.dot(np.linalg.inv(X.T.dot(X))).dot(X.T) def gower_center(Y): """ @@ -61,70 +59,25 @@ def gower_center_many(Ys): return Gs -def gen_H2_perms_single(X, columns, permutation_indexes): +def gen_H2_perms(X, predictors, permutation_indexes): """ Return H2 for each permutation of X indices, where H2 is the hat matrix minus the hat matrix of the untested columns. - - The function calculates this correctly for single column tests. """ permutations, observations = permutation_indexes.shape variables = X.shape[1] + covariates = [i for i in range(variables) if i not in predictors] H2_permutations = np.zeros((observations ** 2, permutations)) for i in range(permutations): - perm_X = X[permutation_indexes[i, :]] - cols_X = perm_X[:, columns] - fix = cols_X.shape[0] - cols_X = cols_X.reshape((fix,1)) - H = hatify(cols_X) - other_columns = [i for i in range(variables) if i != columns] - H2 = H - hatify(X[:, other_columns]) + perm_X = X[permutation_indexes[i]] + H2 = hatify(perm_X) - hatify(perm_X[:, covariates]) H2_permutations[:, i] = H2.flatten() return H2_permutations -def gen_IH_perms_single(X, columns, permutation_indexes): - """ - Return I-H where H is the hat matrix and I is the identity matrix. - - The function calculates this correctly for single column tests. - """ - permutations, observations = permutation_indexes.shape - I = np.eye(observations, observations) - - IH_permutations = np.zeros((observations ** 2, permutations)) - for i in range(permutations): - cols_X = X[permutation_indexes[i, :]][:, columns] - fix = cols_X.shape[0] - cols_X = cols_X.reshape((fix,1)) - IH = I - hatify(cols_X) - IH_permutations[:,i] = IH.flatten() - - return IH_permutations -def gen_H2_perms(X, columns, permutation_indexes): - """ - Return H2 for each permutation of X indices, where H2 is the hat matrix - minus the hat matrix of the untested columns. - - The function calculates this correctly for multiple column tests. - """ - permutations, observations = permutation_indexes.shape - variables = X.shape[1] - - H2_permutations = np.zeros((observations ** 2, permutations)) - for i in range(permutations): - perm_X = X[permutation_indexes[i, :]] - cols_X = perm_X[:, columns] - H = hatify(cols_X) - other_columns = [i for i in range(variables) if i not in columns] - H2 = H - hatify(X[:, other_columns]) - H2_permutations[:, i] = H2.flatten() - - return H2_permutations - -def gen_IH_perms(X, columns, permutation_indexes): +def gen_IH_perms(X, predictors, permutation_indexes): """ Return I-H where H is the hat matrix and I is the identity matrix. @@ -135,11 +88,12 @@ def gen_IH_perms(X, columns, permutation_indexes): IH_permutations = np.zeros((observations ** 2, permutations)) for i in range(permutations): - IH = I - hatify(X[permutation_indexes[i, :]][:, columns]) + IH = I - hatify(X[permutation_indexes[i, :]]) IH_permutations[:,i] = IH.flatten() return IH_permutations + def calc_ftest(Hs, IHs, Gs, m2, nm): """ This function calculates the pseudo-F statistic. @@ -149,13 +103,15 @@ def calc_ftest(Hs, IHs, Gs, m2, nm): F = (N / m2) / (D / nm) return F + def fperms_to_pvals(F_perms): """ This function calculates the permutation p-value from the test statistics of all permutations. """ permutations, tests = F_perms.shape + permutations -= 1 pvals = np.zeros(tests) for i in range(tests): - j = (F_perms[:, i] >= F_perms[0, i]).sum().astype('float') - pvals[i] = j / permutations - return pvals + j = (F_perms[1:, i] >= F_perms[0, i]).sum().astype('float') + pvals[i] = (j+1) / (permutations+1) + return pvals \ No newline at end of file diff --git a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py index b1bcc15..24e80bc 100644 --- a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py +++ b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py @@ -17,15 +17,15 @@ def test_mdmr(): assert mdmr.get_name() == 'mdmr' #test statistic - assert np.allclose(a, 25.03876688) + assert np.allclose(a, 75.11630064) #p-value assert np.allclose(b2, 0.000999) #individual statistics - assert np.allclose(results1[0,1], -13.702988) + assert np.allclose(results1[0,1], 10.39953044) assert np.allclose(results2[0,2], 0.000999) - assert np.allclose(results1[1,1], -22.6870867) + assert np.allclose(results1[1,1], 4.12263312) assert np.allclose(results2[1,2], 0.000999) - assert np.allclose(results1[2,1], -2.70117626) + assert np.allclose(results1[2,1], 11.31712737) assert np.allclose(results2[2,2], 0.000999) \ No newline at end of file From 691951e985a5462341d6430bb68c61c4a94f29df Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Thu, 6 Dec 2018 19:02:21 -0500 Subject: [PATCH 41/60] Add updated tests --- mgcpy/independence_tests/hhg.py | 114 ++++++++++++++++++ mgcpy/independence_tests/kendall_spearman.py | 92 +++++++++++++++ mgcpy/independence_tests/rv_corr.py | 117 +++++++++++++++++++ 3 files changed, 323 insertions(+) create mode 100644 mgcpy/independence_tests/hhg.py create mode 100644 mgcpy/independence_tests/kendall_spearman.py create mode 100644 mgcpy/independence_tests/rv_corr.py diff --git a/mgcpy/independence_tests/hhg.py b/mgcpy/independence_tests/hhg.py new file mode 100644 index 0000000..0125d3f --- /dev/null +++ b/mgcpy/independence_tests/hhg.py @@ -0,0 +1,114 @@ +import numpy as np +from mgcpy.independence_tests.abstract_class import IndependenceTest +from scipy.spatial import distance_matrix + + +class HHG(IndependenceTest): + def __init__(self, compute_distance_matrix=None): + """ + :param compute_distance_matrix: a function to compute the pairwise distance matrix, given a data matrix + :type compute_distance_matrix: FunctionType or callable() + """ + IndependenceTest.__init__(compute_distance_matrix) + self.which_test = "hhg" + + def test_statistic(self, matrix_X, matrix_Y): + """ + Computes the HHG correlation measure between two datasets. + + :param matrix_X: a [n*p] data matrix, a square matrix with n samples in p dimensions + :type matrix_X: 2D `numpy.array` + + :param matrix_Y: a [n*q] data matrix, a square matrix with n samples in q dimensions + :type matrix_Y: 2D `numpy.array` + + :param replication_factor: specifies the number of replications to use for + the permutation test. Defaults to 1000. + :type replication_factor: int + + :return: returns a list of two items, that contains: + - :test_statistic_: test statistic + - :test_statistic_metadata_: (optional) a ``dict`` of metadata other than the p_value, + that the independence tests computes in the process + :rtype: float, dict + + **Example:** + >>> import numpy as np + >>> from mgcpy.independence_tests.hhg import HHG + + >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, + 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) + >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, + 1.35857623, -0.06729464, 0.16168344, -0.61048226, 0.41711113]).reshape(-1, 1) + >>> hhg = HHG() + >>> hhg_test_stat = hhg.test_statistic(X, Y) + """ + row_X, columns_X = matrix_X.shape[0], matrix_X.shape[1] + row_Y, columns_Y = matrix_Y.shape[0], matrix_Y.shape[1] + + # use the matrix shape and diagonal elements to determine if the given data is a distance matrix or not + if row_X != columns_X or sum(matrix_X.diagonal()**2) > 0: + dist_mtx_X = distance_matrix(matrix_X, matrix_X) + else: + dist_mtx_X = matrix_X + if row_Y != columns_Y or sum(matrix_Y.diagonal()**2) > 0: + dist_mtx_Y = distance_matrix(matrix_Y, matrix_Y) + else: + dist_mtx_Y = matrix_Y + + n = dist_mtx_X.shape[0] + S = np.zeros((n, n)) + + for i in range(n): + for j in range(n): + if i != j: + tmp1 = dist_mtx_X[i, :] <= dist_mtx_X[i, j] + tmp2 = dist_mtx_Y[i, :] <= dist_mtx_Y[i, j] + t11 = np.sum(tmp1 * tmp2) - 2 + t12 = np.sum(tmp1 * (1-tmp2)) + t21 = np.sum((1-tmp1) * tmp2) + t22 = np.sum((1-tmp1) * (1-tmp2)) + denom = (t11+t12) * (t21+t22) * (t11+t21) * (t12+t22) + if denom > 0: + S[i, j] = (n-2) * \ + np.power((t12*t21 - t11*t22), 2) / denom + corr = np.sum(S) + + # no metadata for HHG + self.test_statistic_metadata_ = {} + self.test_statistic_ = corr + + return self.test_statistic_, self.test_statistic_metadata_ + + def p_value(self, matrix_X=None, matrix_Y=None, replication_factor=1000): + """ + Tests independence between two datasets using HHG and permutation test. + + :param matrix_X: a [n*p] data matrix, a square matrix with n samples in p dimensions + :type matrix_X: 2D `numpy.array` + + :param matrix_Y: a [n*q] data matrix, a square matrix with n samples in q dimensions + :type matrix_Y: 2D `numpy.array` + + :param replication_factor: specifies the number of replications to use for + the permutation test. Defaults to 1000. + :type replication_factor: int + + :return: returns a list of two items, that contains: + - :p_value_: P-value + - :p_value_metadata_: (optional) a ``dict`` of metadata other than the p_value, + that the independence tests computes in the process + :rtype: float, dict + + **Example:** + >>> import numpy as np + >>> from mgcpy.independence_tests.hhg import HHG + + >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, + 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) + >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, + 1.35857623, -0.06729464, 0.16168344, -0.61048226, 0.41711113]).reshape(-1, 1) + >>> hhg = HHG() + >>> hhg_p_value = hhg.p_value(X, Y) + """ + return super(HHG, self).p_value(matrix_X, matrix_Y) diff --git a/mgcpy/independence_tests/kendall_spearman.py b/mgcpy/independence_tests/kendall_spearman.py new file mode 100644 index 0000000..24a0670 --- /dev/null +++ b/mgcpy/independence_tests/kendall_spearman.py @@ -0,0 +1,92 @@ +from mgcpy.independence_tests.abstract_class import IndependenceTest +from scipy.stats import kendalltau, spearmanr + + +class KendallSpearman(IndependenceTest): + def __init__(self, compute_distance_matrix=None, which_test='kendall'): + """ + :param compute_distance_matrix: a function to compute the pairwise distance matrix, given a data matrix + :type compute_distance_matrix: FunctionType or callable() + + :param which_test: specifies which test to use, including 'kendall' or 'spearman' + :type which_test: str + """ + IndependenceTest.__init__(self, compute_distance_matrix) + self.which_test = which_test + + def test_statistic(self, matrix_X, matrix_Y): + """ + Computes the Spearman's rho or Kendall's tau measure between two datasets. + - Implments scipy.stats's implementation for both + + :param matrix_X: a [n*1] data matrix, a square matrix with n samples in 1 dimension + :type matrix_X: 1D numpy.array + + :param matrix_Y: a [n*1] data matrix, a square matrix with n samples in 1 dimension + :type matrix_Y: 1D numpy.array + + :return: returns a list of two items, that contains: + - :test_stat_: test statistic + - :test_statistic_metadata_: (optional) a ``dict`` of metadata other than the p_value, + that the independence tests computes in the process + :rtype: float, dict + + **Example:** + >>> import numpy as np + >>> from mgcpy.independence_tests.kendall_spearman import KendallSpearman + + >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, + 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) + >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, + 1.35857623, -0.06729464, 0.16168344, -0.61048226, 0.41711113]).reshape(-1, 1) + >>> kendall_spearman = KendallSpearman() + >>> kendall_spearman_stat = kendall_spearman.test_statistic(X, Y) + """ + if matrix_X is None: + matrix_X = self.matrix_X + if matrix_Y is None: + matrix_Y = self.matrix_Y + assert matrix_X.shape[1] == 1, "Data matrix should be (n, 1) shape" + assert matrix_Y.shape[1] == 1, "Data matrix should be (n, 1) shape" + + if self.which_test == 'kendall': + self.test_statistic_ = kendalltau(matrix_X, matrix_Y)[0] + else: + self.test_statistic_ = spearmanr(matrix_X, matrix_Y)[0] + + self.test_statistic_metadata_ = {} + + return self.test_statistic_, self.test_statistic_metadata_ + + def p_value(self, matrix_X, matrix_Y, replication_factor=1000): + """ + Tests independence between two datasets using the independence test. + + :param matrix_X: a [n*p] data matrix, a square matrix with n samples in p dimensions + :type matrix_X: 2D `numpy.array` + + :param matrix_Y: a [n*q] data matrix, a square matrix with n samples in q dimensions + :type matrix_Y: 2D `numpy.array` + + :param replication_factor: specifies the number of replications to use for + the permutation test. Defaults to 1000. + :type replication_factor: int + + :return: returns a list of two items, that contains: + - :p_value_: P-value + - :p_value_metadata_: (optional) a ``dict`` of metadata other than the p_value, + that the independence tests computes in the process + :rtype: float, dict + + **Example:** + >>> import numpy as np + >>> from mgcpy.independence_tests.kendall_spearman import KendallSpearman + + >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, + 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) + >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, + 1.35857623, -0.06729464, 0.16168344, -0.61048226, 0.41711113]).reshape(-1, 1) + >>> kendall_spearman = KendallSpearman() + >>> kendall_spearman_p_value = kendall_spearman.p_value(X, Y) + """ + return super(KendallSpearman, self).p_value(matrix_X, matrix_Y) diff --git a/mgcpy/independence_tests/rv_corr.py b/mgcpy/independence_tests/rv_corr.py new file mode 100644 index 0000000..7fec1fa --- /dev/null +++ b/mgcpy/independence_tests/rv_corr.py @@ -0,0 +1,117 @@ +import numpy as np +from mgcpy.independence_tests.abstract_class import IndependenceTest +from numpy import matlib as mb +from scipy.sparse.linalg import svds +from scipy.stats import pearsonr + + +class RVCorr(IndependenceTest): + def __init__(self, compute_distance_matrix=None, which_test='rv'): + """ + :param compute_distance_matrix: a function to compute the pairwise distance matrix, given a data matrix + :type compute_distance_matrix: FunctionType or callable() + + :param which_test: specifies which test to use, including 'rv', 'pearson', and 'cca'. + :type which_test: str + """ + IndependenceTest.__init__(self, compute_distance_matrix) + self.which_test = which_test + + def test_statistic(self, matrix_X=None, matrix_Y=None): + """ + Computes the Pearson/RV/CCa correlation measure between two datasets. + - Default computes linear correlation for RV + - Computes pearson's correlation + - Calculates local linear correlations for CCa + + :param matrix_X: a [n*p] data matrix, a square matrix with n samples in p dimensions + :type matrix_X: 2D `numpy.array` + + :param matrix_Y: a [n*q] data matrix, a square matrix with n samples in q dimensions + :type matrix_Y: 2D `numpy.array` + + :param replication_factor: specifies the number of replications to use for + the permutation test. Defaults to 1000. + :type replication_factor: int + + :return: returns a list of two items, that contains: + - :test_statistic_: test statistic + - :test_statistic_metadata_: (optional) a ``dict`` of metadata other than the p_value, + that the independence tests computes in the process + :rtype: float, dict + + **Example:** + >>> import numpy as np + >>> from mgcpy.independence_tests.rv_corr import RVCorr + + >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, + 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) + >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, + 1.35857623, -0.06729464, 0.16168344, -0.61048226, 0.41711113]).reshape(-1, 1) + >>> rvcorr = RVCorr() + >>> rvcorr_test_stat = rvcorr.test_statistic(X, Y) + """ + row_X, columns_X = matrix_X.shape[0], matrix_X.shape[1] + row_Y, columns_Y = matrix_Y.shape[0], matrix_Y.shape[1] + + mat1 = matrix_X - mb.repmat(np.mean(matrix_X, axis=0), + matrix_X.shape[0], 1) + mat2 = matrix_Y - mb.repmat(np.mean(matrix_Y, axis=0), + matrix_Y.shape[0], 1) + + covar = np.dot(mat1.T, mat2) + varX = np.dot(mat1.T, mat1) + varY = np.dot(mat2.T, mat2) + + if (self.which_test == 'pearson') and ((row_X == 1 or columns_X == 1) and (row_Y == 1 or columns_Y == 1)): + corr, covar = pearsonr(matrix_X, matrix_Y) + elif (self.which_test == 'rv'): + covar = np.trace(np.dot(covar, covar.T)) + corr = np.divide(covar, np.sqrt(np.trace(np.dot(varX, varX)) + * np.trace(np.dot(varY, varY)))) + else: + if varX.size == 1 or varY.size == 1 or covar.size == 1: + covar = np.sum(np.power(covar, 2)) + corr = np.divide(covar, np.sqrt(np.sum(np.power(varX, 2)) + * np.sum(np.power(varY, 2)))) + else: + covar = np.sum(np.power(svds(covar, 1)[1], 2)) + corr = np.divide(covar, np.sqrt(np.sum(np.power(svds(varX, 1)[1], 2)) + * np.sum(np.power(svds(varY, 1)[1], 2)))) + self.test_statistic_ = corr + self.test_statistic_metadata_ = {"covariance": covar} + + return self.test_statistic_, self.test_statistic_metadata_ + + def p_value(self, matrix_X, matrix_Y, replication_factor=1000): + """ + Tests independence between two datasets using the independence test. + + :param matrix_X: a [n*p] data matrix, a square matrix with n samples in p dimensions + :type matrix_X: 2D `numpy.array` + + :param matrix_Y: a [n*q] data matrix, a square matrix with n samples in q dimensions + :type matrix_Y: 2D `numpy.array` + + :param replication_factor: specifies the number of replications to use for + the permutation test. Defaults to 1000. + :type replication_factor: int + + :return: returns a list of two items, that contains: + - :p_value_: P-value + - :p_value_metadata_: (optional) a ``dict`` of metadata other than the p_value, + that the independence tests computes in the process + :rtype: float, dict + + **Example:** + >>> import numpy as np + >>> from mgcpy.independence_tests.rv_corr import RVCorr + + >>> X = np.array([0.07487683, -0.18073412, 0.37266440, 0.06074847, 0.76899045, + 0.51862516, -0.13480764, -0.54368083, -0.73812644, 0.54910974]).reshape(-1, 1) + >>> Y = np.array([-1.31741173, -0.41634224, 2.24021815, 0.88317196, 2.00149312, + 1.35857623, -0.06729464, 0.16168344, -0.61048226, 0.41711113]).reshape(-1, 1) + >>> rvcorr = RVCorr() + >>> rvcorr_p_value = rvcorr.p_value(X, Y) + """ + return super(RVCorr, self).p_value(matrix_X, matrix_Y) From 53227a28ac8f8e4a1b3360ce9cfb438ad4cacbd0 Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Thu, 6 Dec 2018 23:10:06 -0500 Subject: [PATCH 42/60] Add demo and fixed abstract class to include p-value for scipy tests --- demos/other_tests.ipynb | 840 +++++++++++++++++++ demos/rv_cca_hhg.ipynb | 264 ------ mgcpy/independence_tests/abstract_class.py | 8 +- mgcpy/independence_tests/kendall_spearman.py | 4 - 4 files changed, 847 insertions(+), 269 deletions(-) create mode 100644 demos/other_tests.ipynb delete mode 100644 demos/rv_cca_hhg.ipynb diff --git a/demos/other_tests.ipynb b/demos/other_tests.ipynb new file mode 100644 index 0000000..229220c --- /dev/null +++ b/demos/other_tests.ipynb @@ -0,0 +1,840 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tutorial for Tests other than MGC" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from scipy.spatial.distance import pdist, squareform\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Simulations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, import the simultions utilizing the import statement below (for this tutorial only 4 out of 20 were imported):" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from mgcpy.benchmarks.simulations import linear_sim, quad_sim, w_sim, spiral_sim" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Simultions are randomly generated with an $x$ which is $(n\\cdot d)$ and $y$ which is $(n\\cdot 1)$ that have 2 required parameters: `num_samp` or the number of samples, and `num_dim` or the number of dimensions. Optional parameters can be set based on the readme. Visualizations of the 4 simulations imported above are shown below with and without the noise:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1, 4, num=1, figsize=(20,5))\n", + "\n", + "x_normal, y_normal = linear_sim(100, 1)\n", + "x_no_noise, y_no_noise = linear_sim(1000, 1, noise=0)\n", + "ax[0].plot(x_normal, y_normal, 'bo', alpha=0.5)\n", + "ax[0].plot(x_no_noise, y_no_noise, 'ro')\n", + "ax[0].set_xlim([-1, 1])\n", + "ax[0].set_ylim([-1, 1])\n", + "\n", + "x_normal, y_normal = quad_sim(100, 1)\n", + "x_no_noise, y_no_noise = quad_sim(1000, 1, noise=0)\n", + "ax[1].plot(x_normal, y_normal, 'bo', alpha=0.5)\n", + "ax[1].plot(x_no_noise, y_no_noise, 'ro')\n", + "ax[1].set_xlim([-1, 1])\n", + "ax[1].set_ylim([-1, 2])\n", + "\n", + "x_normal, y_normal = w_sim(100, 1)\n", + "x_no_noise, y_no_noise = w_sim(1000, 1, noise=0)\n", + "ax[2].plot(x_normal, y_normal, 'bo', alpha=0.5)\n", + "ax[2].plot(x_no_noise, y_no_noise, 'ro')\n", + "ax[2].set_xlim([-1, 1])\n", + "ax[2].set_ylim([-1, 2])\n", + "\n", + "x_normal, y_normal = spiral_sim(100, 1)\n", + "x_no_noise, y_no_noise = spiral_sim(1000, 1, noise=0)\n", + "ax[3].plot(x_normal, y_normal, 'bo', alpha=0.5)\n", + "ax[3].plot(x_no_noise, y_no_noise, 'ro')\n", + "ax[3].set_xlim([-4, 4])\n", + "ax[3].set_ylim([-4, 4])\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## DCorr, MCorr, Mantel" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, import the `DCorr` class from the mgcpy package:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'mgcpy.independence_tests.mgc.distance_transform'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mmgcpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindependence_tests\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdcorr\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mDCorr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/mgcpy/independence_tests/dcorr.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mmgcpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindependence_tests\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mabstract_class\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mIndependenceTest\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mscipy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstats\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mmgcpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindependence_tests\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmgc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdistance_transform\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mtransform_distance_matrix\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'mgcpy.independence_tests.mgc.distance_transform'" + ] + } + ], + "source": [ + "from mgcpy.independence_tests.dcorr import DCorr" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### DCorr" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Put description here..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As with the other tests, simply create an `DCorr` object with `'dcorr'` as the `which_test` parameter and then call the test statistic method. This is done below, by utilizing a simulation and calculating the Dcorr's test statistic from that data:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x, y = quad_sim(100, 1)\n", + "\n", + "dcorr = DCorr(which_test='dcorr')\n", + "test_stat = dcorr.test_statistic(x, y)[0]\n", + "print(\"DCorr's test statistic: %.2f\" % test_stat)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "P-values are calculated via permutation tests as with other packages. This is done by permutting $y$ and calculating the test statistic. The number of times that the test statistics are greater than or equal to null divided by the replication factor is equal to the p-value. This is shown below:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "p_value = dcorr.p_value(x, y)[0]\n", + "print(\"DCorr p-value: %.2f\" % p_value)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### MCorr" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Put description here..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As with the other tests, simply create an `DCorr` object with `'mcorr'` as the `which_test` parameter and then call the test statistic method. This is done below, by utilizing a simulation and calculating the MCorr's test statistic from that data:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x, y = quad_sim(100, 1)\n", + "\n", + "mcorr = DCorr(which_test='mcorr')\n", + "test_stat = mcorr.test_statistic(x, y)[0]\n", + "print(\"MCorr's test statistic: %.2f\" % test_stat)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "P-values are calculated via permutation tests as with other packages. This is done by permutting $y$ and calculating the test statistic. The number of times that the test statistics are greater than or equal to null divided by the replication factor is equal to the p-value. This is shown below:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "p_value = mcorr.p_value(x, y)[0]\n", + "print(\"MCorr p-value: %.2f\" % p_value)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Mantel" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Put description here..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As with the other tests, simply create an `DCorr` object with `'mantel'` as the `which_test` parameter and then call the test statistic method. This is done below, by utilizing a simulation and calculating the Mantel's test statistic from that data:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x, y = quad_sim(100, 1)\n", + "\n", + "mantel = DCorr(which_test='mantel')\n", + "test_stat = mantel.test_statistic(x, y)[0]\n", + "print(\"Mantel's test statistic: %.2f\" % test_stat)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "P-values are calculated via permutation tests as with other packages. This is done by permutting $y$ and calculating the test statistic. The number of times that the test statistics are greater than or equal to null divided by the replication factor is equal to the p-value. This is shown below:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "p_value = mantel.p_value(x, y)[0]\n", + "print(\"Mantel p-value: %.2f\" % p_value)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## HHG" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The HHG test statistic was developed as specified in Heller, et. al. (2012). For more information about the test statistic, refer to the documentation specified in the R package here: https://cran.r-project.org/web/packages/HHG/vignettes/HHG.html.\n", + "\n", + "Essentially, the test takes the distance between two points, $P_{0}$ and $P_{1}$, and calculates how far each of the other data points in the data set are from $P_{0}$ and $P_{1}$ and organizes it in the following table:\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
$d_{y}(P_{0},\\cdot) \\leq d_{y}(P_{0},P_{1})$
$d_{y}(P_{0},\\cdot) > d_{y}(P_{0},P_{1})$
$d_{x}(P_{0},\\cdot) \\leq d_{x}(P_{0},P_{1})$
$A_{11}(P_{0}, P_{1})$
$A_{12}(P_{0}, P_{1})$
$A_{1\\cdot}(P_{0}, P_{1})$
$d_{x}(P_{0},\\cdot) > d_{x}(P_{0},P_{1})$
$A_{21}(P_{0}, P_{1})$
$A_{22}(P_{0}, P_{1})$
$A_{2\\cdot}(P_{0}, P_{1})$
$A_{\\cdot 1}(P_{0}, P_{1})$
\n", + "
$A_{\\cdot 2}(P_{0}, P_{1})$
\n", + "
$N-2$
\n", + "\n", + "A Chi square test statistic is then computed from table and the HHG test statistic is simply the sum of all the test statistics calculated:\n", + "\n", + "$$S(i, j)=\\frac{(N-2)(A_{12}A_{21}-A_{11}A_{22})}{A_{1\\cdot}A_{2\\cdot}A_{\\cdot 1}A_{\\cdot 2}}$$\n", + "\n", + "$$T=\\sum_{i=1}^{N}\\sum_{j=1, i \\neq j}^{N}S(i, j)$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, import the `HHG` class from the mgcpy package:" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "from mgcpy.independence_tests.hhg import HHG" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As with the other tests, simply create an `HHG` object and then call the test statistic method. This is done below, by utilizing a simulation and calculating the HHG test statistic from that data:" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "HHG test statistic: 36.88\n" + ] + } + ], + "source": [ + "x, y = w_sim(10, 1)\n", + "\n", + "hhg = HHG()\n", + "test_stat = hhg.test_statistic(x, y)[0]\n", + "print(\"HHG test statistic: %.2f\" % test_stat)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "P-values are calculated via permutation tests as with other packages. This is done by permutting $y$ and calculating the test statistic. The number of times that the test statistics are greater than or equal to null divided by the replication factor is equal to the p-value. This is shown below:" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "HHG p-value: 0.92\n" + ] + } + ], + "source": [ + "p_value = hhg.p_value(x, y)[0]\n", + "print(\"HHG p-value: %.2f\" % p_value)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Kendall, Spearman" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, import the `KendallSpearman` class from the mgcpy package. Note that these tests utilize the `scipy.stats` implementation of the kendall and spearman tests and were included out of convenience:" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "from mgcpy.independence_tests.kendall_spearman import KendallSpearman" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Kendall" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Kendall tau coefficient was calculated utilizing the `scipy.stats` implementation. Further explanation this test can be found here: https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.kendalltau.html. Note: The inputs for this test must be 1 dimensional." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As with the other tests, simply create an `KendallSpearman` object with `'kendall'` as the `which_test` parameter and then call the test statistic method. This is done below, by utilizing a simulation and calculating the Kendall's test statistic from that data:" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Kendall's test statistic: -0.05\n" + ] + } + ], + "source": [ + "x, y = quad_sim(100, 1)\n", + "\n", + "kendall = KendallSpearman(which_test='kendall')\n", + "test_stat = kendall.test_statistic(x, y)[0]\n", + "print(\"Kendall's test statistic: %.2f\" % test_stat)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "P-values are calculated via permutation tests as with other packages. This is done by permutting $y$ and calculating the test statistic. The number of times that the test statistics are greater than or equal to null divided by the replication factor is equal to the p-value. This is shown below:" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pearson's p-value: 0.74\n" + ] + } + ], + "source": [ + "p_value = kendall.p_value(x, y)[0]\n", + "print(\"Pearson's p-value: %.2f\" % p_value)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Spearman" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Spearman rho coefficient was calculated utilizing the `scipy.stats` implementation. Further explanation this test can be found here: https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.spearmanr.html. Note: The inputs for this test must be 1 dimensional." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As with the other tests, simply create an `KendallSpearman` object with `'spearman'` as the `which_test` parameter and then call the test statistic method. This is done below, by utilizing a simulation and calculating the Spearman's test statistic from that data:" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Spearman's test statistic: 0.09\n" + ] + } + ], + "source": [ + "x, y = spiral_sim(100, 1)\n", + "\n", + "spearman = KendallSpearman(which_test='spearman')\n", + "test_stat = spearman.test_statistic(x, y)[0]\n", + "print(\"Spearman's test statistic: %.2f\" % test_stat)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "P-values are calculated via permutation tests as with other packages. This is done by permutting $y$ and calculating the test statistic. The number of times that the test statistics are greater than or equal to null divided by the replication factor is equal to the p-value. This is shown below:" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pearson's p-value: 0.15\n" + ] + } + ], + "source": [ + "p_value = spearman.p_value(x, y)[0]\n", + "print(\"Pearson's p-value: %.2f\" % p_value)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Pearson's, RV, and CCA" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, import the `RVCorr` class from the mgcpy package:" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "from mgcpy.independence_tests.rv_corr import RVCorr" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Pearson's" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$\\newcommand{\\cov}{\\mathrm{cov}}$The Pearson's correlation was calculated utilizing the `scipy.stats` implementation. Further explanation this test can be found here: https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.pearsonr.html.\n", + "\n", + "This is a test returns a statistic between -1 and 1 and measures the linear correlation between two vectors. Note: The inputs for this test must be 1 dimensional.\n", + "\n", + "The correlation is calculated via the following formula:\n", + "\n", + "$$\\rho _{X, Y}=\\frac{\\cov(X, Y)}{\\sigma _{X}\\sigma _{Y}}$$\n", + "\n", + "where $\\cov$ is the covariance, $\\sigma _{X}$ is the standard deviation of $X$, and $\\sigma _{Y}$ is the standard deviation of $Y$." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As with the other tests, simply create an `RVCorr` object with `'pearson'` as the `which_test` parameter and then call the test statistic method. This is done below, by utilizing a simulation and calculating the Pearson's test statistic from that data:" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pearson's test statistic: 0.46\n" + ] + } + ], + "source": [ + "x, y = linear_sim(100, 1)\n", + "\n", + "pearson = RVCorr(which_test='pearson')\n", + "test_stat = pearson.test_statistic(x, y)[0]\n", + "print(\"Pearson's test statistic: %.2f\" % test_stat)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "P-values are calculated via permutation tests as with other packages. This is done by permutting $y$ and calculating the test statistic. The number of times that the test statistics are greater than or equal to null divided by the replication factor is equal to the p-value. This is shown below:" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pearson's p-value: 0.00\n" + ] + } + ], + "source": [ + "p_value = pearson.p_value(x, y)[0]\n", + "print(\"Pearson's p-value: %.2f\" % p_value)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### RV" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$\\newcommand{\\COVV}{\\mathrm{COVV}}$$\\newcommand{\\Tr}{\\mathrm{Tr}}$$\\newcommand{\\VAV}{\\mathrm{VAV}}$$\\newcommand{\\RV}{\\mathrm{RV}}$This test is essentially the a multivariate generalization of the square pearson's correlation coefficient. It returns values between 0 and 1. If $X$ and $Y$ are matrices of centered column vectors with covariance:\n", + "\n", + "$$\\Sigma _{XY}=E(X^{T}Y)$$\n", + "\n", + "Then the scaled covariance ($\\COVV$) is:\n", + "\n", + "$$\\COVV(X,Y)=\\Tr(\\Sigma _{XY}\\Sigma _{YX})$$\n", + "\n", + "Then the scaled-valued variance is defined similarly ($\\COVV$):\n", + "\n", + "$$\\VAV(X)=\\Tr(\\Sigma _{XX}^{2})$$\n", + "\n", + "Then, the RV Coefficient is defined as:\n", + "\n", + "$$\\RV(X,Y)=\\frac{\\COVV(X,Y)}{\\sqrt{\\VAV(X)\\VAV(Y)}}$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As with the other tests, simply create an `RVCorr` object with `'rv'` as the `which_test` parameter and then call the test statistic method. This is done below, by utilizing a simulation and calculating the RV test statistic from that data:" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "RV test statistic: 0.00\n" + ] + } + ], + "source": [ + "x, y = quad_sim(100, 3)\n", + "\n", + "rv = RVCorr(which_test='rv')\n", + "test_stat = rv.test_statistic(x, y)[0]\n", + "print(\"RV test statistic: %.2f\" % test_stat)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "P-values are calculated via permutation tests as with other packages. This is done by permutting $y$ and calculating the test statistic. The number of times that the test statistics are greater than or equal to null divided by the replication factor is equal to the p-value. This is shown below:" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "RV p-value: 0.88\n" + ] + } + ], + "source": [ + "p_value = rv.p_value(x, y)[0]\n", + "print(\"RV p-value: %.2f\" % p_value)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### CCA" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$\\newcommand{\\cov}{\\mathrm{cov}}$This test infers information from the cross-covariance matrices of random variables. It is a generalization of the RV test and can be considered the most general case of almost all statistical tests.\n", + "\n", + "If $\\Sigma _{XX}=\\cov(X, X)$ and $\\Sigma _{YY}=\\cov(Y, Y)$, then:\n", + "\n", + "$$\\frac{a^{T}\\Sigma _{XX}b}{\\sqrt{a^{T}\\Sigma _{XX}a}\\sqrt{b^{T}\\Sigma _{YY}b}}$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As with the other tests, simply create an `RVCorr` object with `'cca'` as the `which_test` parameter and then call the test statistic method. This is done below, by utilizing a simulation and calculating the CCA test statistic from that data:" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CCA test statistic: 0.28\n" + ] + } + ], + "source": [ + "x, y = spiral_sim(100, 6)\n", + "\n", + "cca = RVCorr(which_test='cca')\n", + "test_stat = cca.test_statistic(x, y)[0]\n", + "print(\"CCA test statistic: %.2f\" % test_stat)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "P-values are calculated via permutation tests as with other packages. This is done by permutting $y$ and calculating the test statistic. The number of times that the test statistics are greater than or equal to null divided by the replication factor is equal to the p-value. This is shown below:" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CCA p-value: 0.00\n" + ] + } + ], + "source": [ + "p_value = cca.p_value(x, y)[0]\n", + "print(\"CCA p-value: %.2f\" % p_value)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/demos/rv_cca_hhg.ipynb b/demos/rv_cca_hhg.ipynb deleted file mode 100644 index 3a064f3..0000000 --- a/demos/rv_cca_hhg.ipynb +++ /dev/null @@ -1,264 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 174, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "from scipy.spatial.distance import pdist, squareform\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": 175, - "metadata": {}, - "outputs": [], - "source": [ - "from mgcpy import RVCorr, HHG\n", - "from mgcpy.benchmarks.power import power\n", - "from mgcpy.benchmarks.simulations import linear_sim, quad_sim, ubern_sim, exp_sim, w_sim, joint_sim, spiral_sim" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Test Statistic" - ] - }, - { - "cell_type": "code", - "execution_count": 176, - "metadata": {}, - "outputs": [], - "source": [ - "def test_stats_vs_dimension(corr_type, simulation_type, dim_range):\n", - " test_stats = []\n", - " for d in range(1, dim_range+1):\n", - " x, y = simulation_type(num_samp=100, num_dim=d, noise=0)\n", - " if corr_type == 'rv' or corr_type == 'cca':\n", - " corr = RVCorr(which_test=corr_type)\n", - " #else:\n", - " #corr = HHG()\n", - " test_stats.append(corr.test_statistic(x, y)[0])\n", - " return test_stats" - ] - }, - { - "cell_type": "code", - "execution_count": 177, - "metadata": {}, - "outputs": [], - "source": [ - "def plot_test_stats(simulation_type, dim_range, simulation_name):\n", - " rv_test_stats = test_stats_vs_dimension('rv', simulation_type, dim_range)\n", - " cca_test_stats = test_stats_vs_dimension('cca', simulation_type, dim_range)\n", - " #hhg_test_stats = test_stats_vs_dimension('hhg', simulation_type, dim_range) \n", - " plt.plot(rv_test_stats, label='RV')\n", - " plt.plot(cca_test_stats, label='CCA')\n", - " #plt.plot(hhg_test_stats, label='HHG')\n", - " plt.xlabel('Dimensions')\n", - " plt.ylabel('Test Statistics')\n", - " plt.legend()\n", - " plt.gca().set_xlim(1, dim_range+1)\n", - " plt.xticks(np.arange(0, dim_range+1, 5))\n", - " plt.title('Test Statistics \\n Data: {} Simulation, 100 samples, noise=0'.format(simulation_name))\n", - " plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 178, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAElCAYAAAALP/6mAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzs3Xd4lGXWwOHfSYfQk1BC79KDoohUO2DBLthW14pi3/WzrYu6a1u3WFBXXXWtiG0FRcCCgiAICEjvIKEEEiCEhJB2vj+eN2EIKZNkJo1zX9dcmXnrmZI58z5VVBVjjDEGIKSqAzDGGFN9WFIwxhhTwJKCMcaYApYUjDHGFLCkYIwxpoAlBWOMMQUsKRhTBUTkLRG5rxz7dRGRfcGIyRiwpGCqMRE54HPLE5GDPo+vrMBx54nIVaVsM1ZE1nrn2ikiU0Skjrduoog8XIbz3SIi3/guU9VrVfUZP/bdKSKDfPZbq6qN/D23MWUVVtUBGFMcVa2Xf19ENgM3qOo3xe8RGCJyNvAwMFxVl4lIDDAq2Oc1pjqwKwVTY4lIqIj8SUQ2ikiyiLwnIo28ddHeL/o9IrJPROaLSGMR+TtwIvC6dxXw9yIOfSIwW1WXAahqiqq+oaoHReQO4GLgT97+H3nne0RENolImogsF5FzvOV9gX8Bw/KvOrzlBVcbItJcRKZ5caaIyHfe8o+ApsAMb987ROQ4EcnxeQ1iReRt74pir4h8WNIxjSmNJQVTk/0ROAsYBLQCsoF/eutuwF0JtwRigXFAlqreCyzAXXXU8x4XNg843/uiHyAiEfkrVPV54BPgcW//S71Va4BTgIbA08BEEYlV1cXAXcD33vbNizjf/3n7xwItgPHeuS4FdgFnefs+X8S+HwICHAc0AyaUdExjSmNJwdRkNwP3q+p2Vc0EHgUuFxHBJYg4oKOq5qjqAlVN9+egXhHVaKA/MB1IFpGnRaTY/xdV/VBVd6hqnqq+A2wDTvDzeWQD8UAbVc1S1Vn+7CQi7YHBwK2quq/QvuU6pjGWFEyN5H3xtwamekUk+4DFuM90DPAf4AfgYxFJFJEnRCTU3+Or6mRVPQdoBFwKjAWuLiGe60XkV59YOuF+pfvjr8B2YKaIrBeRe/zcrzWwS1XTAnhMc4yzpGBqJHXD+24DTlPVRj63KFVNVtVDqvqIqh4HDMF9sY/O370M58lT1enALKBnUfuLSBfgBeAmoInXOmg9rlin1POpaqqq3qmqbXH1FQ+LyEA/9t0KNBWReoVXlHJMY4plScHUZK8AT4lIawARaSoi53n3zxCR7l6Rz34gB8j19ksCOhR3UBG5REQuFZFG4pwCDMTVNRS1fz0gD9gNhIjILbgrBXy2by0i4cWc73wRae9d/aR6cZYaq6puwiWrF0WkoYhEiMgQP45pTLEsKZia7BngG+A7EUkD5gLHe+taAp8DacByYCowyVv3T+Aar7VOUX0F9gK3AhtwCeUN4FFV/cRb/ypwoldUNFFVf8ElqIXADqC9dz/fNGAzsEtEEos4Xzfgey/WWcCzqpqfgP4K/NU717gi9h0DhAPrgJ24Yq7SjmlMscQm2THGGJPPrhSMMcYUsKRgjDGmgCUFY4wxBSwpGGOMKWBJoZYRkQdF5PWqjqM0IjJYRNYE6djjReTdCuy/QkSGBTCkY56IDCum5VW1ICKviMifqjqO6sCSgh9EREUk3RuULEVEvhWRy8uwf0D/IUSknRfTUaPcquoTqnpDoM5VESLSQ0RmeE0/94nIIhEZCaCqs1W1azWI8S0R+YvvMlXtoarfV8K5HxeRZSKSIyLji1h/hYhs8T57/xORJj7rmojIZ966LSJyRbDjrc1U9RZVfbyyzicid3uDGKaKyBsiEllZ5y6NJQX/9fGGcu4KvIXrMPTnqg2p+ihmCIkpwNe4gdqaAnfg2v0bZz1wH/Bl4RUi0gP4N25ojWZABvCSzyYTgCxv3ZXAy94+ppoTNzT7/cDpQDtc58RHqzKmI6iq3Uq54YYa6FRo2SVAJhDjPb4OWIXrLLQRuNlbHg0cxPV4PeDd4oGTgJ+AfbgOTy8CEX7G086LKayIdeOBdwtt9zvgNyAZeMhn2xDch3MDkILr3NXEZ/1HuA5RqbgOUD181r0FvIzrFJYOnFEojljv3I2KeQ7DgESfx5txo57+6h3vP7gvvK+81/QboHFR+/rsf0bh16Ck54EbliIb9+V6AJhSxLEicUNfb/du/wIifeMA7sWNZroDuK4cn693gfGFlj0BvO/zuKMXZ33vM5UFdPFZ/w7wVDHHPwnXmW4/rof0P8rwHr/kvQcHgDlAc+812AusBvoWeg8eAFZ6698Eoop5v+Nxo83uBjYBd/gTbymv43jcZ/ht7zOzAujnsz6/Q98+b935hZ7rX3w+u1942+0BZgMhpcVdhvf7feAJn8enAzsD9X1V0ZtdKZTf57ihmU/yHu8CzgUa4BLEP0XkeHUjc44Atqsb/rieqm7HDTlwN+4DOAD3wbg1/+Ai8oWI3B+gWAfhrnBOBx4RkW7e8juAC4ChuA/7Xg4PvQzuy6Az7lf+L8B7hY57Ba7HbX3gx0LrUnC/hN8VkQtEpJkfcV4MnAl0Ac7zzv8g7jUK8eItjyKfh6q+6t1/xntfziti34eAk4EEoA/u/fadda05brjslsD1wAQRaVzOOH31AJbmP1DVDXiJwLvlqupan+2XevsU5TngOVVtgEsuk3zWlfYeX4Z7vrHAIdwPmV+8xx8D/yi0/ZXA2d55unDkawWAN/TIFC/mlrjP5V3eL+jS4i3N+cBE3ECGk3E/tvCGGJkCzPCe6+3AeyJSVBHmvbhkH4f7YfIgoKXF7RX37Svh1sY7/hHvrXe/mbjJnKqcJYVyUtVs3C/vJt7jL1V1gzo/4D58g0vYf5GqzlM3rPNmXFHBUJ/156rqUwEK91FVPaiqS3EfwD7e8ptxVw6JqnoI90vrkvy6CnUTy6T5rOsjIg19jvu5qs5RN2hcZqHnp8CpuF+Pfwd2iMgsEelcQpwvqGqSqm7D/Tqbr6qLvfN/BvQtz5P343mU5ErgMVXdpaq7cZf5vqOlZnvrs1V1Ku4XdSDqSurhfr37SsUl4JLWFSUb6CRufocD6jPchR+vzWfeZzUT9x5kqurbqpqLm8uh8HvyoqpuVdU9uB8MY4qI50QgTlUfUzes90bgNQ4PWFhsvH74UVWnevG9w+HP+sm41+0p75zf4a4GioovGzcHRVvvfZ3tfZ5LjFtV39cjB2csfPvNO37h9y//fnHvX6WypFBO3i+PONzlJSIyQtzcv3vEDZ08khKGThY3AfsXXmXTflxxgb9DLZfVTp/7GbgPJUBb4DM5PNzzKtwVTDNxs5o9JSIbvPg2e/v4xri1pJN6yWacqnb0zpWOu7QvTpLP/YNFPD5qNNDS+Pk8ShIPbPF5vMVbli9FVXN8Hvu+vhVxAHfV6asBrlikpHVFuR73q321iCwQkXPB79emrO+J72ei8GuVry0Q7/srGvdrPP9qssh4/VT4sx7l/ciJB7aqal6h+FoWcYy/4a5yZ4ib1S//ir20uP1V+P3Lv1/c+1epLCmU3yjcyJs/ey0HPgGeBZqpGzp5KiUPnfwyrky2s3eZ/KDP9pVlKzBCjx56ehuuaGgUcAaueKSdt49vjGUZgnorrmiqZ2nb+iEdqJv/wKvkjitm29KeR2nPYTvuyyBfG29ZsK3g8K9cRKQDrn5jrXcLK3TV1cfb5yiquk5Vx+CKTZ7GzTERjX/vcVm19rlf3Gu1FdhU6HNXX1XzW6YVF29FbMeNVOv7ndcGN/z6Ebwrp3tVtQOuGPMeETm9tLhF5EqvhWJxt/zioyPeW+9+kqqmVPA5BoQlhTLymgJeifuCe9p7IyNw/7C7gRwRGYGbJjJfEhBT6LK8Pq4i7YCIHMfh0S3LIlJEonxuZX0/X8GNwNnWe25xIpI/QX19XBlyCu4L+ImyHFjcfMiPikgnEQkRkVjg9xwefroi1uJ+AZ7jXbE9jHv9i1La8yhxGG3gA9xcBHHec3gEVzFcKhG5VkQ2l7A+XESicP+HYd57mN+K6z3gPHH9OaKBx4BPvS+sdOBT4DFxc1EPxH25v1PMea4SkTjvV/I+b3EuFXyPi3GbiLQS13z2QVwRU2E/A/tF5P9EpI53xdJTRE4sJV5EZLOIXFuOuObjfkzc573uw3Bf+BMLbygi53qfW8H9j+YPO15i3Kr6nk+9YVG3/OKjt4HrxQ3t3hj3+X2rHM8pKCwp+G+piBzAXVbeANytqo+A+2WBqwSdhKusvQJXyYW3fjXuy2Wjd9kZD/zB2y4NVy55xD+PiHwlIg+WEtMB3CV8/u20Mj6n57w4Z4gbenoebgpKcB/cLbhfUisp+5d5Fu6X5ze4f6zluC+ga8t4nKOoaiquUv51L750XMVgUUp7Hv8Bunvvy/+K2P8vuJYwvwLLcJWsfyliu6K0xrXYKc5ruPdtDK5C+yBefYWqrgBuwSWHXbgv8Ft99r0VqOOt+wAY6+1TlOHACu/z+xww2qsjqOh7XJT3cfVpG73bUa+VV95/Hq7yfhOubu513NVKsfGKmys7pjxxqmoWrhJ6hHe+l4BrvP/NwjrjPrcHcBXrL6nq937E7W8s03DDvs/Evf5bgGrTvN2GzjYmSERkBnCnqq6q6lgqg3dVdIO6Oa6DcfxBwG1e0ZIJkqN6xBpjAkNVzyp9K+MvVf2Ro5s+mwCz4iNjjDEFrPjIGGNMAbtSMMYYU6DG1SnExsZqu3btqjoMY4ypURYtWpSsqsX15ylQ45JCu3btWLhwYVWHYYwxNYqIbCl9Kys+MsYY48OSgjHGmAKWFIwxxhSocXUKxhhTEdnZ2SQmJpKZmVn6xjVQVFQUrVq1Ijw8vFz7W1IwxhxTEhMTqV+/Pu3atcONeVd7qCopKSkkJibSvn37ch0jaMVH4iaj3iUiy4tZLyLyvIisF5FfReT4YMVijDH5MjMziYmJqXUJAUBEiImJqdBVUDDrFN7CjXZYnBG40Qg74+bKfTmIsRhjTIHamBDyVfS5BS0pqOosvFnJijEKeFudeUAjEWlR2nHT9+wsbRNjjDHlVJWtj1py5NR9iRQ9NR4icpOILBSRhRGZu8nLs/GajDE1V2hoKAkJCfTs2ZPzzjuPffvcXELt27dnzZo1R2x711138cwzz1RabFWZFIq6xiny215VX1XVfqraL5wc1m3aFOTQjDEmeOrUqcOSJUtYvnw5TZo0YcKECQCMHj2aiRMPTwaXl5fHxx9/zOWXX15psVVlUkjkyPlcW+Hn3LebfrUh1Y0xtcOAAQPYts1NFT1mzJgjksKsWbNo164dbdu2LW73gKvKJqmTgXEiMhE3BWSqqu7wZ8f0zYuAa4IZmzHmGPDolBWs3L4/oMfsHt+AP5/Xw69tc3Nz+fbbb7n++usB6N27NyEhISxdupQ+ffowceJExoyp3Inmgtkk9QPc/KZdRSRRRK4XkVtE5BZvk6m4OVzX4+aqvbWYQx0hJySCBvtWkJWTF5S4jTEm2A4ePEhCQgIxMTHs2bOHM888s2Bd/tVCTk4On3/+OZdeemmlxha0K4XS5lFVN7vPbWU+blhdurGJxb/tpX+HmHLHZ4wx/v6iD7T8OoXU1FTOPfdcJkyYwB133AG4pHDWWWcxdOhQevfuTdOmTSs1tho39lFoZF1aSTKLVm+o6lCMMaZCGjZsyPPPP8+zzz5LdnY2AB07diQmJob777+/0ouOoAYmhZCIugAkr51fxZEYY0zF9e3bt6D+IN+YMWNYvXo1F154YaXHU+OSAuEuKdRJXkZaZnYVB2OMMWV34MCBIx5PmTKFq6++uuDx3XffTWZmJg0bNqzs0GpgUggJ5WD9NvSQTczfWFKHaWOMMWVV85ICENHqeHqFbGbOhuSqDsUYY2qVGpkUQlsm0Fp28eta69lsjDGBVCOTAi0SAIhKWc6u/bVzogxjjKkKNTQp9AGgl2yyIiRjjAmgmpkU6jZBG7Whb/gW5qxPqepojDGm1qiZSQGQFgleUkjGdY42xpiaY+fOnYwePZqOHTvSvXt3Ro4cydq1a1m7di0jR46kU6dOdOvWjcsuu4ykpKSC/e68805atmxJXl5whvqpsUmB+ASaZm8nPTWFjcnpVR2NMcb4TVW58MILGTZsGBs2bGDlypU88cQTJCUlcc455zB27FjWr1/PqlWrGDt2LLt37wbcUNqfffYZrVu3ZtasWUGJreYmBa9eoUfIZuast3oFY0zNMXPmTMLDw7nlllsKliUkJLBu3ToGDBjAeeedV7D81FNPpWfPngX79ezZk7Fjx/LBBx8EJbaqHDq7Ylr0BWBQ3UTmrE/mmgHtqjYeY0zN89X9sHNZYI/ZvBeMeKrETZYvX84JJ5zg9/J8H3zwAWPGjGHUqFE8+OCDZGdnEx4eXuGQfdXcK4XoGGjYmoHRiczdkEKuTdFpjKnFsrKymDp1KhdccAENGjSgf//+zJgxI+DnqblXCgAt+tApcTlpmTks25ZKQutGVR2RMaYmKeUXfbD06NGDjz/+uMjlP/zwQ5H7TJs2jdTUVHr16gVARkYGdevW5ZxzzglobDX3SgGgRQL1DmymHhlWr2CMqTFOO+00Dh06xGuvvVawbMGCBXTq1Im5c+fy5ZdfFiyfNm0ay5Yt44MPPuD1119n8+bNbN68mU2bNjFjxgwyMjICGltQk4KIDBeRNSKyXkTuL2J9WxH5VkR+FZHvRaRVmU4Q73o2j4zdbUnBGFNjiAifffYZX3/9NR07dqRHjx6MHz+e+Ph4vvjiC1544QU6d+5M9+7deeutt2jQoAHTp08/4qogOjqaQYMGMWXKlIDGFrTiIxEJBSYAZwKJwAIRmayqK302exZ4W1X/KyKnAU8CVx99tGJ4LZDObLSD2zbt5WBWLnUiQgP1FIwxJmji4+OZNGlSkeumTZt21LI9e44eFfrTTz8NeFzBvFI4CVivqhtVNQuYCIwqtE134Fvv/swi1pesXlOoH0+v0M1k5eaxcIsNpW2MMRURzKTQEtjq8zjRW+ZrKXCxd/9CoL6IHDXxsojcJCILRWRhfieOAvEJND2wivBQ4UcrQjLGmAoJZlKQIpYVbjf6B2CoiCwGhgLbgJyjdlJ9VVX7qWq/uLi4I1e2SCAkZT0DWkYy18ZBMsb4oTYPjVPR5xbMpJAItPZ53ArY7ruBqm5X1YtUtS/wkLcstUxnadEHUM5rtofl21PZm55VsaiNMbVaVFQUKSkptTIxqCopKSlERUWV+xjB7KewAOgsIu1xVwCjgSt8NxCRWGCPquYBDwBvlPksXgukk+v8hupx/LQxhZG9WlQwdGNMbdWqVSsSExM5qii6loiKiqJVq7I15PQVtKSgqjkiMg6YDoQCb6jqChF5DFioqpOBYcCTIqLALOC2Mp+ofnOo15yWB9dQL7Inc9YnW1IwxhQrPDyc9u3bV3UY1VZQezSr6lRgaqFlj/jc/xg4ultfWbXoQ8jOpfRvf6P1VzDGmAqo2T2a88UnQPJahraPZnNKBlv3BLaHnzHGHCtqR1JokQCax7BGbiKKuTZFpzHGlEvtSApeZXPrg2uIqx9pU3QaY0w51Y6kUL8FRMchO39lYMcY5qxPJs+G0jbGmDKrHUlBxBUhbV/CwE6xpKRnsSYpraqjMsaYGqd2JAVwRUi7VzOwXTSAtUIyxphyqD1JoUUf0FziMzfSIS7akoIxxpRDLUoKrrKZ7YsZ2DGW+Zv2kJWTV7UxGWNMDVN7kkLDVlA3Bna4eoWMrFyWbN1X1VEZY0yNUnuSgogrQtq+lAEdYggRbChtY4wpo9qTFMAVIe1eRcPwXHq1bMhcSwrGGFMmtSspxCdAXg7sWsHATrEs3rqPtMzsqo7KGGNqjNqVFLw5m9m+hEGdYsnNU37eZFN0GmOMv2pXUmjUFqIawY6lHN+2MZFhIVavYIwxZVC7koKIK0LasYSo8FBObNfEpug0xpgyCGpSEJHhIrJGRNaLyP1FrG8jIjNFZLGI/CoiIyt80hYJkLQScg4xsFMsa5LS2JWWWeHDGmPMsSBoSUFEQoEJwAigOzBGRLoX2uxhYJI3R/No4KUKn7hFH8jLhl2rGNQpFsCuFowxxk/BvFI4CVivqhtVNQuYCIwqtI0CDbz7DYHtFT6rN4w2O5bQPb4BjeqGW72CMcb4KZhJoSWw1edxorfM13jgKhFJxE3beXtRBxKRm0RkoYgsLHWy7cbtIbIhbF9CaIgwoEMMc9cno2pDaRtjTGmCmRSkiGWFv5nHAG+paitgJPCOiBwVk6q+qqr9VLVfXFxcKWcVaNEbdiwBYGCnWLanZrIpOb08z8EYY44pwUwKiUBrn8etOLp46HpgEoCq/gREAbEVPnN8AiStgNzsgnoFGzXVGGNKF8yksADoLCLtRSQCV5E8udA2vwGnA4hIN1xSKKV8yA8tEiA3C3atom1MXVo2qmNTdBpjjB+ClhRUNQcYB0wHVuFaGa0QkcdE5Hxvs3uBG0VkKfABcK0GovC/xeHKZhFhYKcY5m5IJtem6DTGmBKFBfPgqjoVV4Hsu+wRn/srgYEBP3GTDhBRH3YsBVy9wqSFiSzflkqf1o0CfjpjjKktaleP5nwhId4w2q6y+ZSOrl7BmqYaY0zJamdSAJcUkpZDbg5x9SM5rnl95m6wpGCMMSWpvUkhPgFyMiF5DeCKkBZs3ktmdm4VB2aMMdVX7U0KBXM2uyKkQZ1iycrJY+HmvVUYlDHGVG+1NynEdIKIegWd2E5q34SwELF6BWOMKUHtTQohIdC8V8GVQnRkGH3bNOLH9RXvBmGMMbVV7U0K4IqQdi6DPFePMLhzHCu27yflwKEqDswYY6qn2p0U4hMg5yAkrwVgSJc4VK1pqjHGFKd2JwWfOZsBerVsSKO64fyw1oqQjDGmKLU7KcR2gfC6BT2bQ0OEQZ1imb3OhtI2xpii1O6kEBLqKpu9FkjgipB2px1i1Y60KgzMGGOqp1KTgoicLCJ1vftjROQZEWld2n7VRos+sOPXgsrmIZ3dfAyz11kRkjHGFObPlcKrwEER6Q08CCQB7wY1qkBqkQDZ6ZCyAYDmDaPo2qw+sywpGGPMUfxJCjnecNajgOdU9e9A/eCGFUA+czbnG9w5lgWb9pKRlVNFQRljTPXkT1JIF5E/AlcBX3rTZYYHN6wAiu0KYVEFLZDA1Stk5eYxf+OeKgzMGGOqH3+SwuW4+ZZvUdUduGk1/+HPwUVkuIisEZH1InJ/Eev/KSJLvNtaEdlXpuj9ERoGzXoecaVwUvsmRIaFWNNUY4wpxJ9JdsKAF1T1oPd4N/BNaTuJSCgwATgTN1/zAhGZ7E2sA4Cq3u2z/e1A3zLE7r/4BFj6IeTlQUgIUeGh9O8QY/UKxhhTiD9XCp8CvuNN5wGf+LHfScB6Vd2oqlnARFy9RHHG4KbkDLwWCZCVBns2Fiwa0jmWjbvTSdybEZRTGmNMTeRPUgjzvtQBUNVDQKQf+7UEtvo8TvSWHUVE2gLtge/8OG7Z5fds9ilCGtolv2mqDXlhjDH5/EkKKSIyMv+BiJwL+FNDK0UsK64b8WjgY1UtcgYcEblJRBaKyMLdu8tR5NO0G4RGHpEUOjWtR4uGUcyyegVjjCngT1IYCzwmIptEZBPwCHCzH/slAr6d3FoB24vZdjQlFB2p6quq2k9V+8XFxflx6kJCw6FZjyNaIIkIgzvH8uP6ZHJy88p+TGOMqYVKTQqqulZV++Eqgfuq6kmqutaPYy8AOotIexGJwH3xTy68kYh0BRoDP5Ut9DLK79nsM+bRkC5xpGXmsDQx8I2ejDGmJiq29ZGIjFHVD0TkjkLLAVDV50s6sKrmiMg4YDoQCryhqitE5DFgoarmJ4gxwEQN9gh18Qmw6E3YuwmadADcFJ0hAj+sTeaEtk2CenpjjKkJSmqS2tj7W1R5jV9f4Ko6FZhaaNkjhR6P9+dYFeY7Z7OXFBrVjaB3q0bMWrube87sUilhGGNMdVZsUlDVl7y7X6rqPN91InJyUKMKhqbdICTcVTb3vKhg8ZAucbz43Tr2ZWTRqG5EFQZojDFVz5+K5peKWDYh0IEEXVikq2xe9gls/KFg8dAuseQpzFmfUoXBGWNM9VBsUhCRk0TkTiBORO7wuT1MTRr7yNfwJyEkBN4+HyZdA/u20qdVI+pHhVnTVGOMoeQrhWggFlfEFOdzywIuDX5oQdD2FLjtZzj1IVg7A148kbDZf2NYezeUts3GZow51pVUpzATmCkib6rqRgBxTY/qqmp6ZQUYcOF1YOh90Gc0zPgTfP8ET9Zpyb1pl7E+6UQ6N29Q1REaY0yV8adOYbyINPBmX1sBbBKRe4IcV/A1agOX/ReumUxk3Xr8O+Kf1Jl0KexeU9WRGWNMlfEnKfRS1f3ABcAMXM/ka4MZVKXqMJTwW+fyQuSNNN67HF4+BaY/BJmpVR2ZMcZUOn+SQoSIhOFGOP2fNzhe7RoXIjSMlB7XcUbOP8jpfQX8NAFe6AeL33PDbRtjzDHCn6TwOvAbrjPbDyLSBjgQ1KiqwNAucezIrsdPPR6BG7+Dxm3h81vhP2fCtkVVHZ4xxlQKf8Y++qeqxqvqWd5QFFuB04IfWuXq36EJEaEhrmlqy+Ph9zPgglcgdSu8djp8Pg4OWLNVY0ztVuaxj3yUOPZRTVM3Iox+7Roza20yD52D68+QMAaOOwdm/Q3mvQwrJ8OoF6B7SXMFGWNMzVXSlYLv2EeFb7FBjqtKDOkSx5qkNHamZh5eGNUAznocbv0JGrV2ldDWn8EYU0sVmxQKjX30J98bhQa5qy2GdHZj/xU5d3NsZxgwzhUnWR2DMaaWOnbGPvJDtxb1iasfWfwUnV1HuEH1VnxWuYEZY0wlKalO4SRgAN7YRz6rGlBTxz4qRf5sbDNX7yI3TwkNKTSjaJ1G0Ol0WPE/OOsvIEXNOGqMMTXXsTX2kR+Gdoljb0Y2y7cV03mtx4WwPxESF1ZuYMYYUwnKNPZRWYnIcOA53Mxrr6vqU0VscxkwHjdxz1JVvaI85wqUQZ1iEYFZa3fTp3XHUDHfAAAgAElEQVSjozfoOgJCI2Dl/6D1iZUfoDHGBJE/dQr7ReRJEZksIjPyb6XtJCKhuLqHEUB3YIyIdC+0TWfgAWCgqvYA7ir7UwismHqR9IxvWHRlM0BUQ+joFSFZb2djTC3jT1J4F9gMdAGeBnYCS/zY7yRgvapu9IbGmIgbKsPXjcAEVd0LoKq7/Iw7qAZ3juWX3/axPzO76A3yi5C2WRGSMaZ28ScpxKnqv4EsVf0W+B3uC780LXG9n/Mlest8dQG6iMgcEZnnFTcdRURuEpGFIrJw9+7g9yoe0iWO3Dzlpw3FzMbWdQSERlorJGNMreNPUsj/ubxTRM4GegKt/divqKY5hXt9hQGdgWHAGOB1ETmqIF9VX1XVfqraLy4uzo9TV8zxbRoTHRFa/GxsUQ1cK6SVn1sRkjGmVvEnKTwhIg2BPwAP44qT/uDHfokcmTxaAduL2OZzVc1W1U3AGlySqFIRYSEM6Bhb8mxsPS6E/dsgcUHlBmeMMUHkT1LYpaqpqvqrqg5W1T7ADj/2WwB0FpH2IhIBjAYmF9rmf8CpACISiytOKldLp0Ab2iWWrXsOsjklo+gNugy3IiRjTK0TtB7NqpoDjAOmA6uASaq6QkQeE5Hzvc2mAykishKYCfxRVYspyK9cQ7p4Q16UWIR0hhUhGWNqlaD2aFbVqRQaJ0lVH/G5r8A93q1aaRsTTduYusxau5vfndKu6I16XAhrvoTEn6HNyZUanzHGBIP1aC7B4M6x/LQxhaycYq4EuloRkjGmdilTj2YRqa+qaZUWXRUb0jmOd+f9xqItexnQMeboDSLrQ+czXRHS2U+6ORiMMaYGK/ZbTEQeEpHjVHWjiER4vZgTRSRJRGrdzGtFGdAxhrAQKb53M7gipLQdsHV+5QVmjDFBUtJP2ytwTUQBrgEigRjcVJxPBjmuaqF+VDjHt21cfGUzQJezISzKipCMMbVCSUkhSw830h8OfKCqOaq6glo6dHZRhnaJY8X2/exOO1T0Br5FSNYKyRhTw5WUFA6JSDcRyb868B0Er25ww6o+8mdj+3F9CVcL3S+AAzth67xKisoYY4KjpKRwL66z2XrgeZ/K5pHAr5UQW7XQI74BTaIjmLW2mNnYwHVksyIkY0wtUNIczXNUtbOqNlbV8T7Lp6rqZZUSXTUQEiIM6hTL7HXJ5OUVM+RFZD3ofJZXhJRbuQEaY0wAWRtKPwzpEkfygUOs2rm/+I16XAgHkuC3nyovMGOMCTBLCn4Y0jkWoJQipLMhrI6bfMcYY2qoUpOCiBzVwa2oZbVZ0wZRHNe8fslNUyOioUuQi5CWfwK7Vgfn2MYYg39XCj/7uaxWG9oljoVb9pB+KKf4jXpcCOm7YMvcwAew5iv4+Pcw5c7AH9sYYzwl9WhuKiJ9gDoi0ktEenu3QRxDTVLzDekSR3auMm9jCYO4dj7LFSGtDHAR0oFd8Pk4CI1wzV6T1wf2+MYY4ynpSuEc4EXc5DgTfG4PAn8KfmjVS792jYkKD+Gr5TuLn3gnItrVLQSyCEkVPr8Nsg7AlR+BhMKS9wJzbGOMKaSkJqlvqupg4HpVHeJNsDNYVUeq6keVGGO1EBkWysXHt+LjRYk88vkKcnKL6b3c40JI3w1b5gTmxAteh3Uz4MzHocMwN4fD0onW9NUYExT+1Ck0FZEGACLyioj8LCKn+3NwERkuImtEZL2I3F/E+mtFZLeILPFuN5Qx/kr1+Kie3Dy0A+/M28J1by0g9WD20Rt1PgvC6wamI9uu1TDjYeh0Jpx0o1vW90pI2w4bZlb8+MYYU4g/SeEmVd0vImfhipLGAs+UtpOIhOKKm0YA3YExItK9iE0/VNUE7/Z6GWKvdCEhwgMjuvH0xb34aUMKF788l98KT9cZUdcVIa2aArklVEqXJucQfHqDK5IaNQFE3PIuI6BOE1jybvmPbYwxxfAnKeQXoI8A3lTVRX7udxKwXlU3qmoWMBEYVb4wq5fLT2zDO9f3Z3faIS54aQ4LNu85coNAFCF99xfYucwlhPrNDi8Pi4Del8HqLyFjT/H7G2NMOfjz5b5URKYC5wFfiUg9DieKkrQEtvo8TvSWFXaxiPwqIh+LSOuiDiQiN4nIQhFZuHt3CX0FKtGAjjH877aBNKwTzpWvzefTXxIPr+x0JoRHl78IaeMPMPcFOOE66Dri6PUJV0Buluu3YIwxAeRPUrgOGA+cpKoZQBRwvR/7SRHLCieTKUA7Ve0NfAP8t6gDqeqrqtpPVfvFxcX5cerK0T42ms9uPYXj2zbinklLeXb6Gjc+UkWKkDL2wGe3QExHOPuvRW/Tog806wWLrQjJGBNYpSYFVc0FOuDqEgDq+LMf7srA95d/K2B7oWOnqGr+RAWvASf4cdxqpVHdCN7+fX8u69eKF2eu5/YPFnMwK9cVIWUkw5Yf/T+YKnxxt+sAd/Hrrj6hOH2vhB1LIGlFxZ+EMcZ4/Bnm4kXgVOAqb1E68Iofx14AdBaR9iISAYzGDcXte+wWPg/PB1b5E3R1ExEWwtMX9+bBkccxdfkORr/6E7uaDy57EdLSD1zHt1MfhPi+JW/b6zIICYfF1mfBGBM4/vziP0VVbwYyAVR1DxBR2k6qmgOMA6bjvuwnqeoKEXlMRM73NrtDRFaIyFLgDuDacjyHakFEuGlIR1656gTWJh3ggn//Qmqb0/0vQtqzCab+EdoOhIF3lb59dAx0HQ6/fgi5RTSNNcaYcvAnKWSLSAhefYA3E5tf8056cy90UdWOqvpXb9kjqjrZu/+AqvZQ1T6qeqqq1vjR3s7u0ZyPbhlAnsKf1nWGjBTYPLvknXJz4NObXG/lC1+BkFD/TpZwlSuiWjej9G2NMcYPJY19lD8S6gTgEyBORB4FfgSeroTYaqyeLRvy+biBbIsdyAGNYvW3bxc/NAbA7L9D4s9w7j+gURv/T9TpDKjXzIqQjDEBU9KVws8Aqvo28DDwLLAXuFRVJ1ZCbDVaswZRvHvLMFbWH0jTbTN4+NMlZBc1NMbWBfDD066OoNclZTtJaBj0vhzWTYcD1aOprjGmZitpXoSCJqWqugKwZi5lVCcilH4jryNk0rf8tmga1+49xB/O6kp2rpKZnUt2Rionf/17iGrGlLg7SJu1kUM5uWRm55GZnUum7/3sPLJy87iyfxvO7tH88En6XgVzn3d1C6eMq7ona4ypFaS4Yg0RSQT+UdyOqlrsumDq16+fLly4sCpOXT7ZmfC3jmxsfjZnb7iE7NzDr/fTYa9ySegPjM76Ewv0uILlIQJR4aHuFhZCVHgokeGhpGZkkZKexeRxg+javP7hc7x2OmRnwNi5h4fDMMYYHyKySFX7lbZdSVcKoUA9iu6EZvwVHgVdR9Jh/dd8Ne7vbNqbRVR4CC22f02nmd+z5/jb+cegsUSGh3hJIJTwUEGK+HLfnXaIEc/NZtz7vzB53CDqRHgV0n2vdP0bti+GlsdX8hM0xtQmJSWFHar6WKVFUpv1uACWTaJT+iI6dT8D9m+HT11fhCbn/JkmoeF+HSaufiT/ujyBq9+Yz6NTVvDUxb3dip4Xw7QH3DwLlhSMMRVQUkWzXSEESsfTIaI+rPgf5OXB/8a6UVAveh38TAj5BnWOZezQjkxcsJXJS70O4lENodt5sOwjV1xljDHlVFJS8GvOBOOH8Cg4bqTryDb3edj4PZz9BMR2Ktfh7j6zCye0bcyDny5jS0q6W5hwBWSmwpovAxe3MeaYU9LMazYucyB1vwAy98E3f4au58AJ15b7UOGhITw3OoEQgds/WExWTh60HwoNWlmfBWNMhfjTo9kEQsfTILKB62x2/vMVbiXUqnFdnrmkD78mpvLMtNWuF3TCGNjwHaRuC1DQxphjjSWFyhIeBZe/C1d9AtGxATnk8J7NuWZAW17/cRPfrU5yRUioG1jPGGPKwZJCZeowFJr3CughHxzZjW4tGnDvpKXsDI13A+otec8Nw22MMWVkSaGGiwoP5cUr+nIoJ487Jy4mr88VsGcj/DavqkMzxtRAlhRqgY5x9XhsVE/mb9rDK7t7uXkcltisbMaYsrOkUEtcckIrLurbkme/T2RXmxGuT0RWelWHZYypYSwp1CKPXdCTtjHR/GlLAmQdgJWfV3VIxpgaJqhJQUSGi8gaEVkvIveXsN0lIqIiUupgTaZ49SLDeGFMX2Ye7EhSWEt0sRUhGWPKJmhJQURCcRP0jAC6A2NEpHsR29XHTcU5P1ixHEt6tmzIgyO78fbBgciWOW6aT2OM8VMwrxROAtar6kZVzQImAqOK2O5x4Bm8OaBNxf3ulHbs7ngheSokzX6zqsMxxtQgwUwKLYGtPo8TvWUFRKQv0FpVvyjpQCJyk4gsFJGFu3fbDGOlEREeHH0GC0L6kLfkfdIOHqrqkJyDe63/hDHVXDCTQlHjOBR8I4hICPBP4N7SDqSqr6pqP1XtFxcXF8AQa69GdSOIHXwdLXQ3/33vnZLniA6mrAxY+iG8dS483Q6++0vVxGGM8Uswk0Ii0NrncStgu8/j+kBP4HsR2QycDEy2yubA6Tj4cg6F1qPllk/5aGFi5Z1YFRIXwZS74O9d4bObIDUR2g6C2X93o8QaY6qlkibZqagFQGcRaQ9sA0YDV+SvVNVUoGAQIBH5HviDqtaguTarufA6hCdcxjmL3uWUyT/Tt00jOjerX/p+5ZWe7OaKXvwu7FoJYXXcBEN9r3LDb2RnwKvD4NObYeycgI0BZYwJnKBdKahqDjAOmA6sAiap6goReUxEzg/Wec2RQvpeRQRZXBA2n3HvLyYzOzewJ8jNgbUz4MOr4O/HwfQHIbwunPsv+MMauPAVaDfIjQobEQ2XvOHqFv43tlLrFzYnp/PolBVMW76D3Dyr16hxFvwHPrnRTVJlgkqqrKy5nPr166cLF9rFhN9U4aWTSc2Los+2+2hUN5wT2zWhf/smnNS+Cd1bNCAstBy/DVI2uIH3lrwPaTugbiz0Ge2uCpp2K3nf+a/CV3+Es5+EAbeW73n5SVX5aFEi4yevICPLJcR2MXW5fnAHLj2hFVHhoUE9vwmA7Yvh9TMgLwcueMUNEW/KTEQWqWqpxfOWFI4Fc56Hr//EvBFT+eS3evy8eQ9bUjIAiI4I5QSfJNG7VUMiw4r5osxKd72kF78LW+aAhEDns1wi6Hw2hEX4F48qTLwC1n0NN3wD8QkBeqJHSs3I5sHPlvHlsh2c3KEJz17q5p/496yNLN26jybREVwzoC3XDGhHk2g/YzeVKzsTXh3qZhWs1xQO7IbbF7qrTlMmlhTMYWlJ8I9ucMo4OPMxAHamZvLz5j38vCmFnzftYW3SAQAiwkLo3yqKs5vu58R6yXQgkfC962D3Wjf6al42NOnoEkGfMdCgRfliytgDLw+E8Dpw8yyIrBeoZwvAvI0p3PPhEnalHeKes7pw85COhIa4BnGqys+b9vDa7I18s2oXUeEhXHJCK24Y1IF2sfZlU63MeBjmvuDmIYmoB2+cDcMehGH/V9WR1TiWFMyR3h8N23+Bu1dCqNe+IGMPJK+F3Ws4uGMVBxKXE75nHY2ydhbslqMhJIW1IL1+RyJaHEeLfqOI7DCwwjPHAbBpNvz3PDc50AUvVfx4QHZuHv/6Zi0vfb+BdjHR/OvyBPq0blTs9ut3pfHarE18tngb2Xl5DO/RnJuGdKBvm8YBicdUwOY58NY50O86OPefbtmk38G6GXD7L+X/QXKMsqRgjrRqiqsMPu5cOLgPktdAuk9HwLAoiO0MsV0hrisHG3ZkWVZzZifX56ctB1iauI/sXKVFwyhuP60zl/ZrRXh56iIK++6vMOsZuOh16H1phQ61OTmdOycuZmliKpf1a8Wfz+tBdKR/Dex27c/krbmbeXfeFvZn5nBSuybcOKQDpx/XlJCQACRAUzaH0tyVpAjcMufwleSeTTDhJOh1GVwwoWpjrGEsKZgj5WS5f6aDe7wv/i4Qd9zh+w3bQEjxX/KZ2bn8tCGF579bx+Lf9tE2pi53ndGZ8/u0LCiWKZfcHPdrMGkF3DILmnQo8yF8K5PDQoSnLu7NyF7l+xWZfiiHDxds5T8/bmLbvoN0jIvmxsEduKBvS6uUrkxT7oRF/4XfT4M2Jx+5bsafXJHSzT9Aiz5VE18NZEnBHC0vz/3yqkDRj6ry3epdPDtjLat27KdLs3rcc2YXzu7RHCnvcff9Bq8McnUVv5/uf4U1R1Ym92/fhH9enkB8ozrli8NHTm4eXy7bwauzNrJi+35i60Vy3cB2XD+ovSWHYFv3Nbx3CQy8s6AO7AgH98ELx0PT7vC7KYEpyjwG+JsUbD6FY0lISIX/gUSE07s148vbB/HiFX3JyVNuefcXzn9xDt+v2VW+4TQatYHzX3B1HjP9HwZj/sYURjw3i+krdnLf8K68f+PJRScEVVj4BvyrN6yZ5texw0JDGJXQki9uH8T7N/SnR3wD/jZ9Dee/+COrd+73O8ZqY/knrv7m4N6qjqRkGXvg83HuC//Uh4repk4jGPYAbJ4Na76q3PiOAXalYCokJzePzxZv47lv15G49yAntmvMH87qSv8OMWU/2JS7YNGbcNWn0On0YjfzrUxu26Quz43uW3xl8r6tMHmcG1ojPNo1o73xW4jrWubwfli7m3snLWV/ZjYPjezGNQPalv/qqDKtnQ4fjAHNhZNugpF/q+qIivfx72HlZLjxO2jRu/jtcnPg5VNc34Vb55Xp6vJYZVcKplKEhYZwab/WfHfvMB4f1YMtKRlc/uo8rv7PfJZu3Ve2g539BMR1g89ugQO7itxkc3I6l7zyExNmbuDSE1rx5R2Di04IqvDL2/DSAEhc6Fqv3DYfwqPcF+TBMsYGDO0Sx7S7BjOwYwx/nryC6/+7kOQD1WQE2uJsmQuTroHmvSDhKljwOuxcXtVRFW35J+427P9KTgjgWtCd9RfYswEW/qdy4jtG2JWCCaiDWbm8M28zL3+/gb0Z2ZzVvRn3ntWVrs39HHMpaSW8dqobK+nKjzmUp+xJzyLlQBaLt+7jqamrCA0RnryoN+f0LqYyOXUbTLkD1n8D7QbDqAnQuK1bt+UnV4zSYRhc8SGElL1+QFX579zNPPHVahpEhfP3y/owtEs1HL135zJ48xzX6ev309xV0gsnuB7n135Zvcri03bCSycfrlcK9aPVmCq8c6Hr8XzHYqjbJPhx1mBW0WyqVFpmNm/8uJnXZ2/kQFYO5/eJ5+4zutCycR32pmeR4n3Rp6QfKvi7Jz2L5ANZ9Nv1KTcfmMDf9GomHBpxxHFLrExWdcNuTHvAdbI78zHod/3RraoWvgFf3A2D7oYzxpf7Oa7euZ87PljM2qQD3DCoPX8c3rX43uCVbc9GeGM4hIS5L9lG3oDFC9+EL+6Ci/8DvS6p2hjzqcL7l7l+K7fMdk2j/ZW0wjVS6H8LDH8yeDHWApYUTLWwLyOLf8/ayFtzNpOZk1vsGHihIUKT6AhioiOIiQ7nvtS/0jP9Jz5JeIOc5n2JqRdB0/qR9G7VqOgmsPt3uGaM66a7q4xRL5bcvDW//uKSN6DnxeV+fpnZuTwxdRVv/7SF7i0a8PyYvnRqGtje2WWWttP1/M3c764QfOtP8nLdlVh1Gi5i0X/dld2IZ6D/zWXff/IdbhyuW+dDbKfAx1dLWFIw1cqutEw+/HkreQpN6kUQGx3hkkC9SGLrRdAgKvzITmIZe+CVwRAa7obBiGpQ9IFV3XDdX93n+mKcMd5VppbQ5wJw2759PmxfAtdPr3B7969XJnHfx0s5mJ3Ln8/rwegTW1dNJfTBva7IaO9m11yz1QlHb/PbfHjjLBh8L5z+SKWHeIS9m10ntZbHw9Wfl/6+FSUtyTVR7TAMRr8X4ABrD0sKpubbMtd1bOt1KVz06tHr05JcUciaqdD6ZDdURkxH/49/YJeb30FC4KbvKzy/Q9L+TO6dtJQf1yczvEdznrq4F43qVmKrmKwMV8a+bRFc+RF0PLX4bT+9GVZ86lrulOU1C6S8PPjvua7uY+zcw0Vc5THrWfjucfjdF9B+cOBirEWs9ZGp+dqeAkP/z10JLPng8HJVWPYxvNQfNnwHZ/0Vrpta9i+3ek3h8nfdcB+Tfge52RUKt1mDKN7+/Uk8OPI4vl2dxPB/zeanDSkVOqbfcrPho9/B1vlw8eslJwSAMx+F0Eg3/0VVmfeSG213+FMVSwgAA26Dhq3d87E5FyokqElBRIaLyBoRWS8i9xex/hYRWSYiS0TkRxHpHsx4TA005I+ujuDLeyF5vSsLn3Q1fHK9a6ly82w3+ms5WhEBrtjivOdhy48B+YIMCRFuGtKRT8cOpG5EKFe8Po9npq0mO9e/L6q8PGVXWiZLt+5j2vIdvPHjJv765Upue/8Xbn5nIcu3pRa1E/zvVjdQ3Ln/dLPdlaZ+cxh6H6yd5iZJqmy7VsO3j0HXc9yAiBUVXscVHe78FX6dWPHjHcOCVnwkIqHAWuBM3HzNC4AxqrrSZ5sGqrrfu38+cKuqDi/puFZ8dAxKTXTlzvWaQkYKHDoApz4Ip9xe/mRQ2PSH4KcX4fwX4firA3LI9EM5PDZlJR8u3Eqf1o147vIEGtQJZ/u+g+xMzWRH6kG2p2ayY5/3N/UgSamHyCqUQCLCQohvGEXqwWz2Z+Zwy9AO3H5aZzfchip89X/w879d/cDge/0PMCfLdQDTXK8DWGRAnnepcrPdpDmpW13lcL0ANedVdcfdvw1uX1Q9KtGrEX+Lj4I5R/NJwHpV3egFNBEYBRQkhfyE4IkGalYFh6kcDVu5+oKJV0D88XDBy9D0uMCe44xHXfPGL+9xAwW2PrHCh4yODOPpS3ozpEscD3z6K8Oe/f6obcJChOYNo4hvWIe+rRvTope736JhFPGN3N8m0RGICPsysnj8i1VMmLmB6SuSeOaS3hy/6TWXEAaMg0H3lC3AsAgY8TS8exH8NAEGl3H/8pr1LOxYApe9E7iEAK7fxdlPuEr0uS/AsKMKJ4wfgnmlcAkwXFVv8B5fDfRX1XGFtrsNuAeIAE5T1XVFHOsm4CaANm3anLBly5agxGyquT0b3Wiu/nRsKo+MPa65Znamq3gO4Hj92/YdZNKCrTSoE058wyhaNKpDfMMoYutFlnlo7plrdvHQp8s4/cAUHg9/k5xeYwi78KXytdwBmHglbJjpmqg2iC/fMfy17Rf3a77XJUU3HgiEj651Q3vcvij4z6cGqQ4VzUV90o/KQKo6QVU7Av8HPFzUgVT1VVXtp6r94uKqYc9RUzmadAheQgDXI3b0B24s/w+vcskhQFo2qsPdZ3bh+kHtGdGrBQmtG9G0QVS55mo4tWtTvj07mUfD3+Lr3BM4c/0lzN20p/zBnf1XN4bQjD+V/xj+yD7ohjCp18z1SQiWM8a75/Od/4MrmsOCmRQSAd8mBa2A7SVsPxHwo4bMmCBq1h0u+jdsW+gqt6tjk+1131Dni1sJaXsKDa56h7yQUK54bT4PfbaMtMxytKBq3M4NU738YzfbWbB8+7ib3OmCCW6k02Bp3A5OHut6t29fErzz1FLBTAoLgM4i0l5EIoDRwGTfDUTEtz/7OcBRRUfGVLpu57mmsEvehZ+DVMRRXlt/dq2v4rrBmA/o37Ul0+4cwg2D2vP+z79x9j9nMXNN0YMJlmjQ3a5J51f3uRFIA0hVWf79R+i8l8g94XroeFpAj1+kwfe6K78ZD1fPxF6NBS0pqGoOMA6YDqwCJqnqChF5zGtpBDBORFaIyBJcvcLvghWPMWUy9H7XXHLaA7BpVlVH4ySthPcudc1Jr/4UohoCUCcilIfP7c4nY0+hbmQY1725gHsmLWFfRpb/x46o60YdTVruhv8IgEM5uXz88ybee+oWus+8kTV5rTh39Vn8sHZ36TtXVFRD10Jt82zXudH4zXo0G1OczP2uUjR9N9w00xVL+CMv1w3fsGsV7F7l/u5a7ZZJiBu6IzTC3cK8vwXLIn3ue3/DvGX5/Qmun15sLIdycnnh2/W8/MMGGteN4C8X9GB4Tz8rzFXd0B87foXbf4HocsyJAexNz+K9+Vv4au4vPJL1D/qHrGZzq1Fs6T+e8dN/Y1NyOiN6Nufhc7vTMgCz5BWrYM6FbNf09Rifc8GGuTAmEFI2uBZJDVvD9TOObPuu6tra71p1+LZ7FexeAzk+ldQN27jhqvN7XOdmebds9zfn0OH7BX99l3nLoxrCJW+6eo9SLN+Wyn0f/8rKHfs5p1cLxp/fg7j6fvRD2LXK9Qk5/mo477kyvVQbdx/gjTmb+HhRIqfkLuS5qFepG5JDyLn/QBLGAC5pvT57Ey98tw5BGHdaJ24Y3D54o8vmT+159pMw4NbgnKOGsKRgTKCs/8YV23QZAe0G+iSANZCVdni7+vGu/0RcN5cEmnZzI5RG+jmXRIBl5+bx6qyNPPfNOupGhnL/8OMY3CWO+IZRJQ/WN+0BmPeyuzqK71viOVSV+Zv28PrsjXy7ehd1Q/J4pfnnDE75yE3sc8lbRY5cmrg3g8e/WMn0FUm0j41m/Pk9gjMnharrh7HtlwrNuaCqNWOWvRJYUjAmkOY8B197I4pGx7kObk27uyTQtLv78q/TuGpjLMa6pDTu++RXFv/mZptrEBVGtxYN6NaiAd29v52b1XM9pAEyU91kPI3bu7kYiuj/kJ2bx9RlO3ht9kaWb9tPk+gIxvUJ4eptjxKetNSNVHvm426muxJ8v2YX4yevYHNKRvCKlPLnXOgyHHpcBDEd3BApRbSAUlV2px1iTVIaa3amsTYpjTVJB1iXlEaP+Aa8ed1J1IsMZp/f4LGkYEygpWxwRTgVHE21KuTmKUu27mPljv2s8m5rdqaRkZULuPksOsRGFySLUw9O57j5D6AXvIz4jE2UejCbiT//xltzN7MjNZMOcdHcMKgDl0TOI6GJW1kAAAtWSURBVGLqPW7YkVEToNu5fsd2KCeX12Zt5MWZ64NXpPTtYzD7H/h2lcqrE0NGvTYkhbdkc15zlmXGMj+1EcsPxpJGXQBi60XQpVl9Wjeuy8e/JDKwUyz/+V0/wkNr3liilhSMMSXKy1O27MkoSBLulsa2fQcR8vgs4s+0Cknhgfg3adeyOVk5eXy8KJH0rFwGdIjhxiHtGdYumpDp98Pid6B1fzejWzlHPC1cpPTo+T0YEoAipX0ZWWxKTmfjjhSSt67h4M51hOzdQOyhRNrJTtqF7CRejuz8lx3ZBGI6Eh7X2XWajOnAlOTm3D5tH6NPbM2TF/WqccVJlhSMMeWSmpHNqp372b16Duf9fDWfRl3E/QcuIy9POb9PPL8f1J6eLRu6JrIfXQvJa924ScMecK2kKqg8RUoZWTlsSk5nU3I6m5PT2ehzf2/G4Q59kWEhdG5Wjy7N6tO1WX26NHd/W9TNQ/ZugT0b3BXhng2QstH9TdtRsP/O6G68tu94Wg26gutGDKrwc61MlhSMMRX3+W2wdCI5N8/hUKNOREeGucrbRW/BtPshsoHrAR7gDmn/396dx1hVnnEc//4cQGBQVBjrArIoaHGpCNIqLqDUYNuIO9qSWG1ibTUt2sQQaWpjYrXaWou1UmtFY1GjAmqta62CcamgIpuyBK2yQ6osyjo8/eMcruP1Mgwzc++ZA79PMrn3nnPPOc+8OXOfue857/OW6lK65MTuLFu9If3wX8cHqz5PHz9j+ZqNX9r+gL3b0qNzNT1qqunRqZoenavpWVNNt07Vpadzrc+mz5K6WwtfJmY+hpYmo6RXdepH529eDH3Obt7CfmXipGBmTbduZXLRuUs/GDERNq5J5sKePQl6Dk6K2nXYv2yHr9ulVGy/6jZ079SeHp070LOmmu7ph3/3zu1p36Z8F4M3rZjP4w/cQd81/6KXFoOqoOepyVzfR3yvvCU8msBJwcyaxxt3Jd8KBo+Gd/6ezG9x2i9h4MjGV2bdSVPmreTtjz6hW6f2hQ//ik51WmT1+s1cMPY1qj+dxz3H/ZdOH/4jGZxY1QYOG5IkiMPPbFFzOjgpmFnzqN0MY09OBuZ17Arn3wtdB2QdVeYWf7qec+58lao9xKSfnMgBn82BWROTn7VLoHX75DbYo85LEsUObs8tNycFM2s+S2fAzEeTC8otdDxGFmYvWc2FY1/nkE7VPHrFCckYhq1b4aPXYdYEmPN4MlvgnntD3xEw9KbMYnVSMDOrgMnzVnLZfVNLj2Go3QIfTE4SRLt9k7krMtISJtkxM9vlndq7ht+ccxRT5q1k9KSZfOkf7apWcNjpyXSyGSaEnZHP8dpmZi3I8OMPYfEn6xnz7wV02bc9Pzu91443aqGcFMzMmsHV3+7Nok/Wc9sL8zhon3ac369L1iE1ipOCmVkzkMTN5x3D8rUbGDVhBgd2bMvAw/JXJ6us1xQkDZU0V9ICSaNKrL9G0hxJMyS9KKlbOeMxMyunNq324K4R/Ti0pgNXPPAW7y9bk3VIO61sSUFSFXAncCbQB7hYUvHsIO8A/SPiGOAx4JZyxWNmVgl7t23NuEuPp/2eVVw6bipLV6/POqSdUs5vCgOABRGxMCI2AQ8Dw+q+ISJeiojP05dvAPnshDMzq+Ogfdox7ocDWLthC5eOm8raDZt3vFELUc6kcDDwcZ3Xi9Jl2/Mj4JlSKyRdLmmapGkrV1Zg0m8zsybqc9De/PkHxzF/xTp+Ov5tNtduzTqkBilnUihVirDkSDlJI4D+wK2l1kfE3RHRPyL619S0/GqEZmYAp/Su4aZzj+aV+au4bmLRGIYWqpx3Hy0C6s620QVYUvwmSUOA0cCpEbGxeL2ZWZ5d2L8rSz5d37wzyZVROZPCVKCXpB7AYuAi4Pt13yCpL/AXYGhErChjLGZmmRk5pHfWITRY2bqPImILcBXwHPAe8EhEzJZ0g6Sz0rfdCnQAHpU0XdKT5YrHzMx2rKyD1yLiaeDpomW/qvN8SDmPb2ZmO8cF8czMrMBJwczMCpwUzMyswEnBzMwKnBTMzKzAScHMzApyN0ezpLXA3KzjyLHOwKqsg8gxt1/jue2apqnt1y0idlgnKI+T7MxtyOTTVpqkaW6/xnP7NZ7brmkq1X7uPjIzswInBTMzK8hjUrg76wByzu3XNG6/xnPbNU1F2i93F5rNzKx88vhNwczMysRJwczMCnKVFCQNlTRX0gJJo7KOJ08kfShpZjpvxbSs42npJN0raYWkWXWW7SfpBUnz08d9s4yxJdtO+/1a0uL0HJwu6TtZxthSSeoq6SVJ70maLenn6fKKnH+5SQqSqoA7gTOBPsDFkvpkG1XuDI6IY32veIPcBwwtWjYKeDEiegEvpq+ttPv4avsB/CE9B49N51uxr9oC/CIivg58C7gy/ayryPmXm6QADAAWRMTCiNgEPAwMyzgm20VFxBTgf0WLhwH3p8/vB86uaFA5sp32swaIiKUR8Xb6fC3JzJUHU6HzL09J4WDg4zqvF6XLrGECeF7SW5IuzzqYnPpaRCyF5A8X2D/jePLoKkkz0u4ld7/tgKTuQF/gP1To/MtTUlCJZb6ftuEGRsRxJN1vV0o6JeuAbLdzF3AocCywFPh9tuG0bJI6ABOAkRGxplLHzVNSWAR0rfO6C7Ako1hyJyKWpI8rgEkk3XG2c5ZLOhAgfVyRcTy5EhHLI6I2IrYCf8Xn4HZJak2SEMZHxMR0cUXOvzwlhalAL0k9JLUBLgKezDimXJBULWmvbc+BM4BZ9W9lJTwJXJI+vwR4IsNYcmfbB1rqHHwOliRJwN+A9yLitjqrKnL+5WpEc3oL2+1AFXBvRNyYcUi5IKknybcDSCrjPui2q5+kh4BBJOWKlwPXA48DjwCHAB8BF0SEL6aWsJ32G0TSdRTAh8CPt/WR2xcknQS8AswEtqaLryO5rlD28y9XScHMzMorT91HZmZWZk4KZmZW4KRgZmYFTgpmZlbgpGBmZgVOCrbLklSbVuOcLeldSddI2iNd11/SmIziei2L45o1hG9JtV2WpHUR0SF9vj/wIPBqRFyfbWRmLZe/KdhuIS3vcTlJQTZJGiTpKSjU+b9f0vPpvBPnSrolnX/i2bTkAJL6SZqcFhV8rk7JgZcl/VbSm5LmSTo5XX5kumx6WgSuV7p8XfooSbdKmpUea3i6fFC6z8ckvS9pfDrKFUk3S5qT7u93lW5H2/W1yjoAs0qJiIVp91Gp6pKHAoNJ5up4HTgvIq6VNAn4rqR/AncAwyJiZfoBfiNwWbp9q4gYkI66vx4YAlwB/DEixqelWaqKjnkuyQjfb5CM/J0qaUq6ri9wJEl9r1eBgZLmkJSHOCIiQtI+TW4UsyJOCra7KVVtF+CZiNgsaSbJh/ez6fKZQHfgcOAo4IX0n/Yqkkqf22wrWvZW+n5IkstoSV2AiRExv+iYJwEPRUQtSbGzycDxwBrgzYhYBCBperrPN4ANwD1pknpqp35zswZw95HtNtIaULWUri65ESCt4Lk5vrjYtpXknycBs+vMGnZ0RJxRvH26/1bpvh4EzgLWA89JOq04pHrC3VjneS3JN5EtJJVFJ5BMsPJsqQ3NmsJJwXYLkmqAscCfonF3V8wFaiSdkO6vtaQjd3DMnsDCiBhDUuHymKK3TAGGS6pK4zsFeLOe/XUAOqbTWI4k6Xoya1buPrJdWbu066U1yby3DwC31b9JaRGxSdL5wBhJHUn+dm4HZtez2XBghKTNwDLghqL1k4ATgHdJKodeGxHLJB2xnf3tBTwhqS3Jt4yrG/O7mNXHt6SamVmBu4/MzKzAScHMzAqcFMzMrMBJwczMCpwUzMyswEnBzMwKnBTMzKzg/+vbpHju4xWeAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plot_test_stats(linear_sim, 20, 'Linear')" - ] - }, - { - "cell_type": "code", - "execution_count": 179, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plot_test_stats(spiral_sim, 20, 'Spiral')" - ] - }, - { - "cell_type": "code", - "execution_count": 180, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plot_test_stats(quad_sim, 20, 'Quadratic')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## P-value" - ] - }, - { - "cell_type": "code", - "execution_count": 184, - "metadata": {}, - "outputs": [], - "source": [ - "def pvalue_vs_dimension(corr_type, simulation_type, dim_range):\n", - " p_value = []\n", - " for d in range(1, dim_range+1):\n", - " x, y = simulation_type(num_samp=100, num_dim=d, noise=0)\n", - " if corr_type == 'rv' or corr_type == 'cca':\n", - " corr = RVCorr(which_test=corr_type)\n", - " #else:\n", - " #corr = HHG()\n", - " p_value.append(corr.p_value(x, y)[0])\n", - " return p_value" - ] - }, - { - "cell_type": "code", - "execution_count": 185, - "metadata": {}, - "outputs": [], - "source": [ - "def plot_p_value(simulation_type, dim_range, simulation_name):\n", - " rv_pvalue = pvalue_vs_dimension('rv', simulation_type, dim_range)\n", - " cca_pvalue = pvalue_vs_dimension('cca', simulation_type, dim_range)\n", - " #hhg_pvalue = pvalue_vs_dimension('hhg', simulation_type, dim_range)\n", - " plt.plot(rv_pvalue, label='RV')\n", - " plt.plot(cca_pvalue, label='CCA')\n", - " #plt.plot(hhg_pvalue, label='HHG')\n", - " plt.xlabel('Dimensions')\n", - " plt.ylabel('pvalue')\n", - " plt.legend()\n", - " plt.gca().set_xlim(1, dim_range+1)\n", - " plt.xticks(np.arange(0, dim_range+1, 5))\n", - " plt.title('P-value \\n Data: {} Simulation, 100 samples, noise=0'.format(simulation_name))\n", - " plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 186, - "metadata": {}, - "outputs": [ - { - "ename": "TypeError", - "evalue": "float() argument must be a string or a number, not 'dict'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mplot_p_value\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlinear_sim\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m20\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'Linear'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m\u001b[0m in \u001b[0;36mplot_p_value\u001b[0;34m(simulation_type, dim_range, simulation_name)\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mcca_pvalue\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpvalue_vs_dimension\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'cca'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msimulation_type\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdim_range\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;31m#hhg_pvalue = pvalue_vs_dimension('hhg', simulation_type, dim_range)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrv_pvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'RV'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcca_pvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'CCA'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;31m#plt.plot(hhg_pvalue, label='HHG')\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/matplotlib/pyplot.py\u001b[0m in \u001b[0;36mplot\u001b[0;34m(scalex, scaley, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 2747\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscalex\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscaley\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2748\u001b[0m return gca().plot(\n\u001b[0;32m-> 2749\u001b[0;31m *args, scalex=scalex, scaley=scaley, data=data, **kwargs)\n\u001b[0m\u001b[1;32m 2750\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2751\u001b[0m \u001b[0;31m# Autogenerated by boilerplate.py. Do not edit as changes will be lost.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/matplotlib/__init__.py\u001b[0m in \u001b[0;36minner\u001b[0;34m(ax, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1783\u001b[0m \u001b[0;34m\"the Matplotlib list!)\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mlabel_namer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__name__\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1784\u001b[0m RuntimeWarning, stacklevel=2)\n\u001b[0;32m-> 1785\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1786\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1787\u001b[0m inner.__doc__ = _add_data_doc(inner.__doc__,\n", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_axes.py\u001b[0m in \u001b[0;36mplot\u001b[0;34m(self, scalex, scaley, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1603\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1604\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mline\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_lines\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1605\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_line\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1606\u001b[0m \u001b[0mlines\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1607\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36madd_line\u001b[0;34m(self, line)\u001b[0m\n\u001b[1;32m 1883\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_clip_path\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpatch\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1884\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1885\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_line_limits\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1886\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_label\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1887\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_label\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'_line%d'\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlines\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m_update_line_limits\u001b[0;34m(self, line)\u001b[0m\n\u001b[1;32m 1905\u001b[0m \u001b[0mFigures\u001b[0m \u001b[0mout\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mdata\u001b[0m \u001b[0mlimit\u001b[0m \u001b[0mof\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mgiven\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mupdating\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataLim\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1906\u001b[0m \"\"\"\n\u001b[0;32m-> 1907\u001b[0;31m \u001b[0mpath\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_path\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1908\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvertices\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msize\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1909\u001b[0m \u001b[0;32mreturn\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/matplotlib/lines.py\u001b[0m in \u001b[0;36mget_path\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 943\u001b[0m \"\"\"\n\u001b[1;32m 944\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_invalidy\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_invalidx\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 945\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecache\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 946\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_path\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 947\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/matplotlib/lines.py\u001b[0m in \u001b[0;36mrecache\u001b[0;34m(self, always)\u001b[0m\n\u001b[1;32m 643\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0malways\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_invalidy\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 644\u001b[0m \u001b[0myconv\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconvert_yunits\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_yorig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 645\u001b[0;31m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_to_unmasked_float_array\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0myconv\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mravel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 646\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 647\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_y\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/matplotlib/cbook/__init__.py\u001b[0m in \u001b[0;36m_to_unmasked_float_array\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 1363\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfilled\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnan\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1364\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1365\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1366\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1367\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/numpy/core/numeric.py\u001b[0m in \u001b[0;36masarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 499\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 500\u001b[0m \"\"\"\n\u001b[0;32m--> 501\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 502\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 503\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mTypeError\u001b[0m: float() argument must be a string or a number, not 'dict'" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plot_p_value(linear_sim, 20, 'Linear')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.6" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/mgcpy/independence_tests/abstract_class.py b/mgcpy/independence_tests/abstract_class.py index 3174d3f..c3a68a4 100644 --- a/mgcpy/independence_tests/abstract_class.py +++ b/mgcpy/independence_tests/abstract_class.py @@ -7,7 +7,7 @@ import numpy as np from scipy.spatial.distance import pdist, squareform -from scipy.stats import t +from scipy.stats import kendalltau, pearsonr, spearmanr, t def EUCLIDEAN_DISTANCE(x): return squareform(pdist(x, metric='euclidean')) @@ -129,6 +129,12 @@ def p_value(self, matrix_X, matrix_Y, replication_factor=1000): "p_local_correlation_matrix": p_local_correlation_matrix, "local_correlation_matrix": local_correlation_matrix, "optimal_scale": independence_test_metadata["optimal_scale"]} + elif self.get_name() == "kendall": + p_value = kendalltau(matrix_X, matrix_Y)[1] + elif self.get_name() == "spearman": + p_value = spearmanr(matrix_X, matrix_Y)[1] + elif self.get_name() == "pearson": + p_value = pearsonr(matrix_X, matrix_Y)[1] else: # estimate the null by a permutation test test_stats_null = np.zeros(replication_factor) diff --git a/mgcpy/independence_tests/kendall_spearman.py b/mgcpy/independence_tests/kendall_spearman.py index 24a0670..96d7cac 100644 --- a/mgcpy/independence_tests/kendall_spearman.py +++ b/mgcpy/independence_tests/kendall_spearman.py @@ -42,10 +42,6 @@ def test_statistic(self, matrix_X, matrix_Y): >>> kendall_spearman = KendallSpearman() >>> kendall_spearman_stat = kendall_spearman.test_statistic(X, Y) """ - if matrix_X is None: - matrix_X = self.matrix_X - if matrix_Y is None: - matrix_Y = self.matrix_Y assert matrix_X.shape[1] == 1, "Data matrix should be (n, 1) shape" assert matrix_Y.shape[1] == 1, "Data matrix should be (n, 1) shape" From 2decdcb25a6117af8e1f80ffe7e8fb5c5d0f0337 Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Thu, 6 Dec 2018 23:44:52 -0500 Subject: [PATCH 43/60] Fix unit tests --- mgcpy/independence_tests/unit_tests/hhg_test.py | 2 +- mgcpy/independence_tests/unit_tests/kendall_spearman_test.py | 2 +- mgcpy/independence_tests/unit_tests/rv_corr_test.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mgcpy/independence_tests/unit_tests/hhg_test.py b/mgcpy/independence_tests/unit_tests/hhg_test.py index 9c65b9b..75acd6e 100644 --- a/mgcpy/independence_tests/unit_tests/hhg_test.py +++ b/mgcpy/independence_tests/unit_tests/hhg_test.py @@ -1,7 +1,7 @@ import mgcpy.benchmarks.simulations as sims import numpy as np import pytest -from mgcpy import HHG +from mgcpy.independence_tests.hhg import HHG def test_hhg(): diff --git a/mgcpy/independence_tests/unit_tests/kendall_spearman_test.py b/mgcpy/independence_tests/unit_tests/kendall_spearman_test.py index 1937704..b5a3a13 100644 --- a/mgcpy/independence_tests/unit_tests/kendall_spearman_test.py +++ b/mgcpy/independence_tests/unit_tests/kendall_spearman_test.py @@ -1,7 +1,7 @@ import mgcpy.benchmarks.simulations as sims import numpy as np import pytest -from mgcpy import KendallSpearman +from mgcpy.independence_tests.kendall_spearman import KendallSpearman def test_kendall_spearman(): diff --git a/mgcpy/independence_tests/unit_tests/rv_corr_test.py b/mgcpy/independence_tests/unit_tests/rv_corr_test.py index 4aee659..59d97f4 100644 --- a/mgcpy/independence_tests/unit_tests/rv_corr_test.py +++ b/mgcpy/independence_tests/unit_tests/rv_corr_test.py @@ -1,7 +1,7 @@ import mgcpy.benchmarks.simulations as sims import numpy as np import pytest -from mgcpy import RVCorr +from mgcpy.independence_tests.rv_corr import RVCorr def test_local_corr(): From a2b880b94024a83230bbf2b22cdd6f2581e9751e Mon Sep 17 00:00:00 2001 From: sundaysundya Date: Fri, 7 Dec 2018 00:48:53 -0500 Subject: [PATCH 44/60] update p_value function in class --- mgcpy/independence_tests/mdmr/mdmr.py | 118 +++++++++++++----- .../unit_tests/mdmr/mdmr_test.py | 10 +- 2 files changed, 91 insertions(+), 37 deletions(-) diff --git a/mgcpy/independence_tests/mdmr/mdmr.py b/mgcpy/independence_tests/mdmr/mdmr.py index 860384c..abaca7e 100644 --- a/mgcpy/independence_tests/mdmr/mdmr.py +++ b/mgcpy/independence_tests/mdmr/mdmr.py @@ -1,3 +1,6 @@ +""" + **Main MDMR Independence Test Module** +""" from mgcpy.independence_tests.abstract_class import IndependenceTest import copy @@ -7,42 +10,50 @@ class MDMR(IndependenceTest): def __init__(self, compute_distance_matrix): ''' - :param data_matrix_X: is interpreted as: - - a [n*d] data matrix, a square matrix with n samples in d dimensions - :type data_matrix_X: 2D numpy.array - :param data_matrix_Y: is interpreted as either: - - a [n*d] data matrix, a square matrix with n samples in d dimensions - :type data_matrix_Y: 2D numpy.array :param compute_distance_matrix: a function to compute the pairwise distance matrix, given a data matrix - :type compute_distance_matrix: FunctionType or callable() + :type compute_distance_matrix: ``FunctionType`` or ``callable()`` ''' IndependenceTest.__init__(self, compute_distance_matrix) + self.which_test = "mdmr" def get_name(self): - return "mdmr" + return self.which_test - def test_statistic(self, data_matrix_X, data_matrix_Y, permutations = 0, individual = 0, disttype = 'cityblock'): + def test_statistic(self, matrix_X, matrix_Y, permutations = 0, individual = 0, disttype = 'cityblock'): """ - Computes MDMR between two datasets. + Computes MDMR Pseudo-F statistic between two datasets. + - It first takes the distance matrix of Y (by ) - - Next it regresses X into a portion due to Y and a portion due to residual for each variable of X + - Next it regresses X into a portion due to Y and a portion due to residual - The p-value is for the null hypothesis that the variable of X is not correlated with Y's distance matrix + :param data_matrix_X: (optional, default picked from class attr) is interpreted as: - - a [n*d] data matrix, a square matrix with n samples in d dimensions - :type data_matrix_X: 2D numpy.array + + - a ``[n*d]`` data matrix, a square matrix with n samples in d dimensions + :type data_matrix_X: 2D `numpy.array` + :param data_matrix_Y: (optional, default picked from class attr) is interpreted as: - - a [n*d] data matrix, a square matrix with n samples in d dimensions - :type data_matrix_Y: 2D numpy.array + + - a ``[n*d]`` data matrix, a square matrix with n samples in d dimensions + :type data_matrix_Y: 2D `numpy.array` + :parameter 'individual': - with value 0 tests the entire X matrix by (default), returns 2 values - with value 1 it tests the entire X matrix and then each column (variable) individually, returns 3 values - :return: with individual = 0, returns the test statistic of the entire X matrix and the associated p-value - with individual = 1, returns the above as well as an array with the - variable of X in the first column, the test statistic in the 2nd, and the permutation p-value in the 3rd + + -integer, `0` or `1` + with value `0` tests the entire X matrix (default) + with value `1` tests the entire X matrix and then each predictor variable individually + + :return: with individual = `0`, returns 1 values, with individual = `1` returns 2 values, containing: + + -the test statistic of the entire X matrix + -for individual = 1, an array with the variable of X in the first column, + the test statistic in the second, and the permutation p-value in the third (which here will always be 1) + :rtype: list """ - X = data_matrix_X - Y = data_matrix_Y + X = matrix_X + Y = matrix_Y + #calculate distance matrix of Y D = self.compute_distance_matrix(Y, disttype) D = scp.distance.squareform(D) a = D.shape[0]**2 @@ -51,7 +62,8 @@ def test_statistic(self, data_matrix_X, data_matrix_Y, permutations = 0, individ predictors = np.arange(X.shape[1]) predsingle = X.shape[1] check_rank(X) - + + #check number of subjects compatible subjects = X.shape[0] if subjects != np.sqrt(D.shape[0]): raise Exception("# of subjects incompatible between X and D") @@ -60,11 +72,13 @@ def test_statistic(self, data_matrix_X, data_matrix_Y, permutations = 0, individ predictors = np.array(predictors) predictors += 1 + # Gower Center the distance matrix of Y Gs = gower_center_many(D) m2 = float(X.shape[1] - predictors.shape[0]) nm = float(subjects - X.shape[1]) + #form permutation indexes permutation_indexes = np.zeros((permutations + 1, subjects), dtype=np.int) permutation_indexes[0, :] = range(subjects) for i in range(1, permutations + 1): @@ -73,15 +87,20 @@ def test_statistic(self, data_matrix_X, data_matrix_Y, permutations = 0, individ H2perms = gen_H2_perms(X, predictors, permutation_indexes) IHperms = gen_IH_perms(X, predictors, permutation_indexes) + #Calculate test statistic F_perms = calc_ftest(H2perms, IHperms, Gs, m2, nm) + #Calculate p-value p_vals = None if permutations > 0: p_vals = fperms_to_pvals(F_perms) F_permtotal = F_perms[0, :] pvaltotal = p_vals + self.test_statistic_ = F_permtotal if individual == 0: - return F_permtotal, pvaltotal + return self.test_statistic_, self.test_statistic_metadata_ + + #code for individual test if individual == 1: results = np.zeros((predsingle,3)) for predictors in range(1, predsingle+1): @@ -110,16 +129,47 @@ def test_statistic(self, data_matrix_X, data_matrix_Y, permutations = 0, individ results[predictors-1,2] = p_vals - return F_permtotal, pvaltotal, results + return F_permtotal, results - def p_value(self, data_matrix_X, data_matrix_Y, permutations = 1000, individual = 0, disttype = 'cityblock'): + def p_value(self, matrix_X, matrix_Y, replication_factor=1000): + """ + Tests independence between two datasets using MGC and permutation test. + + :param matrix_X: is interpreted as: + + - a ``[n*d]`` data matrix, a square matrix with ``n`` samples in ``d`` dimensions + :type matrix_X: 2D `numpy.array` + + :param matrix_Y: is interpreted as: + + - a ``[n*d]`` data matrix, a square matrix with ``n`` samples in ``d`` dimensions + :type matrix_Y: 2D `numpy.array` + + :param replication_factor: specifies the number of replications to use for + the permutation test. Defaults to ``1000``. + :type replication_factor: integer + + :return: returns a list of two items,that contains: + + - :p_value: P-value of MGC + - :p_value_metadata: + :rtype: list """ - Computes the permutation p-value of the pseudo-F test statistic. + return super(MDMR, self).p_value(matrix_X, matrix_Y) + + def ind_p_value(self, matrix_X, matrix_Y, permutations = 1000, individual = 1, disttype = 'cityblock'): """ - if individual == 0: - p_value = self.test_statistic(data_matrix_X, data_matrix_Y, permutations)[1] - return p_value - if individual == 1: - p_value = self.test_statistic(data_matrix_X, data_matrix_Y, permutations, individual)[1] - results = self.test_statistic(data_matrix_X, data_matrix_Y, permutations, individual)[2] - return p_value, results + Individual predictor variable p-values calculation + + :param matrix_X: is interpreted as: + + - a ``[n*d]`` data matrix, a square matrix with ``n`` samples in ``d`` dimensions + :type matrix_X: 2D `numpy.array` + + :param matrix_Y: is interpreted as: + + - a ``[n*d]`` data matrix, a square matrix with ``n`` samples in ``d`` dimensions + :type matrix_Y: 2D `numpy.array` + """ + results = self.test_statistic(matrix_X, matrix_Y, permutations, individual)[1] + return results diff --git a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py index 24e80bc..e7cf54f 100644 --- a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py +++ b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py @@ -10,8 +10,9 @@ def test_mdmr(): Y = np.genfromtxt('./mgcpy/independence_tests/unit_tests/mdmr/data/Y_mdmr.csv', delimiter=",") mdmr = MDMR(compute_distance_matrix) - a, b1, results1 = mdmr.test_statistic(X, Y, individual=1) - b2, results2 = mdmr.p_value(X, Y, individual = 1) + a, results1 = mdmr.test_statistic(X, Y, individual=1) + b, c = mdmr.p_value(X, Y, individual = 1) + results2 = mdmr.ind_p_value(X, Y) #test get_name assert mdmr.get_name() == 'mdmr' @@ -20,12 +21,15 @@ def test_mdmr(): assert np.allclose(a, 75.11630064) #p-value - assert np.allclose(b2, 0.000999) + assert np.allclose(b, 0.0) #0.000999 #individual statistics assert np.allclose(results1[0,1], 10.39953044) + assert np.allclose(results2[0,1], 10.39953044) assert np.allclose(results2[0,2], 0.000999) assert np.allclose(results1[1,1], 4.12263312) + assert np.allclose(results2[1,1], 4.12263312) assert np.allclose(results2[1,2], 0.000999) assert np.allclose(results1[2,1], 11.31712737) + assert np.allclose(results2[2,1], 11.31712737) assert np.allclose(results2[2,2], 0.000999) \ No newline at end of file From 659c0688b1cf349c94d96ffe7e290c8020025f53 Mon Sep 17 00:00:00 2001 From: sundaysundya Date: Fri, 7 Dec 2018 01:16:23 -0500 Subject: [PATCH 45/60] remove individual from mdmr unit test p_value --- demos/MDMR.ipynb | 23 +++---------------- .../unit_tests/mdmr/mdmr_test.py | 2 +- 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/demos/MDMR.ipynb b/demos/MDMR.ipynb index 142cfd7..26c1992 100644 --- a/demos/MDMR.ipynb +++ b/demos/MDMR.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 16, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -18,7 +18,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -34,27 +34,10 @@ "Y = np.genfromtxt('../mgcpy/independence_tests/unit_tests/mdmr/data/Y_mdmr.csv', delimiter=\",\")\n", "\n", "mdmr = MDMR(compute_distance_matrix)\n", - "a, b = mdmr.test_statistic(X, Y)\n", + "a, _ = mdmr.test_statistic(X, Y)\n", "print(a)" ] }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.000999]\n" - ] - } - ], - "source": [ - "print(b)" - ] - }, { "cell_type": "code", "execution_count": null, diff --git a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py index e7cf54f..15380d5 100644 --- a/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py +++ b/mgcpy/independence_tests/unit_tests/mdmr/mdmr_test.py @@ -11,7 +11,7 @@ def test_mdmr(): mdmr = MDMR(compute_distance_matrix) a, results1 = mdmr.test_statistic(X, Y, individual=1) - b, c = mdmr.p_value(X, Y, individual = 1) + b, c = mdmr.p_value(X, Y) results2 = mdmr.ind_p_value(X, Y) #test get_name From 5c94dbffd02b2fab52da5fda15ac2708d9e77fcb Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Fri, 7 Dec 2018 07:28:24 -0500 Subject: [PATCH 46/60] Fixed issues with hhg --- .../benchmarks/unit_tests/simulations_test.py | 95 ++++++++++--------- mgcpy/independence_tests/hhg.py | 2 +- 2 files changed, 49 insertions(+), 48 deletions(-) diff --git a/mgcpy/benchmarks/unit_tests/simulations_test.py b/mgcpy/benchmarks/unit_tests/simulations_test.py index ac8861a..a143847 100644 --- a/mgcpy/benchmarks/unit_tests/simulations_test.py +++ b/mgcpy/benchmarks/unit_tests/simulations_test.py @@ -1,6 +1,6 @@ +import matplotlib.pyplot as plt import numpy as np from mgcpy.benchmarks import simulations as sims -import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D @@ -11,24 +11,24 @@ def test_simulations(): independent = True np.random.seed(0) - fig1 = plt.figure(figsize = (50, 80)) + fig1 = plt.figure(figsize=(50, 80)) plt.axis('off') - fig2 = plt.figure(figsize = (50, 80)) + fig2 = plt.figure(figsize=(50, 80)) # Linear Simulation returns_low_dim = sims.linear_sim(num_samps, num_dim1) returns_high_dim = sims.linear_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - + x1, y1 = sims.linear_sim(num_samps, 1, noise=0) ax1 = fig1.add_subplot(4, 5, 1) ax1.scatter(x1, y1) ax1.set_title('Linear', fontweight='bold') ax1.axis('off') - + x2, y2 = sims.linear_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 1, projection = '3d'); + ax2 = fig2.add_subplot(4, 5, 1, projection='3d') ax2.scatter(x2[:, 0], x2[:, 1], y2) ax2.set_title('Linear', fontweight='bold') ax2.axis('off') @@ -38,15 +38,15 @@ def test_simulations(): returns_high_dim = sims.exp_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - + x1, y1 = sims.exp_sim(num_samps, 1, noise=0) ax1 = fig1.add_subplot(4, 5, 2) ax1.scatter(x1, y1) ax1.set_title('Exponential', fontweight='bold') ax1.axis('off') - + x2, y2 = sims.exp_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 2, projection = '3d'); + ax2 = fig2.add_subplot(4, 5, 2, projection='3d') ax2.scatter(x2[:, 0], x2[:, 1], y2) ax2.set_title('Exponential', fontweight='bold') ax2.axis('off') @@ -56,15 +56,15 @@ def test_simulations(): returns_high_dim = sims.cub_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - + x1, y1 = sims.cub_sim(num_samps, 1, noise=0) ax1 = fig1.add_subplot(4, 5, 3) ax1.scatter(x1, y1) ax1.set_title('Cubic', fontweight='bold') ax1.axis('off') - + x2, y2 = sims.cub_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 3, projection = '3d'); + ax2 = fig2.add_subplot(4, 5, 3, projection='3d') ax2.scatter(x2[:, 0], x2[:, 1], y2) ax2.set_title('Cubic', fontweight='bold') ax2.axis('off') @@ -74,15 +74,15 @@ def test_simulations(): returns_high_dim = sims.joint_sim(num_samps, num_dim2) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - + x1, y1 = sims.joint_sim(num_samps, 1, noise=0) ax1 = fig1.add_subplot(4, 5, 4) ax1.scatter(x1, y1) ax1.set_title('Joint Normal', fontweight='bold') ax1.axis('off') - + x2, y2 = sims.joint_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 4, projection = '3d'); + ax2 = fig2.add_subplot(4, 5, 4, projection='3d') ax2.scatter(x2[:, 0], x2[:, 1], y2) ax2.set_title('Joint Normal', fontweight='bold') ax2.axis('off') @@ -92,15 +92,15 @@ def test_simulations(): returns_high_dim = sims.step_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - + x1, y1 = sims.step_sim(num_samps, 1, noise=0) ax1 = fig1.add_subplot(4, 5, 5) ax1.scatter(x1, y1) ax1.set_title('Step', fontweight='bold') ax1.axis('off') - + x2, y2 = sims.step_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 5, projection = '3d'); + ax2 = fig2.add_subplot(4, 5, 5, projection='3d') ax2.scatter(x2[:, 0], x2[:, 1], y2) ax2.set_title('Step', fontweight='bold') ax2.axis('off') @@ -110,15 +110,15 @@ def test_simulations(): returns_high_dim = sims.quad_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - + x1, y1 = sims.quad_sim(num_samps, 1, noise=0) ax1 = fig1.add_subplot(4, 5, 6) ax1.scatter(x1, y1) ax1.set_title('Quadratic', fontweight='bold') ax1.axis('off') - + x2, y2 = sims.quad_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 6, projection = '3d'); + ax2 = fig2.add_subplot(4, 5, 6, projection='3d') ax2.scatter(x2[:, 0], x2[:, 1], y2) ax2.set_title('Quadratic', fontweight='bold') ax2.axis('off') @@ -128,15 +128,15 @@ def test_simulations(): returns_high_dim = sims.w_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - + x1, y1 = sims.w_sim(num_samps, 1, noise=0) ax1 = fig1.add_subplot(4, 5, 7) ax1.scatter(x1, y1) ax1.set_title('W-Shaped', fontweight='bold') ax1.axis('off') - + x2, y2 = sims.w_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 7, projection = '3d'); + ax2 = fig2.add_subplot(4, 5, 7, projection='3d') ax2.scatter(x2[:, 0], x2[:, 1], y2) ax2.set_title('W-Shaped', fontweight='bold') ax2.axis('off') @@ -146,15 +146,15 @@ def test_simulations(): returns_high_dim = sims.spiral_sim(num_samps, num_dim2) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - + x1, y1 = sims.spiral_sim(num_samps, 1, noise=0) ax1 = fig1.add_subplot(4, 5, 8) ax1.scatter(x1, y1) ax1.set_title('Spiral', fontweight='bold') ax1.axis('off') - + x2, y2 = sims.spiral_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 8, projection = '3d'); + ax2 = fig2.add_subplot(4, 5, 8, projection='3d') ax2.scatter(x2[:, 0], x2[:, 1], y2) ax2.set_title('Spiral', fontweight='bold') ax2.axis('off') @@ -162,15 +162,15 @@ def test_simulations(): # Uncorrelated Bernoulli Simulation returns = sims.ubern_sim(num_samps, num_dim2) assert np.all(returns[0].shape == (num_samps, num_dim2)) - + x1, y1 = sims.ubern_sim(num_samps, 1, noise=0) ax1 = fig1.add_subplot(4, 5, 9) ax1.scatter(x1, y1) ax1.set_title('Uncorrelated Bernoulli', fontweight='bold') ax1.axis('off') - + x2, y2 = sims.ubern_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 9, projection = '3d'); + ax2 = fig2.add_subplot(4, 5, 9, projection='3d') ax2.scatter(x2[:, 0], x2[:, 1], y2) ax2.set_title('Uncorrelated Bernoulli', fontweight='bold') ax2.axis('off') @@ -180,16 +180,16 @@ def test_simulations(): returns_high_dim = sims.log_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - + x1, y1 = sims.log_sim(num_samps, 1, noise=0) ax1 = fig1.add_subplot(4, 5, 10) ax1.scatter(x1, y1) ax1.set_title('Logarithmic', fontweight='bold') ax1.axis('off') - + x2, y2 = sims.log_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 10, projection = '3d'); - ax2.scatter(x2[:, 0], x2[:, 1], y2) + ax2 = fig2.add_subplot(4, 5, 10, projection='3d') + ax2.scatter(x2[:, 0], x2[:, 1], y2[:, 0]*y2[:, 1]) ax2.set_title('Logarithmic', fontweight='bold') ax2.axis('off') @@ -198,15 +198,15 @@ def test_simulations(): returns_high_dim = sims.root_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - + x1, y1 = sims.root_sim(num_samps, 1, noise=0) ax1 = fig1.add_subplot(4, 5, 11) ax1.scatter(x1, y1) ax1.set_title('Fourth Root', fontweight='bold') ax1.axis('off') - + x2, y2 = sims.root_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 11, projection = '3d'); + ax2 = fig2.add_subplot(4, 5, 11, projection='3d') ax2.scatter(x2[:, 0], x2[:, 1], y2) ax2.set_title('Fourth Root', fontweight='bold') ax2.axis('off') @@ -216,7 +216,7 @@ def test_simulations(): returns_high_dim = sims.sin_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - + x1, y1 = sims.sin_sim(num_samps, 1, noise=0) ax1 = fig1.add_subplot(4, 5, 12) ax1.scatter(x1, y1) @@ -229,7 +229,7 @@ def test_simulations(): num_samps, num_dim2, period=16*np.pi, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - + x1, y1 = sims.sin_sim(num_samps, 1, noise=0, period=16*np.pi) ax1 = fig1.add_subplot(4, 5, 13) ax1.scatter(x1, y1) @@ -239,7 +239,7 @@ def test_simulations(): # Square Simulation returns = sims.square_sim(num_samps, num_dim2, indep=independent) assert np.all(returns[0].shape == (num_samps, num_dim2)) - + x1, y1 = sims.square_sim(num_samps, 1, noise=0) ax1 = fig1.add_subplot(4, 5, 14) ax1.scatter(x1, y1) @@ -251,7 +251,7 @@ def test_simulations(): returns_high_dim = sims.two_parab_sim(num_samps, num_dim2) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - + x1, y1 = sims.two_parab_sim(num_samps, 1, noise=0) ax1 = fig1.add_subplot(4, 5, 15) ax1.scatter(x1, y1) @@ -261,7 +261,7 @@ def test_simulations(): # Circle Simulation returns = sims.circle_sim(num_samps, num_dim2) assert np.all(returns[0].shape == (num_samps, num_dim2)) - + x1, y1 = sims.circle_sim(num_samps, 1, noise=0) ax1 = fig1.add_subplot(4, 5, 16) ax1.scatter(x1, y1) @@ -271,7 +271,7 @@ def test_simulations(): # Ellipse Simulation returns = sims.circle_sim(num_samps, num_dim2, radius=5) assert np.all(returns[0].shape == (num_samps, num_dim2)) - + x1, y1 = sims.circle_sim(num_samps, 1, noise=0, radius=5) ax1 = fig1.add_subplot(4, 5, 17) ax1.scatter(x1, y1) @@ -282,7 +282,7 @@ def test_simulations(): returns = sims.square_sim( num_samps, num_dim2, period=-np.pi/4, indep=independent) assert np.all(returns[0].shape == (num_samps, num_dim2)) - + x1, y1 = sims.square_sim(num_samps, 1, noise=0, period=-np.pi/4) ax1 = fig1.add_subplot(4, 5, 18) ax1.scatter(x1, y1) @@ -292,7 +292,7 @@ def test_simulations(): # Multiplicative Noise Simulation returns = sims.multi_noise_sim(num_samps, num_dim2) assert np.all(returns[0].shape == (num_samps, num_dim2)) - + x1, y1 = sims.multi_noise_sim(num_samps, 1) ax1 = fig1.add_subplot(4, 5, 19) ax1.scatter(x1, y1) @@ -302,11 +302,12 @@ def test_simulations(): # Multimodal Independence Simulation returns = sims.multi_indep_sim(num_samps, num_dim2) assert np.all(returns[0].shape == (num_samps, num_dim2)) - + x1, y1 = sims.multi_indep_sim(num_samps, 1) ax1 = fig1.add_subplot(4, 5, 20) ax1.scatter(x1, y1) ax1.set_title('Multimodal Independence', fontweight='bold') ax1.axis('off') -test_simulations() \ No newline at end of file + +test_simulations() diff --git a/mgcpy/independence_tests/hhg.py b/mgcpy/independence_tests/hhg.py index 0125d3f..47890a6 100644 --- a/mgcpy/independence_tests/hhg.py +++ b/mgcpy/independence_tests/hhg.py @@ -9,7 +9,7 @@ def __init__(self, compute_distance_matrix=None): :param compute_distance_matrix: a function to compute the pairwise distance matrix, given a data matrix :type compute_distance_matrix: FunctionType or callable() """ - IndependenceTest.__init__(compute_distance_matrix) + IndependenceTest.__init__(self, compute_distance_matrix) self.which_test = "hhg" def test_statistic(self, matrix_X, matrix_Y): From 30ccbde32881fd077d7b56341907d3c9f8b78d7d Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Fri, 7 Dec 2018 07:40:51 -0500 Subject: [PATCH 47/60] Fix hhg and sims test --- mgcpy/benchmarks/unit_tests/simulations_test.py | 3 --- mgcpy/independence_tests/unit_tests/hhg_test.py | 8 +++----- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/mgcpy/benchmarks/unit_tests/simulations_test.py b/mgcpy/benchmarks/unit_tests/simulations_test.py index a143847..555f7d5 100644 --- a/mgcpy/benchmarks/unit_tests/simulations_test.py +++ b/mgcpy/benchmarks/unit_tests/simulations_test.py @@ -308,6 +308,3 @@ def test_simulations(): ax1.scatter(x1, y1) ax1.set_title('Multimodal Independence', fontweight='bold') ax1.axis('off') - - -test_simulations() diff --git a/mgcpy/independence_tests/unit_tests/hhg_test.py b/mgcpy/independence_tests/unit_tests/hhg_test.py index 75acd6e..f185bc7 100644 --- a/mgcpy/independence_tests/unit_tests/hhg_test.py +++ b/mgcpy/independence_tests/unit_tests/hhg_test.py @@ -11,21 +11,19 @@ def test_hhg(): Y = np.array([3.2311, 12.1113, 11.1350, 1.1989, 3.3127, 4.8580, 3.4917, 7.1748, 6.5792, 2.4012])[:, np.newaxis] hhg = HHG() - test_stat = hhg.test_statistic(X, Y) + test_stat = hhg.test_statistic(X, Y)[0] assert np.round(test_stat, decimals=2) == 411.88 # Against linear simulations np.random.seed(0) X, Y = sims.linear_sim(100, 1) - hhg = HHG() - test_stat = hhg.test_statistic(X, Y) + test_stat = hhg.test_statistic(X, Y)[0] assert np.round(test_stat, decimals=2) == 28986.52 X, Y = sims.linear_sim(100, 1, noise=0) - hhg = HHG() - test_stat = hhg.test_statistic(X, Y) + test_stat = hhg.test_statistic(X, Y)[0] assert np.round(test_stat, decimals=2) == 950600.00 From 246eabf432505a5113da286f6546a2cdb987fbba Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Fri, 7 Dec 2018 07:58:05 -0500 Subject: [PATCH 48/60] Update hhg_test.py --- mgcpy/independence_tests/unit_tests/hhg_test.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/mgcpy/independence_tests/unit_tests/hhg_test.py b/mgcpy/independence_tests/unit_tests/hhg_test.py index f185bc7..f887d66 100644 --- a/mgcpy/independence_tests/unit_tests/hhg_test.py +++ b/mgcpy/independence_tests/unit_tests/hhg_test.py @@ -26,6 +26,3 @@ def test_hhg(): test_stat = hhg.test_statistic(X, Y)[0] assert np.round(test_stat, decimals=2) == 950600.00 - - -test_hhg() From 99cff38f7b4917e9e4970fd0a070149e2708eb7b Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Fri, 7 Dec 2018 08:25:49 -0500 Subject: [PATCH 49/60] Fix p-value for class --- mgcpy/independence_tests/abstract_class.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mgcpy/independence_tests/abstract_class.py b/mgcpy/independence_tests/abstract_class.py index c3a68a4..8c619d1 100644 --- a/mgcpy/independence_tests/abstract_class.py +++ b/mgcpy/independence_tests/abstract_class.py @@ -131,10 +131,13 @@ def p_value(self, matrix_X, matrix_Y, replication_factor=1000): "optimal_scale": independence_test_metadata["optimal_scale"]} elif self.get_name() == "kendall": p_value = kendalltau(matrix_X, matrix_Y)[1] + p_value_metadata = {} elif self.get_name() == "spearman": p_value = spearmanr(matrix_X, matrix_Y)[1] + p_value_metadata = {} elif self.get_name() == "pearson": p_value = pearsonr(matrix_X, matrix_Y)[1] + p_value_metadata = {} else: # estimate the null by a permutation test test_stats_null = np.zeros(replication_factor) From 2e163708aba16e50a36a7ef0c5f0b517e7d31d86 Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Fri, 7 Dec 2018 10:06:14 -0500 Subject: [PATCH 50/60] Remove matplotlib --- .../benchmarks/unit_tests/simulations_test.py | 194 +----------------- 1 file changed, 1 insertion(+), 193 deletions(-) diff --git a/mgcpy/benchmarks/unit_tests/simulations_test.py b/mgcpy/benchmarks/unit_tests/simulations_test.py index 555f7d5..fd5bee5 100644 --- a/mgcpy/benchmarks/unit_tests/simulations_test.py +++ b/mgcpy/benchmarks/unit_tests/simulations_test.py @@ -1,7 +1,6 @@ -import matplotlib.pyplot as plt import numpy as np +import pytest from mgcpy.benchmarks import simulations as sims -from mpl_toolkits.mplot3d import Axes3D def test_simulations(): @@ -10,219 +9,76 @@ def test_simulations(): num_dim2 = 300 independent = True - np.random.seed(0) - fig1 = plt.figure(figsize=(50, 80)) - plt.axis('off') - fig2 = plt.figure(figsize=(50, 80)) - # Linear Simulation returns_low_dim = sims.linear_sim(num_samps, num_dim1) returns_high_dim = sims.linear_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - x1, y1 = sims.linear_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 1) - ax1.scatter(x1, y1) - ax1.set_title('Linear', fontweight='bold') - ax1.axis('off') - - x2, y2 = sims.linear_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 1, projection='3d') - ax2.scatter(x2[:, 0], x2[:, 1], y2) - ax2.set_title('Linear', fontweight='bold') - ax2.axis('off') - # Exponential Simulation returns_low_dim = sims.exp_sim(num_samps, num_dim1) returns_high_dim = sims.exp_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - x1, y1 = sims.exp_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 2) - ax1.scatter(x1, y1) - ax1.set_title('Exponential', fontweight='bold') - ax1.axis('off') - - x2, y2 = sims.exp_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 2, projection='3d') - ax2.scatter(x2[:, 0], x2[:, 1], y2) - ax2.set_title('Exponential', fontweight='bold') - ax2.axis('off') - # Cubic Simulation returns_low_dim = sims.cub_sim(num_samps, num_dim1) returns_high_dim = sims.cub_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - x1, y1 = sims.cub_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 3) - ax1.scatter(x1, y1) - ax1.set_title('Cubic', fontweight='bold') - ax1.axis('off') - - x2, y2 = sims.cub_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 3, projection='3d') - ax2.scatter(x2[:, 0], x2[:, 1], y2) - ax2.set_title('Cubic', fontweight='bold') - ax2.axis('off') - # Joint-Normal Simulation returns_low_dim = sims.joint_sim(num_samps, num_dim1) returns_high_dim = sims.joint_sim(num_samps, num_dim2) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - x1, y1 = sims.joint_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 4) - ax1.scatter(x1, y1) - ax1.set_title('Joint Normal', fontweight='bold') - ax1.axis('off') - - x2, y2 = sims.joint_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 4, projection='3d') - ax2.scatter(x2[:, 0], x2[:, 1], y2) - ax2.set_title('Joint Normal', fontweight='bold') - ax2.axis('off') - # Step Simulation returns_low_dim = sims.step_sim(num_samps, num_dim1) returns_high_dim = sims.step_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - x1, y1 = sims.step_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 5) - ax1.scatter(x1, y1) - ax1.set_title('Step', fontweight='bold') - ax1.axis('off') - - x2, y2 = sims.step_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 5, projection='3d') - ax2.scatter(x2[:, 0], x2[:, 1], y2) - ax2.set_title('Step', fontweight='bold') - ax2.axis('off') - # Quadratic Simulation returns_low_dim = sims.quad_sim(num_samps, num_dim1) returns_high_dim = sims.quad_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - x1, y1 = sims.quad_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 6) - ax1.scatter(x1, y1) - ax1.set_title('Quadratic', fontweight='bold') - ax1.axis('off') - - x2, y2 = sims.quad_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 6, projection='3d') - ax2.scatter(x2[:, 0], x2[:, 1], y2) - ax2.set_title('Quadratic', fontweight='bold') - ax2.axis('off') - # W Simulation returns_low_dim = sims.w_sim(num_samps, num_dim1) returns_high_dim = sims.w_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - x1, y1 = sims.w_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 7) - ax1.scatter(x1, y1) - ax1.set_title('W-Shaped', fontweight='bold') - ax1.axis('off') - - x2, y2 = sims.w_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 7, projection='3d') - ax2.scatter(x2[:, 0], x2[:, 1], y2) - ax2.set_title('W-Shaped', fontweight='bold') - ax2.axis('off') - # Spiral Simulation returns_low_dim = sims.spiral_sim(num_samps, num_dim1) returns_high_dim = sims.spiral_sim(num_samps, num_dim2) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - x1, y1 = sims.spiral_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 8) - ax1.scatter(x1, y1) - ax1.set_title('Spiral', fontweight='bold') - ax1.axis('off') - - x2, y2 = sims.spiral_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 8, projection='3d') - ax2.scatter(x2[:, 0], x2[:, 1], y2) - ax2.set_title('Spiral', fontweight='bold') - ax2.axis('off') - # Uncorrelated Bernoulli Simulation returns = sims.ubern_sim(num_samps, num_dim2) assert np.all(returns[0].shape == (num_samps, num_dim2)) - x1, y1 = sims.ubern_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 9) - ax1.scatter(x1, y1) - ax1.set_title('Uncorrelated Bernoulli', fontweight='bold') - ax1.axis('off') - - x2, y2 = sims.ubern_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 9, projection='3d') - ax2.scatter(x2[:, 0], x2[:, 1], y2) - ax2.set_title('Uncorrelated Bernoulli', fontweight='bold') - ax2.axis('off') - # Logarithmic Simulation returns_low_dim = sims.log_sim(num_samps, num_dim1) returns_high_dim = sims.log_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - x1, y1 = sims.log_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 10) - ax1.scatter(x1, y1) - ax1.set_title('Logarithmic', fontweight='bold') - ax1.axis('off') - - x2, y2 = sims.log_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 10, projection='3d') - ax2.scatter(x2[:, 0], x2[:, 1], y2[:, 0]*y2[:, 1]) - ax2.set_title('Logarithmic', fontweight='bold') - ax2.axis('off') - # Nth Root Simulation returns_low_dim = sims.root_sim(num_samps, num_dim1) returns_high_dim = sims.root_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - x1, y1 = sims.root_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 11) - ax1.scatter(x1, y1) - ax1.set_title('Fourth Root', fontweight='bold') - ax1.axis('off') - - x2, y2 = sims.root_sim(num_samps, 2, noise=0) - ax2 = fig2.add_subplot(4, 5, 11, projection='3d') - ax2.scatter(x2[:, 0], x2[:, 1], y2) - ax2.set_title('Fourth Root', fontweight='bold') - ax2.axis('off') - # Sinusoidal Simulation (4*pi) returns_low_dim = sims.sin_sim(num_samps, num_dim1) returns_high_dim = sims.sin_sim(num_samps, num_dim2, indep=independent) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - x1, y1 = sims.sin_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 12) - ax1.scatter(x1, y1) - ax1.set_title('Sinusoidal (4\u03C0)', fontweight='bold') - ax1.axis('off') - # Sinusoidal Simulation (16*pi) returns_low_dim = sims.sin_sim(num_samps, num_dim1, period=16*np.pi) returns_high_dim = sims.sin_sim( @@ -230,81 +86,33 @@ def test_simulations(): assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - x1, y1 = sims.sin_sim(num_samps, 1, noise=0, period=16*np.pi) - ax1 = fig1.add_subplot(4, 5, 13) - ax1.scatter(x1, y1) - ax1.set_title('Sinusoidal (16\u03C0)', fontweight='bold') - ax1.axis('off') - # Square Simulation returns = sims.square_sim(num_samps, num_dim2, indep=independent) assert np.all(returns[0].shape == (num_samps, num_dim2)) - x1, y1 = sims.square_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 14) - ax1.scatter(x1, y1) - ax1.set_title('Square', fontweight='bold') - ax1.axis('off') - # Two Parabolas Simulation returns_low_dim = sims.two_parab_sim(num_samps, num_dim1) returns_high_dim = sims.two_parab_sim(num_samps, num_dim2) assert np.all(returns_low_dim[0].shape == (num_samps, num_dim1)) assert np.all(returns_high_dim[0].shape == (num_samps, num_dim2)) - x1, y1 = sims.two_parab_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 15) - ax1.scatter(x1, y1) - ax1.set_title('Two Parabolas', fontweight='bold') - ax1.axis('off') - # Circle Simulation returns = sims.circle_sim(num_samps, num_dim2) assert np.all(returns[0].shape == (num_samps, num_dim2)) - x1, y1 = sims.circle_sim(num_samps, 1, noise=0) - ax1 = fig1.add_subplot(4, 5, 16) - ax1.scatter(x1, y1) - ax1.set_title('Circle', fontweight='bold') - ax1.axis('off') - # Ellipse Simulation returns = sims.circle_sim(num_samps, num_dim2, radius=5) assert np.all(returns[0].shape == (num_samps, num_dim2)) - x1, y1 = sims.circle_sim(num_samps, 1, noise=0, radius=5) - ax1 = fig1.add_subplot(4, 5, 17) - ax1.scatter(x1, y1) - ax1.set_title('Ellipse', fontweight='bold') - ax1.axis('off') - # Diamond Simulation returns = sims.square_sim( num_samps, num_dim2, period=-np.pi/4, indep=independent) assert np.all(returns[0].shape == (num_samps, num_dim2)) - x1, y1 = sims.square_sim(num_samps, 1, noise=0, period=-np.pi/4) - ax1 = fig1.add_subplot(4, 5, 18) - ax1.scatter(x1, y1) - ax1.set_title('Diamond', fontweight='bold') - ax1.axis('off') - # Multiplicative Noise Simulation returns = sims.multi_noise_sim(num_samps, num_dim2) assert np.all(returns[0].shape == (num_samps, num_dim2)) - x1, y1 = sims.multi_noise_sim(num_samps, 1) - ax1 = fig1.add_subplot(4, 5, 19) - ax1.scatter(x1, y1) - ax1.set_title('Multiplicative Noise', fontweight='bold') - ax1.axis('off') - # Multimodal Independence Simulation returns = sims.multi_indep_sim(num_samps, num_dim2) assert np.all(returns[0].shape == (num_samps, num_dim2)) - - x1, y1 = sims.multi_indep_sim(num_samps, 1) - ax1 = fig1.add_subplot(4, 5, 20) - ax1.scatter(x1, y1) - ax1.set_title('Multimodal Independence', fontweight='bold') - ax1.axis('off') From 61c2caaee562c90dec1e1468a26e56229f1f60ed Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Fri, 7 Dec 2018 11:08:56 -0500 Subject: [PATCH 51/60] Remove simulations from other_tests.ipynb and added new simulations demo --- demos/other_tests.ipynb | 218 +++++---- demos/simulations.ipynb | 1012 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 1128 insertions(+), 102 deletions(-) create mode 100644 demos/simulations.ipynb diff --git a/demos/other_tests.ipynb b/demos/other_tests.ipynb index 229220c..d508d36 100644 --- a/demos/other_tests.ipynb +++ b/demos/other_tests.ipynb @@ -9,9 +9,20 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 20, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(None, )" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "import numpy as np\n", "from scipy.spatial.distance import pdist, squareform\n", @@ -19,13 +30,6 @@ "%matplotlib inline" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Simulations" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -35,72 +39,13 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from mgcpy.benchmarks.simulations import linear_sim, quad_sim, w_sim, spiral_sim" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Simultions are randomly generated with an $x$ which is $(n\\cdot d)$ and $y$ which is $(n\\cdot 1)$ that have 2 required parameters: `num_samp` or the number of samples, and `num_dim` or the number of dimensions. Optional parameters can be set based on the readme. Visualizations of the 4 simulations imported above are shown below with and without the noise:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots(1, 4, num=1, figsize=(20,5))\n", - "\n", - "x_normal, y_normal = linear_sim(100, 1)\n", - "x_no_noise, y_no_noise = linear_sim(1000, 1, noise=0)\n", - "ax[0].plot(x_normal, y_normal, 'bo', alpha=0.5)\n", - "ax[0].plot(x_no_noise, y_no_noise, 'ro')\n", - "ax[0].set_xlim([-1, 1])\n", - "ax[0].set_ylim([-1, 1])\n", - "\n", - "x_normal, y_normal = quad_sim(100, 1)\n", - "x_no_noise, y_no_noise = quad_sim(1000, 1, noise=0)\n", - "ax[1].plot(x_normal, y_normal, 'bo', alpha=0.5)\n", - "ax[1].plot(x_no_noise, y_no_noise, 'ro')\n", - "ax[1].set_xlim([-1, 1])\n", - "ax[1].set_ylim([-1, 2])\n", - "\n", - "x_normal, y_normal = w_sim(100, 1)\n", - "x_no_noise, y_no_noise = w_sim(1000, 1, noise=0)\n", - "ax[2].plot(x_normal, y_normal, 'bo', alpha=0.5)\n", - "ax[2].plot(x_no_noise, y_no_noise, 'ro')\n", - "ax[2].set_xlim([-1, 1])\n", - "ax[2].set_ylim([-1, 2])\n", - "\n", - "x_normal, y_normal = spiral_sim(100, 1)\n", - "x_no_noise, y_no_noise = spiral_sim(1000, 1, noise=0)\n", - "ax[3].plot(x_normal, y_normal, 'bo', alpha=0.5)\n", - "ax[3].plot(x_no_noise, y_no_noise, 'ro')\n", - "ax[3].set_xlim([-4, 4])\n", - "ax[3].set_ylim([-4, 4])\n", - "\n", - "plt.show()" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -117,19 +62,61 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 23, "metadata": {}, "outputs": [ { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'mgcpy.independence_tests.mgc.distance_transform'", + "name": "stderr", + "output_type": "stream", + "text": [ + "/anaconda3/lib/python3.6/site-packages/Cython/Compiler/Main.py:367: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /anaconda3/lib/python3.6/site-packages/mgcpy/independence_tests/mgc/distance_transform.pyx\n", + " tree = Parsing.p_module(s, pxd, full_module_name)\n" + ] + }, + { + "ename": "ImportError", + "evalue": "Building module mgcpy.independence_tests.mgc.distance_transform failed: [\"distutils.errors.CompileError: command 'gcc' failed with exit status 1\\n\"]", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mmgcpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindependence_tests\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdcorr\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mDCorr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mDistutilsExecError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/anaconda3/lib/python3.6/distutils/unixccompiler.py\u001b[0m in \u001b[0;36m_compile\u001b[0;34m(self, obj, src, ext, cc_args, extra_postargs, pp_opts)\u001b[0m\n\u001b[1;32m 117\u001b[0m self.spawn(compiler_so + cc_args + [src, '-o', obj] +\n\u001b[0;32m--> 118\u001b[0;31m extra_postargs)\n\u001b[0m\u001b[1;32m 119\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mDistutilsExecError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mmsg\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/distutils/ccompiler.py\u001b[0m in \u001b[0;36mspawn\u001b[0;34m(self, cmd)\u001b[0m\n\u001b[1;32m 908\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mspawn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcmd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 909\u001b[0;31m \u001b[0mspawn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdry_run\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdry_run\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 910\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/distutils/spawn.py\u001b[0m in \u001b[0;36mspawn\u001b[0;34m(cmd, search_path, verbose, dry_run)\u001b[0m\n\u001b[1;32m 35\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'posix'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 36\u001b[0;31m \u001b[0m_spawn_posix\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msearch_path\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdry_run\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdry_run\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 37\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'nt'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/distutils/spawn.py\u001b[0m in \u001b[0;36m_spawn_posix\u001b[0;34m(cmd, search_path, verbose, dry_run)\u001b[0m\n\u001b[1;32m 158\u001b[0m \u001b[0;34m\"command %r failed with exit status %d\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 159\u001b[0;31m % (cmd, exit_status))\n\u001b[0m\u001b[1;32m 160\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mWIFSTOPPED\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstatus\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mDistutilsExecError\u001b[0m: command 'gcc' failed with exit status 1", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[0;31mCompileError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/pyximport/pyximport.py\u001b[0m in \u001b[0;36mload_module\u001b[0;34m(name, pyxfilename, pyxbuild_dir, is_package, build_inplace, language_level, so_path)\u001b[0m\n\u001b[1;32m 214\u001b[0m so_path = build_module(module_name, pyxfilename, pyxbuild_dir,\n\u001b[0;32m--> 215\u001b[0;31m inplace=build_inplace, language_level=language_level)\n\u001b[0m\u001b[1;32m 216\u001b[0m \u001b[0mmod\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mimp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_dynamic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mso_path\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/pyximport/pyximport.py\u001b[0m in \u001b[0;36mbuild_module\u001b[0;34m(name, pyxfilename, pyxbuild_dir, inplace, language_level)\u001b[0m\n\u001b[1;32m 190\u001b[0m \u001b[0minplace\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0minplace\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 191\u001b[0;31m reload_support=pyxargs.reload_support)\n\u001b[0m\u001b[1;32m 192\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexists\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mso_path\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"Cannot find: %s\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mso_path\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/pyximport/pyxbuild.py\u001b[0m in \u001b[0;36mpyx_to_dll\u001b[0;34m(filename, ext, force_rebuild, build_in_temp, pyxbuild_dir, setup_args, reload_support, inplace)\u001b[0m\n\u001b[1;32m 101\u001b[0m \u001b[0mobj_build_ext\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_command_obj\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"build_ext\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 102\u001b[0;31m \u001b[0mdist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_commands\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 103\u001b[0m \u001b[0mso_path\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mobj_build_ext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_outputs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/distutils/dist.py\u001b[0m in \u001b[0;36mrun_commands\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 954\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mcmd\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcommands\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 955\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_command\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 956\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/distutils/dist.py\u001b[0m in \u001b[0;36mrun_command\u001b[0;34m(self, command)\u001b[0m\n\u001b[1;32m 973\u001b[0m \u001b[0mcmd_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mensure_finalized\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 974\u001b[0;31m \u001b[0mcmd_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 975\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhave_run\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mcommand\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/Cython/Distutils/old_build_ext.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 185\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 186\u001b[0;31m \u001b[0m_build_ext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuild_ext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 187\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/distutils/command/build_ext.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 338\u001b[0m \u001b[0;31m# Now actually compile and link everything.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 339\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuild_extensions\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 340\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/Cython/Distutils/old_build_ext.py\u001b[0m in \u001b[0;36mbuild_extensions\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 193\u001b[0m \u001b[0mext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msources\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcython_sources\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msources\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mext\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 194\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuild_extension\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mext\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 195\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/distutils/command/build_ext.py\u001b[0m in \u001b[0;36mbuild_extension\u001b[0;34m(self, ext)\u001b[0m\n\u001b[1;32m 532\u001b[0m \u001b[0mextra_postargs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mextra_args\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 533\u001b[0;31m depends=ext.depends)\n\u001b[0m\u001b[1;32m 534\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/distutils/ccompiler.py\u001b[0m in \u001b[0;36mcompile\u001b[0;34m(self, sources, output_dir, macros, include_dirs, debug, extra_preargs, extra_postargs, depends)\u001b[0m\n\u001b[1;32m 573\u001b[0m \u001b[0;32mcontinue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 574\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_compile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mext\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcc_args\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mextra_postargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpp_opts\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 575\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/distutils/unixccompiler.py\u001b[0m in \u001b[0;36m_compile\u001b[0;34m(self, obj, src, ext, cc_args, extra_postargs, pp_opts)\u001b[0m\n\u001b[1;32m 119\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mDistutilsExecError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mmsg\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 120\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mCompileError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 121\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mCompileError\u001b[0m: command 'gcc' failed with exit status 1", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mmgcpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindependence_tests\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdcorr\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mDCorr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/mgcpy/independence_tests/dcorr.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mmgcpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindependence_tests\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mabstract_class\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mIndependenceTest\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mscipy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstats\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mmgcpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindependence_tests\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmgc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdistance_transform\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mtransform_distance_matrix\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'mgcpy.independence_tests.mgc.distance_transform'" + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/pyximport/pyximport.py\u001b[0m in \u001b[0;36mload_module\u001b[0;34m(self, fullname)\u001b[0m\n\u001b[1;32m 460\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpyxbuild_dir\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 461\u001b[0m \u001b[0mbuild_inplace\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minplace\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 462\u001b[0;31m language_level=self.language_level)\n\u001b[0m\u001b[1;32m 463\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mmodule\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 464\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/pyximport/pyximport.py\u001b[0m in \u001b[0;36mload_module\u001b[0;34m(name, pyxfilename, pyxbuild_dir, is_package, build_inplace, language_level, so_path)\u001b[0m\n\u001b[1;32m 229\u001b[0m name, traceback.format_exception_only(*sys.exc_info()[:2])))\n\u001b[1;32m 230\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0msys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mversion_info\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m>=\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 231\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwith_traceback\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 232\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 233\u001b[0m \u001b[0mexec\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"raise exc, None, tb\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m'exc'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'tb'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mtb\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/pyximport/pyximport.py\u001b[0m in \u001b[0;36mload_module\u001b[0;34m(name, pyxfilename, pyxbuild_dir, is_package, build_inplace, language_level, so_path)\u001b[0m\n\u001b[1;32m 213\u001b[0m \u001b[0mmodule_name\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 214\u001b[0m so_path = build_module(module_name, pyxfilename, pyxbuild_dir,\n\u001b[0;32m--> 215\u001b[0;31m inplace=build_inplace, language_level=language_level)\n\u001b[0m\u001b[1;32m 216\u001b[0m \u001b[0mmod\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mimp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_dynamic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mso_path\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 217\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_package\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mhasattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'__path__'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/pyximport/pyximport.py\u001b[0m in \u001b[0;36mbuild_module\u001b[0;34m(name, pyxfilename, pyxbuild_dir, inplace, language_level)\u001b[0m\n\u001b[1;32m 189\u001b[0m \u001b[0msetup_args\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msargs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 190\u001b[0m \u001b[0minplace\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0minplace\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 191\u001b[0;31m reload_support=pyxargs.reload_support)\n\u001b[0m\u001b[1;32m 192\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexists\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mso_path\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"Cannot find: %s\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mso_path\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 193\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/pyximport/pyxbuild.py\u001b[0m in \u001b[0;36mpyx_to_dll\u001b[0;34m(filename, ext, force_rebuild, build_in_temp, pyxbuild_dir, setup_args, reload_support, inplace)\u001b[0m\n\u001b[1;32m 100\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 101\u001b[0m \u001b[0mobj_build_ext\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_command_obj\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"build_ext\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 102\u001b[0;31m \u001b[0mdist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_commands\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 103\u001b[0m \u001b[0mso_path\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mobj_build_ext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_outputs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 104\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mobj_build_ext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minplace\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/distutils/dist.py\u001b[0m in \u001b[0;36mrun_commands\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 953\u001b[0m \"\"\"\n\u001b[1;32m 954\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mcmd\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcommands\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 955\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_command\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 956\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 957\u001b[0m \u001b[0;31m# -- Methods that operate on its Commands --------------------------\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/distutils/dist.py\u001b[0m in \u001b[0;36mrun_command\u001b[0;34m(self, command)\u001b[0m\n\u001b[1;32m 972\u001b[0m \u001b[0mcmd_obj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_command_obj\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcommand\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 973\u001b[0m \u001b[0mcmd_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mensure_finalized\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 974\u001b[0;31m \u001b[0mcmd_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 975\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhave_run\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mcommand\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 976\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/Cython/Distutils/old_build_ext.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 184\u001b[0m \u001b[0moptimization\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdisable_optimization\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 185\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 186\u001b[0;31m \u001b[0m_build_ext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuild_ext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 187\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 188\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mbuild_extensions\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/distutils/command/build_ext.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 337\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 338\u001b[0m \u001b[0;31m# Now actually compile and link everything.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 339\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuild_extensions\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 340\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 341\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcheck_extensions_list\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mextensions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/Cython/Distutils/old_build_ext.py\u001b[0m in \u001b[0;36mbuild_extensions\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 192\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mext\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mextensions\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 193\u001b[0m \u001b[0mext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msources\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcython_sources\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msources\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mext\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 194\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuild_extension\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mext\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 195\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 196\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcython_sources\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msources\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mextension\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/distutils/command/build_ext.py\u001b[0m in \u001b[0;36mbuild_extension\u001b[0;34m(self, ext)\u001b[0m\n\u001b[1;32m 531\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdebug\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 532\u001b[0m \u001b[0mextra_postargs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mextra_args\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 533\u001b[0;31m depends=ext.depends)\n\u001b[0m\u001b[1;32m 534\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 535\u001b[0m \u001b[0;31m# XXX outdated variable, kept here in case third-part code\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/distutils/ccompiler.py\u001b[0m in \u001b[0;36mcompile\u001b[0;34m(self, sources, output_dir, macros, include_dirs, debug, extra_preargs, extra_postargs, depends)\u001b[0m\n\u001b[1;32m 572\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 573\u001b[0m \u001b[0;32mcontinue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 574\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_compile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mext\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcc_args\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mextra_postargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpp_opts\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 575\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 576\u001b[0m \u001b[0;31m# Return *all* object filenames, not just the ones we just built.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/anaconda3/lib/python3.6/distutils/unixccompiler.py\u001b[0m in \u001b[0;36m_compile\u001b[0;34m(self, obj, src, ext, cc_args, extra_postargs, pp_opts)\u001b[0m\n\u001b[1;32m 118\u001b[0m extra_postargs)\n\u001b[1;32m 119\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mDistutilsExecError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mmsg\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 120\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mCompileError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 121\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 122\u001b[0m def create_static_lib(self, objects, output_libname,\n", + "\u001b[0;31mImportError\u001b[0m: Building module mgcpy.independence_tests.mgc.distance_transform failed: [\"distutils.errors.CompileError: command 'gcc' failed with exit status 1\\n\"]" ] } ], @@ -160,9 +147,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'DCorr' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mquad_sim\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m100\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mdcorr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mDCorr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mwhich_test\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'dcorr'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0mtest_stat\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdcorr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtest_statistic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"DCorr's test statistic: %.2f\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mtest_stat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mNameError\u001b[0m: name 'DCorr' is not defined" + ] + } + ], "source": [ "x, y = quad_sim(100, 1)\n", "\n", @@ -298,7 +297,6 @@ ] }, { - "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -348,7 +346,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -364,14 +362,14 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "HHG test statistic: 36.88\n" + "HHG test statistic: 56.76\n" ] } ], @@ -392,14 +390,23 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "HHG p-value: 0.92\n" + "HHG p-value: 0.51\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/anaconda3/lib/python3.6/site-packages/mgcpy/independence_tests/abstract_class.py:154: UserWarning: The p-value is greater than 0.05, implying that the results are not statistically significant.\n", + "Use results such as test_statistic and optimal_scale, with caution!\n", + " \"Use results such as test_statistic and optimal_scale, with caution!\")\n" ] } ], @@ -424,7 +431,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -454,14 +461,14 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Kendall's test statistic: -0.05\n" + "Kendall's test statistic: 0.05\n" ] } ], @@ -482,14 +489,14 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Pearson's p-value: 0.74\n" + "Pearson's p-value: 0.49\n" ] } ], @@ -521,14 +528,14 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Spearman's test statistic: 0.09\n" + "Spearman's test statistic: -0.04\n" ] } ], @@ -549,14 +556,14 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Pearson's p-value: 0.15\n" + "Pearson's p-value: 0.72\n" ] } ], @@ -581,7 +588,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -619,14 +626,14 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Pearson's test statistic: 0.46\n" + "Pearson's test statistic: 0.53\n" ] } ], @@ -647,7 +654,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -700,14 +707,14 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "RV test statistic: 0.00\n" + "RV test statistic: 0.02\n" ] } ], @@ -728,14 +735,14 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "RV p-value: 0.88\n" + "RV p-value: 0.43\n" ] } ], @@ -771,7 +778,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -799,7 +806,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -814,6 +821,13 @@ "p_value = cca.p_value(x, y)[0]\n", "print(\"CCA p-value: %.2f\" % p_value)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/demos/simulations.ipynb b/demos/simulations.ipynb new file mode 100644 index 0000000..9a576e7 --- /dev/null +++ b/demos/simulations.ipynb @@ -0,0 +1,1012 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tutorial for Simulations" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, import the simultions utilizing the import statement below:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from mgcpy.benchmarks import simulations as sims" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Simultions are randomly generated with an $x$ which is $(n\\cdot d)$ and $y$ which is $(n\\cdot 1)$ that have 2 required parameters: `num_samp` or the number of samples, and `num_dim` or the number of dimensions. Optional parameters can be set based on the documentation. Visualizations of the 4 simulations imported above are shown below with and without the noise. Each simulation is also shown in 2D." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Linear Simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [], + "source": [ + "x_normal, y_normal = sims.linear_sim(100, 1)\n", + "x_no_noise, y_no_noise = sims.linear_sim(1000, 1, noise=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdQAAAEWCAYAAADfB2bTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzt3XmYVNWZBvD3K3qjAWVfGuxuHVlsNAjdgyJmQmhjJBONY3SCNonGKKFJTCLGJE7nYSIJjhkzOjMmssTRRLrBOMZEnGiMKEtiXMIistqC2qCyibI2IE1/88e9Bbera69zl6p6f89znqZu3apzblVxv3uWe46oKoiIiCgzIb8LQERElAsYUImIiAxgQCUiIjKAAZWIiMgABlQiIiIDGFCJiIgMYEClQBORG0RERWSZ32UhIoqHAZUCQUTesQPnlRFPbQTwXwAe96FYRERJK/C7AETxqOqrAF71uxwiUqiqx/0uBxEFF2uoFGiRTb4iMsF+/I6I/IuI7LbT7Y7XFIjI7SKySUQOi8hGEbnZ8fxnRGSNiOwXkeMi0iIid0bJ8y8iMkdEDgJo8PK4iSj7MKBStqoAMAXAXwD0A/BTERlqP/djAP8OQAD8L4DuAOaLyPX284MBfADgUQALAPQAMFNEJkfkMR7ARAALAbzl3qEQUS5gQKVsdQLARFW9CsA2WMFzlIgIgG/a+/wVwD4Ar9mP6+2/jwC4D8B2APsBbLW3T4zI4yCAC1T166r6iCtHQUQ5g32olK12qupO+9/7AJTDqon2tf8CwFcjXnO2/XcOgKlR3rNfxOMNqrrPQFmJKA+whkrZqs3xb+eSSR8AOGz/+xOqKqoqsH7rNfb2L9l/bwDQBVaABaxartMxY6UlopzHgEpB81MReTmcYNU8k6bWeoS/sB8+JyK/FJFFsPpAf2Rv32X//RasPtQbMi41EeU9BlQKmmEALnCkA2m8xw8BfB/Ah7AGLk0E8AaA39jP3wRgM4AqWAOS5mVWZCIiQLjAOBERUeZYQyUiIjKAAZWIiMgABlQiIiIDGFCJiIgMyKqJHfr27auVlZV+F4OIcsyqVas+UNV+Edv6FxQUPAjgXLDyQUA7gPVtbW03VVdX7462Q1YF1MrKSqxcudLvYhBRjhGRlshtBQUFDw4cOPCcfv36fRQKhXg7RJ5rb2+XPXv2VO3cufNBAFdE24dXXURE0Z3br1+/AwymBAChUEj79eu3H1aLRfR9PCwPEVE2CTGYkpP9e4gZNxlQiYiIDGBAJSIKKBGpvvnmm4eEH8+cOXPAjBkzyrwswxe/+MXKhx9+uFe052688cYznnnmme7Rnov0ne98p+z3v/99DwCYNWtW/4MHD56MP6WlpaPNlLaj0aNHj0jndZ///OfPWrduXXGqr2NAJSIyYO5c9C4rw3mhEKrLynDe3Lnonel7FhUV6dNPP91rx44daQ0gPX78eKZFiGnXrl1dVq1a1W3SpEmHktn/P//zP9+/8sorDwLAvHnzBhw6dMj1+LNmzZrN6byuvr5+9+zZswem+joGVCKiDM2di9633oqKHTtQpArs2IGiW29FRaZBtUuXLvqVr3xlz1133TUg8rnm5uaicePGDRs2bFjVuHHjhr355ptFgFWjvOmmm4ZccMEFw6ZPnz5kxowZZVdddVXl+PHjhw4ePPi8X//61z2nTZs2ZNiwYVWf/OQnhx47dkwA4Lvf/e6gc88995yhQ4eOvPbaayva29vjlm3BggW9amtrDwDA0qVLSy+99NK/A4DGxsaeJSUlY44ePSqtra0yZMiQ88Llevjhh3v95Cc/6b979+7CT33qU8MuuOCCYeH3u+WWWwYPHz68atSoUSO2b9/e6QJixowZZddcc03l2LFjhw8ZMuS8n/zkJ/3Dz/3oRz8aMHTo0JFDhw4dOWvWrJPbwzXflpaWwpqamuEjRoyoGjp06Mg//vGP3QHgiSeeOO38888fUVVVdc6kSZPO2r9/fwgALrvsskN//vOfT0v1goQBlciApiagshIIhay/TU1+l4i8NGsWBh892vF8evQoQrNmYXCm73377bfvfuKJJ3rv3bu3i3P7tGnTyq+77rq9zc3NG7/0pS/tra+vPyP83NatW0tefPHF5l/+8pfvAkBLS0vxCy+8sOXxxx/fMm3atDMnTpx4oLm5eWNJSUn7Y489dno4n/Xr12968803Nxw5ciT06KOPnh6vXH/961+719TUHAaAiy++uHXDhg2lALBixYruZ5999pEVK1aULl26tNvo0aM71GB/+MMf7u7fv//x5cuXN7/yyivNAHDkyJHQuHHjDr3xxhsbx40bd+j+++/v1zlHYMuWLSXLly9v/tvf/rbpZz/7WdmxY8fkz3/+c+nChQv7rFq1atPKlSs3PfLII/1efPHFrs7XPfTQQ71ra2v3b968eeOmTZs2XHDBBa07duwouOuuuwatWLGieePGjZvGjBnT+uMf/3gAAHTp0gUVFRVHX3755dLkviVLVt2HShRETU3A1KlAa6v1uKXFegwAdXX+lYu8s3MnilLZnorevXu3X3PNNXvvvvvu/l27dj1ZbVyzZk23Z555ZisA1NfXf3jnnXee7Gu96qqrPiooOHV6v+SSS/YXFxfr2LFjj5w4cUKuvvrqAwAwcuTII2+//XYRADzzzDM97r333oFHjx4N7du3r6CqquoIgP2xyrVr167CAQMGtAFAYWEhKioqjq5evbpk9erV3W655ZZdS5cu7XHixAkZP358wibhwsJCnTx58n4AqK6uPrxkyZLTou136aWX7uvatat27dq1rXfv3sfffffdgmXLlnX/3Oc+t++0005rB4B//Md//Gjp0qU9xo8ffyT8ugsvvPDw17/+9crjx4+Hrr766o8uuuiiI4sWLeqxdevWkrFjx44AgOPHj0t1dfXJsvbt27dt+/bthYnK7sQaKlGGGhpOBdOw1lZrO+WHgQPxcSrbU3XHHXfsWrhwYd/Dhw8ndc7u3r17h/ba4uJiBayaV0FBgYZC1tuEQiG0tbVJa2ur3HbbbRVPPPHE1ubm5o1Tpkz54OjRo3HzKikpaT9y5MjJfS666KJDixcvPr2wsFAvv/zyAy+99FL3l156qXttbe3BROV1lqmgoABtbW0Sbb/wcYSPpa2tLaklSCdNmnRoxYoVbwwePPjjG2644cyf//znfVQVF1988YHNmzdv3Lx588atW7dueOyxx05O8HHs2LFQaWlp/HbvCAyoRBnati217ZR7Zs7EeyUl6HDyLSlB+8yZeM/E+w8YMODE5Zdf/tHChQv7hreNHj368IMPPtgLAObNm9e7pqYmqcFB0bS2toYAYODAgW379+8PPfXUU1FH9ToNHz78aHNz88mRsBMmTDg0b968/n//939/qKysrO2jjz4qeOutt0qqq6uPRr62W7duJ8L9lZmaOHHioaeffrrnwYMHQwcOHAg9/fTTvT796U93COLNzc1FgwcPPn7bbbd9MGXKlA9Wr15dOmHChMMrV67svn79+mIAOHjwYOj1118/eTxvv/128ejRozuVPR4GVKIMlZentp1yz7Rp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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(5, 4))\n", + "ax1 = fig.add_subplot(1, 1, 1)\n", + "ax1.scatter(x_normal, y_normal, c='b', label='Normal (with noise)')\n", + "ax1.scatter(x_no_noise, y_no_noise, c='r', label='No noise')\n", + "ax1.set_title('Linear', fontweight='bold')\n", + "ax1.set_xlabel('X Vector')\n", + "ax1.set_ylabel('Y Vector')\n", + "plt.legend(bbox_to_anchor=(1.3, 0.9), bbox_transform=plt.gcf().transFigure)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exponential Simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "x_normal, y_normal = sims.exp_sim(100, 1)\n", + "x_no_noise, y_no_noise = sims.exp_sim(1000, 1, noise=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Tp2q9913n6qqtra2tr/vjBkzdNmyZe3n+9WvftXJtvPOO6+9zu7du7WhoUFVVS+99FIdO3asrlq1SleuXKnTpk3rdJ76+nrdunVr+7mA9nN961vf0v/4j//o9H7z58/XCRMm6M6dO3Xr1q3ar18/3bVrl7a0tOiIESN0+/bt+sEHH+jw4cP12Wefbb9+qqrXXnut/uAHP1BV1T179uj777+vW7du1WOOOUa3b9+uqqpXXXWVfu9732t/vylTpmhLS0snOwq5L4zk0tTk/H5FnMempuLOA7SorWvvjSAd2fvvvz/nnXceCxcupKampn3/k08+ydKlSwE499xzueyyy9qPnXnmmVRV7Vvq/MQTT6S6upqRI0fS1tbW3pIcOXIkr7/+OgCPPvooV199NTt27ODtt9/msMMO44tf/CK52Lx5MwMHOtnBunfvzqc+9SnWrVvH008/zSWXXMLjjz9OW1sbxxxzTN7P2KNHD045xVm5eMyYMaxYsSJrvZNPPpmePXvSs2dPBg0axJYtW1i1ahWnnXYa++3nrHZ8+umn88QTT3D44Ye3v27cuHHMnj2b3bt3M3XqVEaPHs1jjz3G2rVrmThxIgC7du1iwoQJ7a8ZNGgQmzZtYsyYbOvkGeVMFKFS1rUneEf2xRdfzG233caHH36Ys056jGNKVFL07NkTgG7dulFdXd1et1u3buzZs4edO3cyd+5clixZwosvvsiFF16YN/C8pqamQ51jjjmGBx98kOrqaqZMmcKqVatYtWqVJx9quk1VVVU5u9Spz5FeTz2s0DBp0iQef/xxhgwZwrnnnsvPf/5zVJXPf/7zrF69mtWrV7N27Vpuu+229tfs3Lmzwx+XUTlEESplQkrwjux+/fpx1llndfihH3300dx9990ANDc389nPfrbo86cEccCAAWzfvj3nKH06hx56KOvXr2/fnjRpEtdffz0TJkxg4MCBtLa28vLLL3PYYYd1em2fPn344IMPirY3nUmTJnH//fezY8cOPvzwQ+67775OreANGzYwaNAgLrzwQi644AKeffZZxo8fzx//+Mf2z7Bjxw5effXV9te8+uqrWW034otfA75RhEqZkBKOI/vSSy/tMHq/cOFC7rjjDkaNGsVdd93Fj3/846LP3bdvXy688EJGjhzJ1KlTGTduXN7XnHzyyaxcubJ9+6ijjmLLli3t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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(5, 4))\n", + "ax1 = fig.add_subplot(1, 1, 1)\n", + "ax1.scatter(x_normal, y_normal, c='b', label='Normal (with noise)')\n", + "ax1.scatter(x_no_noise, y_no_noise, c='r', label='No noise')\n", + "ax1.set_title('Exponential Simulation', fontweight='bold')\n", + "ax1.set_xlabel('X Vector')\n", + "ax1.set_ylabel('Y Vector')\n", + "plt.legend(bbox_to_anchor=(1.3, 0.9), bbox_transform=plt.gcf().transFigure)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Cubic Simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "x_normal, y_normal = sims.cub_sim(100, 1)\n", + "x_no_noise, y_no_noise = sims.cub_sim(1000, 1, noise=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVkAAAEWCAYAAADM/ORiAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJztnXu8FNWV77/rHN5KBnllBOSAo0lEIAgHQR2J5IBikokkEx0MKIiRTzjmwdWJSYZ7EyY33Mkk0RiTQILxfU40GaKRxBgVlfiIqKjgAxDRACIMIj4mgshr3T+q+lCnT3V3dXdVV1X3+n4++9Pdu3bV3lVd9atda6+9SlQVwzAMIxrq4m6AYRhGNWMiaxiGESEmsoZhGBFiImsYhhEhJrKGYRgRYiJrGIYRISayRkURkRtFREVkQZ4y6qYhEbVhk7v9M6LYvlvHCreOWWVuJ/K2GtFiImsUhYicJiK/F5FdIrJXRF4WkZ+ISJcQq/mxm/6nhPbVici33Xa977bzSRG52FPsenf7W0Nqb9mIyCxXTFdkLUpcW43i6BR3A4z0ICLTgBagHlgDPAkMAb4I/B9gXxj1qOq8Mlb/KrAA2ALcAHwAGAOcAlznbv87ZTaxYqSprYY/1pM1AiEiPYCf4QhsCzBaVS9R1cnAR4A9InKG2xvb5Fkv12NzHxFZJiJ7RGSViIzyrNPOXCAivUXkGrd3uldEXhGRT+Vo6kT3c56qflFVP6+qHwau8Gy/3SO4p41Xi8hjbptuFZGhIvKgiOwWkT+JSG+3fIdeZ6HHehGZISJrReRvIrJPRDaISHNmezg3BICPeY+hT1uPEJEfuMfiXRFZLSIXeOpZ4JZfKiI3u2U2isikHMfLiBgTWSMopwG93e/fVdVDmQWq+rKqFtuLbcbp+a7G6Wn+QUS6ZRcSkTrgd8CXga44Av8KcGyO7W53P68VkVtEpFlEhqjqmwHadCmwEdgPTAOeAd4BdgJnAZcF3Dc/Gtx2twC/BgYBPxORU4C1wH1uuddwzAPX59jODcC/AgeB3wDHAzeLyPlZ5f4ZGAA8D/xDnu0ZEWMiawSlv+f75hC2t0xVPwd8DHgdGAg0+ZQbDZwO7AXGquoXVHUSsDjHdv8vsAroA8zA6X2/nG+gzcNNqnoBcIf7e4OqTgWudH+fFGAbufgBcCPw38AbwKtu/kRVfQL4lft7o6rO8zMTiEh/4Fz352RVnQ38m/v7y1nFXwAmAxnxPUZE+pbRfqNEzCZrBOV1z/cG4MWA69XnyF8HoKr7ReQVHBEf5FNuqPu5RVUzvVRUdb/fRlV1KzBWREbgCPg0nF74t0Tkp6r6Rp62rnM/33Y/M/v4N/fziDzr5trPDL8HzvTJ71dgPS9D3M/3VDVzo1vvfjZklV2tqioib3vyjsQReKOCWE/WCMpfgLfc7//bfYwHQEQaRKQzsNvN6unmdwY+lGN7J3jKZB79/UbQ/+p+DhaRv/fU6dtBEJHxItJDVZ9T1Z8CGdutkF8kwXkEz/c7Q2Y/P+DW2Qf4+xxlEZFeHBbYiTjX3d2ednnryndNbnI/u4vIYPf7h93P7KeLA+6nhdmLGevJGoFQ1d0i8mXgZpzH8BEi8gSO3W8y8EFgA7AH6C0iN+MIT/8cm/y0iCx11+8PbAMe8Cn3NPAwjsngSRH5E45p4W7gJz7l/xX4uIg8iiPaY9z8DTgeB2GwBke8RonIz4BG8l9Lu4F3cXqSC3BuVtmmkYz5YIyILAKeUdVrvQVU9XX3mH0OuM/dx/PcxT8tfXeMKLGerBEYVW3F6Yn9ERgMzMTpkV4L7FHVd3DcubYBU4CXgZU5NrcIZyBrFI6Q/pOqvudT5yFgKo6g7gcuxPFm2JRju7/GcS0bA8x223mHu/1QenWqugH4BrALOAe4lzwC7po2ZrplxuKYI5ZmFXsIxy57EJjrbteP2cCPgC7Av+AMpl2kqr/KUd6IGbGg3YZhGNFhPVnDMIwIMZE1DMOIkNhEVkSOcWfTrBORF0Tkq25+bxG5T0Recj+PcvPFnfWzUUSeFZHRcbXdMAwjKHH2ZA8Al6vqCcB44FIRGYYzoHC/qh4P3O/+BjgbZ3bL8cAccjujG4ZhJIbYXLhcx/Lt7ve/icg6HNecc4Az3GI3ASuAr7v5N7sjxCtFpJeIHO11UM+mb9++OmTIkMj2wTCM2uSpp556Q1UDTSRJhJ+sGwjkJOBx4IMZ4VTV7e5UQnAE+FXPalvdvHYiKyJzcHq6DB48mFWrVkXadsMwag8RCTy1PPaBLxE5EvgtTtSkfPFDxSevg/+Zqi5R1UZVbezXr5gZi4ZhGOETq8i6Uyp/C7Sq6u1u9g4ROdpdfjSH58xvBY7xrD4Ix+ndMAwjscTpXSA4QZTXqepVnkXLcGbH4H7e6cm/0PUyGA+8k88eaxiGkQTitMmeBlwAPCciq928fwO+B/xGnNeFbOFwaLc/Ap/Aife5B7ioss01DMMonji9Cx7B384KPnFFXa+CSyNtlGEYRsjEPvBlGEbyaW2FIUOgrs75bG2Nu0XpIREuXIZhJJfWVpgzB/bscX5v3uz8Bpg+Pb52pQXryRqGkZf58w8LbIY9e5x8ozAmsoZh5GVLjki5ufKN9pjIGoaRl8GDi8s32mMiaxhGXhYuhB492uf16OHkG4UxkTVqFhsxD8b06bBkCTQ0gIjzuWSJDXoFxbwLjJrERsyLY/p0Oy6lYj1ZoyaxEXOjUpjIGjWJjZgblcJE1qhJbMTcqBQmskZNYiPmRqUwkTVqEhsxNyqFeRcYNYuNmBuVwHqyhmEYEWIiaxiGESEmsoZhGBFiImsYhhEhJrJGzWMxDOwYRIl5Fxg1jcUwsGMQNeK8n7A6aWxs1FWrVsXdDCPBDBniiEo2DQ2waVOlWxMPdgyKR0SeUtXGIGXNXGDUNBbDwI5B1JjIGjWNxTCwYxA1JrJGTWMxDOwYRI2JrFHTWAwDOwZRYwNfhmEYRWIDX4ZhGAnBRNYwDCNCTGQNw0gdaZqhZiJrVAVpuuhqnXL/q8wMtc2bQfXwDLWk/uc28GWknuxpoeC4INkIefII479Kwgy1Yga+TGSN1JOEi84IRhj/VV2d04PNRgQOHSqndcEx7wKjpqiVaaFpNYl42+0nsFDcf5W2GWomskbqSdtFVwpps0NmyG53Lor5r9I2Q81E1giNuHpaabvoSmH+/PZ2THB+z58fT3uC4tfubIr9r1I3Q01VqzaNGTNGjcrQ0qLao4eq019xUo8eTn6l6m9oUBVxPitVb6UQaX9sM0kk7pblJ1e7M21P638FrNKAOhTrwJeIXA98CnhdVYe7eb2BXwNDgE3Aear6logI8GPgE8AeYJaqPp1v+zbwVTls8Cla0np809ruQqRp4OtGYEpW3jeA+1X1eOB+9zfA2cDxbpoDLK5QG40A1MrgU1yk1SSS1naHSawiq6oPAW9mZZ8D3OR+vwmY6sm/2e2trwR6icjRlWmpUYhaGHyKk9TZIV3S2u4wibsn68cHVXU7gPvZ380fCLzqKbfVzWuHiMwRkVUismrnzp2RN9ZwCLvHklZ3pWzC3I/p051H7EOHnM+0CFVa2x0WSRTZXIhPXgeDsqouUdVGVW3s169fBZqVTCotUmH2WNLqrpRNtexHtVHxG3jQEbKoEs4A1/Oe3y8CR7vfjwZedL//Ajjfr1yuVKveBXGP9JdLQ4P/aHRDQ9wtK45q2Y9qIqxrgyK8C5LYk10GzHS/zwTu9ORfKA7jgXfUNSsY7UmrT2WGahlEq5b9qCbiuDZiFVkRuRV4DPiwiGwVkYuB7wGTReQlYLL7G+CPwCvARuBaoDmGJqeCtF/caRtEy/X4mbb9qAXiuDY6Rbfpwqjq+TkWNfmUVeDSaFtUHQwe7O+bmJaLe+FC/0hNSXT7yY4qlbG7Qrr2o1aI5doIaldIYzKbbDptsqrpmcFVyO6alv2oFeKwyVqowyqltdWxM23Z4tylFy6sPdeZSpCEsHtGcYRxbVg8WZdaFlmjMlTrtFEjP2maVmsYqcamjeanWiaVlIOJrOGLXRzBCHvaaDUdd5uM4WDmAqMD9s6seKi2417NphQzFxhlkfbJDGklqce91N512v21w8JE1uiAXRy5ifJxPonHvZxHfpuM4WAia3TALg5/orYxJvG4l9O7tkFBBxNZowPFXhzVNFiTj6gf55MoSuX0rv0GBWfOdI5XtZ8r7Qg6ayGNqVZnfIVB0JlK1TC7LCiVeM9W0maIhRlJrJrOFYqY8RW7EEaZTGSjp5bC+aV5X0sV7zCFMc3HL5tiRNbMBUZZJHGwJiqS+DgfhHJsyWH6AdfSueLFRNYomdZWx7bmRzUOkqX1fVXl2pLDen1MlAN7RY0LVHoQIWiXN43JzAXR4fcYmXY7W7VSCVtyEKKyyRa13V69/A9EkY3AzAVG1Pj1jgDq69PRu6slkuIaFtWTQKCeemurU+nbb3fcgCpcfHF5jciDiaxRErnsaIcOmcBGQSlPuJl1Nm929MVLXLbkKN5cW9DW29wMM2bk38j775ffkBzE+mYEI72k/e0LaSLf2xdyiVT2OqqO0Ko6Pchqii+c91w88URYu7bibfJiPVmjJNI60p5GShm48lsnI7Bh9SArTa7evN+5OKtzK69sltgFFrCBr7hJmvN5MaS57WmilIGrpAx2hUWhwS3vubhVBughv53Pl5qaimoPNhkhHSJbTTNgjOgoxYk/1zr19em8KQY6Bi0txQlriQKrWpzImrkgRpIa2s4In3JcM0sxzfitA3DwYDoDaBcc3KqvLzy4lU337s7BWL68rLYVJKgapzElvSdbbY90hj9hPLGUYprxrlNfX3xvOMy2lEvenmxdXfG91+7dy2oPZi5Ih8hW01xuIzdJ+J/DuqHHZeLKrvdPNOkhKN72WqJ5IJtiRNbMBTFiI/SVIe5QjEmYsx/WhIQoTFxB/h/vRIZ9CGdyPwJIx6L50QqYBzrWGX+PM6qU9J6sqo3QR00SBheT0JMN6ziEbeIK3K65c4vvsYbce/WCmQvSI7JGcRR7U6omgQujHeXe0MM+ngW3V6649upVWsMKYCJrIpt4Sh3IKUas8nn0xBEcpRqeWMK+YeTqGX+eltyjdUFThAfZRNZENtEUc6GWOkKeL0qYd720il2chHnDyO7JljWglUlz54a0p7kxkTWRTTRBHzmDCGWuXmmuOrKTTf6Il5YW1Z/XzW0T1rLENeLeq5diRFac8tVJY2Ojrlq1Ku5mGFnU1TlXRDYiTnSmDJkIUoXIzMcPUkfQ9Y0KMHAgbNuGUoKXQDZNTRX1GhCRp1S1MUhZc+EyKk5Qd6IgLk65XN6KcU0qxpUqbnew1NPc7NxNRWDbNqBMgZ0717mbVtotqwhMZI2KE9Q/OJdQ1tcXDvrsV0d2TNVC9WRTzruyapZMsOxMWry4/G2KQEuL8ycsWlRUU2K5QQa1K6QxmU02uQQZPMllk+3Tp/hppQ0NznhIOSPjSXAHSzzlulwVSiX6u4btFYENfJnIVgstLY6oljRg1dTUYcVDPinoBe5d5x265x14i4Io3MDK3uaAAdGKapnimiHsG6SJrIlsVeG9QM6nRfcj4YxEl5FKFep2qVOnwKoWxYSGwNv0e/lgpVJI7lhhz1QrRmRT510gIlOAHwP1wC9V9Xu5ypp3QYqZNAnuvx+A7DO07JHoFJLvKm07HnPnBrNRuq9kCbTNOBgwAF57LdRN5vJUKdWzpGq9C0SkHvgZcDYwDDhfRIbF2yqjbFpboW/f9gMkrsACbYFASgoIUiVkHwPf47F4cftjmCu5r2QJtM1KkhnMCllgId5gTHlFVkTqReQH0TcjMCcDG1X1FVXdB9wGnBNzm4xiaW52hngzF/2MGbBrV9ytMipJly6HRTWTInzxWFSvIw9C3rfVqupBERkj4lguom9OQQYCr3p+bwXGeQuIyBxgDsBge3VqcujRA957L+5WGHFT4UkDXqZPj+cFkkHMBc8Ad4rIBSLy2UyKumE58HuSaSf+qrpEVRtVtbFfv34Vapbhi9fxPGaB1QLJKB/f45iZLJBJCZ40EBV5e7IuvYFdwMc9eQrcHkmL8rMVOMbzexCwLYZ2GLlobg7H4TxEFHiDXvTnLd/lgQc/PINxtUyum9LDXZqY8H7tiWghCoqsql5UiYYE5EngeBEZCrwGTAM+H2+TDKBtxLriBBiJrs8Tx6CowY8wemHNzfCLX7QP0hAjpXgYbBvWxIc2LW/3hoQePRwbp9GRguYCERkkIneIyOsiskNEfisigyrRuGxU9QDwJeAeYB3wG1V9IY62GC4nnthuxDoMOjzKe6dRZqcAI9H5pudWavCjjUWLDr8yttw0rEzHGhG+2qeFOrRDGtrg1NHaogxpUOrE+WxtUQa+sDy2QaRUUsiRFrgPuAin19sJmAXcF9QRN85kkxHak5ndA4djs2bP8gk8AyhkB3WvY/9PmFu2s3j2fifhzQRRUO6MrXxO+kk4bkkNdk6YM76A1UHykphMZA+TLzZr5sIpeFG1tKh26RKquCqoNjVFHhcgqRdrOYQhgvmOe9yxGpIg8rkIW2SXAzNwZljVu9/vD1pBnKnWRDafkBQKYp3vorrxiHCDfuwaMKxDO5N8QSWVQiJYahCezHEPeypqHPsXFWGL7GBgGbATeB34HTA4aAVxploS2UIileuC8V44fmVep1c4MQK6dFFtacnbzmrsbUZJWI/6uY573D3ZJJsywhbZ04LkJTHVksgWuiCK7cluYkA4QVi6dy+qnWFRC4Id9aN+3EKWZFNG2CL7dJC8JKZKi2ycF3ahR7ugNlnv+5ZKFtZMV6OEdoZB3OJQDOWcM5V41I/znE6yKSMUkQVOAS7HmcZ6mSctANYErSDOVEmRjfvCznVn79Pn8EXSp8/h2Ky+3gXDhpUnrgF2thI9kLh7OUEJ45zJ5THiF4M3icegEEk1ZYQlsh8Dvg1sdz8z6TLg+KAVxJkqKbJx/+l+F2yXLqqdOwe4iMuNZj9sWFntDPtmFHcvJyhhnTN+x7Rz546OIEntzZdC3J2asM0FDUE3lrRUSZFNwoWdfdcP1JsZNqwi4pqvnWFfGHHf8IIS1jkT5CmmGu3S1eRdcB/Qy/P7KOCeoBXEmWqpJ+tH3ou4paXi4lop4u7lBCWscybOG3wtDDD6UYzIBonC1VdV3/bMEHsL6B9gvZoizqDAucg1nXRF50lODNdiGTbMuX5fSPZM5jhjhxZDWOdM0Fesh429vTcghVQYeAqPXyzQgHkX+JK0u7pfj+4duhc/uBXSe5aMjoRxzsTVc0/i01ulIGRzwRRgC3CLmzYDZwWtIM5US36yuchcxD+lBNes+vr47xRGIOK4wSdhHCIIURybUEXW2R59gU8B/4RjPohdQIMkE1mXUga3Em53NeInKT3ZfCIaVS+/GJENEupQ3N7saFX9PdBDRE4O02RhREiPHsWHIZw7N/F2VyN+kjAOUcguPH8+7eLegvN7/vzKtbHgK8FFZDFwCPi4qp4gIkcB96rq2Eo0sBxq/pXgUsJ7RwucD4bhpbXVEawtW5yBtoULKzvAWOhV33U5AraLlBc3PexXgo9T1UuBvdDmXdCl9OYZFSG7i5EHhdxno2HkYfp0R8wOHXI+SxHY1lZHLOvqnM9ivBO2bMmfH5fnhZcgIrtfROohE6Re+uH0bI0k0toKRx4Z6MWF6qabj5jrROs3jApTrhtYIRFNgkkjiMheA9wB9BeRhcAjwP+LtFVGaUxy/V937y5YVIEtDODIHkqnXyyKvm2G4UO5NtNCIpoIn+kgo2PAR4BLcd6vdULQUbW4U015FxTxOphDoJsZkAhf3qAkzQfZCIcw3MDiODcowrsg59tqReQu4FfA71R1PbC+AppvlMKJJ8Lbbxcu5yJz5zJ40SI2RdeiUMk8UmZ6PJlHSkjeLC6jOAYP9h+4KsZmOn16ss+DfOaCJTi+sZtE5NciMlVEbMAraTQ3F+ei1dLivDHVh3IGIKIkCW44RjQkwWYaOYW6ukB34F9w7LL/DVwPTA7aVY4zVb25oJhJBgWmxiY5qEpaZhZlMNNGcaTxeBH2jK+2wjASeAY4WMx6caWqFtliBLapqeDmkjJ7x48kty2bMANxp0l0ao1iRDbIjK8PisiXReRRnJco3guMiaJXbQSkGBPBsGGwfHnBYoX8DaMmn6kiTY+U5Zo2LLJVFZJLfYFLgAeA14CfkJKXJ3pTqT3ZRPckinmLQRHRs+LsLQbp/SX6P/FQrmkjTb32WoaQXj9zA3AmUBd0Y0lLpYhskm2TUQmsarz7XU3CUu6+pM3+XKuEIrLVkEoR2URf8CHaYP2IorcYZJvVJCzl3qwSff4ZbZjIliGyibzgixnkSlCIwqCCU23CEtVrvitJWswzcRGWueCPwJCgG0piqoqebDECO2BATI30J+ixTIqwhEFYbzqIU+Cq6f+IirBE9jxgAzAf6Bx0g0lKVWGTTWEPNkMxTwVxC0sYJO7cKZHEdTQSSDEimzeerIgcAXwLJ2j3LXiib6nqVaG5OEREqfFk446R2UbQeLDDhiUyyHahWJ/VRrXsb1QxWKuJMOPJ7gd2A12BnlmpagkjRmY5tLbCXulC7tufh4QKLMTv31rpacJx+xqHRRJisFYVubq4OL3XtcD3gB5Bu8ZJSmmc8dXSorqZAcFeeFiiF0ElicsMEMeje7U8ZleL2SNKCMkm+zBwYtANJTFVUmTDEpO19cOqRmDjJA7BqyZxqgYbeZSEIrLVkColsqFdXHPnBhPYzp0j2Y9qIi5XPBOn2qAYkQ3yZgSjAKGE4mtthcWLCTTUtW9fERuuTeKyK8Ztz08SSQ2dWWliEVkROVdEXhCRQyLSmLXsmyKyUUReFJGzPPlT3LyNIvKNyrc6N2UPeLS2Oq+NyYMCdO7sP+wbIWm9UOIedKt1LNCNh6Bd3jATcALwYWAF0OjJHwaswfFmGAq8DNS76WXgWJw35a4BhhWqp1Lmglz2v/r6gI+L9fWFTQT19VHvRgfSbmO0R/f4qJZBwFyQdHOBqq5T1Rd9Fp0D3Kaq76vqX4GNwMlu2qiqr6jqPuA2t2wi8Os1gfMC2EJ37/WTmtEgb4q96abSG1giaX8jQdBH97T21pNMtbizhUHSbLIDgVc9v7e6ebnyE0HmjZj19R2X5ROlR5pb+dD9AeywTU2xGPcKXSjVIE72WBsN5mt7mMhEVkSWi8jzPilfD9RPbzRPvl+9c0RklYis2rlzZylNL4np03PPhsklVqcunlH4DxgwIFDQ7SjId6FUizilvbeeVMwmfpjIRFZVJ6nqcJ90Z57VtgLHeH4PArblyferd4mqNqpqY79+/crdjaIo6u7do0cwT4LXXiujRcWR3TP9xCdyXyjVIk72WBsNmae7hgZnOm5Dg/O7Jr0tghpvo0h0HPg6kfYDX6/gDHp1cr8P5fDAV8GJEpWe8RV4oKipqfBAF1R0pCZX2+fO9R88SmRIyBKo9gEaIxpI+mQE4DM4vdP3gR3APZ5l83E8CV4EzvbkfwInKtjLwPwg9cQxrbbgiHZLS0FxPQRFv9mgXIoVm2oRp7R7UBjxUIzI5o3ClXZKjcIVKQUiaykgMQR9KTbyUsYm6zUZ9OiRzkfCxERdM1JDmFG4jDAZWNghQiCWqFrFjgZXk83NZmkZUWIiWymam2Gb71hde1paom+LD6WMBps4GUZhTGQrgRuXoCC9eoWiVKX4r1ZTz9QwkoTZZCtB376wa1fOxQrspjsfkD1l2wSryVZqGEnFbLJJYtKkggK7i170ZA8aglN/tfivGka1YCIbJc3NcP/9BYv14612v8sRRXOuN4xkYSIbJQHssPfR5JtfqijanHHDSBYmslHRpUvhMk1NzGnwj0tQqijanHHDSBYmslHQ3Az79+cv09ICy5eHLormJWBUimqIwlYJzLsgCgrM6gLaTa+yGUdG2qh1L5ZivAtMZKOgkMjGMG3WMMJkyBDHEyabhgZnYkq1Yy5ccTJpUuEyJrBGyjEvluCYyIbJwIGFXbbyPDmYjctIC+bFEhwT2bAIEpugyd9dC6rnTQNGMNJ+QzUvliIIGhMxjami8WQLBeBuasq7erXEZzUKUy0xbGv5bcBYPFmHig18DRxYuBdb4DgXG8/VSC+1PmhUDdjAVyWZNKmwwHbrVnAzZuOqHWzQqLYwkS2XQgNdIvDLXxbcjNm4age7odYWJrLlEGS04pZbAnln20yt2sFuqLWFiWwAco4Ez5iRf8UjjihKJe1NA7WB3VBrCxv4KkCu6YMbhkxi4NoCpoKWFrtyDKMKsYGvEMkVBHtAIYEdNswE1jAME9lC+I34vkOPjpnZ2NRZwzAwkS1I9ojvJgbSk/fIGwJm2LAom2QYRoowkS1A9kjwYLblF1iwXqxhGG2YyBbAOxK8k6MKr9DSEn2jDMNIDSayAZg+HTYtbKUvb+fvxXbpYoNdhmG0w0Q2KLNnFyzyyMXXpzqykmEEIe0RxCpNp7gbkBr27cu7eH3TXM66aXqbu1cmVCFY59aoHrL9xu08L4z1ZIMQ4G0HUzYu8vWnnT8/ojYZRgzk8hu38zw3JrJBKBQEpqnJIisZNYGd58VjIpuDjN3pDTmKghOPly+3yEpGTWDnefGYyPqQsTudurmVPoU8CtyJBxZZyagF7DwvHhNZHzJ2pxuYmV9gu3dvm3hgkZWMWsDO8+KxKFw+1NXBNdrMpSzOL7JVfOwMw8iNReEqk8GDYS4/zy+wAwZUqjmGYaQYE1kfFi6EukLDXa+9VpnGGIaRamIRWRH5gYisF5FnReQOEenlWfZNEdkoIi+KyFme/Clu3kYR+UaU7Zt+xcD8BebOjbJ6wzCqiLhmfN0HfFNVD4jIfwLfBL4uIsOAacCJwABguYh8yF3nZ8BkYCvwpIgsU9W1obesuRm25Ym01akTLFoUerVG/Ozfv5+tW7eyd+/euJtiJIRu3boxaNAgOnfuXPI2YhFZVb3X83Ml8Dn3+znAbar6PvBXEdkInOwu26iqrwCIyG1u2fBFdsmS/MtvvDH0Ko1ksHXrVnr27MmQIUMQKRjQ0qhyVJVdu3YcV0oYAAARxUlEQVSxdetWhg4dWvJ2kmCTnQ3c7X4fCLzqWbbVzcuV3wERmSMiq0Rk1c6dO4tvzcGD+Zebr0rVsnfvXvr06WMCawAgIvTp06fsJ5vIRFZElovI8z7pHE+Z+cABIBPHx+/s1jz5HTNVl6hqo6o29uvXr/iG19fnXtbUVPz2jFRhAmt4CeN8iMxcoKp5o6qIyEzgU0CTHnbW3Qoc4yk2CNjmfs+VHy5z5sDixR3zBwyA5csjqdIwjOolLu+CKcDXgU+rqjemzzJgmoh0FZGhwPHAE8CTwPEiMlREuuAMji2LpHGLFjneA5kebX2989tctowKICJcfvnlbb9/+MMfsmDBgoq2YdasWSxdutR32bx583jooYcCbedb3/oWy92OydVXX80eT/iuI488svyG+nDqqaeWtN60adN46aWXQm6NQ1w22Z8CPYH7RGS1iPwcQFVfAH6DM6D1J+BSVT2oqgeALwH3AOuA37hlo2HRIjhwwJnRdeCAeRMYvkQRvLpr167cfvvtvPHGGyWtf+DAgfIbkYM333yTlStXMmHChEDlv/Od7zDJDROaLbJR8Ze//KWk9ebOncv3v//9kFvjEIvIqupxqnqMqo5y0xc9yxaq6j+o6odV9W5P/h9V9UPuMgtHYcRKJojQ5s3OvTgTvLpcoe3UqRNz5szhRz/6UYdlmzdvpqmpiZEjR9LU1MQWN77grFmzuOyyy5g4cSJf//rXWbBgATNnzuTMM89kyJAh3H777VxxxRWMGDGCKVOmsH//fsARwbFjxzJ8+HDmzJlDoSn2S5cuZcqUKQA88cQTfPaznwXgzjvvpHv37uzbt4+9e/dy7LHHtrVr6dKlXHPNNWzbto2JEycyceLEtu3Nnz+fj370o4wfP54dO3Z0qG/BggXMnj2bM844g2OPPZZrrrmmbdlVV13F8OHDGT58OFdffXVbfqaHvH37diZMmMCoUaMYPnw4Dz/8MAD33nsvp5xyCqNHj+bcc8/l3XffBeD0009n+fLlkdykkuBdYBipI8rg1Zdeeimtra2888477fK/9KUvceGFF/Lss88yffp0vvKVr7Qt27BhA8uXL+fKK68E4OWXX+auu+7izjvvZMaMGUycOJHnnnuO7t27c9ddd7Vt78knn+T555/nvffe4w9/+EPedj366KOMGTMGgNGjR/PMM88A8PDDDzN8+HCefPJJHn/8ccaNG9duva985SsMGDCABx98kAcffBCA3bt3M378eNasWcOECRO49tprfetcv34999xzD0888QT//u//zv79+3nqqae44YYbePzxx1m5ciXXXnttW1sy/OpXv+Kss85i9erVrFmzhlGjRvHGG2/w3e9+l+XLl/P000/T2NjIVVddBUBdXR3HHXcca9asyXsMSsFENmbsfUnpJMrg1R/4wAe48MIL2/XcAB577DE+//nPA3DBBRfwyCOPtC0799xzqfd4xpx99tl07tyZESNGcPDgwbYe6IgRI9i0aRMADz74IOPGjWPEiBE88MADvFDgVfbbt28n47HTqVMnjjvuONatW8cTTzzBZZddxkMPPcTDDz/M6aefXnAfu3Tpwqc+9SkAxowZ09ambD75yU/StWtX+vbtS//+/dmxYwePPPIIn/nMZzjiiCM48sgj+exnP9vWU80wduxYbrjhBhYsWMBzzz1Hz549WblyJWvXruW0005j1KhR3HTTTWzevLltnf79+7NtW/jj6faOrxix9yWll8GDnf/LLz8M5s2bx+jRo7noootylvG6Fx1xxBHtlnXt2hVwemidO3duK1tXV8eBAwfYu3cvzc3NrFq1imOOOYYFCxYU9Aft3r17uzKnn346d999N507d2bSpEnMmjWLgwcP8sMf/rDg/nnbVF9fn/MxPbMf3nJBIgdOmDCBhx56iLvuuosLLriAr33taxx11FFMnjyZW2+91XedvXv30r1794LbLhbrycaIvS8pvUQdvLp3796cd955XHfddW15p556KrfddhsAra2t/OM//mPJ28+IZd++fXn33XdzehN4OeGEE9i4cWPb7wkTJnD11Vdzyimn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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(5, 4))\n", + "ax1 = fig.add_subplot(1, 1, 1)\n", + "ax1.scatter(x_normal, y_normal, c='b', label='Normal (with noise)')\n", + "ax1.scatter(x_no_noise, y_no_noise, c='r', label='No noise')\n", + "ax1.set_title('Cubic Simulation', fontweight='bold')\n", + "ax1.set_xlabel('X Vector')\n", + "ax1.set_ylabel('Y Vector')\n", + "plt.legend(bbox_to_anchor=(1.3, 0.9), bbox_transform=plt.gcf().transFigure)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Joint-Normal Simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "x_normal, y_normal = sims.joint_sim(100, 1)\n", + "x_no_noise, y_no_noise = sims.joint_sim(1000, 1, noise=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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RSkIU6dOZZ999qGjoyPvoiiTjKYXzHXr1jFjxgx6enoYC8qitCrGGAYHB1m3bh377rtv3sVRJhlNXyXfvn07pVJJxVIBQEQolUpa41DqQtMLJqBiqYxDnwelXkwKwVQURWkEKpiKojQ3/f3Q0wNtbc7f/v66HUoFMwNEhM9+dizm7De/+U2WLVvW0DKcc845rFgRPunjJZdcwv3332+Vz5e+9CXuueceAK666iq2bt06+tv06fWZ6uXII4+sar+Pf/zj/Pu//3vGpVGaiv5+WLIEBgbAGOfvkiV1E82WE8x6fIx22203fvzjH7Nx48aq9t+1a1fyRlXy1ltv8fDDD7Nw4UKr7b/85S9z3HHODLFBwawXv/rVr6rar6+vj2984xs1HbuBxolSD5YuheAzunWrs74OtJRg1utjNGXKFJYsWcK3vz1x9oGBgQEWLVrEvHnzWLRoEWvXrgUci/DSSy/l2GOP5Ytf/CLLli3j7LPP5vjjj6enp4cf//jHfOELX+CAAw7ghBNOYOfOnYAjaIcccghz585lyZIlJIXnW7FiBSeccAIAjz76KKeddhoAt99+O9OmTWPHjh1s376d9773vaPlWrFiBddccw2vv/46xx57LMceOzZzxdKlS/mLv/gLDj/8cN58880Jx1u2bBnnnnsuxxxzDO9973u55pprRn+78sormTt3LnPnzuWqq64aXe9Zrm+88QYLFy5k/vz5zJ07l1WrVgHwi1/8giOOOIKDDjqI008/naGhIQCOPvpo7rnnnqo/OA02TpR64L5P1utrpKUEs54fo09/+tP09/ezadOmces/85nP8IlPfIJnnnmG3t5eLrrootHfXn75Ze655x6+9a1vAfCb3/yGO++8k9tvv50zzzyTY489lmeffZZp06Zx5513jub32GOP8dxzz7Ft2zbuuCN+NtgHH3yQgw92pnw56KCDePJJZ06uVatWMXfuXB577DEeeeQRDjvssHH7XXTRRbz73e/mvvvu47777gNgy5YtHH744Tz99NMsXLiQ66+/PvSYL730EnfffTePPvool19+OTt37uTxxx/npptu4pFHHuHhhx/m+uuvHy2Lxw9/+EM+/OEP89RTT/H0008zf/58Nm7cyFe+8hXuuecennjiCRYsWMCVV14JQFtbG/vttx9PP/107DWIosHGiVIP5sxJt75GWkow6/kx2n333fnEJz4xzqICeOihhzjjjDMAOOuss3jggQdGfzv99NNpbx+bpvrEE0+ko6ODAw44gOHh4VHL8IADDmDNmjUA3HfffRx22GEccMAB3HvvvTz/fPxUP2+88QazZztRq6ZMmcJ+++3Hiy++yKOPPsqll17K/fffz6pVqzj66KMTz7Gzs5OTTz4ZgIMPPni0TEE+8pGPsNtuuzFr1iz23HNP3nzzTR544AE++tGP0t3dzfTp0znttNNGLUiPQw45hJtuuolly5bx7LPPMmPGDB5++GFeeOEFPvjBDzJ//nxuueUWBgbGAsvsueeevP7664llD6PBxolSD5Yvh66u8eu6upz1daClBLPeH6NLLrmEG264gS1btkRu4+8j2N3dPe633XbbDXAsp46OjtFt29ra2LVrF9u3b+eCCy5gxYoVPPvss5x//vmJHbSnTZs2bpujjz6an//853R0dHDcccfxwAMP8MADD1i1cfrL1N7eHlkV9s7Dv51NZP+FCxdy//33s/fee3PWWWfx/e9/H2MMH/rQh3jqqad46qmneOGFF7jhhhtG99m+fTvTpk1LzDuMBhsnSj3o7YXrroNyGUScv9dd56yvAy0lmPX+GM2cOZOPfexj417oI488kh/96EcA9Pf3c9RRR1Wdvyd8s2bNYmhoKNIr7mf//ffnlVfGZlVduHAhV111FUcccQSzZ89mcHCQl156iT//8z+fsO+MGTPYvHlz1eX1s3DhQn7605+ydetWtmzZwk9+8pMJVu3AwAB77rkn559/Pueddx5PPPEEhx9+OA8++ODoOWzdupWXX355dJ+XX345tOw2NNg4UepFby+sWQMjI87fOokltJhgNuJj9NnPfnact/yaa67hpptuYt68efzgBz/g6quvrjrvPfbYg/PPP58DDjiAU089lUMOOSRxn4985COsXLlydPmwww7jzTffHLUo582bx7x580JHxyxZsoQTTzxxnNOnWg466CDOOeccDj30UA477DD+5m/+hgMPPHDcNitXrmT+/PkceOCB3HbbbVx88cXMnj2bm2++mcWLFzNv3jwOP/xwXnrpJQDefPNNpk2bxl577VVVmRpsnCiTgKaaBG3BggUmGHH9xRdfZP/998+pRM3BUUcdxR133MEee+yRd1Ey5dvf/ja7774755133oTf9LlQ0iAijxtjFiRt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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(5, 4))\n", + "ax1 = fig.add_subplot(1, 1, 1)\n", + "ax1.scatter(x_normal, y_normal, c='b', label='Normal (with noise)')\n", + "ax1.scatter(x_no_noise, y_no_noise, c='r', label='No noise')\n", + "ax1.set_title('Joint-Normal Simulation', fontweight='bold')\n", + "ax1.set_xlabel('X Vector')\n", + "ax1.set_ylabel('Y Vector')\n", + "plt.legend(bbox_to_anchor=(1.3, 0.9), bbox_transform=plt.gcf().transFigure)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step Simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "x_normal, y_normal = sims.step_sim(100, 1)\n", + "x_no_noise, y_no_noise = sims.step_sim(1000, 1, noise=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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IYcc0qzpTj75ZF588cWtxkXBN8ZUhkexrNO21bKztGmNzzJrXc1dZrz7LuywA3nJLTQj4mGSnrwbchxwUyQWAP0k7ZZXPYVmzYLKSthuu+R51qyWz7Nnz57ccccdrF27tlnTb9nSWndw2Nbf//53FixYwJgxY0pqf8kll3DUUUcB24ZmXv7yl+IO0Evz1a9+lcsuu2yb8T6i2XUJ4N13c5t/OY9p7s4H91OB5AZbu9fXUNIUSdWSqtesWdOihc6aBVOmwMqVEJE8T5nS8uDs3r07U6ZM4aqrrtrmvZUrV3LkkUcydOhQjjzySF599VUg2TI877zzGDt2LN/+9reZNm0ap59+OscccwyVlZXccccdXHjhhQwZMoRx48axefNmIAm1kSNHMnjwYKZMmUJT3fvNnj2bceOSjf4nnniCz3/+8wDcdddd9O7dm02bNrFx40b22Wefurpmz57N9OnTWbVqFWPHjmXs2LF185s6dSoHHHAAo0ePZvXq1dssb9q0aZx55pkcccQR7LPPPkyfPr3uvSuvvJLBgwczePBgrr766rrxtVuwr7/+OmPGjGHYsGEMHjyYRx55BID77ruPgw8+mBEjRnDiiSfyzjvvAHD44Yczb968XP/pmBUqZ2jWtzFQ719/RFwbEVURUVVRkeVOqduaOnXbwx0bNiTjW+rrX/86s2bN4q233tpq/Nlnn81pp53Gs88+y5e//GXOOeecuvdeeOEF5s2bxxVXXAHASy+9xD333MNdd93FqaeeytixY1m8eDG9e/fmnnvuqZvfwoULee6553j33Xe5++67G63r0Ucf5cADDwRgxIgRPP10cj+xRx55hMGDB7Nw4UIef/xxRo0atdV055xzDh/5yEd44IEHeOCBBwBYv349o0ePZtGiRYwZM4brrruu3mUuX76cuXPn8sQTT/C9732PzZs38+STTzJjxgwef/xxFixYwHXXXVdXS62bb76ZT3/60zzzzDMsWrSIYcOGsXbtWi699FLmzZvHU089RVVVFVdeeSUA2223Hfvuuy+LFi1q9DMway3lDM0aYI+C4YHAqrwXmm7klTw+i5122onTTjttqy0rgMcee4wvfelLAEyYMIH58z+4d9aJJ55It24f3JF2/Pjx9OjRgyFDhvD+++/XbSEOGTKEV155BYAHHniAUaNGMWTIEO6//36WLFnSaF2vv/46tf9sunfvzr777suyZct44oknOO+883j44Yd55JFHOPzww5tcx+23357Pfe5zABx44IF1NRX77Gc/S8+ePenfvz8DBgxg9erVzJ8/nxNOOIEdd9yRPn368PnPf75uS7LWyJEjmTFjBtOmTWPx4sX07duXBQsWsHTpUg499FCGDRvGjTfeyMqVK+umGTBgAKtWbf2r4661u64A6N07t/mXMzTnAKcpMRp4KyJez3uhe+6ZbXxW5557Ltdffz3r169vsE3hNYQ77rjjVu/17NkTSLagevToUdd2u+22Y8uWLWzcuJGvfe1rzJ49m8WLFzN58uQmL+Lu3bv3Vm0OP/xw/vjHP9KjRw+OOuoo5s+fz/z580s65llYU7du3RrcLa5dj8J2pdwlYMyYMTz88MPsvvvuTJgwgZtuuomI4Oijj+aZZ57hmWeeYenSpVx//fV102zcuJHeBX8kqvrgdutRhkexrNO21bKztGmNzzJrXc1dZoc9ey7pFuAx4GOSaiRNkvQVSV9Jm9wLvAysAK4DvpZXLYW+//1tT6ztsEMyvjXssssunHTSSVv9UR9yyCHceuutAMyaNYvDDjus2fOvDb/+/fvzzjvvNHi2vND+++/PihUr6obHjBnD1VdfzcEHH0xFRQXr1q1j+fLlfOITn9hm2r59+/L22283u95CY8aM4c4772TDhg2sX7+e3//+99ts3a5cuZIBAwYwefJkJk2axFNPPcXo0aN59NFH69Zhw4YNvPDCC3XTvPDCC9vUrqoq2GsvFNHmD4oeWadtq2VnadPSurLMq6XLzDMwIcfrNCPilCbeDz64b3ab+fKXk+epU5Nd8j33TAKzdnxrOP/88/nZzz64hfb06dM588wzufzyy6moqGDGjBnNnne/fv2YPHkyQ4YMobKykpEjRzY5zWc/+1l+9atfcdZZZwEwatQoVq9eXbdlOXToUAYMGFDvt2imTJnC+PHj2W233eqOazbXiBEjmDhxIgcddBAAZ511FsOHD9+qzYMPPsjll19Ojx496NOnDzfddBMVFRXMnDmTU045hffeew+ASy+9lI9+9KOsXr2a3r17s9tubXLhhVnHu7FaVVVVFPfcvmzZMvbff/8yVdQxHHbYYdx9993069ev3KW0qquuuoqddtqJSZMmbfOefy8sC0lPRkRVU+38Ncou4oorrqi71Kkz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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(5, 4))\n", + "ax1 = fig.add_subplot(1, 1, 1)\n", + "ax1.scatter(x_normal, y_normal, c='b', label='Normal (with noise)')\n", + "ax1.scatter(x_no_noise, y_no_noise, c='r', label='No noise')\n", + "ax1.set_title('Step Simulation', fontweight='bold')\n", + "ax1.set_xlabel('X Vector')\n", + "ax1.set_ylabel('Y Vector')\n", + "plt.legend(bbox_to_anchor=(1.3, 0.9), bbox_transform=plt.gcf().transFigure)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Quadratic Simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "x_normal, y_normal = sims.quad_sim(100, 1)\n", + "x_no_noise, y_no_noise = sims.quad_sim(1000, 1, noise=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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mzePefPmAbBt2zaGDx/OsmXLGDVqFPfffz/ZWLlyJc899xyLFy/mhhtuYNeuXbzyyivMmjWLl19+mUWLFnH//fc31yXFI488wimnnMLSpUtZtmwZAwcOZNOmTdx0003MnTuXJUuWMGTIEO66y3nDRU1NDYcffjjLli3LVg3DJ8xLXib19fEQyEyCtL/uv//+XHTRRcyYMYNOnTo1L3/ppZd44gnn7bYTJkzgBz/4QfO68847jzZt9r2h9rTTTqNdu3b079+fPXv2NLcM+/fvz5o1awCYN28et912G9u3b+ejjz7iqKOO4qyzzspZr/Xr19OzpxPBq23bthx++OGsWLGCxYsXc/XVV7NgwQL27NnDyJEjCx5j+/btOfPMMwEYPHgwc+bMybrdGWecQYcOHejQoQMHHXQQGzZsYOHChZxzzjnst5/ztt5zzz2XF154gWOOOaZ5v6FDh3LJJZewa9cuxo0bx8CBA3n++edZvnw5xx9/PAA7d+5kxIgRzfscdNBBfPDBB80PBcN/rIWZUIK2v06dOpUHHniAbdu25dwmfXxgSjxSdOjQAXBaTu3atWvetqamht27d7Njxw4uv/xyZs+ezeuvv85ll11WcHB2p06dWmwzcuRInn32Wdq1a8fYsWNZuHAhCxcu9GTjTK9TmzZtcnaFU8eRvp2XtxyMGjWKBQsWcOihhzJhwgR+/vOfo6qcdNJJLF26lKVLl7J8+XIeeOCB5n127NjR4gFl+I8JZkIJ2v564IEHcv7557f4Qx933HE89thjADQ2NvL1r3+95PxTwtejRw+2bt2a0yuezpFHHsnq1aubf48aNYp77rmHESNG0LNnTzZv3szKlSs56qijWu3btWtXtmzZ0mp5KYwaNYpf/epXbN++nW3btvHkk0+2atWuXbuWgw46iMsuu4xLL72UJUuWMHz4cF588cXmY9i+fTurVu17aeaqVauy1t3wDxPMhFIJ++s111zTwls+Y8YMZs2axYABA3j44Ye59957S867W7duXHbZZfTv359x48YxdOjQgvucccYZzJ8/v/n3sGHD2LBhQ3OLcsCAAQwYMCDrzJjJkydz2mmntXD6lMqgQYOYNGkSxx57LMOGDePb3/52i+44wPz58xk4cCDHHHMMjz/+OFdddRU9e/bkoYce4sILL2TAgAEMHz6clStXArBhwwY6derE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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(5, 4))\n", + "ax1 = fig.add_subplot(1, 1, 1)\n", + "ax1.scatter(x_normal, y_normal, c='b', label='Normal (with noise)')\n", + "ax1.scatter(x_no_noise, y_no_noise, c='r', label='No noise')\n", + "ax1.set_title('Quadratic Simulation', fontweight='bold')\n", + "ax1.set_xlabel('X Vector')\n", + "ax1.set_ylabel('Y Vector')\n", + "plt.legend(bbox_to_anchor=(1.3, 0.9), bbox_transform=plt.gcf().transFigure)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## W-Shaped Simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "x_normal, y_normal = sims.w_sim(100, 1)\n", + "x_no_noise, y_no_noise = sims.w_sim(1000, 1, noise=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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fepTjBs3js2bN3dJb/bs2Vx00UWceOKJHHzwwVx33XUd26666ipGjBjBiBEjuOaaazrWFyzXTZs2MX78eEaPHs2IESN49NFHAXjwwQc55phjGDNmDOeccw7vvfceACeccAILFy6M/IVjghkzNoomH8R5nb7yla8wd+5c3n777U7rv/rVr3LhhRfy3HPP0dbWxmWXXdaxbe3atSxcuJArr7wSgFdffZX58+dz3333ccEFFzBhwgSef/55+vTpw/z58zvie+qpp3jhhRd4//33uf/++yvm67HHHuOII44AYMyYMTz77LMAPProo4wYMYI8my1jAAAOIklEQVSnnnqKJ598kqOPPrrTcZdddhlDhw5l0aJFLFq0CIDt27czbtw4Vq1axfjx47nppptKpvnSSy/xwAMPsHz5cr7//e+za9cunn76aW699VaefPJJli1bxk033dSRlwJ33nknn/nMZ1i5ciWrVq1i9OjRbN26lR/+8IcsXLiQZ555hrFjx3LVVVcB0NTUxCGHHMKqVasqnoNaMcGMGRtFkw/ivE777LMPF154YSeLCuCJJ57g/PPPB2DKlCksXbq0Y9s555xDt27dOpZPPfVUevTowciRI9m9e3eHZThy5Ehec2ehXrRoEUcffTQjR47k4YcfZvXq1RXztWnTJoYMGQI4lvAhhxzCiy++yPLly7n88stZsmQJjz76KCeccELVMvbs2ZMzzjgDgCOOOKIjT8Wcfvrp9OrVi8GDB7P//vuzefNmli5dymc/+1n69etH//79OfvsszssyAJHHnkkt956K7Nnz+b5559nwIABLFu2jDVr1nDccccxevRobr/9dtZ7RmDsv//+vP7661XzXgupCKaI/FREXhKR50TkNyIyMI18JIHNhZkP4r5OM2fO5Oabb2b79u1l9/F2eenXr1+nbb169QIcy6lHjx4d+zY1NfHhhx+yc+dOLr30UubNm8fzzz/PJZdcUrW/YZ8+fTrtc8IJJ/D73/+eHj16MGnSJJYuXcrSpUt9+Ti9eerWrVvZqnChHN79/ExiPn78eJYsWcKBBx7IlClT+NWvfoWqcvLJJ7Ny5UpWrlzJmjVruPnmmzuO2blzJ3369Kkady2kZWEuAEao6ihgLfCdlPIROzYXZj6I+zrtt99+fOELX+j0QB977LH8+te/BmDu3Lkcf/zxgeMvCN/g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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(5, 4))\n", + "ax1 = fig.add_subplot(1, 1, 1)\n", + "ax1.scatter(x_normal, y_normal, c='b', label='Normal (with noise)')\n", + "ax1.scatter(x_no_noise, y_no_noise, c='r', label='No noise')\n", + "ax1.set_title('W-Shaped Simulation', fontweight='bold')\n", + "ax1.set_xlabel('X Vector')\n", + "ax1.set_ylabel('Y Vector')\n", + "plt.legend(bbox_to_anchor=(1.3, 0.9), bbox_transform=plt.gcf().transFigure)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Spiral Simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "x_normal, y_normal = sims.spiral_sim(100, 1)\n", + "x_no_noise, y_no_noise = sims.spiral_sim(1000, 1, noise=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(5, 4))\n", + "ax1 = fig.add_subplot(1, 1, 1)\n", + "ax1.scatter(x_normal, y_normal, c='b', label='Normal (with noise)')\n", + "ax1.scatter(x_no_noise, y_no_noise, c='r', label='No noise')\n", + "ax1.set_title('Spiral Simulation', fontweight='bold')\n", + "ax1.set_xlabel('X Vector')\n", + "ax1.set_ylabel('Y Vector')\n", + "plt.legend(bbox_to_anchor=(1.3, 0.9), bbox_transform=plt.gcf().transFigure)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Uncorrelated Bernoulli Simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "x_normal, y_normal = sims.ubern_sim(100, 1)\n", + "x_no_noise, y_no_noise = sims.ubern_sim(1000, 1, noise=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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SlEX06tXL+677z42b97coefv2rWrcKIOeuutt1i8eDETJkyIlf7qq6/mlFNOAdoG1lL57W8zV6qO5/LLL+c73/lOkXPjKlWun/z77589/SGHFD8PSfYKWBQt9jbSzEZFt0fM7BYzuyVKY2b2eTP7kJkdZWZlmQCgVHUx3bt3p7Gxke9///ttjq1du5aJEycycuRIJk6cyJvRv9GpU6fy5S9/mZNPPpmvf/3rzJw5kylTpvDxj3+cYcOGcd999/G1r32No446ikmTJrFzZ1jg9eqrr+aYY45hxIgRNDY2ppYbzmn+/PlMmjQJgOeee45zzjkHgAceeIA+ffqwY8cOtm/fzqGHHtqar/nz53PjjTeyfv16Tj75ZE4++eTW882YMYOPfOQjjBs3jo0bN7a53syZM7n44os56aSTOPTQQ7nxxhtbj1133XWMGDGCESNGcP3117fuT5WEN2zYwIQJExg1ahQjRozg6aefBuCxxx5j/PjxjB49mnPPPZctW8I6jSeeeCILFiwo6T8mVzly/eQH6Nt37/19+8KsWcXPQ+KNV5WolHUxn//852lqauLtt9/ea/8XvvAFLrzwQl588UUaGhr40pe+1HrstddeY8GCBVx77bUA/OEPf+Dhhx/mgQceYPLkyZx88smsWLGCPn368PDDD7ee7/nnn+ell17ivffe46GHsi3CusczzzzDmDFjABg9ejS//31YXfjpp59mxIgRPP/88zz77LMcd9ze3Yi/9KUvceCBB/LEE0/wxBNPALB161bGjRvH8uXLmTBhArfeemvWa77yyis8+uijPPfcc1x11VXs3LmTF154gblz5/Lss8+yePFibr311ta8pPzkJz/hE5/4BMuWLWP58uWMGjWKzZs3861vfYsFCxawdOlSxo4dy3XXhRqmbt26cdhhh7F8+fK874GrDbl+2r/1FsyZA/X1IIX7OXOgoaH4eajJ2a06q5R1Mfvuuy8XXnghN954I3367FlP7Xe/+x333Rfa7y644AK+9rWvtR4799xzqavbs7T7aaedRo8ePTjqqKNoaWlpLWkeddRRrFmzBoAnnniC73znO2zbto233nqLI488kn/8x3/Mma8NGzaQ6k3RvXt3DjvsMFatWsVzzz3Hl7/8ZRYuXEhLSwsnnnhiwdfYs2dPzjjjDADGjBnD448/njXdJz/5SXr16kWv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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(5, 4))\n", + "ax1 = fig.add_subplot(1, 1, 1)\n", + "ax1.scatter(x_normal, y_normal, c='b', label='Normal (with noise)')\n", + "ax1.scatter(x_no_noise, y_no_noise, c='r', label='No noise')\n", + "ax1.set_title('Uncorrelated Bernoulli Simulation', fontweight='bold')\n", + "ax1.set_xlabel('X Vector')\n", + "ax1.set_ylabel('Y Vector')\n", + "plt.legend(bbox_to_anchor=(1.3, 0.9), bbox_transform=plt.gcf().transFigure)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Logarithmic Simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "x_normal, y_normal = sims.log_sim(100, 1)\n", + "x_no_noise, y_no_noise = sims.log_sim(1000, 1, noise=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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s9N2F154Ifvssw+PPvoojz76KADr169n7NixvPjii4wfP54bb7yx4GO+9tprPPTQQyxYsIBvf/vbbN68meeee45bbrmF3/72tzzzzDPceOON22NpdMcdd3DiiSeyaNEiXnzxRUaOHMnatWv5zne+w7x583j++eepr6/nqquuAqBbt24ccMABvPjii02+Bq3hJGvWClkeTNt99905++yzd6q5ATz99NN84QtfAOCss85i/vz529edeuqp1NTUbJ8/6aST6N69O8OHD2fr1q3ba6DDhw9n2bJlADz66KOMGTOG4cOH8+tf/5rFixc3Gdc777zD4MHJyH677bYbBxxwAEuWLGHBggVccsklPPHEEzz55JMcffTRzT7HHj168NnPfhaA0aNHb48p32c+8xl69uzJoEGD2GuvvVi9ejXz58/n5JNPpm/fvvTr149TTjlle0210WGHHcYtt9zCjBkzePnll+nfvz/PPPMMr776KkceeSQjR47ktttuY/nyHQNp7bXXXqxatarZ2FvKSdasFbI+mHbxxRdz0003sX79+qJlcvtv9u3bd6d1PXv2BJIaWvfu3beX7datG1u2bGHjxo2cf/75zJ49m5dffpkpU6Y02+G+d+/eO5U5+uij+eUvf0n37t057rjjmD9/PvPnzy+pzTY3ppqamqJ/0xufR265Uq7mMn78eJ544gn23XdfzjrrLH7yk58QERx//PEsWrSIRYsW8eqrr3LTTTdt32bjxo307t272X23lJOsWStkdTCt0Z577slpp522UxI44ogjuOuuuwBoaGjgqKOOavX+G5PloEGD+PDDD4v2Jsh10EEHsXTp0u3z48eP55prrmHcuHEMHjyYdevW8dprr3HIIYfssm3//v354IMPWh1vrvHjx3PfffexYcMG1q9fz7333rtL7Xn58uXstddeTJkyhS996Us8//zzjB07lqeeemr7c9iwYQNvvPHG9m3eeOONgrG3lZOsWStkcTAt39e+9rWdehlcd9113HLLLYwYMYKf/vSnXHvtta3e94ABA5gyZQrDhw9n0qRJHHbYYc1u85nPfIbHHnts+/yYMWNYvXr19prriBEjGDFiRMEzpKZOncpJJ52004Gv1ho1ahTnnnsuhx9+OGPGjOHLX/4yhx566E5lHnvsMUaOHMmhhx7K3XffzUUXXcTgwYO59dZbOeOM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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(5, 4))\n", + "ax1 = fig.add_subplot(1, 1, 1)\n", + "ax1.scatter(x_normal, y_normal, c='b', label='Normal (with noise)')\n", + "ax1.scatter(x_no_noise, y_no_noise, c='r', label='No noise')\n", + "ax1.set_title('Logarithmic Simulation', fontweight='bold')\n", + "ax1.set_xlabel('X Vector')\n", + "ax1.set_ylabel('Y Vector')\n", + "plt.legend(bbox_to_anchor=(1.3, 0.9), bbox_transform=plt.gcf().transFigure)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fourth-Root Simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "x_normal, y_normal = sims.root_sim(100, 1)\n", + "x_no_noise, y_no_noise = sims.root_sim(1000, 1, noise=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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jtbW1kJnwzCMEkNE1mYOZc1zwzAMX5hoGoZh+MBE0zAMwwdFZ9M0DD/s2rWLdevWsWOHDbU2HHr16sXQoUOpqqrK6noTTaOkWbduHf369aOurg4RyXyBUdKoKm1tbaxbt479998/qziseW6UNDt27KCmpsYE0wBARKipqcmp5WGiaZQ8JphGPLk+DyaaEaKlBerqoKLC+WxpKXSODMNIxGyaEaGlBaZPh+3bnf21a519gMbGwuXLMIyuWE0zIsyc2SmYMbZvd44bxY2IcMkll3Ts//znP2fWrFl5zcO0adNYsGBB0nMXXXQRTz31lKd4fvzjH7Nw4UIAbrjhBrbHPbR77RXOskJf+tKXsrrujDPO4K233go4NyaakeG99/wdN8IhDBNJz549uffee/nwww8zB07C7t27MwfKko8++ojFixczYcIET+GvvPJKJk+eDHQXzbB47rnnsrquqamJa665JuDcmGhGhmHD/B03gidmIlm7FlQ7TSS5CmePHj2YPn06v/hF9xVG1q5dy6RJkxg1ahSTJk3iPfctOW3aNC6++GImTpzIZZddxqxZszj77LM59thjqaur49577+WHP/whI0eO5Pjjj2fXrl2AI2qHHXYYI0aMYPr06WRamWHBggUcf/zxALz44ot84xvfAOD++++nd+/e7Ny5kx07dnDAAQd05GvBggXceOONrF+/nokTJzJx4sSO+GbOnMkXv/hFxo0bx8aNG7ulN2vWLM455xyOPvpoDjjgAG68sXN5+Ouvv54RI0YwYsQIbrjhho7jsRrshg0bmDBhAqNHj2bEiBE8/bSzjNMjjzzC+PHjGTNmDKeddhpbt24F4KijjmLhwoWBv3RMNH0QpqPmqqugT5+ux/r0cY4b+SFME8l3v/tdWlpa+Pjjj7sc/973vsdZZ53FsmXLaGxs5Pvf/37HuTfffJOFCxdy3XXXAfD222/z4IMPcv/99zNlyhQmTpzI8uXL6d27Nw8++GBHfC+99BKvvfYan376KX/605/S5uvZZ59l7NixAIwZM4ZXX3XW33v66acZMWIEL730Ei+88AJHHHFEl+u+//3vM3jwYJ544gmeeOIJALZt28a4ceNYunQpEyZM4De/+U3SNFetWsXDDz/Miy++yE9+8hN27drFyy+/zLx583jhhRdYvHgxv/nNbzryEuOuu+7iuOOOY8mS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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(5, 4))\n", + "ax1 = fig.add_subplot(1, 1, 1)\n", + "ax1.scatter(x_normal, y_normal, c='b', label='Normal (with noise)')\n", + "ax1.scatter(x_no_noise, y_no_noise, c='r', label='No noise')\n", + "ax1.set_title('Fourth-Root Simulation', fontweight='bold')\n", + "ax1.set_xlabel('X Vector')\n", + "ax1.set_ylabel('Y Vector')\n", + "plt.legend(bbox_to_anchor=(1.3, 0.9), bbox_transform=plt.gcf().transFigure)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Sinusoidal (4$\\pi$) Simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "x_normal, y_normal = sims.sin_sim(100, 1)\n", + "x_no_noise, y_no_noise = sims.sin_sim(1000, 1, noise=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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vXR1OccbtHN7qCPt5Ou09l3ydmfMGH/hGKRptTsNM8Tjjzv/y5gxjrDsRPNEXWgnX6dtoWGWjYhw2mmn7fh99tlns3z58kzijqNRASxatIjLL7/cN45TTjmFm266KVZ6n//851m5ciUA559/Phs9qsGkSZPiZzwBBx98cKLre3pgzhw4++wPMn78b01YVpx28nXacQIzjzl8Y8eO5fvf/z7PPPNMS/dv3bo18FxPj+PqrKFRjhnj/I4rJJ599llWrVrFggULYl1/xhlnsHChs+agWWDmxS9/+cuW7luyZAlf+tKXMs6NkTXt5Ou0owRmXsbnUaNGsXjxYs4777wR59asWUN/fz9z5syhv7+fx9x+yKJFizj11FM59NBD+exnP8vy5cs54YQTeOc730lfXx/f//73+fu//3tmz57NwMBh7LPPFubNgx/+8AwOO+wAZs2axeLFi4naJvnyyy/nsMMOA+DWW2/lfe97HwBXXnkl48ePZ/PmzWzatIm99tprR74uv/xyLrjgAp544gkOPfRQDj300B3xLVu2jDe96U0ceOCBrFu3bkR6y5cv5yMf+Qhve9vb2Guvvbjgggt2nDv33HOZNWsWs2bN4vzzz99xvKG5PvnkkyxYsIC5c+cya9Ysbr75ZgB++tOfctBBB7HffvtxzDHHsGHDBgAOOeQQVq5cGfrCMcqnnXyddpTAzNP4/PGPf5yhoSFeeOGFYcc/8YlPcPzxx3P33XczMDDApz71qR3nHnroIVauXMk555wDwCOPPMLVV1/NlVdeybHHHsuhhx7KPffcw/jx47n66qt3xPfrX/+ae++9l1deeYWrrroqNF+/+MUv2H///QHYb7/9uOOOOwC4+eabmTVrFr/+9a+55ZZbmD9//rD7PvWpTzFt2jRuuOEGbrjhBgBefvllDjzwQO666y4WLFjAN7/5Td80H3zwQa655hpuvfVWvvCFL7BlyxZuu+02Lr74Ym655RZWrVrFN7/5zR15afCd73yHd73rXdx5553cddddzJ07l2eeeYYvfvGLrFy5kttvv5158+Zx7rnnAtDV1cXee+/NXXfdFfofGOXTLrsLdJTAzNP4/LrXvY7jjz9+mEYF8Ktf/YoPf/jDABx33HH8/Oc/33HumGOOobu7e8fvww8/nNGjRzN79my2bdu2QzOcPXs2jz76KAA33HAD8+fPZ/bs2Vx//fXcd999ofl68sknmTp1KuBownvvvTcPPPAAt956K6eeeio33XQTN998M4ccckhkGceMGcORRx4JwP77778jT80cccQRjB07lilTprDrrruybt06fv7zn/Pe976XiRMnMmnSJN73vvft0CAbHHDAAVx88cUsX76ce+65h5122olVq1Zx//3385a3vIW5c+fy7W9/mzVr1uy4Z9ddd+WJJ56IzLtRbeqy3LWjRsmnT3e64X7Hs+CUU05hv/3248QTTwy8xjvlZWLTcp2xY8cCjuY0evRo7rlH2LwZnn66i+7urWzatImlS5eyevVqXv/617N8+fLI+Ybjx48fds0hhxzCj3/8Y0aPHs3ChQtZtGgR27Zt4+yzz44s3+jRo3fkv7u7O7Ar3CiH97oo0wHAggULuOmmm7j66qs57rjj+MxnPsPOO+/MO97xDi677DLfezZt2sT48eMj4zaqS52Wu3aUhpm38XmXXXbhAx/4ABdddNGOYwcffDDf/e53ARgaGuKtb31rZDzr1ztdl8Z0om3bnKWRTzzhCL4pU6awYcOGwFFxL/vssw8PP/zwjt8LFizg/PPP56CDDmLq1KmsX7+eBx98kJkzZ464d6edduKll16KTCMOCxYs4Ic//CEbN27k5Zdf5gc/+MEIrXbNmjXsuuuunHzyyZx00kncfvvtHHjggfziF7/YUYaNGzfy0EMP7bjnoYce8s27UR/qNE+zowRmEcbn0047bdho+QUXXMDFF1/MnDlzuPTSS/nKV74SGYffKh5V2LBhMieffDKzZ8/m6KOP5oADDoiM64gjjuDGG2/c8Xv+/PmsW7dux6j5nDlzmDNnju9k78WLF3P44YcPG/Rplf32249Fixbx5je/mfnz5/PRj36Ufffdd9g1N954I3PnzmXffffliiuu4NOf/jRTp07lkksu4UMf+hBz5szhwAMP5MEHHwRg3bp1jB8/nt122y11/ozyqNM8TYnTVaoK8+bN09WrVw879sADD7DPPvuUlKN8aCriMObNSx7fW9/6Vq666iomT57ceqYSsn59/pPLzzvvPF73utdx0kknjTjXju2iXenr8zeV9fY6A0RFICK3qWrk09VRGmZdiFovnZRzzjlnx3SmImg4DGmYFDZvdn6vX59tOpMnT+aEE07INlKjcOo0T9MEZgWJu7onLvPnz2fO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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(5, 4))\n", + "ax1 = fig.add_subplot(1, 1, 1)\n", + "ax1.scatter(x_normal, y_normal, c='b', label='Normal (with noise)')\n", + "ax1.scatter(x_no_noise, y_no_noise, c='r', label='No noise')\n", + "ax1.set_title('Sinusoidal (4$\\pi$) Simulation', fontweight='bold')\n", + "ax1.set_xlabel('X Vector')\n", + "ax1.set_ylabel('Y Vector')\n", + "plt.legend(bbox_to_anchor=(1.3, 0.9), bbox_transform=plt.gcf().transFigure)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Sinusoidal (16$\\pi$) Simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "x_normal, y_normal = sims.sin_sim(100, 1, period=16*np.pi)\n", + "x_no_noise, y_no_noise = sims.sin_sim(1000, 1, noise=0, period=16*np.pi)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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7rnnjtxPNNfHH3+cRYsWsWDBAubOncu1114LwK9+9SsOP/xwDjroII499lg2bdoEwBFHHMHq1aub2uAYzaFTT77sKoHZqKNRs/jwhz/M4OAgzz777Kj7H/nIR/jABz7A7373O5YsWcJHP/rRkWf3338/q1ev5gtf+AIADz30EJdeeikXX3wx73//+znyyCO58847mTp1KpdeeunI926++WbuuusunnvuOS655BJvuH7zm99w8MEHA3DQQQdx2223AXDttdcyd+5cbr75Zm688UYOPfTQUe4++tGPstdee3HllVdy5ZVXArB582YOO+ww7rjjDhYtWsS3vvWtTD/vu+8+LrvsMm666SY+85nPsH37dm655RbOP/98brzxRm644Qa+9a1vjYQl4Qc/+AFvetObuP3227njjjtYsGABTz31FP/8z//M6tWrufXWW1m4cCFf/OIXAejp6WG//fbjjjvu8KaB0Z4sWRKZ/xsejv62u7CELhOYzRxofsELXsAHPvCBURoVwPXXX8/73vc+AI4//niuu+66kWfHHnssvb29I7/f/OY3M3nyZObNm8fQ0NCIZjhv3jweiQ1LXnnllRx66KHMmzePK664grvvvtsbrscff5xZs2YBkSa83377ce+993LTTTdxxhlncM0113DttddyxBFH5MZxypQpvO1tbwPg4IMPHglTPW9961vp6+tj9913Z4899mD9+vVcd911vPOd72T69OnMmDGDd73rXSMaZMIhhxzC+eefz1lnncWdd97Jrrvuyg033MA999zDq1/9ahYsWMB3v/td1qaMb+6xxx786U9/yg27YTSCrhKYzR5oPv300/n2t7/N5s2bne+kl7xMnz591LO+vj4g0pwmT5488m5PTw87duxg69atnHrqqaxatYo777yTU045JXeH09SpU0e9c8QRR/CLX/yCyZMnc9RRR3Hddddx3XXXBY1xpsPU29vr7Aon8Ui/F2KzYNGiRVxzzTW8+MUv5vjjj+d73/seqsob3vAGbr/9dm6//Xbuuecevv3tb4+42bp1K1OnTs39tmE0gq4SmM0eaN5tt914z3veM6pCv+pVr+JHP/oRAIODg7zmNa8p/f1E8O2+++5s2rTJOSueZv/99+fBBx8c+b1o0SLOPfdcDj/8cGbNmsWGDRu47777ePnLXz7G7a677srGjRtLhzfN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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(5, 4))\n", + "ax1 = fig.add_subplot(1, 1, 1)\n", + "ax1.scatter(x_normal, y_normal, c='b', label='Normal (with noise)')\n", + "ax1.scatter(x_no_noise, y_no_noise, c='r', label='No noise')\n", + "ax1.set_title('Sinusoidal (16$\\pi$) Simulation', fontweight='bold')\n", + "ax1.set_xlabel('X Vector')\n", + "ax1.set_ylabel('Y Vector')\n", + "plt.legend(bbox_to_anchor=(1.3, 0.9), bbox_transform=plt.gcf().transFigure)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Square Simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "x_normal, y_normal = sims.square_sim(100, 1)\n", + "x_no_noise, y_no_noise = sims.square_sim(1000, 1, noise=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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ql+9ceKcvr564xYT06ZNwy233IIXXngh6LwEu3fvznQeBy+++CLuu+8+HHfccazjL730Upx44okAGom1WfjFL36R6byhoSF85jOfKbg1EZpGrER0IhHNM5TvMavYCOB12uc5AJ4tvqVTFytWRELceljIa+7ciYOyYM89/cfUMdUg7j1vVV2cwMdHL8M29NvPL5fr/1arQK1W7+qkY+7ciODPOadR+h4ZAV7zGqsUaophWH7RHlj1yHxgwQJg/vxMutWenh4sX74cX/jCFxp+Gx4exsKFCzF//nwsXLgQ62MJftmyZbjoootwwgkn4O///u+xcuVKLF26FO9617swODiIW265BR//+Mdx0EEH4aSTTsKu2LXr0ksvxWGHHYZ58+Zh+fLl8Bmvb775Zpx00kkAgPvvvx/vf//7AQDf+973MGPGDOzcuRM7duzAAQccMN6um2++GZOt9GQAAA//SURBVFdeeSWeffZZnHDCCTjhhBPG61uxYgXe+ta34sgjj8Tzzz/fcL2VK1fi7LPPxvHHH48DDjgAV1555fhvl19+OebNm4d58+bhiiuuGP8+kYSfe+45HHfccTj44IMxb948rF69GgDwox/9CEcddRQOPfRQnH766dgau70de+yxuPPOO5szMXEdXptRANwNYIHltx4ATwPYH0AfgIcBvMVXpwQI8JH43ht3DEic+LOmD0w73puCAgzBCNtUfRaqpH3OOH/bLgKu9FNxQMJjP/gB0a9+NVEefpjohReiv/pnCky8EoCBgQF6+eWXqVqt0h//+Ef67Gc/S5dccgkREb3nPe+h66+/noiIrr32Wjr11FOJiGjp0qV0yimn0O7du4mI6JJLLqFjjjmGdu7cSQ899BDNmDGDbr/9diIiOu200+jWW28lIqKRkZHx637oQx+i2267bby+b3/72w1t+/CHPzx+zK5du2hwcJCIiC6++GJasGAB3XvvvXT33XfTGWec0VBPtVqlzZs3j9cFYLyuj33sY/SP//iPDde75JJL6KijjqIdO3bQ5s2badasWbRz505as2YNzZs3j7Zu3UpbtmyhAw88kB588MHx/iMi+tznPkf/9E//REREu3fvpj/96U+0efNmOvbYY2nr1q1ERPTpT3+aPvWpT41f78QTT6Q1a9Y0tOOxxx5r+A6dHtKqlHqfUmojgKMAfF8pdUf8/Z8r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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(5, 4))\n", + "ax1 = fig.add_subplot(1, 1, 1)\n", + "ax1.scatter(x_normal, y_normal, c='b', label='Normal (with noise)')\n", + "ax1.scatter(x_no_noise, y_no_noise, c='r', label='No noise')\n", + "ax1.set_title('Square Simulation', fontweight='bold')\n", + "ax1.set_xlabel('X Vector')\n", + "ax1.set_ylabel('Y Vector')\n", + "plt.legend(bbox_to_anchor=(1.3, 0.9), bbox_transform=plt.gcf().transFigure)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Diamond Simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "x_normal, y_normal = sims.square_sim(100, 1, period=-np.pi/4)\n", + "x_no_noise, y_no_noise = sims.square_sim(1000, 1, noise=0, period=-np.pi/4)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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JCKLcrIkBQQ4Y2Jigk2bNrFz5852dyWgg7DHHnuw//7709+fTWvsj44mWRH5S+DROB3bS4gk7/E2dytgDmHTpk3sueeejIyMIJJNJhYwH6GUYnx8nE2bNnHAAQc03V67XbiuAo4BFonIJqJ0e/0ASqkvE2USGhOR3cCTwJvLSuAREACwc+fOQLABdRARKpUKZdl22kqySqnschjZ/79ASM8WUBLWrIFVq2DjRli8GFavhkMOIRBsQAPKfCY63fAVEFAK1qyBlSthwwZQKvpcuRK2b8/fNyCgGQSSDZgXWLUKdmRSke/YAX/6U3v6EzB/EEg2YF5gYypd9nLWsI4RJunhLyc3wXh7bakiwvve977p3//8z//M+eefP6t9WLFiBVdfnc0RHuE973kPN954o1M7H/7wh7nuuusA+NznPseO1JtteLjZhTT0eOlLX1povze/+c387ne/K7k3jQgkGzAvsDhe7Wo5a7iElYywgR4UfUxGuoOYaMfH4e67Ye3a6DPLv2vWwMgI9PREn2vWNN+3BQsW8M1vfpPHHivmmbh79+78SgXx+OOPc+utt3L00Uc71f/IRz7C8ccfDzSSbKvws5/9rNB+Y2NjfPKTnyy5N40IJBswL7B6NQwOwsdYxRCZgT81BQ89xPh4xLe74oVvdu2q41+jXrdZou3r62PlypV89rOfbfhvw4YNHHfccSxZsoTjjjuOjbFIvmLFCt773vdy7LHH8vd///ecf/75nHHGGbzyla9kZGSEb37zm7z//e/n4IMP5sQTT2RiYgKISPCwww7joIMOYuXKleQ561x99dWceOKJANx+++288Y3Riuvf+c53WLhwIbt27WLnzp0ceOCB0/26+uqr+fznP8/DDz/Msccey7HHzqzuvmrVKl70ohdxxBFH8OijjzYc7/zzz+fMM8/kmGOO4cADD+Tzn//89H+f+cxnOOiggzjooIP43Oc+N709kZAfeeQRjj76aJYuXcpBBx3ETTfdBMAPf/hDjjzySA455BBOPfVUtm3bBsDLX/5yrrvuupa+pCCQbEA3oQkxcnQULr4YFpuW2dq1i4ceivg2jZh/AbNed9Uq524Y8Y53vIM1a9bwxBNP1G1/5zvfyVvf+lbuvvtuRkdHede73jX93/333891113Hpz/9aQB+//vf8/3vf5/vfOc7vOUtb+HYY4/lnnvuYeHChXz/+9+fbu/nP/85v/rVr3jyySf53ve+Z+3XT3/6Uw49NFpn8pBDDuGXv4xWZr/ppps46KCD+PnPf85tt93G4YcfXrffu971Lp75zGdy/fXXc/311wOwfft2jjjiCO666y6OPvpoLrnkEnS47777+MEPfsDtt9/OP/7jPzIxMcEdd9zBZZddxm233catt97KJZdcMt2XBF/72td41atexZ133sldd93F0qVLeeyxx/joRz/Kddddxy9+8QuWLVvGZz7zGQB6enp49rOfzV133WW9Bs0ikGxAd6AEMXJ0FHqqi/V/DgxMS7BZJNs3GvjZtN0HT3va03jrW99aJ7kB3HLLLZx22mkAnH766dx8883T/5166qn09vZO/z7ppJPo7+/n4IMPZnJycloCPfjgg1m/fj0A119/PYcffjgHH3wwP/7xj/n1r39t7dcjjzxCEqbe19fHs5/9bO69915uv/123vve93LjjTdy00038fKX5y8SPDAwwGteEyXUO/TQQ6f7lMWrX/1qFixYwKJFi9h333159NFHufnmm3nDG97A0NAQw8PDvPGNb5yWVBMcdthhXHbZZZx//vncc8897Lnnntx666385je/4aijjmLp0qVcccUVbNgwk0hr33335eGHH87tezMIJBvQHShLjEz0Bmn09MB++zEwoN8l2b7YwM+m7b54z3vew1e+8hW2W/zK0v6bQ0NDdf8tWLAAiCS0/v7+6bo9PT3s3r2bnTt3cu6553L11Vdzzz33cPbZZ+eGEy9cuLCuzstf/nKuvfZa+vv7Of7447n55pu5+eabnXS26T719vYap+nJeaTrucQgHX300dx4443st99+nH766Xz1q19FKcUJJ5zAnXfeyZ133slvfvMbvvKVr0zvs3PnThYuXJjbdjMIJBvQHWhWjExUDaefDgsXQqUCItDbG31/6CEO3rWWF3EnL+JODmUtB3M3FRlnv/2iJnT8PDgYbS8De++9N29605vqSOClL30pX//61+NTWMPLXvaywu0nZLlo0SK2bdtm9CZI4/nPfz4PPPDA9O+jjz6az33ucxx55JHss88+jI+Pc9999/HCFzYmyNtzzz3ZunVr4f6mcfTRR/Ptb3+bHTt2sH37dr71rW81SM8bNmxg33335eyzz+ass87iF7/4BUcccQQ//elPp89hx44d3H///dP7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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(5, 4))\n", + "ax1 = fig.add_subplot(1, 1, 1)\n", + "ax1.scatter(x_normal, y_normal, c='b', label='Normal (with noise)')\n", + "ax1.scatter(x_no_noise, y_no_noise, c='r', label='No noise')\n", + "ax1.set_title('Diamond Simulation', fontweight='bold')\n", + "ax1.set_xlabel('X Vector')\n", + "ax1.set_ylabel('Y Vector')\n", + "plt.legend(bbox_to_anchor=(1.3, 0.9), bbox_transform=plt.gcf().transFigure)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Two Parabolas Simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "x_normal, y_normal = sims.two_parab_sim(100, 1)\n", + "x_no_noise, y_no_noise = sims.two_parab_sim(1000, 1, noise=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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wVou+QTn7bf/OpT5o729neuvv778jnmYP3FukmwKqBsq/UTNFt4NDcFfnSuVDrF///4sWLCAm2666YBtGzZsoLW1lcmTJ9Pa2sorni1j3rx5XH755Zx++ul8/vOfZ/HixcydO5czzjiDlpYW7rnnHq688kqOPfZYzjzzTPbu3Qs4wXfiiScyadIkFixYQDEXw+XLl3PmmWcC8Jvf/IaPfvSjANx3330MHjyYPXv2sGvXLo444oiefi1fvpwlS5awadMmTj/9dE4//fSe4y1atIi/+7u/45RTTmHz5s0HtLd48WLmz5/P+973Po444giWLFnSs+2++77O7NmT+Md/nMT3v39zz/oZM4bR3Ax79rzOjBkzmDJlCpMmTeKXv/wlAA8++CDTpk3j+OOP57zzzmP79u0ATJ8+nZUrV0byYEpyqszYCerwmpaS5gCBarFu3brAdSuVDnHo0KH6zjvvaHNzs7799tt6ww036NVXX62qquecc47eeeedqqp622236bnnnquqqnPnztWzzz5b9+3bp6qqV199tZ522mm6Z88eXbt2rQ4ePFjvv/9+VVWdNWuW3nvvvaqq2tXV1dPunDlzdMWKFT3H+/GPf3xA3y688MKeOnv37tWWlhZVVb3iiit06tSpunr1al21apXOnj37gOM0Nzfrli1beo4F9Bzrc5/7nP7bv/3bAe1dffXVOm3aNN21a5du2bJFR44cqXv27NE1a9bopEmTdMOG7fr449v08MMn6N13P6lvvumun6rqjTfeqF/+8pdVVXXfvn36l7/8Rbds2aLTp0/X7du3q6rqddddp1/60pd62ps5c6auWbPmgH6Ucl+4c63MvZFUKCFAIMl+rEYCqKQf4EEHHcSFF17IkiVLGDx4cM/6xx9/nHvuuQeACy64gCuvvLJn23nnnUdDQ0PP8llnncWAAQM49thj2b9/f4+meeyxx/Ky51bxi1/8guuvv56dO3eydetWJk6cyIc+9KG8/Xr99dfJuO3179+fI488kmeeeYbf/OY3XH755Tz22GPs37+f6dOnFz3HxsZGzjnnHABOOOEEHnrooZz1zj77bAYOHMjAgQMZM2YMmzdvZvXq1XzkIx9h/PihjB8PbW0fZfPmX9LUdFzPfieeeCLz589n7969zJo1iylTpvDoo4+ybt06TjvtNAD27NnDtGnTevYZM2YM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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(5, 4))\n", + "ax1 = fig.add_subplot(1, 1, 1)\n", + "ax1.scatter(x_normal, y_normal, c='b', label='Normal (with noise)')\n", + "ax1.scatter(x_no_noise, y_no_noise, c='r', label='No noise')\n", + "ax1.set_title('Two Parabolas Simulation', fontweight='bold')\n", + "ax1.set_xlabel('X Vector')\n", + "ax1.set_ylabel('Y Vector')\n", + "plt.legend(bbox_to_anchor=(1.3, 0.9), bbox_transform=plt.gcf().transFigure)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Circle Simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "x_normal, y_normal = sims.circle_sim(100, 1)\n", + "x_no_noise, y_no_noise = sims.circle_sim(1000, 1, noise=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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woQJPPXUUzzxxBMcfPDBPd53xhlnMGbMGB544AEeeOABALZu3cohhxzCihUr+MxnpvHAA7/sFse6OsfzHzwYXnzxRe655x6efPJJzj33XEaP3slLL/2Z3//+Gq699gmuueZxbr31l3R2PtPjmjfeeCOf+9znWL58OStWrGDSpEls2LCB8847j46ODp5++mmmTp3KxRdfDEBNTQ377bcfK1as6PvB+/f3vC9GcPJ2XonIocBhwCgROStr14eA2qgNM5JBlOOsP/ShD3HyySdz2WWXMWjQoO7tf/rTn7j55psBmDVrFt/73ve6951wwgnU1n7w9Tv66KPp378/+++/P7t37+72NPfff39Wr14NwAMPPMBPfvITtm3bxsaNGxk/fjxf+tKX8tr15ptvMmrUKMDxrPfbbz9eeOEFnnzySc466ywefvhhdu/ezRFHHOH7Gevq6vjiF78IwJQpU7jvvvuYOLHvcV/4whcYMGAAAwYMYPTo0eza9RZr1jxKc/PxDBo0hLo6OP74L/Pcc49w5JEHdL/vwAMP5JRTTmHnzp0cd9xxTJo0iYceeohVq1Zx+OGHA7Bjxw4OPfTQ7veMHj2adevWdT88uhkzxvfzGMHwygqoA4a6x+yRtf3vOHFWowooNmk7aKrQmWeeyeTJk/na1/KH7bNTw4b0Gu41YMAAwPHE+vfv331sTU0Nu3btYvv27cyfP59ly5ax9957c8455/iOOBs0aFCPY4444gjuuusu+vfvz/Tp05kzZw67d+/mwgsv9L4J0MOm2travE3wzOfIPm7wYOXDH4apUzN29X3ftGnTePjhh7njjjuYNWsW3/3udxk+fDhHHXUUN910U85rbd++vceDLAiKT6EWowd5QwGq+pCqngscoqrnZi0Xq2oR3YpGGikmaTuTKpTpaMmkCuVKhh8xYgRf+cpXWLJkSfe2ww47jF/96lcAtLe386lPfapo+zMCOXLkSLZs2ZI3CyCbT3ziE7z66qvd69OmTeOSSy7h0EMPZdSoUXR2dvLiiy8yPkdP+R577MG7775btL3ZTJs2jd/97nds27aNrVu3csstt/TxktesWcPo0aM5/fTTOfXUU3n66ac55JBDeOyxx7o/w7Zt23j55Ze73/Pyyy/ntN2L3VRGofRyFbwOEmO9SkSGZVZEZLiI3BONOUbSKGYEWKEjtb7zne/0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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(5, 4))\n", + "ax1 = fig.add_subplot(1, 1, 1)\n", + "ax1.scatter(x_normal, y_normal, c='b', label='Normal (with noise)')\n", + "ax1.scatter(x_no_noise, y_no_noise, c='r', label='No noise')\n", + "ax1.set_title('Circle Simulation', fontweight='bold')\n", + "ax1.set_xlabel('X Vector')\n", + "ax1.set_ylabel('Y Vector')\n", + "plt.legend(bbox_to_anchor=(1.3, 0.9), bbox_transform=plt.gcf().transFigure)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ellipse Simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [ + "x_normal, y_normal = sims.circle_sim(100, 1, radius=5)\n", + "x_no_noise, y_no_noise = sims.circle_sim(1000, 1, noise=0, radius=5)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Note change in X axis compared to circle simulation\n", + "fig = plt.figure(figsize=(5, 4))\n", + "ax1 = fig.add_subplot(1, 1, 1)\n", + "ax1.scatter(x_normal, y_normal, c='b', label='Normal (with noise)')\n", + "ax1.scatter(x_no_noise, y_no_noise, c='r', label='No noise')\n", + "ax1.set_title('Ellipse Simulation', fontweight='bold')\n", + "ax1.set_xlabel('X Vector')\n", + "ax1.set_ylabel('Y Vector')\n", + "plt.legend(bbox_to_anchor=(1.3, 0.9), bbox_transform=plt.gcf().transFigure)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Multiplicative Noise Simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [], + "source": [ + "# Note that this simulation has no noise parameter\n", + "x_normal, y_normal = sims.multi_noise_sim(1000, 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Hi5YsIA1a9bw0Y9+dN5399xzD6tWreLAAw9k1apVbA2aRSeddBJnnHEGhx12GO973/tYt24dJ554IocffjgTExNcdtllvPe972XlypUcccQRPP64W6fvgx/8IIceeigHHHAAa9asocwZ2KoUzG3ANlUN1z++FCeghgerV8OGDTA+DiLudcMGt90wfCkzePiOd7yD6elpHnxw7jJXp512GieccAK33HILq1ev5l3vetdT3911111cc801fOQjHwHgRz/6EVdddRWXX345xx13HIcddhi33norT3va07jqqqueyu+GG27gtttu45FHHuHKK6/svfAJVCaYqvpT4N5gCVJwa6X8MOUQo4PVq2HLFnjySfdqYmnkpczg4V577cUJJ5zAueeeO2f7d77zHd7ylrcAcPzxx/Otb80u//PGN76R4eHZxTRf85rXMDIywsqVK9m9ezdHHOHWxFu5ciVbtmwB4LrrruN3f/d3WblyJddeey23335774VPoOqO6+8EpoN1kn8MnFxxeQxjoCg7eHj66adz8MEHc/LJyY92tKvP4sVzwxh77LEHAENDQ4yMjDy179DQEE888QSPPvoob3/725mZmWHfffdl3bp1pY5wqrRbkareFPgnD1TVY1T151WWxzAGjbKDh/vssw/HHnss559//lPbXvSiF3HJJW4l4OnpaV7ykpd0nX8ojkuXLuXhhx8uPCreSdX9MA3DqJB+BA/PPPPMOdHyc889lwsvvJADDzyQiy++mHPOOafrvPfee29OOeUUVq5cyTHHHMOhhx5aRJETadSaPpOTk2oTCBtGOps3b+Z5z3ue9/7T085nuXWrsyzXr2+3Pzzu/IjIJlWdzDq2ah+mYRgVs3p1uwWySKxJbhiG4YkJpmG0kCa52vpJr+fFBNMwWsbChQvZuXOniWYH4XyYCxcu7DoP82EaRstYvnw527Ztw+ZemE8443q3mGC2hEGLdBrJjIyMdD2jeF4G7b4zwWwB4XjgcIhbOB4Y2n3zGtUyiPed9cNsARMT7mbtZHzcjTE3jDJo033n2w/Tgj59osz1d2wyYaMKBvG+M8HsA2Wvv2OTCRtVMIj3nQlmHyh7/R2bTNiogkG870ww+0DZTRebTNiogkG870ww+0A/mi42mbBRND5+90G770ww+8AgNl2MZmPr3sdjglkCnTUzDF7TxWg2tu59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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(5, 4))\n", + "ax1 = fig.add_subplot(1, 1, 1)\n", + "ax1.scatter(x_normal, y_normal, c='b', label='Normal')\n", + "ax1.set_title('Multiplicative Noise Simulation', fontweight='bold')\n", + "ax1.set_xlabel('X Vector')\n", + "ax1.set_ylabel('Y Vector')\n", + "plt.legend(bbox_to_anchor=(1.3, 0.9), bbox_transform=plt.gcf().transFigure)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Multimodal Independence Simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "# Note that this simulation has no noise parameter\n", + "x_normal, y_normal = sims.multi_indep_sim(1000, 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(5, 4))\n", + "ax1 = fig.add_subplot(1, 1, 1)\n", + "ax1.scatter(x_normal, y_normal, c='b', label='Normal')\n", + "ax1.set_title('Multimodal Independence Simulation', fontweight='bold')\n", + "ax1.set_xlabel('X Vector')\n", + "ax1.set_ylabel('Y Vector')\n", + "plt.legend(bbox_to_anchor=(1.3, 0.9), bbox_transform=plt.gcf().transFigure)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 9588020a1c5ee05f28dd3173691c28fb5a98ca55 Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Fri, 7 Dec 2018 13:24:24 -0500 Subject: [PATCH 52/60] Added equations for each sim --- demos/simulations.ipynb | 268 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 244 insertions(+), 24 deletions(-) diff --git a/demos/simulations.ipynb b/demos/simulations.ipynb index 9a576e7..4b136b1 100644 --- a/demos/simulations.ipynb +++ b/demos/simulations.ipynb @@ -38,7 +38,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Simultions are randomly generated with an $x$ which is $(n\\cdot d)$ and $y$ which is $(n\\cdot 1)$ that have 2 required parameters: `num_samp` or the number of samples, and `num_dim` or the number of dimensions. Optional parameters can be set based on the documentation. Visualizations of the 4 simulations imported above are shown below with and without the noise. Each simulation is also shown in 2D." + "Simultions are randomly generated with an $x$ which is $(n\\cdot d)$ and $y$ which is $(n\\cdot 1)$ that have 2 required parameters: `num_samp` or the number of samples, and `num_dim` or the number of dimensions. Optional parameters can be set based on the documentation. Visualizations of the 4 simulations imported above are shown below with and without the noise. Each simulation is also shown in 2D.\n", + "\n", + "For all the below simulations, $(X, Y) \\overset{i.i.d}{\\sim} F_{XY}=F_{Y|X}F_{X}$ where $X$ and $Y$ are independently identically distributed." ] }, { @@ -48,9 +50,20 @@ "## Linear Simulation" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Linear $(X,Y) \\in \\mathbb{R}^{p} \\times \\mathbb{R}$:\n", + "\n", + "$$X \\sim \\mathcal{U}(-1,1)^{p}$$\n", + "\n", + "$$Y=w^{T}X+\\kappa \\epsilon$$" + ] + }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -60,12 +73,12 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 4, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdQAAAEWCAYAAADfB2bTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzt3XmYVNWZBvD3K3qjAWVfGuxuHVlsNAjdgyJmQmhjJBONY3SCNonGKKFJTCLGJE7nYSIJjhkzOjMmssTRRLrBOMZEnGiMKEtiXMIistqC2qCyibI2IE1/88e9Bbera69zl6p6f89znqZu3apzblVxv3uWe46oKoiIiCgzIb8LQERElAsYUImIiAxgQCUiIjKAAZWIiMgABlQiIiIDGFCJiIgMYEClQBORG0RERWSZ32UhIoqHAZUCQUTesQPnlRFPbQTwXwAe96FYRERJK/C7AETxqOqrAF71uxwiUqiqx/0uBxEFF2uoFGiRTb4iMsF+/I6I/IuI7LbT7Y7XFIjI7SKySUQOi8hGEbnZ8fxnRGSNiOwXkeMi0iIid0bJ8y8iMkdEDgJo8PK4iSj7MKBStqoAMAXAXwD0A/BTERlqP/djAP8OQAD8L4DuAOaLyPX284MBfADgUQALAPQAMFNEJkfkMR7ARAALAbzl3qEQUS5gQKVsdQLARFW9CsA2WMFzlIgIgG/a+/wVwD4Ar9mP6+2/jwC4D8B2APsBbLW3T4zI4yCAC1T166r6iCtHQUQ5g32olK12qupO+9/7AJTDqon2tf8CwFcjXnO2/XcOgKlR3rNfxOMNqrrPQFmJKA+whkrZqs3xb+eSSR8AOGz/+xOqKqoqsH7rNfb2L9l/bwDQBVaABaxartMxY6UlopzHgEpB81MReTmcYNU8k6bWeoS/sB8+JyK/FJFFsPpAf2Rv32X//RasPtQbMi41EeU9BlQKmmEALnCkA2m8xw8BfB/Ah7AGLk0E8AaA39jP3wRgM4AqWAOS5mVWZCIiQLjAOBERUeZYQyUiIjKAAZWIiMgABlQiIiIDGFCJiIgMyKqJHfr27auVlZV+F4OIcsyqVas+UNV+Edv6FxQUPAjgXLDyQUA7gPVtbW03VVdX7462Q1YF1MrKSqxcudLvYhBRjhGRlshtBQUFDw4cOPCcfv36fRQKhXg7RJ5rb2+XPXv2VO3cufNBAFdE24dXXURE0Z3br1+/AwymBAChUEj79eu3H1aLRfR9PCwPEVE2CTGYkpP9e4gZNxlQiYiIDGBAJSIKKBGpvvnmm4eEH8+cOXPAjBkzyrwswxe/+MXKhx9+uFe052688cYznnnmme7Rnov0ne98p+z3v/99DwCYNWtW/4MHD56MP6WlpaPNlLaj0aNHj0jndZ///OfPWrduXXGqr2NAJSIyYO5c9C4rw3mhEKrLynDe3Lnonel7FhUV6dNPP91rx44daQ0gPX78eKZFiGnXrl1dVq1a1W3SpEmHktn/P//zP9+/8sorDwLAvHnzBhw6dMj1+LNmzZrN6byuvr5+9+zZswem+joGVCKiDM2di9633oqKHTtQpArs2IGiW29FRaZBtUuXLvqVr3xlz1133TUg8rnm5uaicePGDRs2bFjVuHHjhr355ptFgFWjvOmmm4ZccMEFw6ZPnz5kxowZZVdddVXl+PHjhw4ePPi8X//61z2nTZs2ZNiwYVWf/OQnhx47dkwA4Lvf/e6gc88995yhQ4eOvPbaayva29vjlm3BggW9amtrDwDA0qVLSy+99NK/A4DGxsaeJSUlY44ePSqtra0yZMiQ88Llevjhh3v95Cc/6b979+7CT33qU8MuuOCCYeH3u+WWWwYPHz68atSoUSO2b9/e6QJixowZZddcc03l2LFjhw8ZMuS8n/zkJ/3Dz/3oRz8aMHTo0JFDhw4dOWvWrJPbwzXflpaWwpqamuEjRoyoGjp06Mg//vGP3QHgiSeeOO38888fUVVVdc6kSZPO2r9/fwgALrvsskN//vOfT0v1goQBlciApiagshIIhay/TU1+l4i8NGsWBh892vF8evQoQrNmYXCm73377bfvfuKJJ3rv3bu3i3P7tGnTyq+77rq9zc3NG7/0pS/tra+vPyP83NatW0tefPHF5l/+8pfvAkBLS0vxCy+8sOXxxx/fMm3atDMnTpx4oLm5eWNJSUn7Y489dno4n/Xr12968803Nxw5ciT06KOPnh6vXH/961+719TUHAaAiy++uHXDhg2lALBixYruZ5999pEVK1aULl26tNvo0aM71GB/+MMf7u7fv//x5cuXN7/yyivNAHDkyJHQuHHjDr3xxhsbx40bd+j+++/v1zlHYMuWLSXLly9v/tvf/rbpZz/7WdmxY8fkz3/+c+nChQv7rFq1atPKlSs3PfLII/1efPHFrs7XPfTQQ71ra2v3b968eeOmTZs2XHDBBa07duwouOuuuwatWLGieePGjZvGjBnT+uMf/3gAAHTp0gUVFRVHX3755dLkviVLVt2HShRETU3A1KlAa6v1uKXFegwAdXX+lYu8s3MnilLZnorevXu3X3PNNXvvvvvu/l27dj1ZbVyzZk23Z555ZisA1NfXf3jnnXee7Gu96qqrPiooOHV6v+SSS/YXFxfr2LFjj5w4cUKuvvrqAwAwcuTII2+//XYRADzzzDM97r333oFHjx4N7du3r6CqquoIgP2xyrVr167CAQMGtAFAYWEhKioqjq5evbpk9erV3W655ZZdS5cu7XHixAkZP358wibhwsJCnTx58n4AqK6uPrxkyZLTou136aWX7uvatat27dq1rXfv3sfffffdgmXLlnX/3Oc+t++0005rB4B//Md//Gjp0qU9xo8ffyT8ugsvvPDw17/+9crjx4+Hrr766o8uuuiiI4sWLeqxdevWkrFjx44AgOPHj0t1dfXJsvbt27dt+/bthYnK7sQaKlGGGhpOBdOw1lZrO+WHgQPxcSrbU3XHHXfsWrhwYd/Dhw8ndc7u3r17h/ba4uJiBayaV0FBgYZC1tuEQiG0tbVJa2ur3HbbbRVPPPHE1ubm5o1Tpkz54OjRo3HzKikpaT9y5MjJfS666KJDixcvPr2wsFAvv/zyAy+99FL3l156qXttbe3BROV1lqmgoABtbW0Sbb/wcYSPpa2tLaklSCdNmnRoxYoVbwwePPjjG2644cyf//znfVQVF1988YHNmzdv3Lx588atW7dueOyxx05O8HHs2LFQaWlp/HbvCAyoRBnati217ZR7Zs7EeyUl6HDyLSlB+8yZeM/E+w8YMODE5Zdf/tHChQv7hreNHj368IMPPtgLAObNm9e7pqYmqcFB0bS2toYAYODAgW379+8PPfXUU1FH9ToNHz78aHNz88mRsBMmTDg0b968/n//939/qKysrO2jjz4qeOutt0qqq6uPRr62W7duJ8L9lZmaOHHioaeffrrnwYMHQwcOHAg9/fTTvT796U93COLNzc1FgwcPPn7bbbd9MGXKlA9Wr15dOmHChMMrV67svn79+mIAOHjwYOj1118/eTxvv/128ejRozuVPR4GVKIMlZentp1yz7Rp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\n", + "image/png": "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J+SVV14pfuKJJ/qsXr16Y3Nz88Zf/vKXpa+++mo35+Mee+yxktra2gObNm3asHHjxvUXX3zx0e3btxfcf//9A1etWtWyYcOGjWPGjDn6/e9/vz8A5Ofno6Ki4vjrr79enNi7ZAnUdahEuaKpCZgxAzh61Lrd2mrdBoC6Ou/qRZHt2IEuyWxPRklJSft1112394EHHujXrVu3jmbj2rVru7/wwgtbAKC+vv7je++9t2Os9ZprrtlXUHD6633SpEkHunbtqmPHjj126tQpufbaaw8CwIgRI469//77XQDghRde6PnjH/94wPHjx/P2799fUFVVdQzAgWj12rlzZ2H//v3bAKCwsBAVFRXH16xZU7RmzZrut912287ly5f3PHXqlIwfPz5ul3BhYaFOnTr1AABUV1cfWbZs2VmR9ps8efL+bt26abdu3dpKSkpOfvjhhwUrVqzoccUVV+w/66yz2gHgH//xH/ctX7685/jx44+FHnfJJZcc+drXvlZ58uTJvGuvvXbfpZdeemzx4sU9t2zZUjR27NjhAHDy5Emprq7uqGvfvn3btm3bVhiv7k6etVBFpEhE3hCRN0VkvYjc61VdiPymoeF0MA05etTaTv4zYAA+SWZ7su6+++6dTzzxRN8jR44k9J3do0ePTv21Xbt2VcBqeRUUFGhenvU0eXl5aGtrk6NHj8qdd95Z8fTTT29paWnZMG3atD3Hjx+PeayioqL2Y8eOdexz6aWXHn722WfPLiws1CuvvPLga6+91uO1117rUVtbeyhefZ11KigoQFtbm0TaL3QeoXNpa2tLaAnSKVOmHF61atU7gwYN+uSmm2469+GHH+6jqrjssssObtq0acOmTZs2bNmyZf2TTz7ZMcHHiRMn8oqLi2P3e4fxssv3BICJqjoSwCgAl4vIJR7Wh8g3Pvggue1+lEtd1nPm4KOiInT68i0qQvucOfjIxPP379//1JVXXrnviSee6BvaNnr06COPPvpobwBYsGBBSU1NTULJQZEcPXo0DwAGDBjQduDAgbznnnsuYlav07Bhw463tLR0ZMJOmDDh8IIFC/r9/d///eGysrK2ffv2Fbz33ntF1dXVx8Mf271791Oh8cp0TZw48fDzzz/f69ChQ3kHDx7Me/7553t/9rOf7RTEW1paugwaNOjknXfeuWfatGl71qxZUzxhwoQjzc3N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\n", "text/plain": [ "
" ] @@ -95,6 +108,17 @@ "## Exponential Simulation" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Exponential $(X,Y) \\in \\mathbb{R}^{p} \\times \\mathbb{R}$:\n", + "\n", + "$$X \\sim \\mathcal{U}(0,3)^{p}$$\n", + "\n", + "$$Y=\\exp(w^{T}X)+10\\kappa \\epsilon$$" + ] + }, { "cell_type": "code", "execution_count": 5, @@ -112,7 +136,7 @@ "outputs": [ { "data": { - "image/png": "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Tp2q9913n6qqtra2tr/vjBkzdNmyZe3n+9WvftXJtvPOO6+9zu7du7WhoUFVVS+99FIdO3asrlq1SleuXKnTpk3rdJ76+nrdunVr+7mA9nN961vf0v/4j//o9H7z58/XCRMm6M6dO3Xr1q3ar18/3bVrl7a0tOiIESN0+/bt+sEHH+jw4cP12Wefbb9+qqrXXnut/uAHP1BV1T179uj777+vW7du1WOOOUa3b9+uqqpXXXWVfu9732t/vylTpmhLS0snOwq5L4zk0tTk/H5FnMempuLOA7SorWvvjSAd2fvvvz/nnXceCxcupKampn3/k08+ydKlSwE499xzueyyy9qPnXnmmVRV7Vvq/MQTT6S6upqRI0fS1tbW3pIcOXIkr7/+OgCPPvooV199NTt27ODtt9/msMMO44tf/CK52Lx5MwMHOtnBunfvzqc+9SnWrVvH008/zSWXXMLjjz9OW1sbxxxzTN7P2KNHD045xVm5eMyYMaxYsSJrvZNPPpmePXvSs2dPBg0axJYtW1i1ahWnnXYa++3nrHZ8+umn88QTT3D44Ye3v27cuHHMnj2b3bt3M3XqVEaPHs1jjz3G2rVrmThxIgC7du1iwoQJ7a8ZNGgQmzZtYsyYbOvkGeVMFKFS1rUneEf2xRdfzG233caHH36Ys056jGNKVFL07NkTgG7dulFdXd1et1u3buzZs4edO3cyd+5clixZwosvvsiFF16YN/C8pqamQ51jjjmGBx98kOrqaqZMmcKqVatYtWqVJx9quk1VVVU5u9Spz5FeTz2s0DBp0iQef/xxhgwZwrnnnsvPf/5zVJXPf/7zrF69mtWrV7N27Vpuu+229tfs3Lmzwx+XUTlEESplQkrwjux+/fpx1llndfihH3300dx9990ANDc389nPfrbo86cEccCAAWzfvj3nKH06hx56KOvXr2/fnjRpEtdffz0TJkxg4MCBtLa28vLLL3PYYYd1em2fPn344IMPirY3nUmTJnH//fezY8cOPvzwQ+67775OreANGzYwaNAgLrzwQi644AKeffZZxo8fzx//+Mf2z7Bjxw5effXV9te8+uqrWW034otfA75RhEqZkBKOI/vSSy/tMHq/cOFC7rjjDkaNGsVdd93Fj3/846LP3bdvXy688EJGjhzJ1KlTGTduXN7XnHzyyaxcubJ9+6ijjmLLli3t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\n", + "image/png": "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c+aM/+hHP7pp9erVKz/ykY9smjt37psy961du3bIr3/969Xf+973ngNYt27d4F/+8pdrbr311jVz5sw59OSTT3519erVK4cMGdJ7yy237J95nccff3zVU089tWLHjh0tN9100/79xfWb3/xm2NSpU7cBnHjiidtXrFjRBvDQQw8Ne8tb3rLjoYcearv//vv3mTJlSp8a77//+7+/dNBBB+168MEHV//+979fDbBjx46W448/fuuTTz658vjjj9/6ne98Z9Terwhr1qwZ8uCDD67+4x//uOq//uu/xrz++uv2q1/9qu2GG2448OGHH161bNmyVT/84Q9H/frXvx6a/bhrr712xLRp01554oknVq5atWrF29/+9u0bNmwY8LWvfW30Qw89tHrlypWrjjnmmO3/8R//cTBAa2sr7e3tO3/3u9+1lfZbCjTEdbTS2ObPh+3b++7bvj3YP2NGMjGJlOKFFxhUzv5yjBgxovfDH/7wpq9//esHDR06dHc1c/ny5fvcddddawHmzp37t6985Su7+3I/+MEPbh4wYM/H/imnnPLK4MGD/dhjj93R09Nj55xzzqsAkydP3vH0008PArjrrrv2/eY3v3nIzp07W7Zs2TKgo6NjB/BKobhefPHFgQcffHA3wMCBA2lvb9/5yCOPDHnkkUf2ufDCC1+8//779+3p6bETTjihaNPywIEDffr06a8AdHZ2brv33nv3y3fcqaeeumXo0KE+dOjQ7hEjRux67rnnBjzwwAPDzjjjjC377bdfL8B73/vezffff/++J5xwwo7M44477rhtn/rUpybs2rWr5Zxzztn8jne8Y8eNN96479q1a4cce+yxhwPs2rXLOjs7d8c6cuTI7meffXZgsdizJV6jNbNWM1tuZj8Ltw81s9+b2VNmdrOZVf0HKfVtfYHVWgvtF0mLQw7hjXL2l+uyyy578YYbbhi5bdu2kj7Lhw0b1qfdd/DgwQ5BTW3AgAHe0hI8TUtLC93d3bZ9+3b77Gc/237bbbetXb169cqZM2e+vHPnzn5fa8iQIb07duzYfcw73vGOrXfcccf+AwcO9Pe///2v/va3vx3229/+dti0adNeKxZvdkwDBgygu7vb8h2XeR+Z99Ld3V3SPP6nn3761oceeujJsWPHvnH++ecfesUVVxzo7px44omvPvHEEyufeOKJlWvXrl1xyy237J645PXXX29pa2vrv/08R+KJlmBR8lVZ2/8H+Ja7TwQ2Ax9PJCpJjfHjy9svkhaXX87zQ4bQ50N5yBB6L7+c56N4/oMPPrjn/e9//+YbbrhhZGbflClTtl1zzTUHAFx99dUjpk6dWtKgpHy2b9/eAnDIIYd0v/LKKy0//elP844yznbYYYftXL169e6RuSeddNLWq6+++qC3ve1tW8eMGdO9efPmAX/5y1+GdHZ27sx97D777NOT6Q+t1sknn7z1zjvvHP7aa6+1vPrqqy133nnnAe9+97v7JPfVq1cPGjt27K7PfvazL8+cOfPlRx55pO2kk07atmzZsmGPP/74YIDXXnut5c9//vPu9/P0008PnjJlyl6x9yfRRGtm44D3AteE2wacDNwaHrIEODuZ6CQtFi6Etpwekba2YL9Ims2Zw9++9S3WjR7NG2YwejRvfOtbrJszh79F9Rrz589/YcuWLbvbg6+66qr1119//chJkyZ13HjjjQdeeeWVz1b63CNHjuyZMWPGxo6Ojsmnn376W4466qhtxR5z5plnvvLggw/um9k+6aSTtm7atGngSSedtBWgo6Njx2GHHbYjU1PNNmvWrJdPP/30idmDoSp14oknbv/oRz+66Zhjjjmis7PziPPOO29jdrMxwN13371vR0fH5COOOKLj9ttvP+ALX/jCi2PGjOm++uqrn5k+ffqbJ02a1NHZ2Xn4Y489NgTg2WefHTB48GBvb28vazRUosvkmdmtwH8C+wKfA84HfufubwnvfxNwl7vvNbWVmc0GZgOMHz++c926vaYklQbS1RX0ya5fH9RkFy5U/6zEz8wedvep2fseffTRZ4466qiXk4qpHnR2dh529913rxk5cmRP0rFE6Stf+cpB++23X+8ll1yy1+//0UcfHXnUUUdNyPe4xGq0ZvY+4CV3fzh7d55D834TcPfF7j7V3aeOGpV3IJo0kBkz4JlnoLc3uFWSbQy6bKsxfeMb33hu7dq1DTe+Zvjw4T2f/vSny/6SleSo4xOAM83sDGAIsB/wbWC4mQ1w925gHPDXBGMUkZhkLtvKjCjPXLYF+iJV704++eSiTcz16KKLLtpUyeMSq9G6+2XuPs7dJwDTgV+6+wzgfuCc8LBZwO0JhSgiMervsi2RRpKGUce5/hW41MzWAAcC3084HhGJgS7bkmaRigkr3P0B4IHw578AxyYZj4jEb/z4oLk4336RRpLGGq2INAFdtlW5JFbvqXTFG1GiFZGEzJgBixdDezuYBbeLF2sgVCmqXb2nEpWueCNKtCKSoKa4bGvRohGMGfNWWlo6GTPmrSxaVPUyeZWs3pOtliveiBKtiEh8Fi0awSWXtLNhwyCCdfIGcckl7VEk20pW78lWqxVvRIlWRCQ+CxaMJXcS/p07W1iwoOpl8rJX78nev3z58n1mz579NwhW73n44YeH5Xt8ZsWb0aNH513xZv/99+/NrHiT/bjjjjtu24033jjy0ksvHfOHP/xh6AEHHND7wAMP7JNZ8ebwww/vuOmmmw5cv359w01YUalUjDoWEWlIL7yQP9kU2l+myy677MVjjjmmY/r06WXPVlTtijc/+tGP9j///PMP/cxnPvPiiBEjuk888cRXf/rTnz5dbhzNQDVaEZG4HHJI/uXwCu0vU9Sr98S14k2zU6IVEYnL5Zc/z5AhfdcuHTKkl8svj2SZPIh29Z44VryRhFfvicrUqVN92bJlSYchIg0mktV7Fi0awYIFY3nhhUEccsgbXH7588yZE9kyeZIO/a3eoz5aEZE4zZnzNyXW5qamYxERkRgp0YqIiMRIiVZEpDy9vb29lnQQkh7h30NvofuVaEVEyvP4xo0b91eyFQiS7MaNG/cHHi90jAZDiYiUobu7+xMvvPDCNS+88MKRqLIiQU328e7u7k8UOkCJVkSkDJ2dnS8BZyYdh9QPfRsTERGJkRKtSJPq6oIJE6ClJbjt6ko6IpHGpKZjkSbU1QWzZ8P27cH2unXBNjTomrAiCVKNVqQJzZ+/J8lmbN8e7BeRaCnRijSh9evL2y8ilVOiFWlC48eXt19EKqdEK9KEFi6Etra++9ragv0iEi0lWpEmNGMGLF4M7e1gFtwuXqyBUCJxSGzUsZkNAR4CBodx3OruXzKzQ4GbgBHAI8B57v5GUnGKNKoZM5RYRWohyRrt68DJ7n4UcDRwmpkdB/wf4FvuPhHYDHw8wRhFRESqklii9cDWcHNgWBw4Gbg13L8EODuB8ERERCKRaB+tmbWa2Z+Al4B7gLXAFnfvDg95Dhhb4LGzzWyZmS3buHFjbQIWEREpU6KJ1t173P1oYBxwLHBEvsMKPHaxu09196mjRo2KM0wRSTlNJylploopGN19i5k9ABwHDDezAWGtdhzw10SDE5FU03SSknaJ1WjNbJSZDQ9/HgqcAqwC7gfOCQ+bBdyeTIQiklbZNdhZszSdpKRbkjXa0cASM2slSPi3uPvPzGwlcJOZfRVYDnw/wRhFJGVya7A9PfmP03SSkhaJJVp3/zMwJc/+vxD014qI7CXfggj5aDpJSQvNDCUidaWUmqqmk5Q0UaJtEBp1Kc2iUE21tVXTSUo6KdE2gEyf1bp14L5n1KWSrTSiQgsiLFkCvb3wzDNKspIuSrQNQIt4SzPRgghSb8w973wQdWXq1Km+bNmypMNITEtLUJPNZRZ8wxeRypjZw+4+Nek4pL6pRtsAtIi3iEh6KdE2AC3iLSKSXkq0DUB9ViIi6ZWKuY6lelrEW0QknVSjFRERiZESrYiISIyUaEVERGKkRCsiIhIjJVoREZEYKdGKyG5anEIkekq0InUojoSoxSlE4qFEK6mnWlZfpSTESs6ZFqcQiYcWFZBUyySV7ATQ1tbcM19NmBAk11zt7cEScZWeMy1OsTctKiBRUI1WUk21rL2tX9///krPWS0Wp1DrhDQjJVpJtWJJpRkVS4iVnrO4F6dQH7A0KyVaSTUtAbi3Ygmx0nMW9+IUap2QZqVEK6mmJQD3ViwhVnPOZswI+nl7e4PbKPvB1TohzUqJVlJNSwDm119CrMU5q6SvVa0T0qwSS7Rm9iYzu9/MVpnZCjO7KNw/wszuMbOnwtsDkopR0iHOWlajivOcVdrXWtPWia4uGDYs+KZhBq2tMG9eDC8kUlySNdpu4LPufgRwHPAvZtYBfBG4z90nAveF2yKSEpX2tUZd0y5Yq+7qgpkzYdu2PQf39sJVVynZSiISS7TuvsHdHwl/fg1YBYwFzgKWhIctAc5OJkIRyScNfa2FatV/Gzs5SLKFLF5cuyBFQgOSDgDAzCYAU4DfAwe7+wYIkrGZHVTgMbOB2QDj1ckjUjPjx+efMKPYv2HuRBqZ5Ajl12rz1aq3bDcGbM9//G49PeW9kEgEEh8MZWbDgB8BF7v7q6U+zt0Xu/tUd586atSo+AIUkT4q7WuN8vKe7NrzuXTRgzEAsGIPbG0t/8VEqpRoojWzgQRJtsvdbwt3v2hmo8P7RwMvJRWfiOyt0r7W/pqcyx3FnKk9/5xT6GImLZSQZGFPFVqkhpIcdWzA94FV7v7NrLvuAGaFP88Cbq91bFI5TbHXHCoZ1VyoaXnEiPJHMf/8LfPoxTiV+0pLsADTpsGVV5Z6tEhkkqzRngCcB5xsZn8KyxnA14F/NLOngH8Mt6UONOIUe/ri0Fc156NQkzOU2aQ8eTKH33cVRom1WAiS7L33lh6sSJTcve5LZ2enS/La292DFNu3tLcnHVllli51b2vr+17a2oL9zSiK87F0afD3YBbcLl0a/Jzv78YszxO0tOQ/uL8yd27F7xlY5in4jFOp75L4YKhm1V/NoF5rUWm47CNKmpu3ryjOR74m55JmjJo3r7L1+tzVXCyJS8XlPc2mv8scILpLIGqt0ss+0qrRvjhUK67zsXBh/vVzd49itpIbiPcYPhw2b64uMJGIqEabgP5qBvVci0p6AYBCLQGVthBobt6+4jofBUcx/3peZUl27lwlWUmXpNuuoyj11kfbX59UWf1VKZSvD65Wr5uv/3Du3Mr7FdVH21el56Oiv4kxY/L/IxQrEUN9tCoRlMQDiKLUW6Ltb9BQow0oqpVC5621tbrzmdQXh7Qq93yUnZynTcv/CytWpk2L+J0GlGhVoijqo01AsT6pfvurJK9C/YSFZtxr1n7Was2YUd5Ygf66QvZ6ngMOgC1bygto4EB4443yHiNSY/320ZpZq5l9o1bBNIv+ZtbR+quVKdRPWGjGvVL6FRvxuuBaK2kA1eTJwR97uUl27lwlWakL5u79H2D2S2CaFzswQVOnTvVly5YlHYYkKHckNwQtAbNmwZIle+8v5cvLhAn5R1G3tweXpkhx/Z7DfSbDypWVPfHSpTX59mlmD7v71NhfSBpaKaOOlwO3m9l5ZvbBTIk7sLQpNnK1Xq99bRSFWgKuvLLyFgJd3lO+3P+DM87YeyT6PZzC0+ussiTb0RE0L6iJR+pJsU5c4Lo85dqkO5ezS9yDoYoN6NDo1MYU98C0ehloVWqc/Y38bm93v4K53gPeW8lgJ0jkBKHBUCoRlMQDiKLEnWiLfeBqpHBjivMLVL18OSsnzn7/D4YOzX9nKWXMmBq/6z2UaFWiKEWbjs1snJn92MxeMrMXzexHZjYuxkp26hRrQmzmJsZGbjKPc2BavUxMUk6c+f7ez6UraCbesaOyAObOheefr+yxIilRSh/tdQRL140BxgI/Dfc1jWIz4pQyY04jJqRmGJVbyXJwpaiXL2flxJn9934uXexkAF3MLH2FnWxz5wZ/VJqnWBpAKYl2lLtf5+7dYfkBMCrmuFKl2NSCxe5v1IRUL7WyNKqX6R3LiXPhwmCgUy9GFzMZTE/5SVYJVhpRsbZl4F5gJtAalpnAfUm3eWeXWswMVWxASH/3N2ofbr1PF5mktPTRlvJ3XVKc4ZSJlQx06gXfwcB+B1slNXAM9dGqRFCKHwDjCZqONwIvAT8BxicdeHZJwxSM/X0QNGpCivMLRL2MyK1G0u+x1CTab5zVDHIKk+w9TOs3hiS/lCjRqkRRih8AJ5SyL8mSdKIt9kHQqDXauD4A01LbKxRbmr8AlBNfVX+Xlc5JnF2WLi0phiT/f5RoVaIoxQ+AR0rZl2RJOtEW+yBIc+KoVhyJJ61fTNL+eyw3vopaWqJIsAMHlhVDki1CSrQqUZSCUzCa2fHAO4CLgW9l3bUf8AF3PyqqfuJqJT0FY0tL8K+fyywYrQrBwKf584PRmuPHBwNHNLlNfqWczySkfUrGcuMr6/h58+Cqq6oLcNo0uPfesmNI8rxrCkaJQn+jjgcBw4ABwL5Z5VXgnPhDqx+ljMzMd5lII17yE4W0jshN+yU55cZXbLQ8XV3Btxuz6pJsZiRxTpItKYYSjxFJtWJVXqA96Wp3sZJ003ElTYppb4astewm6AMPdB80KH3nJq1N2hmVxJe36X/u3PxPVG7ZZ5+SfmmldD9o1LFKPZfiB8A9wPCs7QOAu5MOPLsknWjdy/8gSPuHdi3l+9IxcGCQcNM06CjtX46qji+K/lcIRiJH+J6SHHymRKsSRSl+ACwvZV+SJQ2JtlyNeslPJerpS0fSH/zFVBRfeA1s1cUs0hOShi82SrQqUZRS1qN9mGDw0/pwux34sbsfE0dTdiWSHgxVibQPrKmltA5+amhdXXDeeflPfBkyj7a5cyOfzSkN/yMaDCVRKGUKxvnA/5rZ9WZ2PfAQcFkUL25m14aLFTyetW+Emd1jZk+FtwdE8VppowEee6R18FNDmjcv+AYzc2bFSdbDsgtjBks5tN1jmTIx7YPPREpVNNG6+8+BY4CbgVuATne/O6LX/wFwWs6+LxJM8TgRuC/cbjhxrgxTb6L80qGR3HlkkmuVo4czCfYXTKMFZxC93MiM2BKfvoBJwyjWtgwYwfzGl4fb44Fjo2q7BiYAj2dtPwmMDn8eDTxZ7DnqrY827f18SYjinKShTy81oup3zSorWztq2peeht8n6qNViaAUPwCuAr4LrAq3DwD+GFkAeyfaLTn3by7wuNnAMmDZ+PHjvV6k4cOjUdXToKpYLF3qPmBA/pMQwSjiJP52k/5SqkSrEkUpZTDUI+5+jJktd/cp4b5HPaKZocxsAvAzdz8y3N7i7sOz7t/s7v3209bTYKg0DPBoVE05qKqrCz71Kdi2LdrnzTOLU+blmmmGMw2GkiiUMhhql5m1Eg4wNLNRQJwfWy+a2ejwtUYTrBjUMDTAIz5N1ac3efKeQU1RJtlp04JvK3mSLOSf4SyN1FcvaVJKov1v4MfAQWbSELxfAAAVLElEQVS2EPhf4GsxxnQHMCv8eRZwe4yvVXNNlQxqrKFHcmcPaDKDlSuje+7WVli6tN8EW0+6umD27KDlyD24nT1byVYSVEr7MnA48C/Ap4Ejomq3Bm4ENgC7gOeAjwMHEow2fiq8HVHseeppMJT6aOOVdJ9epKKaqSmn9IbluY5pSb/DyGT/3ltb87/1SvrqUR+tSgSl8B3wP8AMYJ+kgyxWkk605X64N1QykOjENZgpK7luZ4ify9JUDhKr9P8i35fXfKWSWdeUaFWiKP0tk3cWMB04BfhlWPu8093fiKNmXY0kB0Nlmqm2b9+zr62tea+JlTKdcgrcd1/kT5v7X/1nOjiaFX32pWmQWDX/R4UGGOaqZMChBkNJFAr20br77e5+LsF1s7cR9JeuD2dz+sdaBZh28+f3/XCAYHv+/GTikZTr6oKhQ/f0tcaQZAHuCSeVyJTcJAvpGhdQzf9RKQMJG6avXupSKTND7XD3m939A8CpwBTg57FHVic0ilj6lTuIaeZM2LkzntfKXN/kzuz2/gc1pS3xVPN/VOgLQ2urZl2TdCiaaM3sYDO70Mx+DfwE+AXQGXtkdUKjiKWPzGU3USyYXqrMJTk9Pbt35RuBbRbcpjHxVPN/VGi0+ZIl6b8MSZpDwURrZp80s18CjwCTgC+4+5vd/V/d/U81izDlGvqSEilu7Nj4LrvpTya5ev5LcvLNpX399cHhaUw8+f6PALZuLX5ZjuYNl7TrbzDUdQQDoO5195QMmcgv6Zmhmm22nKYV08ClkowZA88/n8xr10hXF1x0EWza1Hd/koMLNRhKotDfYKh/dvdfpD3JpkF/s+XU8ww19Rx71bq6YOTIvrXVWiZZM5g7d0+ttcGTLAT/N8OG7b1fgwul3g1IOoBGlnvJQmaGGkh/jbeeY69IWxvs2FHzl81uT7LW1qBjsSFPcGk0uFAaUX99tHeGE/5LhaK49CepWmXDXrbU1ta3lpopNUyyHpbtDOaiA5dyw1LH3KG7u2mTbObvvEBPlgYXSl3rb9TxD4BfmNl8MxtYo3gaSrXfzpOcs7Xuaxa5l9UkkFDzmjYNC2aKoc138t8vz2jW3Lpb9t95PhpcKPWuvz7aWwiumd0PWGZmnzOzSzOlZhHWsWov/YmzVlmsplw3ly2dckr+hFqLy2pyeE4BoKOj70yADTBpf9Ty/Z1naASxNIJi19HuArYBg4F9c4oUUejSnzPOKK05OK5aZSk15ULXYZ5xRnWvXZGuruBk5UuoSY0CzpJJrPcwjUPbfU9TsDus2HtGJumr0N+zWTovRRIpW6FJkIHTgJXA14G2pCdl7q8kvahAf3InSp87t/TVe9rb+x5XzSok5T7v0qXuw4btfUxsKw3FtFJNrGXu3BhORPOJ6+88CmhRAZUISuE74FfA5KQDLKWkOdHmKudDJa4l9czyx5BZ3aTYaigVfQB2dBR+wnooY8ZUd9KloDQvHalEqxJF6a+P9p3urnaviJXTHBzXjDfF+l/76zODoKm5T7N3oYFHScyYVC2zPYugZ5cmuI41KZrZSRpdwZmh6knSM0OVo9CSXpUs4VWpYkuSZeamP5curmMWg+gp/GQhizHeWDXBjEtSOc0MJVEouqiARCvRuZHDEbozZhpbtxu97Clbtwf7MaPHg31dzGQwPRgULamXPcuSaqoiUkNKtDUWWTNZfyNxC5WsEbr9Jcu6SqAZ2ZPsZ5Wupc6Edqdl0ZXNN42kiKSCEm0CZsyAZxZ20TtwMM+s21OTLKvMnBkkk2YzdOie5GnB7by5zoQ19+51uVS+y5jOOy/oUhYRqRXNdVyOefMSmQih6eyzD1x9dd5qfr45mLN/JdlzMucb1OUOixbBCSdosI2I1EZz12hzF+kuVpRkozF8eP8X02zdWjALFhsRDXtmzyo0wtu9NrNriYhAMyfayZPr55KTFPB+Sh+5Uw7mK5s3VxxHqbNiZdYGrvZ5CklyHmoRqS/Nm2iVZMvy145pDGtzWthThrUF0w32SaIxTzlY6lzL48cHI7mtwIiuauZs7uqCWbMadHUjEYlcahOtmZ1mZk+a2Roz+2LS8TSkUmqfYRm74t5UTCqQ7/KoXJnLpWbMgDlz9k621VxOlanJ9hS4tLhuVjcSkdpJemqqfAVoBdYCbwYGAY8CHYWOr2gKxqSn9CtSevOUgse3tDTVvLv55o/O3s6dui/3+Gqm9is0hWampGF+XokOmoJRJYKS1hrtscAad/+Lu78B3AScFekrdHRE+nRVy5pQoWup79VM22qOEVzO0pXbXNvTA1demfQ7qJkZM4JZtHp7g9srr+y7nVvLzj2+mlp4fzXWuCce0eArkfqU1kQ7Fng2a/u5cN9uZjbbzJaZ2bKNGzeW/worVlSXbPPNh1tNyUqUhS5LAQ26SVqhvt3W1nib0jX4SqR+pTXR5hvC0meAq7svdvep7j511KhRlb3KihWVJ8YYOyeL9fNp0E1yCk2huWRJvP3V+b586e9ApD6kNdE+B7wpa3sc8NeEYqm5UkbEpn3QTaM2cya10kw5qz6JSLqkNdH+EZhoZoea2SBgOnBHwjHVTCkja6u5PCVujd7MGWWfL5T2paTY0oYikl6pTLTu3g18GrgbWAXc4k20Nm52rQmivTwlI/PhbgYDBgS3UdU81cxZulK/lCS66pOIVCfpYc9RlIou76kjUV6eknm+trb8nc9tbdU/v1n+5zar7nkbUaHLhfJdJhT134EUhy7vUYmgaOH3CHR1BbW1deuC0ac9PUFtNDNpQtoUWnw+o7U1aBbNzK5U7ntIw+L29aKlZc+I8mxmwe9AkqWF3yUKqWw6rifZTX+wZ8agNPdLFhtA09NTXd9qKc2cjTpYqlzqexVpfEq0VepvNZm09kuW8yFeyXsoNjK31oOl0pzU1fcq0vjUdFylQk1/GWlsAsxd07WYqN9DLZuW873XtrZk5mkuJNP1kFlxKK1dDs1ITccSBSXaKhXr70xrv2S+fuXMba6o30Mt+yXVXyzVUKKVKKjpuEr9XfOa5ibAzLWg7tDdHdwuWVJ6M2Y1zbG17JfURA8ikjQl2hIVSiy517y2tga3SS0jV41SZz2qto+1lv2SGmwkIklT03EJ6qGfr5aiaI6tVb+kfndSDTUdSxRUoy1BI8x0FOXI2yiaY6OexrC/10nDgvUi0ryUaEtQ7/18UV9Oo+ZYEZHSKdGWoN4TS9Q18nq69rPRFzgQkfRToi1BPSWWfKKukddTc2wjNPuLSH1Toi1BPSWWfOKokdeqj7Va9d7sLyL1T4m2RPWSWPKp9xp5Neq92V9E6p8SbROo9xp5NZr5S0Y+aZ73WaRRKdGmTFwfhPVcI69GWr9kJJHwNDBMJBmasCJFNLlCc0jq96x5n8unCSskCkq0KaIPwuaQ1O9Zi8yXT4lWoqCm4xSJe4Ss+ufSIamR0BoYJpIMJdoUifODUP1z6ZFUwtPAMJFkKNGmSJwfhJq4IT2SSnhpHRgm0uiUaFMk35J7mWRYbc2znOZKNTHHK8mE16yjz0WSNCDpAKSvzAdf9qjUTDNv9v3lGj8+/wCc3ObK3BGxUby27G3GDJ1PkWahGm0KxdHMW2pzpZqYRUSilUiiNbMPm9kKM+s1s6k5911mZmvM7Ekze08S8SUtjlGppTZXam5gEZFoJdV0/DjwQeDq7J1m1gFMByYDY4B7zWySu/fUPsTklNrMW65Smivjem0RkWaVSI3W3Ve5+5N57joLuMndX3f3p4E1wLG1jS55SV6GoUtARESilbY+2rHAs1nbz4X79mJms81smZkt27hxY02Cq5WkR6XqEhARkejE1nRsZvcCh+S5a767317oYXn25Z0j0t0XA4shmIKxoiBTLMlRqRoRKyISndhqtO5+irsfmacUSrIQ1GDflLU9DvhrXDGmQaXXrOpaVxGR+pC2puM7gOlmNtjMDgUmAn9IOKbYVDotoqZTFBGpH4ms3mNmHwC+A4wCtgB/cvf3hPfNBy4AuoGL3f2uYs9Xr6v3VLqKi1b5EakNrd4jUdAyeQmqdNkyLXcmUhtKtBKFtDUdN5VKV3HRcmd7U5+1iKSVEm2CKr1mVde69qU+axFJMyXaBFV6zaqude1L8zOLSJqpj1bqnvqsJS7qo5UoqEZbR9QPmV+UfdY6xyISNSXaOqF+yMKi6rPWORaROKjpuE7o2tn+dXUFfbLr1wc12YULy++z1jmWXGo6ligo0dYJ9UPGT+dYcinRShTUdFwndO1stPL1xeoci0gclGjrhK6djUZXF4wcCTNn7t0Xe8YZOsciEj0l2jqha2erlxnstGnT3vdt3w533qlzLCLRUx+tNI1Cg50y1BcrudRHK1FQjVaaxvr1/d+vvlgRiYMSrTSN/hKp+mJFJC5KtNI08g0oAzjwQPXFikh8lGilaeQbULZ0Kbz8spKsiMRnQNIBiNTSjBlKqiJSW6rRioiIxEiJVkREJEZKtCIiIjFSohWpQ1o3V6R+aDCUSJ3JTCW5fXuwnZmrGTTQSySNVKMVqTPz5+9Jshnbtwf7RSR9Ekm0ZvYNM3vCzP5sZj82s+FZ911mZmvM7Ekze08S8TUzNUmmX6GpJItNMSkiyUiqRnsPcKS7/z2wGrgMwMw6gOnAZOA04Eoza00oxqaTaZLMXT5OyTZdtG6uSH1JJNG6+y/cvTvc/B0wLvz5LOAmd3/d3Z8G1gDHJhFjM1KTZH3Q2sQi9SUNfbQXAHeFP48Fns2677lw317MbLaZLTOzZRs3bow5xOagJsn6oLWJRepLbKOOzexe4JA8d81399vDY+YD3UCmcdLyHJ93wVx3XwwshmA92qoDFsaPz79eq5ok00dTSYrUj9gSrbuf0t/9ZjYLeB8wzfesPv8c8Kasw8YBf40nQsm1cGHfy0ZATZIiItVKatTxacC/Ame6e3av4B3AdDMbbGaHAhOBPyQRYzNSk6SISPSSmrDiCmAwcI+ZAfzO3ee4+wozuwVYSdCk/C/u3pNQjE1JTZIiItFKJNG6+1v6uW8hoMZKERFpCGkYdSwiItKwlGhFRERipEQrIiISIyVaERGRGNmeS1jrl5ltBPJMtVCSkcDLEYYTl3qIsx5ihPqIUzFGp5o42919VJTBSPNpiERbDTNb5u5Tk46jmHqIsx5ihPqIUzFGp17ilMalpmMREZEYKdGKiIjESIk2XJigDtRDnPUQI9RHnIoxOvUSpzSopu+jFRERiZNqtCIiIjFSohUREYlR0yRaMzvNzJ40szVm9sU89w82s5vD+39vZhNqH2VJcZ5vZhvN7E9h+USN47vWzF4ys8cL3G9m9t9h/H82s2NqGV9WHMXiPMnMXsk6j5cnEOObzOx+M1tlZivM7KI8xyR6PkuMMQ3ncoiZ/cHMHg3j/EqeY1LxPy5NyN0bvgCtwFrgzcAg4FGgI+eYecCi8OfpwM0pjfN84IoEz+U/AMcAjxe4/wzgLsCA44DfpzTOk4CfJXUewxhGA8eEP+8LrM7z+070fJYYYxrOpQHDwp8HAr8Hjss5JvH/cZXmLM1Soz0WWOPuf3H3N4CbgLNyjjkLWBL+fCswzcLFcmuolDgT5e4PAX/r55CzgB964HfAcDMbXZvo9ighzsS5+wZ3fyT8+TVgFTA257BEz2eJMSYuPD9bw82BYckd6ZmG/3FpQs2SaMcCz2ZtP8feHxa7j3H3buAV4MCaRJcnhlC+OAE+FDYj3mpmb6pNaCUr9T2kwfFhU+NdZjY5yUDCZswpBDWxbKk5n/3ECCk4l2bWamZ/Al4C7nH3gucywf9xaULNkmjzfWvN/bZbyjFxKyWGnwIT3P3vgXvZ8w09LdJwHkvxCME8tkcB3wF+klQgZjYM+BFwsbu/mnt3nofU/HwWiTEV59Lde9z9aGAccKyZHZlzSCrOpTSfZkm0zwHZNb9xwF8LHWNmA4D9qX3TY9E43X2Tu78ebn4P6KxRbKUq5Vwnzt1fzTQ1uvudwEAzG1nrOMxsIEEC63L32/Ickvj5LBZjWs5lVjxbgAeA03LuSsP/uDShZkm0fwQmmtmhZjaIYCDEHTnH3AHMCn8+B/ilu9f6227ROHP6584k6DNLkzuAj4WjZY8DXnH3DUkHlcvMDsn0z5nZsQT/C5tqHIMB3wdWufs3CxyW6PksJcaUnMtRZjY8/HkocArwRM5hafgflyY0IOkAasHdu83s08DdBCN7r3X3FWa2AFjm7ncQfJhcb2ZrCL7lTk9pnJ8xszOB7jDO82sZo5ndSDDKdKSZPQd8iWDgCe6+CLiTYKTsGmA78M+1jK+MOM8B5ppZN7ADmJ7Ah+4JwHnAY2HfIsC/AeOz4kz6fJYSYxrO5WhgiZm1EiT6W9z9Z2n7H5fmpCkYRUREYtQsTcciIiKJUKIVERGJkRKtiIhIjJRoRUREYqREKyIiEiMlWkmtcOWYp81sRLh9QLjdnnPcA2b2npx9F5vZlRW85tlm1lFd5CIieyjRSmq5+7PAVcDXw11fBxa7+7qcQ29k72sip4f7y3U2UFaiDWcZEhHJS9fRSqqF0/89DFwLfBKYEq5slH3MgQSzAI1z99fDye8fIph/183s88A/AYOBH7v7l8LHfQz4HMF8t38mSOo/I5hs/hXgQwRLwy0C2giWMLzA3Teb2QPAbwgmdLjD3f9vXOdAROqbvolLqrn7rjBR/hw4NTfJhsdsMrM/EMxtezt71hp1MzsVmEiwBKEBd5jZPxBMETgfOMHdXzazEe7+NzO7g2Bt1VsBzOzPwIXu/mA4y9CXgIvDlx7u7u+K8/2LSP1T07HUg9OBDUDuaizZspuPs5uNTw3LcoJVZg4nSLwnA7e6+8sA7r7X5PJmtj9BMn0w3LWEYEH5jJsreTMi0lyUaCXVzOxo4B+B44BL+ln0/CcEC3kfAwzNLFZOUIv9T3c/Oixvcffvh/ur7TfZVuXjRaQJKNFKaoUrwlxFsAbqeuAbwH/lOzZcpu0Bgr7c7EFQdwMXhOupYmZjzewg4D7gn8L+XTIjm4HXCPplcfdXgM1m9s7wvvOABxERKYMSraTZJ4H17n5PuH0lcLiZFeoXvRE4Crgps8PdfwHcAPzWzB4DbgX2dfcVwELgQTN7FMgsAXcT8HkzW25mf0ewrNo3wr7ao4EFkb5DEWl4GnUsIiISI9VoRUREYqREKyIiEiMlWhERkRgp0YqIiMRIiVZERCRGSrQiIiIxUqIVERGJ0f8PaPcbRyVnoHsAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] @@ -142,6 +166,17 @@ "## Cubic Simulation" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Cubic $(X,Y) \\in \\mathbb{R}^{p} \\times \\mathbb{R}$:\n", + "\n", + "$$X \\sim \\mathcal{U}(-1,1)^{p}$$\n", + "\n", + "$$Y=128\\left(w^{T}X-\\frac{1}{3}\\right)^{3}+48\\left(w^{T}X-\\frac{1}{3}\\right)^{2}-12\\left(w^{T}X-\\frac{1}{3}\\right)+80\\kappa \\epsilon$$" + ] + }, { "cell_type": "code", "execution_count": 7, @@ -159,7 +194,7 @@ "outputs": [ { "data": { - "image/png": "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tu3Nnz+fj370o4wfP54dO3Z0qG/BggXMnj2bM844g2OPPZZrrrmmbdlVV13F8OHDGT58OFdffXVbfqaHvH37diZMmMCoUaMYPnw4Dz/8MAD33nsvp5xyCqNHj+bcc8/l3XffBeD0009n+fLlkdykkuBdYBipI8rg1Zdeeimtra2888477fK/9KUvceGFF/Lss88yffp0vvKVr7Qt27BhA8uXL+fKK68E4OWXX+auu+7izjvvZMaMGUycOJHnnnuO7t27c9ddd7Vt78knn+T555/nvffe4w9/+EPedj366KOMGTMGgNGjR/PMM88A8PDDDzN8+HCefPJJHn/8ccaNG9duva985SsMGDCABx98kAcffBCA3bt3M378eNasWcOECRO49tprfetcv34999xzD0888QT//u//zv79+3nqqae44YYbePzxx1m5ciXXXnttW1sy/OpXv+Kss85i9erVrFmzhlGjRvHGG2/w3e9+l+XLl/P000/T2NjIVVddBUBdXR3HHXcca9asyXsMSsFENmbsfUnpJMrg1R/4wAe48MIL2/XcAB577DE+//nPA3DBBRfwyCOPtC0799xzqfd4xpx99tl07tyZESNGcPDgwbYe6IgRI9i0aRMADz74IOPGjWPEiBE88MADvFDgVfbbt28n47HTqVMnjjvuONatW8cTTzzBZZddxkMPPcTDDz/M6aefXnAfu3Tpwqc+9SkAxowZ09ambD75yU/StWtX+vbtS//+/dmxYwePPPIIn/nMZzjiiCM48sgj+exnP9vWU80wduxYbrjhBhYsWMBzzz1Hz549WblyJWvXruW0005j1KhR3HTTTWzevLltnf79+7NtW/jj6faOrxix9yWll8GDnf/LLz8M5s2bx+jRo7noootylvG6Fx1xxBHtlnXt2hVwemidO3duK1tXV8eBAwfYu3cvzc3NrFq1imOOOYYFCxYU9Aft3r17uzKnn346d999N507d2bSpEnMmjWLgwcP8sMf/rDg/nnbVF9fn/MxPbMf3nJBIgdOmDCBhx56iLvuuosLLriAr33taxx11FFMnjyZW2+91XedvXv30r1794LbLhbrycaIvS8pvUQdvLp3796cd955XHfddW15p556KrfddhsAra2t/OM//mPJ28+IZd++fXn33XdzehN4OeGEE9i4cWPb7wkTJnD11Vdzyimn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\n", + "image/png": "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YN794Q9ZOWMGb8a1j9mzZ7/21ltv7epXvuaaa1bddNNNww877LDWW265ZdjVV1/9SrHbHj58+M729vZ1ra2t4ydPnvzeo446anO+95xxxhkbH3zwwX1Tz08++eRN69ev73vyySdvAmhtbd0ybty4LamWbbpp06a9MXny5LHpg7CKddJJJ3V95jOfWT9hwoQjJk6ceMR55523Lr37GeDuu+/et7W1dfwRRxzR+tvf/nbI17/+9debm5t3XHfddSumTJnynsMOO6x14sSJhz/zzDMDAF555ZU+/fv395aWloJGYUVqjleCmf0WuCpMJ7v7GjM7GHjA3ceZ2XXhv28Jy7+QKpdtm21tba65oEVqV2dncM131aqg5Tt3bnVc/zWzRe7elp731FNPrTjqqKPeSKpOtWDixInj7r777mXDhw/fmXRd4vSd73zngP3226/7kksu2evzf+qpp4YfddRRYzK9ryoGYZnZGOAY4C/AgamgGgbh1BDxkUD6L7bVYd4eAdjMphO0kBndG/qqROpYe3t1BFyJx5VXXrl6+fLl/YYPH74lf+naMXjw4J2zZs1aX+j7Eg/AZjYI+BVwsbu/bZbxWjpAphf2ar67+zxgHgQt4LjqKSIipTnllFPydlXXoi9/+csFB19IeBS0mfUlCL6d7n5HmP162PVM+JhaR3E1cEja20cBr1aqriIiInFKchS0Af8BPOfuP0h7aQEwLfz3NOC3afnnh6Ohjwc25rr+KyIiUs2S7II+ETgPeMbMngzz/gdwBXCbmX0OWAWcE752J/AxYBnQBXy2stUVERGJT2ItYHf/f+5u7v737n50mO509/XuPsndx4aPb4bl3d2/5O5/5+5HuruGN4uIpEliNaRiVxASzYQlItJrlLoaUjGKXUFIFIBFRJJx7bVDaW4+koaGiTQ3H8m115a8HGExqyGlq+QKQqIALCJSeddeO5RLLmlhzZp+BOsR9uOSS1riCMLFrIaUrlIrCIkCsIhI5c2ZM5Keixds3drAnDklL0eYvhpSev4TTzyxz/Tp09+EYDWkRYsWDcr0/tQKQgcffHDGFYT233//7tQKQunvO/744zffcsstwy+99NLmv/71rwOHDBnS/cADD+yTWkHo8MMPb7311luHrVq1quQVn3qLxCfiEBGpO6+9ljkIZcsv0GWXXfb6hAkTWqdMmVLw1Jil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\n", "text/plain": [ "
" ] @@ -189,6 +224,18 @@ "## Joint-Normal Simulation" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Joint normal $(X,Y) \\in \\mathbb{R}^{p} \\times \\mathbb{R}^{p}$: Let $\\rho=1/2p$, $I_{p}$ be the identity matrix of size $p\\times p$, $J_{p}$ be the matrix of ones of size $p\\times p$, and $\\Sigma =\\begin{bmatrix}\n", + " I_{p} & \\rho J_{p} \\\\\n", + " \\rho J_{p} & (1+0.5\\kappa)I_{p}\\\\\n", + "\\end{bmatrix}$. Then\n", + "\n", + "$$(X,Y) \\sim \\mathcal{N}(0,\\Sigma)$$" + ] + }, { "cell_type": "code", "execution_count": 9, @@ -206,7 +253,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUwAAAEWCAYAAAANe67OAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJztnXucHVWV77+rO90k3QmDOQkzCOY0Dt4RJ2QChKeQCxNEQO6A3MFraBCEIR8b5XHxdWfyuRK8xquiyOOO4wV56WlxZoKKAzg4XIgE5BXeTxmUdIggSZoxpPMgSfe+f1RVd3V1PXadU+dUnT7r+/nsT3fVqdq16/Wrtffae20xxqAoiqIk05Z3ARRFUZoFFUxFURRLVDAVRVEsUcFUFEWxRAVTURTFEhVMRVEUS1QwJwkico6IGBFZmXdZioCI9LjXo+p+c1nkYXkc46aeGvJoSFlbHRXMAiMia9yX4FSLzV8ArgZWpMh/mZv/zRbbei/1kyIi7rpT3XVrbI9ZJERktojcLCKvi8g7IvJ7EblPRA53N3kb55penWMxJ+CW2YjIMt/qQpZ1sjEl7wIo2WCMeRR4tAGHmg98FPhxFpmJSBuAMWYki/xS8j3gr4DHgJ8CfwIcBewHPGyMeQu4JIdypaaZytrUGGM0FTQBawADnAp0AH8LvARsAV4E/jvQ5m57jrvtSnf5GHd5DfB3wHo3fd79fZn7uz+tjCmLt80I8AwgbrkMsMa3XQ/wz8AbwH8A9wGH+X5f6e7zdeARYJe7j7f+KuAhYCtwK7Cvm8cW4F+BmW4+ewH3AxuBncAGoALs4SuHcR7xyHN6293mXb517cDuUXn4rsMXgFeBP7j/Hw382l2+xrf9ze72yyzy7HGXv+Xet+3udXgYOCaQnz/dHJGv7b343+613Ao8CJTzfvaLmrRK3jwsB74KzAB+BMwCrgS+mLBfGTgTeACYDXxdRN6H8xI+4m7zIvbV+X8GDgD+OviDiHQD97q/vez+fwxwr4j8aWDzz+MI+K3AO771nwZewRHBjwNPAptwBPHDwKXudjOAacC/ANfjCEIv8DWLc/B4w/37iIj8vYgsxhHLty32/SyOsP+Re8wVONd0N+BCETkuRTmC7Itzb27AFTngn0VkBvALnPuFu83V7rpxpLwXXwBew/n4HAl8pYayT27yVmxN0YkxC/OjwJD7/392fzvFXX7dXT6HcAtzF/An7roBd91fu8vL3OWbfcc8FMfK89J+7nrPmjkKR7yeA07DZ2ECH3OXfwOIu+4n7rqvussr3eXvB87VW/89d/lmd/lRd/lCd/lO3z4H4rzs3/Qd52X3tx5ItDCPwRFNv7W2CTg5Kg/fdmcG7tE33OXb3OXPB85jmUWePe7yTGAJzgfyKhzr2gBHhuUZlm/Ke/H37vIn3eXn8n72i5q0DbM56AC63f896+Il9+9eItIZs+/vjTG/d///AzAHmB6z/QeAi33LP8Wx+DyGgCtwqtQfC+zb4/79tffW+spZDmz7YMTxvfP7g5eX+3ez+7cbwLUGfxiy/+yIfCdgjFkpIu/BsaoWAufiWHdfBe5I2N1fznJUOUNoj8tURErAszhNDkGsz4109+JJ9693zeOej5ZGq+TNwU4cKwPg/e7fP3P/vmGM2RGz7y7f/8EuJ8Pu39HnwBhzszFGfGllSJ7/B6c6HRTMNe7f/+R50n3lHAhs+w7hDCcse/w39+/3cKrB3rKEbz4RETkGGDbG3G+M+Qrjq/tJ2JbTu2+7u3/nJuR7NI5YbsBxQu3GmJB55zbhvoWwxv1rcy+8Z0S7JCWgFmZzYIB/AD4H/FBE/hXHuwuOeFXLa+7fE0XkWpzq/G2JhTFmq4h8A6cq7OdOnBf1T4H7RGQjTnPCNuDGGsoZxpvu3xNxrs1JVeSxAtgsIo8Bb/ny+LfaizeKZ72dLSK7cNpZ4/DOazbwbeC9TLT4vPt2poj8EU4t4NXANo28Fy2DWpjFxqu+7QSWAv8Tx5N5Bs4L/nmcqnG1/DNwN0718TPAsSn2/Q7we/8KY8wWYBFOO977geOAXwKLjDGvTMihNi7HcYiUgINxqtFpuRpHoP6Ssfa7a3EcOlnxA5ymgw7gZBwRjMQY8xCOg+8/gA/hOMV+F9jseuBXwN7ARTjnH8ynkfeiZZCx5g2lSIjIvsC/44jmXGPM8zkXSVFaHrUwC4iIfAl4Ckcsn2DMwaAoSo6oYBaTfXGq3v8EfNTkMwpGUZQAWiVXFEWxRC1MRVEUS5qqW9GsWbNMT09P3sVQFGWS8fjjj280xiQODGgqwezp6WH16tV5F0NRlEmGiAQ784eiVXJFURRLVDAVRVEsUcFUFEWxpKnaMMPYuXMn69atY/v27XkXRSkIU6dOZZ999qGjoyPvoiiTjKYXzHXr1jFjxgx6enoYC8qitCrGGAYHB1m3bh377rtv3sVRJhlNXyXfvn07pVJJxVIBQEQolUpa41DqQtMLJqBiqYxDnwelXkwKwVQURWkEKpiKojQ3/f3Q0wNtbc7f/v66HUoFMwNEhM9+dizm7De/+U2WLVvW0DKcc845rFgRPunjJZdcwv3332+Vz5e+9CXuueceAK666iq2bt06+tv06fWZ6uXII4+sar+Pf/zj/Pu//3vGpVGaiv5+WLIEBgbAGOfvkiV1E82WE8x6fIx22203fvzjH7Nx48aq9t+1a1fyRlXy1ltv8fDDD7Nw4UKr7b/85S9z3HHODLFBwawXv/rVr6rar6+vj2984xs1HbuBxolSD5YuheAzunWrs74OtJRg1utjNGXKFJYsWcK3vz1x9oGBgQEWLVrEvHnzWLRoEWvXrgUci/DSSy/l2GOP5Ytf/CLLli3j7LPP5vjjj6enp4cf//jHfOELX+CAAw7ghBNOYOfOnYAjaIcccghz585lyZIlJIXnW7FiBSeccAIAjz76KKeddhoAt99+O9OmTWPHjh1s376d9773vaPlWrFiBddccw2vv/46xx57LMceOzZzxdKlS/mLv/gLDj/8cN58880Jx1u2bBnnnnsuxxxzDO9973u55pprRn+78sormTt3LnPnzuWqq64aXe9Zrm+88QYLFy5k/vz5zJ07l1WrVgHwi1/8giOOOIKDDjqI008/naGhIQCOPvpo7rnnnqo/OA02TpR64L5P1utrpKUEs54fo09/+tP09/ezadOmces/85nP8IlPfIJnnnmG3t5eLrrootHfXn75Ze655x6+9a1vAfCb3/yGO++8k9tvv50zzzyTY489lmeffZZp06Zx5513jub32GOP8dxzz7Ft2zbuuCN+NtgHH3yQgw92pnw56KCDePJJZ06uVatWMXfuXB577DEeeeQRDjvssHH7XXTRRbz73e/mvvvu47777gNgy5YtHH744Tz99NMsXLiQ66+/PvSYL730EnfffTePPvool19+OTt37uTxxx/npptu4pFHHuHhhx/m+uuvHy2Lxw9/+EM+/OEP89RTT/H0008zf/58Nm7cyFe+8hXuuecennjiCRYsWMCVV14JQFtbG/vttx9PP/107DWIosHGiVIP5sxJt75GWkow6/kx2n333fnEJz4xzqICeOihhzjjjDMAOOuss3jggQdGfzv99NNpbx+bpvrEE0+ko6ODAw44gOHh4VHL8IADDmDNmjUA3HfffRx22GEccMAB3HvvvTz/fPxUP2+88QazZztRq6ZMmcJ+++3Hiy++yKOPPsqll17K/fffz6pVqzj66KMTz7Gzs5OTTz4ZgIMPPni0TEE+8pGPsNtuuzFr1iz23HNP3nzzTR544AE++tGP0t3dzfTp0znttNNGLUiPQw45hJtuuolly5bx7LPPMmPGDB5++GFeeOEFPvjBDzJ//nxuueUWBgbGAsvsueeevP7664llD6PBxolSD5Yvh66u8eu6upz1daClBLPeH6NLLrmEG264gS1btkRu4+8j2N3dPe633XbbDXAsp46OjtFt29ra2LVrF9u3b+eCCy5gxYoVPPvss5x//vmJHbSnTZs2bpujjz6an//853R0dHDcccfxwAMP8MADD1i1cfrL1N7eHlkV9s7Dv51NZP+FCxdy//33s/fee3PWWWfx/e9/H2MMH/rQh3jqqad46qmneOGFF7jhhhtG99m+fTvTpk1LzDuMBhsnSj3o7YXrroNyGUScv9dd56yvAy0lmPX+GM2cOZOPfexj417oI488kh/96EcA9Pf3c9RRR1Wdvyd8s2bNYmhoKNIr7mf//ffnlVfGZlVduHAhV111FUcccQSzZ89mcHCQl156iT//8z+fsO+MGTPYvHlz1eX1s3DhQn7605+ydetWtmzZwk9+8pMJVu3AwAB77rkn559/Pueddx5PPPEEhx9+OA8++ODoOWzdupWXX355dJ+XX345tOw2NNg4UepFby+sWQMjI87fOokltJhgNuJj9NnPfnact/yaa67hpptuYt68efzgBz/g6quvrjrvPfbYg/PPP58DDjiAU089lUMOOSRxn4985COsXLlydPmwww7jzTffHLUo582bx7x580JHxyxZsoQTTzxxnNOnWg466CDOOeccDj30UA477DD+5m/+hgMPPHDcNitXrmT+/PkceOCB3HbbbVx88cXMnj2bm2++mcWLFzNv3jwOP/xwXnrpJQDefPNNpk2bxl577VVVmRpsnCiTgKaaBG3BggUmGHH9xRdfZP/998+pRM3BUUcdxR133MEee+yRd1Ey5dvf/ja7774755133oTf9LlQ0iAijxtjFiRt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\n", + "image/png": "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rt17AHw8oSxCgiAIggbS5SsIgiAIESAtVEEQBEGIgLqaNjNu3Dju6OhI2g1BEBqM1atXb2Pm8bZlh7W0tNwKY+6wND6EMoCXBgcHPzd9+vQtTivUlaB2dHRg1apVSbshCEKDQUT2ZBdoaWm59Ygjjjhu/Pjxb2UyGRkba3LK5TJt3bp12ubNm80qVVXIry5BEARn3jV+/PidIqYCAGQyGR4/fvwOeGQ7E0EVBEFwJiNiKlipfB9cdVMEVRAEQRAiQARVEAQhpRDR9Msvv3yS+f666647/JprrplQSx8++clPdtx+++2HOn122WWXHfXAAw8oVSe66qqrJvzsZz8bAwCLFi06bNeuXQf0J5fLxVIy8KSTTjrWf61qPvzhD7/zxRdfHKG7nQiqIAhCBCxZgrETJuDdmQymT5iAdy9ZgrFh99nW1sYrVqw4dNOmTYECSAcGBsK64Mqbb76ZXb16dfusWbP6VNb/wQ9+8NcLLrhgFwDccssth/f19cWuP88999wa/7Wq6erq2rJ48eIjdLcTQRUEQQjJkiUYe/XVKGzahDZmYNMmtF19NQphRTWbzfJnPvOZrd/61rcOt3+2du3attNPP33q1KlTp51++ulT//SnP7UBRovyc5/73KRTTz116hVXXDHpmmuumfCJT3yi44wzzpgyceLEdy9btuyQ+fPnT5o6deq097///VP27dtHAPDFL37xyHe9613HTZky5fjZs2cXymXvBG133nnnoTNnztwJACtXrsyde+65fwMAxWLxkJEjR568d+9e6u/vp0mTJr3b9Ov2228/9Jvf/OZhW7Zsaf3ABz4w9dRTT51q7m/BggUTjznmmGknnHDCsRs3bqz6AXHNNddMuPDCCztOOeWUYyZNmvTub37zm4eZn33ta187fMqUKcdPmTLl+EWLFh1YbrZ8e3p6WmfMmHHMscceO23KlCnHP/jgg6MB4L777jvoxBNPPHbatGnHzZo16507duzIAMB5553X9/jjjx+k+4NEBFUQBCEkixZh4t69w5+ne/cis2gRJobd95e+9KUt991339je3t5hxennz58/+eKLL+5du3btK5/+9Kd7u7q6jjI/e/3110c+8cQTa3/84x+/AQA9PT0jHn744dfuvffe1+bPn/+Os88+e+fatWtfGTlyZPmee+452DzOSy+99Oqf/vSnl/fs2ZO5++67D/by63e/+93oGTNm7AaAM888s//ll1/OAcBjjz02+uijj97z2GOP5VauXNl+0kknDWvB/uu//uuWww47bODRRx9d+/TTT68FgD179mROP/30vj/+8Y+vnH766X033XTT+OojAq+99trIRx99dO3vf//7V7/73e9O2LdvHz3++OO5u+66K7969epXV61a9ep//Md/jH/iiSdGWbe77bbbxs6cOXPHmjVrXnn11VdfPvXUU/s3bdrU8q1vfevIxx57bO0rr7zy6sknn9z/jW9843AAyGazKBQKe5966qmc2l0yqKt5qIIgCGlk82a06SzXYezYseULL7yw99vf/vZho0aNOtBsfO6559ofeOCB1wGgq6tr+9e//vUDY62f+MQn3mppGXq8n3POOTtGjBjBp5xyyp5SqUSf+tSndgLA8ccfv2fdunVtAPDAAw+M+d73vnfE3r17M2+//XbLtGnT9gDY4ebXm2++2Xr44YcPAkBraysKhcLeZ599duSzzz7bvmDBgjdXrlw5plQq0RlnnOHbJdza2soXXXTRDgCYPn367t/85jcHOa137rnnvj1q1CgeNWrU4NixYwfeeOONlkceeWT0+eef//ZBBx1UBoC///u/f2vlypVjzjjjjD3mdqeddtruz3/+8x0DAwOZT33qU2+9733v27N8+fIxr7/++shTTjnlWAAYGBig6dOnH/B13Lhxgxs3bmz1892KtFAFIQzd3UBHB5DJGK/d3Ul7JCTAEUdgv85yXb761a++edddd43bvXu30jN79OjRw/prR4wYwYDR8mppaeFMxthNJpPB4OAg9ff307XXXlu47777Xl+7du0rl1xyyba9e/d6HmvkyJHlPXv2HFjnfe97X9/9999/cGtrK3/kIx/Z+eSTT45+8sknR8+cOXOXn79Wn1paWjA4OEhO65nnYZ7L4OCgUj76WbNm9T322GN/nDhx4v5LL730HT/84Q/zzIwzzzxz55o1a15Zs2bNK6+//vrL99xzz4EEH/v27cvkcjmtwiQiqIIQlO5uYN48oKcHYDZe580TUW1CrrsOfxk5EsMeviNHonzddVXF4QNx+OGHlz7ykY+8ddddd40zl5100km7b7311kMB4JZbbhk7Y8YMpeAgJ/r7+zMAcMQRRwzu2LEj84tf/MIxqtfKMcccs3ft2rUHImHPOuusvltu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\n", "text/plain": [ "
" ] @@ -233,7 +280,20 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Step Simulation" + "## Step Function Simulation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Step Function $(X,Y) \\in \\mathbb{R}^{p} \\times \\mathbb{R}$:\n", + "\n", + "$$X \\sim \\mathcal{U}(-1,1)^{p}$$\n", + "\n", + "$$Y=\\textbf{I}(w^{T}X>0)+\\epsilon$$\n", + "\n", + "where $\\textbf{I}$ is the indicator function, that is $\\textbf{I}(z)$ is unity whenever $z$ is true, and $0$ otherwise." ] }, { @@ -253,7 +313,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAU0AAAEWCAYAAADiucXwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAH/BJREFUeJzt3XucVXW9//HXW0BAwVAZOibq6NFKAgQcBG8keQmq46XSoyWKIvy6mHk0zd+DfkYe+1Walyi7aAraDzUlU1IL43jFRBkviFxUNNH5YQhkHgURsM/5Y60ZN5u57DUza/Zc3s/HYz/2Xmt/11qftWfmPeu2v0sRgZmZlWa7chdgZtaRODTNzDJwaJqZZeDQNDPLwKFpZpaBQ9PMLAOHpnVYkiJ9VOa4jFfSZRzRwvnkXqu1DYem1ZG0j6Q7JL0haaOkGkl/kvSv6fuVtX/8bVDLDpKulvSqpPckrZH0qKR/K2j2k/Tx33nXUypJ09LPaGbRW+2uVmue7uUuwNqV3wNDgfuBF4CBwBhgN+ClNq7lB8A5wDLgbqA/MBo4APgDQESc28Y1NVtHqtWaEBF++AGwCxDAm4AKxvcEdgAq0/eLH5Uk/3wvIAm49cBSYHLBPKalbW8Hbi5oc2Qj9TybTjO8YJyAnQuG62pIh19Jh78HLAHeAa4GBgFPAm8DtwA9i+qaWcI8j0iHvwW8mK7De8Ai4ItF8yt8PNjAfCuAXwOvkmx9LgDGFdQxM23/S5J/EhvSz2RYuX9XuvrDu+dW622SkOkHPC3pSknHA90jYgPJH/aMgvaFu5v/CVxGEmq3A32AayWdXrSMLwC7AvOB/YE5kj7cQD2vp89/kPRrSWcAH46IN0tYl/OAamB74Jvp8paThNzJwIQS5tGQvYHFJKF2F/AJ4P+lxyoXAI+n7ZaRfD6zi2cgaTtgDjAJWJvO50DgHkmHFjX/X8AW4K/AEOCnLajdWkO5U9uP9vMATgL+wdZbSn8DRqbvV9aOL5hGJIEbwA0kW3Zz0uEFaZtp6fBTBdM9nY77egO1DCY5RFBYy3vAWQVtGtoq/E46/GA6fFs6fEU6fE1RXTNLmOcR6fCOwGkk/yiuIgn3AL7U0DyL5wsclL5+G9gxff+qdNzN6fDMdPiedHhsOvxOuX9PuvrDxzStTkTcJmkO8EngcGAy8GHg/wDHNjBZf5ItS4Azit7bt2h4edHrYSTHTeur5TlJHwNGkhxXnUByvPVKSddHmiQNWJY+/yN9fj59fjt93rG+iSR1a2SeSNqeZGtycD1vVzQ2bZHK9Pm1iFifvq79bPYqavt0+ly7LvXWbm3Hu+cGgKQekg6LiI0RMTcivkNyMgagb/r8fkH72t+dtSTH9wCGRoQiQiS/W1VFi/l4Pa9rGqjnMJJDA09ExI+B2l39XkCj4VZYZwPDtWrr3il9ri8MCw1K27wP7EeyjktrSy5aVmN/W6+kz3tI2iF9/bH0eWVR2y3ps7sjaye8pWm1egKPSFpGsnWzATghfe/P6fNqYBPJscKbJa2MiG9Luga4EPizpD+QbHmOBh4CJhYs4wBJc9PXw9Jl/K6Beq4Gdpf0GMkhgiPS8Q9GxJYGpsmqdivuM5KuAD7TRPu1wD9JQvtKkhNk+xW1eS19Hi/pp2m9xetYTXLscxTJZ74EOIUkGH/enBWxtuMtTau1keS42nsk4TGBZJew9iQPEbEJ+DawBvh34OvptN9Jx/8dOBX4FMku8W+LlnE7SQAeRrI7ekJE/K2Ben5NckzzUOAs4EPATSTHE1tFRMwDpgPvkvyD+FkT7WuAb5D88/gkyRn5vxQ1ux2YS7IbfTbJscji+fyT5HDHDGBAuuyngWMjYn7z18jagho/NGTWcpKmAd8FboyIieWtxqxlvKVpZpaBQ9PMLAPvnpuZZeAtTTOzDDrcJUf9+/ePysrKcpdhZp3Mk08+uTYimvySQocLzcrKSqqrq8tdhpl1MpKKv1hQL++em5ll4NA0M8vAoWlmlkGHO6ZZn82bN1NTU8PGjRvLXYq1E7169WLgwIH06NGj3KVYJ9MpQrOmpoa+fftSWVmJpKYnsE4tIli3bh01NTXsvffe5S7HOplOsXu+ceNGdt11VwemASCJXXfd1XselotOEZqAA9O24t8Hy0unCU0zs7aQ2zFNSTcAnwPeiIhtesRWsinwE5K+GzcAEyPiqbzqsa4lqqth7Vpi0KA2X3bxNm6W3h2UsX1Llq0MbZpqV4pS59XSZap3b9iwoRlTlibPLc2ZwLhG3h9P0uv1fsAU4Bc51pI7SZx//vl1wz/+8Y+ZNm1am9YwceJEZs/e5uaHAJx77rk8/PDDJc3n4osvZt68eQBcffXVbCj4BezTp09Dk7XIIYcc0qzpTj75ZF588cWtxkXBN8ZUhkexrNO21bKztGmNzzJrXc1dZrz7LuywA3nJLTQj4mGSnrwbchxwUyQWAP0k7ZZXPYVmzYLKSthuu+R51qyWz7Nnz57ccccdrF27tlnTb9nSWndw2Nbf//53FixYwJgxY0pqf8kll3DUUUcB24ZmXv7yl+IO0Evz1a9+lcsuu2yb8T6i2XUJ4N13c5t/OY9p7s4H91OB5AZbu9fXUNIUSdWSqtesWdOihc6aBVOmwMqVEJE8T5nS8uDs3r07U6ZM4aqrrtrmvZUrV3LkkUcydOhQjjzySF599VUg2TI877zzGDt2LN/+9reZNm0ap59+OscccwyVlZXccccdXHjhhQwZMoRx48axefNmIAm1kSNHMnjwYKZMmUJT3fvNnj2bceOSjf4nnniCz3/+8wDcdddd9O7dm02bNrFx40b22Wefurpmz57N9OnTWbVqFWPHjmXs2LF185s6dSoHHHAAo0ePZvXq1dssb9q0aZx55pkcccQR7LPPPkyfPr3uvSuvvJLBgwczePBgrr766rrxtVuwr7/+OmPGjGHYsGEMHjyYRx55BID77ruPgw8+mBEjRnDiiSfyzjvvAHD44Yczb968XP/pmBUqZ2jWtzFQ719/RFwbEVURUVVRkeVOqduaOnXbwx0bNiTjW+rrX/86s2bN4q233tpq/Nlnn81pp53Gs88+y5e//GXOOeecuvdeeOEF5s2bxxVXXAHASy+9xD333MNdd93FqaeeytixY1m8eDG9e/fmnnvuqZvfwoULee6553j33Xe5++67G63r0Ucf5cADDwRgxIgRPP10cj+xRx55hMGDB7Nw4UIef/xxRo0atdV055xzDh/5yEd44IEHeOCBBwBYv349o0ePZtGiRYwZM4brrruu3mUuX76cuXPn8sQTT/C9732PzZs38+STTzJjxgwef/xxFixYwHXXXVdXS62bb76ZT3/60zzzzDMsWrSIYcOGsXbtWi699FLmzZvHU089RVVVFVdeeSUA2223Hfvuuy+LFi1q9DMway3lDM0aYI+C4YHAqrwXmm7klTw+i5122onTTjttqy0rgMcee4wvfelLAEyYMIH58z+4d9aJJ55It24f3JF2/Pjx9OjRgyFDhvD+++/XbSEOGTKEV155BYAHHniAUaNGMWTIEO6//36WLFnSaF2vv/46tf9sunfvzr777suyZct44oknOO+883j44Yd55JFHOPzww5tcx+23357Pfe5zABx44IF1NRX77Gc/S8+ePenfvz8DBgxg9erVzJ8/nxNOOIEdd9yRPn368PnPf75uS7LWyJEjmTFjBtOmTWPx4sX07duXBQsWsHTpUg499FCGDRvGjTfeyMqVK+umGTBgAKtWbf2r4661u64A6N07t/mXMzTnAKcpMRp4KyJez3uhe+6ZbXxW5557Ltdffz3r169vsE3hNYQ77rjjVu/17NkTSLagevToUdd2u+22Y8uWLWzcuJGvfe1rzJ49m8WLFzN58uQmL+Lu3bv3Vm0OP/xw/vjHP9KjRw+OOuoo5s+fz/z580s65llYU7du3RrcLa5dj8J2pdwlYMyYMTz88MPsvvvuTJgwgZtuuomI4Oijj+aZZ57hmWeeYenSpVx//fV102zcuJHeBX8kqvrgdutRhkexrNO21bKztGmNzzJrXc1dZoc9ey7pFuAx4GOSaiRNkvQVSV9Jm9wLvAysAK4DvpZXLYW+//1tT6ztsEMyvjXssssunHTSSVv9UR9yyCHceuutAMyaNYvDDjus2fOvDb/+/fvzzjvvNHi2vND+++/PihUr6obHjBnD1VdfzcEHH0xFRQXr1q1j+fLlfOITn9hm2r59+/L22283u95CY8aM4c4772TDhg2sX7+e3//+99ts3a5cuZIBAwYwefJkJk2axFNPPcXo0aN59NFH69Zhw4YNvPDCC3XTvPDCC9vUrqoq2GsvFNHmD4oeWadtq2VnadPSurLMq6XLzDMwIcfrNCPilCbeDz64b3ab+fKXk+epU5Nd8j33TAKzdnxrOP/88/nZzz64hfb06dM588wzufzyy6moqGDGjBnNnne/fv2YPHkyQ4YMobKykpEjRzY5zWc/+1l+9atfcdZZZwEwatQoVq9eXbdlOXToUAYMGFDvt2imTJnC+PHj2W233eqOazbXiBEjmDhxIgcddBAAZ511FsOHD9+qzYMPPsjll19Ojx496NOnDzfddBMVFRXMnDmTU045hffeew+ASy+9lI9+9KOsXr2a3r17s9tubXLhhVnHu7FaVVVVFPfcvmzZMvbff/8yVdQxHHbYYdx9993069ev3KW0qquuuoqddtqJSZMmbfOefy8sC0lPRkRVU+38Ncou4oorrqi71Kkz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\n", + "image/png": "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fj4n5+RQlJ/PyRMn0jbbOps0aeLTp09vs3r16lrdWLp3795sQ0hr7dq1jebOnXvksGHDtmVS/te//vWq888/fyvApEmTOmzbti32HDRv3rzF1Zc60DXXXLPujjvu6FjT45RURUQiMHEibceOpdvq1TRxh9WraTJ2LN2yTayNGjXySy65pOzOO+/skLyvtLS0Sf/+/Xv06NGjsH///j0+/PDDJhCcWV555ZVdTj311B7f+973uowbNy7/G9/4RvcBAwYUdO7c+eTHHnvsqDFjxnTp0aNH4Ze//OWC3bt3G8CNN97Y6aSTTjqhoKDgxFGjRnWrqKioMrYnnniizZAhQ7YAzJw5s/nZZ5/9bwBPPvnkUc2aNeu7a9cu27Fjh3Xp0uXkyrgeeeSRNj/72c/ar1u3rvEZZ5zR49RTT+1RWd91113XuWfPnoW9e/futWLFigP+iBg3blz+BRdc0L1fv349u3TpcvLPfvaz9pX7fvKTn3QoKCg4saCg4MQJEybs3155Brx8+fLGxcXFPXv16lVYUFBw4ksvvdQC4Nlnn211yimn9CosLDxh2LBhx23evDkHYOjQodtee+21VjX9o0RJVUQkAhMm0HnXri/+Tt21i5wJE+icbd033XTTumeffbbthg0bvjCX8JgxY4658MILN5SWli789re/veGaa67pWrlv2bJlzV5//fXS3//+9ysBli9f3vTVV19d+swzzywdM2bMsYMHD95SWlq6sFmzZhVPPfVU68p25s+fv+jDDz9csHPnzpypU6e2riquf/zjHy2Ki4u3AwwcOHDHggULmgPMmTOnxfHHH79zzpw5zWfOnHlknz59vnAme9ttt61r37793tmzZ5e+9dZbpQA7d+7M6d+//7YlS5Ys7N+//7b77rsv78AWYenSpc1mz55d+s477yz61a9+lb9792577bXXmk+ePPnouXPnLiopKVn0+OOP573++utHJB738MMPtx0yZMjmxYsXL1y0aNGCU089dcfq1atz77zzzk5z5swpXbhw4aK+ffvu+OlPf9oBoFGjRnTr1m3Xm2++2TxVHOk0uO+piogcjNasoUlNttdE27ZtKy644IINd911V/sjjjhi/+njvHnzjnzxxReXAVxzzTWf3X777fuvvX7jG9/YmJv7+a/4s846a3PTpk29X79+O/ft22cjRozYAnDiiSfu/Pjjj5sAvPjiiy3vueeejrt27crZtGlTbmFh4U5gc7q41q5d27hDhw7lAI0bN6Zbt2673n333Wbvvvvukdddd93amTNntty3b58NGDCg2uHhxo0b+8iRIzcDFBUVbX/llVdapSp39tlnbzriiCP8iCOOKG/btu3elStX5s6aNavFOeecs6lVq1YVAP/5n/+5cebMmS0HDBiws/K40047bft3v/vd7nv37s0ZMWLExtNPP33nlClTWi5btqxZv379egHs3bvXioqK9sfarl278hUrVjSuLvZEsZ2pmtnDZrbOzOan2W9m9hszW2pm75tZ37hikcPQH/4Aublgtn/xmJd0bZBiibL+ulyijCGunwudsz4xrJWOHdlTk+01dcstt6ydPHlyu+3bt2f0e7tFixZfGLtt2rSpQ3AGlpub6zk5QTU5OTmUl5fbjh077IYbbuj27LPPListLV04evTo9bt27aqyrWbNmlXs3Llzf5nTTz9927Rp01o3btzYzz333C1vvPFGizfeeKPFkCFDtlYXb2JMubm5lJeXW6pylf2o7Et5eXlGz7AfNmzYtjlz5izp3Lnznssuu+zY3/72t0e7OwMHDtyyePHihYsXL164bNmyBU899dT+h4Ds3r07p3nz5lWPgSeJc/j3UWBoFfuHAQXhcjXwuxhjkcPJH/4Ao0fDvn1f2GwxL+naSCXK+utyiTKGbD6LqhZftapeEuv48XzarBlf+AXcrBkV48fzaRT1d+jQYd+55567cfLkye0qt/Xp02f7Qw891AZg0qRJbYuLizO6YSiVHTt25AB07NixfPPmzTkvvPBCyrt9E/Xs2XNXaWnp/jtkBw0atG3SpEntv/SlL23Lz88v37hxY+5HH33UrKioaFfysUceeeS+yuuX2Ro8ePC26dOnH7V169acLVu25EyfPr3NmWee+YVEXlpa2qRz5857b7jhhvWjR49e/+677zYfNGjQ9pKSkhbz589vCrB169ac999/f39/Pv7446Z9+vQ5IPaqxJZU3X0O8FkVRc4DHvfAm8BRZtYprnjkMHLrrfUdgdQjA1i1qs7bHTOGz+69l+WdOrHHDDp1Ys+997J8zJgqfw/WyK233rpm06ZN+8d0f/e7333yxBNPtOvRo0fhlClTjn7ggQdW1Lbudu3a7bvooovKCgsLTxw2bNjxvXv33l7dMcOH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oMTMbjSzcZVLBnX3A5a6+0fuvgeYCpyXotxPgV8Cu2oevoiIyMGjumuqe4HtQFOgZdJSnc7AioT1leG2/cysD9DV3f9SVUVmdrWZlZhZSVlZWQZNi4iI1L2qvqc6FLgHmAb0dfcdNazbUmzzhPpzgHuBy6qryN0fJHgWMcXFxV5NcRERkXpR1fdUbwUucPcFtax7JdA1Yb0LsCphvSVwEjDLzAA6AtPMbLi7l9SyTRERkXpT1fdUv5xl3e8ABWZ2LPApMBK4MKH+zUC7ynUzmwXcqIQqIiINVWzfU3X3cuBaYAawCHjK3ReY2QQzGx5XuyIiIvWlquHfrLn7dGB60rbxacoOijMWERGRuOmJSiIiIhFRUhUREYmIkqqIiEhElFRFREQioqQqIiISESVVERGRiCipioiIRERJVUREJCJKqiIiIhFRUhUREYmIkqqIiEhElFRFREQioqQqIiISESVVERGRiCipioiIRERJVUREJCJKqiIiIhFRUhUREYmIkqqIiEhElFRFREQioqQqIiISESVVERGRiCipioiIRERJVUREJCJKqiIiIhFRUhUREYmIkqqIiEhElFRFREQioqQqIiISkViTqpkNNbMlZrbUzG5OsX+cmS00s/fN7G9m1i3OeEREROIUW1I1s0bA/cAwoBAYZWaFScXmAcXu/u/AM8Av44pHREQkbnGeqfYDlrr7R+6+B5gKnJdYwN1nuvuOcPVNoEuM8YiIiMQqzqTaGViRsL4y3JbOFcCLMcYjIiISq9wY67YU2zxlQbPRQDFwRpr9VwNXAxxzzDFRxSciIhKpOM9UVwJdE9a7AKuSC5nZWcCtwHB3352qInd/0N2L3b04Ly8vlmBFRESyFWdSfQcoMLNjzawJMBKYlljAzPoAkwgS6roYYxEREYldbEnV3cuBa4EZwCLgKXdfYGYTzGx4WOxuoAXwtJn908ympalORETkoBfnNVXcfTowPWnb+IT3Z8XZvoiISF3SE5VEREQioqQqIiISESVVERGRiCipioiIRERJVUREJCJKqiIiIhFRUhUREYmIkqqIiEhElFRFREQioqQqIiISESVVERGRiCipioiIRERJVUREJCJKqiIiIhFRUhUREYmIkqqIiEhElFRFREQioqQqIiISESVVERGRiCipioiIRERJVUREJCJKqiIiIhFRUhUREYmIkqqI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\n", "text/plain": [ "
" ] @@ -283,6 +343,17 @@ "## Quadratic Simulation" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Quadratic $(X,Y) \\in \\mathbb{R}^{p} \\times \\mathbb{R}$:\n", + "\n", + "$$X \\sim \\mathcal{U}(-1,1)^{p}$$\n", + "\n", + "$$Y=(w^{T}X)^{2}+0.5\\kappa \\epsilon$$" + ] + }, { "cell_type": "code", "execution_count": 13, @@ -300,7 +371,7 @@ "outputs": [ { "data": { - "image/png": "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mzePefPmAbBt2zaGDx/OsmXLGDVqFPfffz/ZWLlyJc899xyLFy/mhhtuYNeuXbzyyivMmjWLl19+mUWLFnH//fc31yXFI488wimnnMLSpUtZtmwZAwcOZNOmTdx0003MnTuXJUuWMGTIEO66y3nDRU1NDYcffjjLli3LVg3DJ8xLXib19fEQyEyCtL/uv//+XHTRRcyYMYNOnTo1L3/ppZd44gnn7bYTJkzgBz/4QfO68847jzZt9r2h9rTTTqNdu3b079+fPXv2NLcM+/fvz5o1awCYN28et912G9u3b+ejjz7iqKOO4qyzzspZr/Xr19OzpxPBq23bthx++OGsWLGCxYsXc/XVV7NgwQL27NnDyJEjCx5j+/btOfPMMwEYPHgwc+bMybrdGWecQYcOHejQoQMHHXQQGzZsYOHChZxzzjnst5/ztt5zzz2XF154gWOOOaZ5v6FDh3LJJZewa9cuxo0bx8CBA3n++edZvnw5xx9/PAA7d+5kxIgRzfscdNBBfPDBB80PBcN/rIWZUIK2v06dOpUHHniAbdu25dwmfXxgSjxSdOjQAXBaTu3atWvetqamht27d7Njxw4uv/xyZs+ezeuvv85ll11WcHB2p06dWmwzcuRInn32Wdq1a8fYsWNZuHAhCxcu9GTjTK9TmzZtcnaFU8eRvp2XtxyMGjWKBQsWcOihhzJhwgR+/vOfo6qcdNJJLF26lKVLl7J8+XIeeOCB5n127NjR4gFl+I8JZkIJ2v564IEHcv7557f4Qx933HE89thjADQ2NvL1r3+95PxTwtejRw+2bt2a0yuezpFHHsnq1aubf48aNYp77rmHESNG0LNnTzZv3szKlSs56qijWu3btWtXtmzZ0mp5KYwaNYpf/epXbN++nW3btvHkk0+2atWuXbuWgw46iMsuu4xLL72UJUuWMHz4cF588cXmY9i+fTurVu17aeaqVauy1t3wDxPMhFIJ++s111zTwls+Y8YMZs2axYABA3j44Ye59957S867W7duXHbZZfTv359x48YxdOjQgvucccYZzJ8/v/n3sGHD2LBhQ3OLcsCAAQwYMCDrzJjJkydz2mmntXD6lMqgQYOYNGkSxx57LMOGDePb3/52i+44wPz58xk4cCDHHHMMjz/+OFdddRU9e/bkoYce4sILL2TAgAEMHz6clStXArBhwwY6derE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\n", + "image/png": "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euut2t///vdbAWDTpk1t33jjjfXPPffc+smTJ58xZsyYg7W1tWvatWvX9Oyzz55mHWfVqlVrP/7449VHjx7NeeaZZ06Llq9//vOfHYcPH34EAC666KL61atXFwDA0qVLO5511llHly5dWrBo0aIOQ4cObVGCveuuu3adfvrpDUuWLKn917/+VQsAR48ezRk5cuThjz76aM3IkSMP//a3vw07P/D69evbLVmypPbf//732l/96ldFx48flzfffLPg6aef7rZ8+fK1y5YtW/vUU0/1eOutt9rbt3v88ccLy8vLD6xbt27N2rVrV59//vn127dvz73vvvt6L126tHbNmjVrhw0bVv/f//3fPQGgTZs2KC4uPvbOO+8UOHuXDIG6D5WIvFVTA0yaBNTXG883bTKeA0BFhXf58tqOHciPZ3k8CgsLm6655po9999//+nt27dvLjauXLmyw8KFCzcAQGVl5d577rmnua31qquu2pebe+rrfezYsQfatm2rI0aMOHry5Em5+uqrDwLA4MGDj3766af5ALBw4cJODz74YK9jx47l7N+/P7e0tPQojBmgwtq5c2dez549GwEgLy8PxcXFx1asWNFuxYoVHW699dadixYt6nTy5EkZNWpUzCrhvLw8nTBhwgEAKCsrO/L66693DrfeuHHj9rdv317bt2/fWFhY2LB169bcxYsXd7z00kv3d+7cuQkA/uM//mPfokWLOo0aNeqotd0FF1xw5Pvf/35JQ0NDztVXX73vwgsvPDp//vxOGzZsaDdixIhBANDQ0CBlZWXNee3evXvjli1b8mLl3Y4lVCJyrKrqVDC11Ncby7NZr144Ec/yeN155507n3766e5Hjhxx9J3dsWPHFvW1bdu2VcAoeeXm5mpOjrGbnJwcNDY2Sn19vfz4xz8ufuGFFzbU1taumThx4u5jx45FPVa7du2ajh492rzOhRdeeHjBggWn5eXl6WWXXXbw7bff7vj22293LC8vPxQrv/Y85ebmorGxMeyEvtZ5WOfS2NjoaDz68ePHH166dOlHffr0OXHjjTee8cgjj3RTVVx00UUH161bt2bdunVrNmzYsPrZZ59tHuDj+PHjOQUFBdHrvUMwoBKRY5s3x7c8W0yfjm3t2qHFl2+7dmiaPh2uTJ/Ys2fPk5dddtm+p59+uru1bOjQoUcee+yxrgAwZ86c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\n", "text/plain": [ "
" ] @@ -330,6 +401,17 @@ "## W-Shaped Simulation" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "W-Shape $(X,Y) \\in \\mathbb{R}^{p} \\times \\mathbb{R}$: $U \\sim \\mathcal{U}(-1,1)^{p}$,\n", + "\n", + "$$X \\sim \\mathcal{U}(-1,1)^{p}$$\n", + "\n", + "$$Y=4\\left[\\left((w^{T}X)^{2}-\\frac{1}{2}\\right)^{2}+w^{T}U/500\\right]+0.5\\kappa\\epsilon$$" + ] + }, { "cell_type": "code", "execution_count": 15, @@ -347,7 +429,7 @@ "outputs": [ { "data": { - "image/png": "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fepTjBs3js2bN3dJb/bs2Vx00UWceOKJHHzwwVx33XUd26666ipGjBjBiBEjuOaaazrWFyzXTZs2MX78eEaPHs2IESN49NFHAXjwwQc55phjGDNmDOeccw7vvfceACeccAILFy6M/IVjghkzNoomH8R5nb7yla8wd+5c3n777U7rv/rVr3LhhRfy3HPP0dbWxmWXXdaxbe3atSxcuJArr7wSgFdffZX58+dz3333ccEFFzBhwgSef/55+vTpw/z58zvie+qpp3jhhRd4//33uf/++yvm67HHHuOII44AYMyYMTz77LMAPProo4wYMYI8my1jAAAOIklEQVSnnnqKJ598kqOPPrrTcZdddhlDhw5l0aJFLFq0CIDt27czbtw4Vq1axfjx47nppptKpvnSSy/xwAMPsHz5cr7//e+za9cunn76aW699VaefPJJli1bxk033dSRlwJ33nknn/nMZ1i5ciWrVq1i9OjRbN26lR/+8IcsXLiQZ555hrFjx3LVVVcB0NTUxCGHHMKqVasqnoNaMcGMGRtFkw/ivE777LMPF154YSeLCuCJJ57g/PPPB2DKlCksXbq0Y9s555xDt27dOpZPPfVUevTowciRI9m9e3eHZThy5Ehec2ehXrRoEUcffTQjR47k4YcfZvXq1RXztWnTJoYMGQI4lvAhhxzCiy++yPLly7n88stZsmQJjz76KCeccELVMvbs2ZMzzjgDgCOOOKIjT8Wcfvrp9OrVi8GDB7P//vuzefNmli5dymc/+1n69etH//79OfvsszssyAJHHnkkt956K7Nnz+b5559nwIABLFu2jDVr1nDccccxevRobr/9dtZ7RmDsv//+vP7661XzXgupCKaI/FREXhKR50TkNyIyMI18JIHNhZkP4r5OM2fO5Oabb2b79u1l9/F2eenXr1+nbb169QIcy6lHjx4d+zY1NfHhhx+yc+dOLr30UubNm8fzzz/PJZdcUrW/YZ8+fTrtc8IJJ/D73/+eHj16MGnSJJYuXcrSpUt9+Ti9eerWrVvZqnChHN79/ExiPn78eJYsWcKBBx7IlClT+NWvfoWqcvLJJ7Ny5UpWrlzJmjVruPnmmzuO2blzJ3369Kkady2kZWEuAEao6ihgLfCdlPIROzYXZj6I+zrtt99+fOELX+j0QB977LH8+te/BmDu3Lkcf/zxgeMvCN/g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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -377,6 +459,20 @@ "## Spiral Simulation" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Spiral $(X,Y) \\in \\mathbb{R}^{p} \\times \\mathbb{R}$: $U \\sim \\mathcal{U}(0,5)$, $\\epsilon\\sim\\mathcal{N}(0,1)$,\n", + "

\n", + "

\n", + "
$X_{|d|}=U\\sin(\\pi U)\\cos^{d}(\\pi U)$ for $d=1,...,p-1$
\n", + "\n", + "$$X_{|p|}=U\\cos^{p}(\\pi U)$$\n", + "\n", + "$$Y=U\\sin(\\pi U)+0.4p\\epsilon$$" + ] + }, { "cell_type": "code", "execution_count": 17, @@ -394,7 +490,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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j31s/nXXXXdQrvcuuuiit91xxx1FdT36whe+MPtnP/vZDIArrrji4O3bt4/qT3Nzc1laER533HFHFd5rX84555y3P/7449NK/ZwJqmEYhg+sXs3M2bN5VyhE5+zZvGv1amZO9phTp07V22+//aCXXnppQgmke/funawJeXnllVfCGzZsaDnrrLMGi9n/X//1X1/8yEc+sh1gzZo1hwwODpZdfx5++OGnCu+1L7FY7NUrr7zy0FI/Z4JqGIYxSVavZuallxJ56SWmqsJLLzH10kuJTFZUw+GwXnDBBdu+8Y1v7NNYYfPmzVNPOumkBQsWLOg46aSTFvzhD3+YCs6j/MxnPjP3xBNPXNDT0zP3sssum/3Rj350/imnnHLEnDlz3nX99dcfuHz58rkLFizoeN/73nfE7t27BeBLX/rSYcccc8zRRxxxxMLFixdHksmkp21r1649qKur6y2Ae++9t/mMM854B0A8Hj9w+vTpxw8NDcnOnTtl7ty570rbdd111x309a9//eBXX311ygc+8IEFJ5544oL08S655JI5Rx55ZMexxx571HPPPbfPA8Rll102+xOf+MT8E0444ci5c+e+6+tf//rB6fe++tWvHnLEEUcsPOKIIxZeccUVo9vTnm9fX9+URYsWHXnUUUd1HHHEEQvvvPPOVoBbb711//e85z1HdXR0HH3WWWe9/c033wwBnHnmmYO//OUv9y/1gcQE1ah7EgmYPx9CIfczkai2RUa9ccUVzBkaGn8/HRoidMUVzJnssf/mb/7m1VtvvXXmwMDAuGb2y5cvn3feeecNbN68edNf/dVfDcRisbel33vmmWem/+pXv9r8gx/84HmAvr6+af/93//99I9//OOnly9ffvjpp5/+1ubNmzdNnz49ecsttxyQ/p4nnnjiyT/84Q8bd+3aFbr55psP8LLr17/+deuiRYt2AJx66qk7N27c2AzwwAMPtL7zne/c9cADDzTfe++9Lccdd9w4D/YrX/nKqwcffPDe+++/f/P//u//bgbYtWtX6KSTThr8/e9/v+mkk04avPrqq2ft+43w9NNPT7///vs3/+53v3vyn//5n2fv3r1bfvnLXzbfeOONbRs2bHhy/fr1T95www2zfvWrX+2X+blrr712ZldX15tPPfXUpieffHLjiSeeuPOll15q+sY3vnHYAw88sHnTpk1PHn/88Tv/8R//8RCAcDhMJBIZ+s1vftNc3G/JEah1qIZRKokELFsGO3e613197jVANFo9u4z64uWXmVrK9lKYOXNm8hOf+MTAN7/5zYP322+/Ubfx4YcfbrnjjjueAYjFYq997WtfG51r/ehHP/p6U9PY7b27u/vNadOm6QknnLBrZGREPv7xj78FsHDhwl3PPvvsVIA77rhjxre//e1Dh4aGQm+88UZTR0fHLuDNfHa98sorUw455JBhgClTphCJRIYeeuih6Q899FDLJZdc8sq99947Y2RkRE455ZSCIeEpU6boueee+yZAZ2fnjnXr1u2fa78zzjjjjf3220/322+/4ZkzZ+59/vnnm+67777Ws88++439998/CfDnf/7nr997770zTjnllF3pz733ve/dcfHFF8/fu3dv6OMf//jrJ5988q6bbrppxjPPPDP9hBNOOApg79690tnZOWpre3v78HPPPTelkO2ZmIdq1CR+eZUrV46JaZqdO912w/CLQw8lZ+/afNtL5e///u9fufHGG9t37NhR1D27tbV1XLx22rRpCs7zampq0lDIHSYUCjE8PCw7d+6UL37xi5Fbb731mc2bN29asmRJ/9DQkOd3TZ8+Pblr167RfU4++eTB22677YApU6bohz70obcefPDB1gcffLC1q6treyF7M21qampieHhYcu2XPo/0uQwPDxdVj/6ss84afOCBB34/Z86cPRdeeOHh3/ve99pUlVNPPfWtp556atNTTz216Zlnntl4yy23jBb42L17d6i5udk77p2FCapRc6S9yr4+UB3zKksV1UTCfTYXW7dO3k7DSHP55bwwfTrjbr7Tp5O8/HJe8OP4hxxyyMiHPvSh12+88cb29Lbjjjtuxw9/+MODANasWTNz0aJFRSUH5WLnzp0hgEMPPXT4zTffDP3nf/5nzqzeTI488sihzZs3j2bCnnbaaYNr1qw5+E/+5E8GZ8+ePfz66683/fGPf5ze2dk5lP3ZlpaWkfR85WQ5/fTTB2+//fYDt2/fHnrrrbdCt99++0F/+qd/Ok7EN2/ePHXOnDl7v/jFL/YvWbKk/6GHHmo+7bTTdqxfv771iSeemAawffv20GOPPTZ6Ps8+++y04447bh/bvTBBNWoOP7zKtCjnY968idlmGLlYvpzXvvMd+g47jD0icNhh7PnOd+hbvpzX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\n", "text/plain": [ "
" ] @@ -424,6 +520,17 @@ "## Uncorrelated Bernoulli Simulation" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Uncorrelated Bernoulli $(X,Y) \\in \\mathbb{R}^{p} \\times \\mathbb{R}$: $U \\sim \\mathcal{B}(0.5)$, $\\epsilon_{1}\\sim \\mathcal{N}(0,I_{p})$, $\\epsilon_{2}\\sim \\mathcal{N}(0,1)$,\n", + "\n", + "$$X \\sim \\mathcal{B}(0.5)^{p}+0.5\\epsilon_{1}$$\n", + "\n", + "$$Y=(2U-1)w^{T}X+0.5\\epsilon_{2}$$" + ] + }, { "cell_type": "code", "execution_count": 19, @@ -441,7 +548,7 @@ "outputs": [ { "data": { - "image/png": "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SlEX06tXL+677z42b97coefv2rWrcKIOeuutt1i8eDETJkyIlf7qq6/mlFNOAdoG1lL57W8zV6qO5/LLL+c73/lOkXPjKlWun/z77589/SGHFD8PSfYKWBQt9jbSzEZFt0fM7BYzuyVKY2b2eTP7kJkdZWZlmQCgVHUx3bt3p7Gxke9///ttjq1du5aJEycycuRIJk6cyJvRv9GpU6fy5S9/mZNPPpmvf/3rzJw5kylTpvDxj3+cYcOGcd999/G1r32No446ikmTJrFzZ1jg9eqrr+aYY45hxIgRNDY2ppYbzmn+/PlMmjQJgOeee45zzjkHgAceeIA+ffqwY8cOtm/fzqGHHtqar/nz53PjjTeyfv16Tj75ZE4++eTW882YMYOPfOQjjBs3jo0bN7a53syZM7n44os56aSTOPTQQ7nxxhtbj1133XWMGDGCESNGcP3117fuT5WEN2zYwIQJExg1ahQjRozg6aefBuCxxx5j/PjxjB49mnPPPZctW8I6jSeeeCILFiwo6T8mVzly/eQH6Nt37/19+8KsWcXPQ+KNV5WolHUxn//852lqauLtt9/ea/8XvvAFLrzwQl588UUaGhr40pe+1HrstddeY8GCBVx77bUA/OEPf+Dhhx/mgQceYPLkyZx88smsWLGCPn368PDDD7ee7/nnn+ell17ivffe46GHsi3CusczzzzDmDFjABg9ejS//31YXfjpp59mxIgRPP/88zz77LMcd9ze3Yi/9KUvceCBB/LEE0/wxBNPALB161bGjRvH8uXLmTBhArfeemvWa77yyis8+uijPPfcc1x11VXs3LmTF154gblz5/Lss8+yePFibr311ta8pPzkJz/hE5/4BMuWLWP58uWMGjWKzZs3861vfYsFCxawdOlSxo4dy3XXhRqmbt26cdhhh7F8+fK874GrDbl+2r/1FsyZA/X1IIX7OXOgoaH4eajJ2a06q5R1Mfvuuy8XXnghN954I3367FlP7Xe/+x333Rfa7y644AK+9rWvtR4799xzqavbs7T7aaedRo8ePTjqqKNoaWlpLWkeddRRrFmzBoAnnniC73znO2zbto233nqLI488kn/8x3/Mma8NGzaQ6k3RvXt3DjvsMFatWsVzzz3Hl7/8ZRYuXEhLSwsnnnhiwdfYs2dPzjjjDADGjBnD448/njXdJz/5SXr16kWv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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAd0AAAEWCAYAAAAjEk0ZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzt3Xt4VOW5Pv77TghgAJVAkJMkWkGMWgSyUcS2FK1bbKvWaosGq1JLgWpVeth2Z/+o0sbaX7ttbRWQWq2FiFprK+7isSK0tloDioAo4iFCBQxRkTMkeb5/vGvBymROSWbWTDL357rmmpk176z1zkwyz7yH9T40M4iIiEj65WW6AiIiIrlCQVdERCQkCroiIiIhUdAVEREJiYKuiIhISBR0RUREQqKgKweRLCVpJEM/j4zks96xrwv72GEJvMYrvPu/8+7f6N2/0bv/u3Yco937SOIYV3jHeLad+0l7XUWyjYJuG5F8x/vCuCCw7Ze59iUSGUjSeJzx/g8C77Kb5AaSs0kynccO0fMAbgPwZKwCJM8k+RzJj0nu9N6DB1qzj0wIfG6lgc1ZWVeRdOqS6QpIapEsMLMDyW7vgPYDmAugF4AKAP8fgA0Aft+WnWXT+2JmjwN4PNbjJAcBWAygK4A/AvgYwDAA5yW7j2zSkeoqkipq6aZRoHX2Dsn/Jvm+d/leoEwXkteSXOO13raSnOU9RpJTSa4muctr1fyYZPco+7+RZD2A+bG2e885w2udfkjyPZJ3k+wT5zXcR3ITyX0kd5B8huTJ3mPPAviMV/SeiK7SuMcheaH3eraT/F8k/7e4x8yuM7OvA/iLt214YL8xjxvsPic5jeR7AJ6M2D6F5Lve838R2G+iz6JFl2ugN2R8Mi8sie7WUwEUAlhiZpPMbKqZjQcwKNY+AvVaRfJWr3X8KsmRJH/kvf9vkTw7sI9mrdJE9SI5gORykttIHiBZR3IhySP9/QWKv+2/J9H2S/JLJF/0/tZqSd4R2E/Cz0kk2ynohqMEwGQAfwdQDOCnJId6j90E4JcAjoVrvSzDoSAyHcCdAI4G8ABcz0QlXJdc5P6v8p6/OtZ2kicB+CuA0XAtjPUArgTwBzJmF22JV6e7AKwE8FkAD3qPPQTg397tp7x6PZ/oOCSP817PJwAsBXAagHExjh/pMLpu/LsAnAvX8n0UAFr5+qoAPAbgHxHbbwTwNwCHA7iO5Jne9mQ/i3Ta7F1/geRTJG8i+SkAHyXx3JPhgvY6ACfAve8XwXXxHgPg7nbUqxeAw+A+h98A+BCuF+IW7/Hge3SPd39T5E5ITgTwMIBPetc7AMwAcH+UY96I6J+TSFZT0A1HI4AJZnYhgHcBEMAILxB82ytTYWaXmdlXAFzubbvau77WzKYAON+7f5XfwvIYgPFey+fWONunw3VNrgWwFcDLAPbBBdLjY9T9K3BfzDsAvOJtG05yoJndDte1CwD3eS3Qx5M4ziS4oPWMmV0A11qui/P+BXUFcC2ArwPoDhdY/ee25vVdbGZfN7PKiO1fNrMKuB9IADDSu072s0gbM/sngJ/Dfa5nAZgFYDmAF/3WYBy7vOf4vSxHAPgyXOAFgEEki9tYr/UApsIF9N1w7z8ATPAeD06Om+39nWxAS9d41zeb2eUAxgNoAPCfJIdFlI31OYlkNY3ptt0e77prYFs373p3RNktZrbFu/0RgCEAegLo610DLrABAAJjjKXe9Trv+jXvOg+uxeXbGuNLLHK7v79TvUvQcQDWBDd4rfGVgToGFQN4L8r2ZI7jd4e+DgBm1kDybQBHxdhf0HYzO5JkN7jW6nfgus4nJHHc4Ot7Lsb+X/Ku/daj/9r9fSf6LILyY2xvMzP7HslbAJzpXa4EMArAFAC3xnnqO2a2h2SwVfy6mTUGOgF6IPqPn7ivg+QlAO6L8lBrg3ipd70OAMxsG8ltAPrD9bi8ESgb63MSyWpq6bbdm971WAAgmY9DX/SRAbAhcDs4vrUNwE7v9sEgQdL/MfSOd+13N/uttSYAGwP72RejjpHb/f3damb0LwCONbP/i/L8z8N9ma0GcCSaB0X/m7rRuw7+LSU6jt8lfTxw8PUeE+M1RGVm+wD807vrt4KSfn3e86Pt1/+sIk+b8vcd67PY5d0/HAC8ceT+yb6eZJAcQvITZlZvZg+a2TcBLPEe7pXg6Y2RG8ysxTaP/6PxcO/6pAT7/qp3fRfcD0//frBLv8m7jved8453PRw4+B729bbVBgvG+ZxEsppaum33G7igdB3JcQB6w7WmdgBYlMwOzMxI/grAfwOoJvlHuM+kCW4M+A4AtwO4jeRn4HXXAfitme2NPQwb03wA3wBwLclj4YL+CQBOR/Qvw63e9VC4cbhTopTxg/+1JD8JN2aX6DgPwI3JTSD5Z7gv1n5JvobDSP4S7svdP13LD76tfX2tkeizWAUXAE4heQeAcqT+/+uTAB4h+TxcS7sQ7m/Q4MayU+UluDH220m+jkNd6bH4fycT4WaWnxulzEa41urtJNfDjYdHusPbx397n99ouPfwKTNb70/sEunI1NJtIzN7BC4wroT7ZX4E3GSiCWa2Od5zI/wQwPUA3oYbXzsTbpwSAObATST5N4BL4ILxT+DGNNtS51Vw43rLAXwabmy1Fw5NeIn0IIDfAjjgPe8nUcr8L9xYb5lXr6GJjmNmb3iv5y3v9b6M2N29kfwx3W/AvR/3wI3ltuX1tUbcz8Ib17wBQD1ckHoSbvw+ldbCnRrVD641+QW4XojJZvb3eE9spWu8/Z4CYDDcexzPTXATs/rABcqbo5T5L7jJU+fAvWeHRRYws7/AzSFYC/e/cATc5LWvRpYV6aioJPYiIiLhUEtXREQkJAq6IiIiIVHQFRERCYmCroiISEg65SlDffv2tdLS0kxXQ0Q6mRUrVmwzs+LA/X5dunS5C+5cZjViBHBnNqxpaGi4avTo0e9HPtgpg25paSlqamoyXQ0R6WRINluko0uXLnf179//hOLi4g/z8vJ0KoigqamJdXV1ZVu2bLkLgQxgvoz9MiN5NMmlJNeRXEuyxbmn3uL4v6LL6PIKyVGZqKuISAwnFRcXf6yAK768vDwrLi7ejhgruWWypdsA4DtmtpJkLwArSD5lZq8GykyEWw1pKNwyiXPRck1dEZFMyVPAlUje30TURm3GWrpmttnMVnq3d8Atcj4ootj5AH5vzvMAjiQ5IOSqioiIpERWDPx7a6qOBPBCxEOD0Hxh/01oGZj9fUwlWUOypq4u2SxxIiIdG8nR3/jGNwb792fNmnXUzJkzB4ZZhy9/+cul99xzT+9oj02ZMuXoxx57LKksUNddd93AP//5z70AYPbs2f127NhxMEYVFhamJX3jyJEjhycu1dIXvvCFY1evXt0tccnmMh50SfaES7J+nZl9HPlwlKdE7coxs/lmVm5m5cXFbUoLKiKSVvPmoWjgQJycl4fRAwfi5HnzUNTefXbt2tWWLFnSe/PmzW0aLjxw4EDiQm20devW/BUrVvSYOHHizsSlgV/+8pfvXXDBBTsA4M477zxq586daY9RL7300muJS7U0ffr096uqqlqdSSyjQZdkAVzArTazh6MU2YTmuUoHI3YOVxGRrDVvHoquvx4lmzejqxmweTO6Xn89StobePPz8+1rX/ta3c0339wiH/X69eu7jh07dtiwYcPKxo4dO+yNN97oCriW6VVXXTX41FNPHTZjxozBM2fOHHjhhReWjhs3buigQYNOvvfee4+cNm3a4GHDhpV96lOfGrpv3z4CwHe/+90BJ5100glDhw498ZJLLilpamqKPGQzCxYs6H3mmWd+DABLly4tPPvssz8BAAsXLjyye/fuo/bu3cvdu3dz8ODBJ/v1uueee3r/+Mc/7vf+++8XfOYznxl26qmn+qk7cc011ww6/vjjy0aMGDF848aNLX5kzJw5c+DFF19cOmbMmOMHDx588o9//OOD2ctuvPHGo4YOHXri0KFDT5w9e/bB7X4Lura2tqC8vPz44cOHlw0dOvTExx9/vCcAPPzww4efcsopw8vKyk6YOHHisdu3b88DgHPOOWfn3/72t8Nb+6Mlk7OXCZfBZp2ZxUq+vRjA17xZzKfBJTBvTQYfEelEqquB0lIgL89dV1dnukbJmz0bg/bubf6du3cv8mbPjj5k1hrf+9733n/44YeL6uvr84Pbp02bNuTSSy+tX79+/atf/epX66dPn36wEfPmm292f+6559b/5je/2QQAtbW13Z555pkNDz300IZp06YdM2HChI/Xr1//avfu3ZsefPDBI/zjrFmzZt0bb7yxds+ePXn333//EfHq9Y9//KNneXn5LgA444wzdq9du7YQAJYvX97zuOOO27N8+fLCpUuX9hg5cmSzlvD//M//vN+vX78Dy5YtW//CCy+sB4A9e/bkjR07dufrr7/+6tixY3f++te/jtqluWHDhu7Lli1b/+KLL677+c9/PnDfvn3829/+Vnjffff1WbFixbqampp1v//974ufe+65Zpmu7r777qIzzzxz+2uvvfbqunXr1p566qm7N2/e3OXmm28esHz58vWvvvrqulGjRu3+0Y9+dBQA5Ofno6SkZO/zzz9fmNyn5GRy9vI4AJcBWE3yZW/bfwMYAgBmNg8uQfe5cEnhdwO4MgP1FJEsUF0NTJ0K7N7t7tfWuvsAUFGRuXola8sWdG3N9tYoKipquvjii+tvueWWfocddtjB5udLL73U47HHHnsTAKZPn/7BTTfddHDs98ILL/ywS5dDIeCss87a3q1bNxszZsyexsZGXnTRRR8DwIknnrjn7bff7goAjz32WK9bb721/969e/M++uijLmVlZXsAbI9Vr61btxYcddRRDQBQUFCAkpKSvStXruy+cuXKHtdcc83WpUuX9mpsbOS4ceMSdj8XFBTYpEmTtgPA6NGjdz399NOHRyt39tlnf3TYYYfZYYcd1lBUVHRg06ZNXZ599tme55577keHH354EwB8/vOf/3Dp0qW9xo0bt8d/3mmnnbbrm9/8ZumBAwfyLrroog9PP/30PYsWLer15ptvdh8zZsxwADhw4ABHjx59sK59+/Zt2LhxY0GiugdlLOh6+T/jZmE3l3fwW+HUSESyWWXloYDr273bbe8IQbd/f+zfvLllgO3fH/tTsf8f/OAHW0eNGlU2adKkbcmU79mzZ7O+4W7duhngWnBdunSxvDzXKM/Ly0NDQwN3797N73znOyUvvPDCq8cdd9yBmTNnDty7d2/c3tLu3bs37dmz52CZ008/fefixYuPKCgosC9+8YsfX3rppaWNjY289dZbN8bbD4BmderSpQsaGhqixg//dfivpaGhIakUthMnTty5fPny1//4xz8eccUVVxzz7W9/e2tRUVHDGWec8fGjjz76drTn7Nu3L6+wsDB+H3uEjE+kEhFJxrvvtm57tpk1C//u3h3NvqC7d0fTrFn4dyr2f9RRRzV+8Ytf/PC+++7r628bOXLkrrvuuqs3ANx5551F5eXlSU1oimb37t15ANC/f/+G7du35z366KNRZysHHX/88XvXr19/cIbv+PHjd9555539/uM//mPnwIEDGz788MMub731VvfRo0fvjXxujx49Gv3x0/aaMGHCziVLlhy5Y8eOvI8//jhvyZIlvT/72c/uCJZZv35910GDBh34zne+s23y5MnbVq5cWTh+/PhdNTU1PdesWdMNAHbs2JH3yiuvHHw9b7/9dreRI0e2qHs8Croi0iEMGdK67dlm2jR88ItfoHbAAOwngQEDsP8Xv0DttGn4IFXHqKys3PLRRx8d7MGcO3fuuwsWLOg7bNiwskWLFvWZM2dOwhZlLH379m2sqKioKysrO3HixInHjRgxYlei55x33nnbly1b1su/P378+J319fUF48eP3wkAZWVle44//vg9fgs26PLLL982ceLEocGJVG11xhln7L700kvrR40adcLo0aNPuOyyy+qCXcsA8MQTT/QqKys78YQTTih75JFHen//+9/fOnDgwIY777zznUmTJh07bNiwstGjRw9fvXp1dwDYuHFjl27dullJSUmrZlIl1ezuaMrLy01rL4t0LpFjugBQWAjMnx9e9zLJFWZW7t9ftWrVOyNGjEiqOzdXjR49+vgnnnhiQ9++fRszXZdUuummm/odfvjhTddff33Uz3/VqlV9R4wYURq5XS1dEckKiWYmV1S4AFtSApDuOsyAK23zs5/9bNObb77Z7sli2ebII49svPrqq1v9g6tTZhkSkY4l2ZnJFRUKsh3NhAkTEnZDd0TXXnttfVuep5auiGRcvJnJIp2Jgq6IZFxHn5kskiwFXRHJuI4+M1kkWQq6IpJxVVVuJnJQYaHbLvFlIstQWzPziIKuiGQBzUxuu/ZmGWqLtmbmEQVdEUmzZJMUVFQA77wDNDW5604ZcOfNK8LAgScjL280Bg48GfPmtTu1X1uyDAWFmZlHFHRFJI38U4FqawGzQ6cCdaTsQCkzb14Rrr++BJs3d4XL7dcV119fkorA25YsQ0FhZeYRBV0RSQO/dTt5sk4FOmj27EGITBCwd28eZs9ud2q/YJah4PaXXnqpx9SpUz8AXJahFStW9Iz2fD8zz4ABA6Jm5jniiCOa/Mw8weeddtppuxYtWtR35syZA//1r38d1rt376Znn322h5+ZZ/jw4WX3339/n3fffbfTLY7RVlocQ0RSasYMYN4817KNJSdPBdqyJXrgibW9lVqbZSgozMw8uU4tXRFJmRkzgLlz4wdcIEdPBerfP3oKv1jbWynVWYbSlZkn12U06JK8m+T7JNfEeHw8ye0kX/Yus8Kuo4gkp7ratXATydlTgWbN+je6d2+ee7V79ybMmpWS1H5AarMMpSMzj2Q4yxDJTwPYCeD3ZnZSlMfHA/iumX2hNftVliGR8JWWuolS8ZSUuIDbUWcmtzvL0Lx5RZg9exC2bOmK/v33Y9asf2PatJSl9pPsESvLUEbHdM1sOcnSTNZBRFIj3jgtCSxY0HGDbcpMm/aBgmxu6whjumNJriL5GMkTM10ZEYku3jjttGkKuCJA9gfdlQBKzGwEgF8D+HOsgiSnkqwhWVNXVxdaBUXEibaUIwlMnw7MmZOZOolkm6wOumb2sZnt9G4vAVBAsm+MsvPNrNzMyouLi0Otp0guaEuS+QULOn3AbWpqamKmKyHZxfubaIr2WFafp0uyP4CtZmYkx8D9SGhT4mARaTslmY9pTV1dXVlxcfH2vLy8zM1KlazR1NTEurq6IwBEPSsno0GX5CIA4wH0JbkJwA8BFACAmc0DcBGA6SQbAOwBMMkyOd1aJEfFSzKfY0G2mYaGhqu2bNly15YtW05ClvccSmiaAKxpaGi4KtqDGT1lKF10ypBIauXlRV/wgnQJCnJF5ClDIq2lX2YikpCSzIukhoKuiCSkJPMiqaGgKyIA4s9OVpJ5kdTI6tnLIhKOZGYn5+DMZJGUU0tXROLOThaR1FHQFZGY6ybnZN5bkTRS0BURzU4WCYmCrkiOqK4G+vZ1E6FId9ufLKXZySLh0EQqkRxQXQ1MmQLs339oW309cOWV7rY/Qaqy0nUpDxnSsfPeimQrrUgl0slVVwOXXw40NkZ/vKQEeOedUKvUYWlFKmkvdS+LdGIzZgCXXRY74AKaLCUSJgVdkU6quhqYNy/6mslBmiwlEh4FXZFOxl9ZavLkxAG3oECTpUTCpIlUIp1I5MpS8fTpA9x2myZLiYRJQVekE4m2slQkEliwQMFWJBPUvSzSiSSaFEUC06Yp4IpkSkaDLsm7Sb5Pck2Mx0nyVyQ3kHyF5Kiw6yiStfxVLgKXeJOiSkpcC3fOnPCqKCLNZbql+zsA58R5fCKAod5lKoC5IdRJJOs1kYg2R+qtWkZdWWrhQncurlq4IpmV0aBrZssBfBCnyPkAfm/O8wCOJDkgnNqJZKcZMwDCXSLlQXlvRbJZplu6iQwCsDFwf5O3rQWSU0nWkKypq6sLpXIiYfPPvY2nosK1apua1LoVyTbZHnSj/ZiPeuahmc03s3IzKy8uLk5ztUQyo7Iy8bm3IpK9sj3obgJwdOD+YADvZaguIhnnz042tPz1qVgskv2yPeguBvA1bxbzaQC2m9nmTFdKJCz+6lJ5ee66qMhtz4cdDLzBi5rBItkt06cMLQLwTwDHk9xE8uskp5Gc5hVZAuAtABsA/AbAjAxVVSR0/upStbUultbWAjt2uKUbARd482DIp+Fb0w15CrgiWS+jK1KZ2SUJHjcA3wqpOiJZJdrqUvv3u+Ube/ZU3luRjijbu5clSTNmAF26uNNEunRx96Vji7W61AcfaHaySEeloNsJzJgBzJ17KGdqY6O7r8DbscVaXUqp+EQ6LgXdTmD+/NZtl46hqgpRV5dSKj6RjktBtxPwW7jJbpeOoaJCq0uJdDZK7dcJ5OdHD7D5+eHXRVKrokJBVqQzUUu3E5g6NfH2yPM9q6vDqJmIiASppdsJ+Kna5s93Ld78fBdw/e3++Z7+6Se1tYcCslpRIiLhoXXCE+rLy8utpqYm09XIGqWlLtBGKilxp5yISHJIrjCz8kzXQzoudS/ngFjne8baLiIi6aGgmwN0vqeISHZQ0M0Bic731CQrEZFwKOjmgHjne0ZbVH/qVAVeEZF00ESqHBdrkhXgFta/7TbNcBbxaSKVtJdaujku3mSq+nrgyivV6hURSRUF3RyXaDLVgQPA5Mka6xURSYVMJ7E/h+TrJDeQvCHK41eQrCP5sne5KhP17MyiTbKKRmO9LWkCmoi0VsaCLsl8AHcAmAigDMAlJMuiFH3AzE7xLneFWskc4E+ySmad5t27XWJ10QQ0EWmbTLZ0xwDYYGZvmdl+APcDOD+D9clZFRXAvfcCXbsmLpurC2pEtmqvvfbQspo+/SgRkUQyGXQHAdgYuL/J2xbpyyRfIfkQyaPDqVruqagA7r7bzViOJxcX1KiuBqZMad6qra+PXjZXf5SISHIyGXQZZVvk+UuPAig1s08CeBrAvTF3Rk4lWUOypq6uLoXVzB0VFcC2bS6wLFyoBOq+b34T2L8/ubK5+KNERJKXyaC7CUCw5ToYwHvBAmZWb2b7vLu/ATA61s7MbL6ZlZtZeXFxccorm2uUQN2prgZ27UqubK7+KBGR5GUy6L4IYCjJY0h2BTAJwOJgAZIDAnfPA7AuxPrlvIoKl4Woqcld51rABRKP0eb6jxIRaZ2M5dM1swaSVwN4AkA+gLvNbC3J2QBqzGwxgG+TPA9AA4APAFyRqfpKboo3Rtunj1IjikjrZPQ8XTNbYmbDzOwTZlblbZvlBVyY2Q/M7EQzG2FmnzWz1zJZX+m8qquBvn1dq5V0t6ur44/R3nZbePUTkc5BK1JJzvNnJwdnJPtLYJ57bssJZSQwfbq6kkWk9RR0JedVVkafnXzgALBkScsJZQsWAHPmhF9PEen4lGVIcl5enjtNKhrSTSQTAZRlSNpPLV1Ju2xfozjeuK3OuxWRVFLQlbTKpjWKYwX/qqroS2AWFOi8WxFJLQVdSavKyuxYozjaUo5Tprjt0ZbA7NMHuOceTZYSkdSKO6brZQK6xcy+F16V2k9jutkj1nhp2GOlfftGXy+5Tx+39KVIMjSmK+0Vt6VrZo0ARpOMtk6ySEKxxkSLisIZ5/W7lGMlKIi1XUQkHZJZkeolAI+Q/AOAg6vQmtnDaauVdBpVVW4MN9jFXFAA7NhxKOD547xAartz/fHkyO5tEZFMSSboFgGoBzAhsM0AKOhKQn4Qrax0SyoOGQLs3Nmyhbl7N3D55c2f017RxpMjJUplKCKSSgmDrpldGUZFpPOqqGgeSPNiDGo0Nqa2xZsot21BgZZyFJFwJZy9THIwyT+RfJ/kVpJ/JDk4jMpJ5xTv3NdUzmyOd5ySEs1OFpHwJXPK0D1wKfcGAhgEl1j+nnRWSjq3qqqW6xkH1da2bpJVvPNvI49TWAgsXJi7qQpFJLOSGdMtNrNgkP0dyevSVSHp/Pxgd/nlrks5EukCL5B4klXkZKlo5YPjyVVVCrYikjkJ114m+TSA3wFY5G26BMCVZnZmeqvWdjpPt2OINruYjH5eb0lJ9Ny1paWHAnQy5UXaQ+fpSnsl0708BcBXAGwBsBnARQA0uUraraKiZQafWL8BY02Kau12EZFMSiboHm1m55lZsZn1M7MLABydioOTPIfk6yQ3kLwhyuPdSD7gPf4CydJUHFeyR0WFa5E2NbnrkpLo5YYMAUDCApcmEkVFccqLiGSZZILur5Pc1ireEpN3AJgIoAzAJSTLIop9HcCHZnYcgF8A+Gl7jyvZLdbkp7dqCQPAiMv79WyRrKCwUIkKRCQ7xZxIRXIsgNMBFJOcGXjocAD5KTj2GAAbzOwt73j3AzgfwKuBMucDuNG7/RCA20nSOmMSYAHQcvJTURGwb9+hIBvk3y8oAAYM0GQpEcl+8Vq6XQH0hAvMvQKXj+HGddtrEICNgfubvG1Ry5hZA4DtAKKuIURyKskakjV1dXUpqJ5kit/lvGCBWy5y58745XftcmUWLNCpQCKS3WK2dM1sGYBlJH9nZlHmh7ZbtCQKkS3YZMq4jWbzAcwH3Ozl9lVNMqm62rV0o81KjqW+HrjsMuC554A5c9JXNxGR9khmTPcukkf6d0j2JvlECo69Cc0nZA0G8F6sMiS7ADgCwAcpOLZkqWDS+yBDy19bkdvMgLlzXRq/dGUtEhFpj2SCbl8z+8i/Y2YfAuiXgmO/CGAoyWNIdgUwCW7lq6DFALxl8HERgGc0ntt5VVe7BTOiJSnIhx0MssFLfpSOj/p6F7gVeEUk2yQTdJtIHjwBg2QJYnTxtoY3Rns1gCcArAPwoJmtJTmb5Hlesd8C6ENyA4CZAFqcViSdg9/CjbZClS8fhrzAJVrA9aVyDWcRkVRJZhnISgB/J7nMu/9pAFNTcXAzWwJgScS2WYHbewFcnIpjSXZq7fhtnz7AV74CPPhg4gT0WiBDRLJNwpaumT0OYBSABwA8CGC0maViTFdyWHW1G3udPDlxwPWTFJgB27a5iVLbtgHTp7sMt9MLAAAUh0lEQVSVrGLRAhkikm2SSe1HAOcAGGVmjwIoJDkm7TWTTsvvSk7UUgWA/Hy3VGS004DmzHGnCUVLRB9cICNWFiIRkbAlM6Y7B8BYuEQHALADbiUpkVaLN1kqUmEhcO+98c+7rahwrd6FC5uv4ewH6uBsaLNDWYgUeEUkE5LJMrTSzEaRfMnMRnrbVpnZiFBq2AbKMpR9qquBa69NrnULuMCZipWllIVIUklZhqS9kplIdcBbJ9kAgGQxgKa01ko6lRkzgHnzYmcQCiosjN2d3BbKQiQi2SSZ7uVfAfgTgH4kqwD8HcDNaa2VdBrV1ckH3D59UhtwgdiTqTTJSkQyIZnZy9UAvg/gJ3D5dC8wsz+ku2LSOVRWJg64+fluTHbbttSvmxwra1FV1aEZ1KS7aCUrEUm3mEGX5F9IVpDsYWavmdkdZna7ma0Ls4LS8QRnCydzOlCiyVLtUVHhWs+Rk6wA4Morm48x19cDU6Yo8IpI+sQb050PtzTjL0k+A2ARgCVmtj+UmkmHU10NfPObLutPMvr0AW67Lf1ZgSoqWh6jtBQ4cKBl2f373exq/3kiIqkUs6VrZo+Y2SUAhgB4GG4N5HdJ3k3yc2FVUDqG6mrXSkwm4JJuYYt0dCcnK95EqsZGl7Foxozw6iMiuSGZMd09ZvaAmX0JwNkARgJ4PO01kw5hxgw3Jjt5smslxuN37y5YkPn0e4kmUvkZi/LzFXxFJHUSnjJE8igAX4Hrah4A4A8ArkxzvaQDOOss4K9/Ta5stp0XW1XlxnSjdTEHNTW54Atk/oeCiHR88SZSfcMby10JYBiA75vZsWb2X2b2cmg1lKw0Y0byAZc8tCRjtqioAO65J/oSktEoT6+IpEK87uXTAdwC4Ggzu8bMngupTpLl/HNvkzVtWnZOSgouIRkvcYKvvt51oyv4ikhbxZtIdaWZPWlmWn1Kmp0GdPnlyS92sXBh9nfLVlS4HwbJBF5ApxaJSNslsyKV5LjIpAHxEs0D6V3sIl38jEU9eiRXfv9+t5a0iEhrxBvTXUKyNB0HJVlE8imSb3jXvWOUayT5sndZnI66SHytyQoEAF27pnexi3SqqAB27nSnMyUj2eQNIiK+eC3d3wF4kmQlyYIUH/cGAH81s6EA/urdj2aPmZ3iXc5LcR0kAb+Fm6hlCxw693bfvo4ZcIPmzHEt9YIk/uqVo1dEWiPemO6DcOfkHg6ghuR3Sc70L+087vkA7vVu3wvggnbuT1LIH7+dPDl+Czc/P7vOvU2lZGc3+zl6NcFKRJKRaEz3AIBdALoB6BVxaY+jzGwzAHjX/WKU606yhuTzJOMGZpJTvbI1dXV17axe7gqO38bjr5nc1OTOv+3ordtogrObk2n11te7906BV0RiiZnEnuQ5AG4FsBjAbDNLclTv4POfBtA/ykOVAO41syMDZT80sxbjuiQHmtl7JI8F8AyAM83szUTHVhL7touV9D0oP7/jjtu2VXW1y5j07ruJZ25n20IgkjpKYi/tFa+lWwngYjO7obUBFwDM7CwzOynK5REAW0kOAADv+v0Y+3jPu34LwLNw3d2SYtmUFShbVVS4QNrU5IJqPPHWdRaR3BZvTPdTZrY2TcddDJdAAd71I5EFSPYm2c273RfAOACvpqk+OSvydKB4/LR4uRZwI0XL0RtUVHToR4wmWYlIUKbO070FwOdIvgHgc959kCwneZdX5gS4CVyrACwFcIuZKeimWGVl4tOBCgvduGZnHbttLT9Hb7RJVgUFwI4dh37E1NZqnFdEDok5ptuRaUw3eXl5sVu4pMvGU1WlYBtLcKx3yBB3nm+s83dLSvRednQa05X2SphlSDq3IUOij+NqMlByKiqaB9G8OH1HfqvXf56I5B4tA5njoo1PFhZmX1agjiJRnt7du13LWERyk4JujvPHJ0tKDi10oclSbZdokhWg2c0iuUzdy9Kii1Tazn8fKytjn36VqDUsIp2XWroiKeaf07twobruRaQ5BV2RNFHXvYhEUtDtZIKrS2lhhswLrmQV7zxnfW4iuUFjup2Iv7qUv9iFTlHpGPS5ieQOtXQ7kWirS+kUlewX63ObPFmtXpHORkG3E4l1KopOUclu8T4fLSMp0rko6HYisU5F0Skq2U0LaojkDgXdTkSrS3VMySyoUVurSVYinYGCbieiU1Q6puDnFo+ftWjyZCA/H5gxI5z6iUjqKMuQSBaJnMmcyPTpwJw56a2THKIsQ9JeaumKZJHI3opE5s9Pf51EJHUyEnRJXkxyLckmkjF/NZI8h+TrJDeQvCHMOopkSnBBjXhdzo0gDjTSRWf/IiJZLVMt3TUALgSwPFYBkvkA7gAwEUAZgEtIloVTPZHsEGuSVSMIAmgRZhV4RbJaRoKuma0zs9cTFBsDYIOZvWVm+wHcD+D89Ncus7QcoAT53c09ejTfHjXgikjWy+Yx3UEANgbub/K2RUVyKskakjV1dXVpr1w6+JNoamsPzVTVwghSUQHs3OkmTeXnxy9r0A82kWyWtqBL8mmSa6Jckm2tRvshH3OqtZnNN7NyMysvLi5uW6UzTMs4Sjxz5gANDe4HWbxWrv+D7bLLdFqRSLZJW8IDMzurnbvYBODowP3BAN5r5z6zmpZxlPYwNP9VagbMmweMG6dztUWyRTZ3L78IYCjJY0h2BTAJwOIM1ymttIyjJC3i/Ho/4OZHdAaZucU0unRRq1ckG2TqlKEvkdwEYCyAv5B8wts+kOQSADCzBgBXA3gCwDoAD5rZ2kzUNyxaxlFaxezg5ZgSaxFwgxobgblzgZ49NdYrkkmZmr38JzMbbGbdzOwoM/tPb/t7ZnZuoNwSMxtmZp8ws04ferSMo7RVVVVyZwvt2qWxXpFM0jKQIp3EjBluDDeZf2kSWLBAP+haS8tASntl85iuiLTCnDkukCZKnAC4wKxZ8SLhU9AV6UT8JSSnT09cVrPiRcKXtlOGRCRz/MxDd97p1nCORrPiRcKnlq5IJzVnjpu1PH16y0lWmhUvkhkKuiKdXHCsN96seK37LZJ+mr0sIgfX/Q4uQ0oC06Yd6qoWzV6W9lNLV0SirvvtLyOpFq9I6ijoikjMmcz+MpLqbhZJDQVdEUk4k1lpJkVSQ0FXRJJaRlJpJkXaT0FXRFBR4SZNJQq8tbXqahZpDwVdEQGQ/DKS6moWaTsFXRE5yF9GcuHClmkmg3bv1gQrkbZQ0BWRFoJpJuOprXWpAkkFYJFkKOiKSFR+qzdR4PXX11G3s0hiGQm6JC8muZZkE8mYq7uQfIfkapIvk9QSUyIZUFUVv6s5SDOcReLLVEt3DYALASxPouxnzewULb0mkhnJdjX7lDJQJLaMBF0zW2dmr2fi2CLSeslOsAJcwgQlTRCJLtvHdA3AkyRXkJwaryDJqSRrSNbU1dUlfQBlVhFJXmSrN9p5vY2NbpxXY7wiLaUt6JJ8muSaKJfzW7GbcWY2CsBEAN8i+elYBc1svpmVm1l5cXFxUjv3M6vU1upLQiRZfqvXrHnKwPz8lmU1xivSXEZT+5F8FsB3zSzhJCmSNwLYaWY/T1Q22dR+paUu0EYqKXFfKiKSvLy8QzOZg0igqSn8+qSDUvtJe2Vt9zLJHiR7+bcBnA03AStlYk340EQQkdaLlTQhUTIFkVySqVOGvkRyE4CxAP5C8glv+0CSS7xiRwH4O8lVAP4F4C9m9ngq66EvCZHUiXZqUWGh2y4iTpdMHNTM/gTgT1G2vwfgXO/2WwBGpLMeVVVuDDeYvFtfEiJtU1HhrisrXW/RkCHuf8nfLiIZCrrZQl8SIqlVUaH/H5F4cjroAvqSEBGR8GTtRCoREZHORkFXREQkJAq6IiIiIVHQFRERCYmCroiISEgUdEVEREKioCsiIhISBV0REZGQKOiKiIiEREFXREQkJAq6IiIiIVHQFRERCYmCroiISEgylcT+ZyRfI/kKyT+RPDJGuXNIvk5yA8kbwq6niIhIKmWqpfsUgJPM7JMA1gP4QWQBkvkA7gAwEUAZgEtIloVaSxERkRTKSNA1syfNrMG7+zyAwVGKjQGwwczeMrP9AO4HcH5YdRQREUm1bBjTnQLgsSjbBwHYGLi/ydsWFcmpJGtI1tTV1aW4iiIiIu3XJV07Jvk0gP5RHqo0s0e8MpUAGgBUR9tFlG0W63hmNh/AfAAoLy+PWU5ERCRT0hZ0zeyseI+TvBzAFwCcaWbRguQmAEcH7g8G8F7qaigiIhKuTM1ePgfAfwE4z8x2xyj2IoChJI8h2RXAJACLw6qjiHQ+1dVAaSmQl+euq6P1sYmkUabGdG8H0AvAUyRfJjkPAEgOJLkEALyJVlcDeALAOgAPmtnaDNVXRDq46mpg6lSgthYwc9dTpyrwSrgYvWe3YysvL7eamppMV0NEskhpqQu0kUpKgHfeSW4fJFeYWXkq6yW5JRtmL4uIpN2777Zuu0g6KOiKSE4YMqR120XSQUFXRHJCVRVQWNh8W2Gh2y4SFgVdEckJFRXA/PluDJd01/Pnu+0iYUnbeboiItmmokJBVjJLLV0REZGQKOiKiIiEREFXREQkJAq6IiIiIVHQFRERCYmCroiISEg65drLJOsARFlltVX6AtiWguq0V7bUA8ieuqgezWVLPYDsqUu66lFiZsVp2K/kiE4ZdFOBZE02LGyeLfUAsqcuqkd21gPInrpkSz1EIql7WUREJCQKuiIiIiFR0I1tfqYr4MmWegDZUxfVo7lsqQeQPXXJlnqINKMxXRERkZCopSsiIhISBV0REZGQKOh6SF5Mci3JJpIxTzUg+Q7J1SRfJlmTwXqcQ/J1khtI3pDqenjHKCL5FMk3vOveMco1eu/HyyQXp/D4cV8jyW4kH/Aef4FkaaqO3cp6XEGyLvAeXJWmetxN8n2Sa2I8TpK/8ur5CslRGarHeJLbA+/HrDTV42iSS0mu8/5nro1SJpT3RCRpZqaLG9c+AcDxAJ4FUB6n3DsA+mayHgDyAbwJ4FgAXQGsAlCWhrr8/wBu8G7fAOCnMcrtTMOxE75GADMAzPNuTwLwQIbqcQWA29P1NxE4zqcBjAKwJsbj5wJ4DAABnAbghQzVYzyA/wvh/RgAYJR3uxeA9VE+m1DeE110Sfailq7HzNaZ2esdpB5jAGwws7fMbD+A+wGcn4bqnA/gXu/2vQAuSMMxYknmNQbr9xCAM0kyA/UIhZktB/BBnCLnA/i9Oc8DOJLkgAzUIxRmttnMVnq3dwBYB2BQRLFQ3hORZCnotp4BeJLkCpJTM1SHQQA2Bu5vQssvm1Q4ysw2A+4LDkC/GOW6k6wh+TzJVAXmZF7jwTJm1gBgO4A+KTp+a+oBAF/2ui8fInl0iuuQrLD+LpIxluQqko+RPDHdB/OGFkYCeCHioWx6T0TQJdMVCBPJpwH0j/JQpZk9kuRuxpnZeyT7AXiK5GveL/8w6xGtNdemc7/i1aUVuxnivSfHAniG5Goze7Mt9QlWLcq2yNeYsvehnfV4FMAiM9tHchpc63tCiuuRjDDej2SshFujeCfJcwH8GcDQdB2MZE8AfwRwnZl9HPlwlKfoPEnJmJwKumZ2Vgr28Z53/T7JP8F1P7Yq6KagHpsABFtTgwG815YdxasLya0kB5jZZq9L7v0Y+/Dfk7dIPgvX4mhv0E3mNfplNpHsAuAIpL7bM2E9zKw+cPc3AH6a4jokK2V/F+0RDHxmtoTkHJJ9zSzlCQhIFsAF3GozezhKkax4T0R86l5uBZI9SPbybwM4G0DUGZxp9iKAoSSPIdkVbhJRymYNBywGcLl3+3IALVrhJHuT7Obd7gtgHIBXU3DsZF5jsH4XAXjGzFLdiklYj4gxwvPgxhYzYTGAr3kzdk8DsN0fHggTyf7+2DrJMXDfM/Xxn9Wm4xDAbwGsM7NbYxTLivdE5KBMz+TKlguAL8H9Kt4HYCuAJ7ztAwEs8W4fCzd7dRWAtXDdwaHXw7t/LtxszTfTUQ/vGH0A/BXAG951kbe9HMBd3u3TAaz23pPVAL6ewuO3eI0AZgM4z7vdHcAfAGwA8C8Ax6bpfUhUj594fw+rACwFMDxN9VgEYDOAA97fyNcBTAMwzXucAO7w6rkacWbhp7keVwfej+cBnJ6mepwB11X8CoCXvcu5mXhPdNEl2YuWgRQREQmJupdFRERCoqArIiISEgVdERGRkCjoioiIhERBV0REJCQKutJheFll3iZZ5N3v7d0viSj3LMn/jNh2Hck5bTjmBSTL2ldzERFHQVc6DDPbCGAugFu8TbcAmG9mtRFFF8EtYhE0ydveWhcAaFXQ9VbHEhFpQefpSofiLfu3AsDdAL4BYKS57D/BMn0AvAZgsLn1kEvhluosMTMj+T0AXwHQDcCfzOyH3vO+BuC7OLTgwlwA/weXSGE7gC/DpZCbB6AQbsGFKWb2obf85T/gVuRabGb/m673QEQ6Lv0ilw7FzA54QfNxAGdHBlyvTD3JfwE4B27pSj/XrpE8G27x/TFwqxUtJvlpuGUKK+ESWmwjWWRmH5BcDJcb9iEAIPkKgGvMbBnJ2QB+COA679BHmtln0vn6RaRjU/eydEQT4ZYhPClOmWAXc7Br+Wzv8hJcNpzhcEF4AoCHzFuU38xaJE4geQRcYF3mbboXLqG774G2vBgRyR0KutKhkDwFwOcAnAbg+jgJyf8Ml9R+FIDDzEt2Dte6/YmZneJdjjOz33rb2zvWsqudzxeRTk5BVzoML6vMXLi8qe8C+BmAn0cra2Y7ATwLN/YbnED1BIApXg5WkBzk5Ub+K4CveOPB8GdIA9gBN44LM9sO4EOSn/IeuwzAMoiIJElBVzqSbwB418ye8u7PATCcZKxx1EUARgC4399gZk8CuA/AP0muBvAQgF5mthZAFYBlJFcB8FPF3Q/geyRfIvkJuFSCP/PGdk+ByzYkIpIUzV4WEREJiVq6IiIiIVHQFRERCYmCroiISEgUdEVEREKioCsiIhISBV0REZGQKOiKiIiE5P8B7di91fT20YEAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] @@ -471,6 +578,17 @@ "## Logarithmic Simulation" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Logarithmic $(X,Y) \\in \\mathbb{R}^{p} \\times \\mathbb{R}^{p}$: $\\epsilon\\sim\\mathcal{N}(0,I_{p})$,\n", + "\n", + "$$X \\sim \\mathcal{N}(0,I_{p})$$\n", + "

\n", + "
$Y_{|d|}=2\\log _{2}{(|X_{|d|}|)}+3\\kappa\\epsilon_{|d|}$ for $d=1,...,p$
" + ] + }, { "cell_type": "code", "execution_count": 21, @@ -488,7 +606,7 @@ "outputs": [ { "data": { - "image/png": "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s9N2F154Ifvssw+PPvoojz76KADr169n7NixvPjii4wfP54bb7yx4GO+9tprPPTQQyxYsIBvf/vbbN68meeee45bbrmF3/72tzzzzDPceOON22NpdMcdd3DiiSeyaNEiXnzxRUaOHMnatWv5zne+w7x583j++eepr6/nqquuAqBbt24ccMABvPjii02+Bq3hJGvWClkeTNt99905++yzd6q5ATz99NN84QtfAOCss85i/vz529edeuqp1NTUbJ8/6aST6N69O8OHD2fr1q3ba6DDhw9n2bJlADz66KOMGTOG4cOH8+tf/5rFixc3Gdc777zD4MHJyH677bYbBxxwAEuWLGHBggVccsklPPHEEzz55JMcffTRzT7HHj168NnPfhaA0aNHb48p32c+8xl69uzJoEGD2GuvvVi9ejXz58/n5JNPpm/fvvTr149TTjlle0210WGHHcYtt9zCjBkzePnll+nfvz/PPPMMr776KkceeSQjR47ktttuY/nyHQNp7bXXXqxatarZ2FvKSdasFbI+mHbxxRdz0003sX79+qJlcvtv9u3bd6d1PXv2BJIaWvfu3beX7datG1u2bGHjxo2cf/75zJ49m5dffpkpU6Y02+G+d+/eO5U5+uij+eUvf0n37t057rjjmD9/PvPnzy+pzTY3ppqamqJ/0xufR265Uq7mMn78eJ544gn23XdfzjrrLH7yk58QERx//PEsWrSIRYsW8eqrr3LTTTdt32bjxo307t272X23lJOsWStkdTCt0Z577slpp522UxI44ogjuOuuuwBoaGjgqKOOavX+G5PloEGD+PDDD4v2Jsh10EEHsXTp0u3z48eP55prrmHcuHEMHjyYdevW8dprr3HIIYfssm3//v354IMPWh1vrvHjx3PfffexYcMG1q9fz7333rtL7Xn58uXstddeTJkyhS996Us8//zzjB07lqeeemr7c9iwYQNvvPHG9m3eeOONgrG3lZOsWStkcTAt39e+9rWdehlcd9113HLLLYwYMYKf/vSnXHvtta3e94ABA5gyZQrDhw9n0qRJHHbYYc1u85nPfIbHHnts+/yYMWNYvXr19prriBEjGDFiRMEzpKZOncpJJ52004Gv1ho1ahTnnnsuhx9+OGPGjOHLX/4yhx566E5lHnvsMUaOHMmhhx7K3XffzUUXXcTgwYO59dZbOeOM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\n", + "image/png": "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/PDDnYYPH74FYNasWQVnnXXWZwCmTZvWsU2bNoN27dplO3bssD59+pyQiOuBBx7odOutt3Zbt25dyy996UsDTj755AGJ/V1zzTW9jz766OITTzzxmJUrVx70j8W4ceN6XXTRRf0GDx58dJ8+fU649dZbE51r+cUvftG9f//+x/Xv3/+4iRMn7itPnCkvX768ZWlp6dHHHHNMcf/+/Y979tln2wM8+eSTHU466aRjiouLjx0xYsRRmzdvzgM4++yzt/3973/vUNd/VHKtM5RIvZSVwejRsHw5uAePo0cr2Uq8Jk6k965dB37P7tpF3sSJDb+b4ic/+cm6J598svOGDRtaJJePGTOm7yWXXLJhyZIlC7/97W9vGDt27L5+L8uWLWvzyiuvLPnDH/6wCmD58uWt//a3vy19/PHHl44ZM+bI008/fcuSJUsWtmnTpuqxxx47PHGcd955Z9F77723YOfOnXmPPvro4TXF9c9//rN9aWnpdoDTTjttx4IFCwoA5syZ0/6zn/3szjlz5hTMmjWr3cCBAw844/3Zz362rlu3bntmz5695PXXX18CsHPnzrwhQ4Zse/fddxcOGTJk2+9///u0HXKWLl3aZvbs2Uv+/e9/L/r1r3/d69NPP7W///3vBdOnT+8yd+7cReXl5YseeuihwldeeaVt8nb3339/5+HDh29evHjxwkWLFi04+eSTd6xevTr/tttu6zlnzpwlCxcuXDRo0KAdv/zlL7sDtGjRgqKiol2vvfZaQWafUkBjHUuzMH487NhxYNmOHUH5qFHxxCSyZg2t6lJeF507d6666KKLNtx+++3d2rZtu+80c/78+e2eeeaZZQBjx4795JZbbtnXlvuNb3xjY37+/q/9M844Y3Pr1q198ODBO/fu3WsXXnjhFoDjjjtu5wcffNAK4JlnnjnsN7/5TY9du3blbdq0Kb+4uHgnsLm6uNauXduye/fulQAtW7akqKho17x589rMmzev3TXXXLN21qxZh+3du9eGDh1a66Xlli1b+siRIzcDlJSUbH/xxRc7pKt31llnbWrbtq23bdu2snPnzntWrVqV//LLL7c/55xzNnXo0KEK4Ktf/erGWbNmHTZ06NCdie1OOeWU7T/4wQ/67dmzJ+/CCy/ceOqpp+585JFHDlu2bFmbwYMHHwOwZ88eKykp2Rdr165dK1euXNmyttiT6YxWmoUVK+pWLtIYevQg7Ty/1ZXX1c0337x2+vTpXbdv357Rd3n79u0PuO7bunVrh+BMLT8/3/Pygt3k5eVRWVlpO3bssBtuuKHoySefXLZkyZKFl1566fpdu3bVeKw2bdpU7dy5c1+dU089dduMGTMOb9mypX/ta1/b8uqrr7Z/9dVX2w8fPnxrbfEmx5Sfn09lZWW6W0D3vY7Ea6msrMxo1MMRI0ZsmzNnzru9e/fefcUVVxx51113dXF3TjvttC2LFy9euHjx4oXLli1b8Nhjj+0buOTTTz/NKygoqPn6eQolWmkW+vatW7lIY5gwgY/atOGAL+U2baiaMIGPsrH/7t277/3a1762cfr06V0TZQMHDtx+7733dgK45557OpeWlmbUKSmdHTt25AH06NGjcvPmzXlPP/102l7GyY4++uhdS5Ys2dczd9iwYdvuueeebp///Oe39erVq3Ljxo3577//fpuSkpJdqdu2a9dub6I9tKFOP/30bTNnzuy4devWvC1btuTNnDmz05e//OUDkvuSJUta9e7de88NN9yw/tJLL10/b968gmHDhm0vLy9v/84777QG2Lp1a95bb7217/V88MEHrQcOHHhQ7DVRopVmYdIkKEhpNSkoCMpF4jJmDJ/ccQfLe/Zktxn07MnuO+5g+ZgxfJKtY4wfP37Npk2b9l0Pnjx58oqHH36464ABA4ofeeSRLnfffffKmravSdeuXfeOGjWqori4+LgRI0Z89sQTT9xe2zbnnXfe5tmzZx+WWB82bNi2DRs2tBw2bNg2gOLi4p1HH330zsSZarLLL798/YgRI/ond4aqr9NOO23HJZdcsmHQoEHHlpSUHHvZZZdVJF82BnjuuecOKy4uPu7YY48tfuqppzrdeOONa3v16lV5zz33fDhy5MijBgwYUFxSUnLM22+/3QZg5cqV+a1bt/aioqI69YZqFtPklZaWusY6lrKyoE12xYrgTHbSJLXPSsOY2Vx3L00ue/PNNz888cQT18cVU1NQUlJy9HPPPbe0a9eue+OOJZtuueWWbh06dKi6/vrrD/r833zzza4nnnhiv3TbqTOUNBujRimxiuSCX/3qV6uWLVvWqmvXrjtrr910dOzYce/VV1+9oa7bKdGKiEhWnX766bVeYm6Krr322jonWVAbrYiISKSUaEVERCKkRCsiIhIh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\n", "text/plain": [ "
" ] @@ -518,6 +636,17 @@ "## Fourth-Root Simulation" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Fourth-Root $(X,Y) \\in \\mathbb{R}^{p} \\times \\mathbb{R}$:\n", + "\n", + "$$X \\sim \\mathcal{U}(-1,1)^{p}$$\n", + "\n", + "$$Y=|w^{T}X|^{\\frac{1}{4}}+\\frac{\\kappa}{4}\\epsilon$$" + ] + }, { "cell_type": "code", "execution_count": 23, @@ -535,7 +664,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAU0AAAEWCAYAAADiucXwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJztnXucFOWV979nhhlukkUG3BWQGV1NdLgEYVSIK5GAt+hGk1WjGVCikXVIjEbXGJf3jcSN7xqNRkzESFQwzqjJEqNujFFR8Y46KhdBVFRQhACOxAiIXOa8f1T1TE9PX6q6q7qru8/386lPd1U99Vyqq3/1POc8F1FVDMMwDG9UFDoDhmEYxYSJpmEYhg9MNA3DMHxgomkYhuEDE03DMAwfmGgahmH4wETTyAoRmSYiKiKLCp2XMBGR+W45Z4WYxiw3jfk5xhN6Xg0TzaJBRNa4f4jEbXQe0z46gLgWxeW9XUQ2icgDIvL5ALIan04sjboM4U4XkVdFZJuI/F1EXheR2XFBHgFmA4uDzF8uiEhdrHwJpyKX11KkR6EzYPjmT8Dbcfubw0pIRKpUdVdI0T8FLAeOA/4VGASMDymtpIjIWOBu4FPgD8AuoB44AbgQQFXvAu7KZ76ypZjyWtSoqm1FsAFrAAVOSXG+L3AtjqBuBZYAU+POz3evn+Xu17n7GhdG3e0i4F3gnbh047dp7qY44nc1sAX4AGjMUI5FsTTc/S+7+9vjwlQBlwOrgG3A68APgIq4MF8HXgI+AdYCNwH9E8oRvx2dJC8Xu+dmJxwfkOa+zXL3HwKage3Ai8CBwFz33r8GjElzn1PFOd/dH4VTW9yCI+QbgF8B1fHxJWx1SeIVYDrOy2kbsBr4KdDLPX+0G34N8J/AJne7tNDPe5Q3a54XH+eKyA2xLe74POA/gD3A74GDgN+KyJlZpPH/cMTwEeB2HGECpzY2G1gZF/ZfgK/gCNhg4BYR+ZyXRESkB3CYu7ss7tRVbh76AfcAA4Hrgcvc604A7sURl3vd/M1ww+LmMcY8d39dkixscD/Pd00El4vIWFX9yEP2jwNqgPfcMrQCh7rlGA7c6CGOVAwCduLc79txftPv4oj833HKFGO2u/09STxNwC3AfsDvcFqWM+l6fwBqgSnAM27aPxORg3LIf2lTaNW2zdtG8hqfuuf2iTtW6x670N1/zt2fj/ea5jkp0j467tg091gb0AundrjbPdYADABuiNuOd69blKQcy4ED3POCU1tT4MvusZPd/fXu/p/d/Svc/YE4NTIFPp9Qlro097QSp7bYnpCfvwBVKe7bLHf/LTevsfuwE/gHYKS7vzXNfU4V5/y4MBNwatvXA4+55x9JFWeKeFe6+2e7+1909/e4v9nR7v5u4J/cMGvdY6cW+pmP6mY1zeLj66oqsc09Vud+fqqqa93vq9zP2hTxVKZJ41kf+XldVXeoY/vc5h7bC/gcjnDHtnEJ1z2FU0vcg2NHbHCPD8IxNYDTLIfOsuwrIrEmasd5Vf0Q+NA9lqq83VDVPao6BacmdhaOfRM67azpWOW+sf7m7m9U1Y/prJX3TX4ZkP7eIyKXA0/i1LZ/gFOTB+fe+KHO/Uy8jxU4ZY7xV1X9q/s9Vp69fKZVNpholgZr3M/eIjLM/f4F9zMmojFBizWdR6SJ77OE/T3uZ7LnZXfc9w5vrqquiRd3VZ2VcN0fVfXfgCvdeH8hIj1xHFuxvB6cUJYNqrqTzvIeDCAiNTi1Tegsb3uaPONed7CI7KuqH6jqnar6LWCpe7pfqutc9mTYjxErC3Fmi3T3HuCb7uePcZrUl8WiSExLRNL9h9e4n4n3sR14Py5c0t/QSI6JZgmgqpuABe7uoyJyO04tBRwHAsCr7ufZInINMMdHErE/2JWuLXW/tKH98QvgIxx76DS39naze+4uEbkVuNXdj5XlJvfzP92+jYtwxOVRVX0zIc+/cvOcrOY3GVgrIo+LyFwRuQ+nCbsDeDqIwqnqZjrtqc0i8nsgUzexje7nFJyyX57k/E73+10i8rMU8cTu02wRuQ24392/TVV3eMm/0R0TzdLhHBwBqsapqbwDfFudbigAd+J0R6kCTnLDemUWjud1PE5T+x+DyTKo6id0OiYuFZFKHGfF/8XxTH8LR1QvBX7mXvMgcDqwAjgVx5Z4C501NHBqZ+uA4908906S/HM4JoL9cQTqaPfYyar6TlBlBM7F+T2Owqnl3Z8+OD8AXsYxNfwzjl2zA7e2fRlOrfybOE6iZMzBcZB9AJzppv3fuN2pjOwQ1/hrGIZheMBqmoZhGD4w0TQMw/CBiaZhGIYPTDQNwzB8UHQTdgwcOFDr6uoKnQ3DMEqMl19++UNVzTiAoOhEs66ujtbW1kJnwzCMEkNE1mYOZc1zwzAMX5hoGoZh+MBE0zAMwwdFZ9M0DD/s2rWLdevWsWOHDbU2HHr16sXQoUOpqqrK6noTTaOkWbduHf369aOurg4RyXyBUdKoKm1tbaxbt479998/qziseW6UNDt27KCmpsYE0wBARKipqcmp5WGiaZQ8JphGPLk+DyaaEaKlBerqoKLC+WxpKXSODMNIxGyaEaGlBaZPh+3bnf21a519gMbGwuXLMIyuWE0zIsyc2SmYMbZvd44bxY2IcMkll3Ts//znP2fWrFl5zcO0adNYsGBB0nMXXXQRTz31lKd4fvzjH7Nw4UIAbrjhBrbHPbR77RXOskJf+tKXsrrujDPO4K233go4NyaakeG99/wdN8IhDBNJz549uffee/nwww8zB07C7t27MwfKko8++ojFixczYcIET+GvvPJKJk+eDHQXzbB47rnnsrquqamJa665JuDcmGhGhmHD/B03gidmIlm7FlQ7TSS5CmePHj2YPn06v/hF9xVG1q5dy6RJkxg1ahSTJk3iPfctOW3aNC6++GImTpzIZZddxqxZszj77LM59thjqaur49577+WHP/whI0eO5Pjjj2fXrl2AI2qHHXYYI0aMYPr06WRamWHBggUcf/zxALz44ot84xvfAOD++++nd+/e7Ny5kx07dnDAAQd05GvBggXceOONrF+/nokTJzJx4sSO+GbOnMkXv/hFxo0bx8aNG7ulN2vWLM455xyOPvpoDjjgAG68sXN5+Ouvv54RI0YwYsQIbrjhho7jsRrshg0bmDBhAqNHj2bEiBE8/bSzjNMjjzzC+PHjGTNmDKeddhpbt24F4KijjmLhwoWBv3RMNH0QpqPmqqugT5+ux/r0cY4b+SFME8l3v/tdWlpa+Pjjj7sc/973vsdZZ53FsmXLaGxs5Pvf/37HuTfffJOFCxdy3XXXAfD222/z4IMPcv/99zNlyhQmTpzI8uXL6d27Nw8++GBHfC+99BKvvfYan376KX/605/S5uvZZ59l7NixAIwZM4ZXX3XW33v66acZMWIEL730Ei+88AJHHHFEl+u+//3vM3jwYJ544gmeeOIJALZt28a4ceNYunQpEyZM4De/+U3SNFetWsXDDz/Miy++yE9+8hN27drFyy+/zLx583jhhRdYvHgxv/nNbzryEuOuu+7iuOOOY8mS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\n", + "image/png": "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ceNax4wZM/4Pf/jDYIBf//rXB55wwgnjWltbj5k6deqRW7ZsqQE466yztj722GMHZvulREFVRCQEc+bQtGPHvtfUHTuomTOHpnyP/bWvfW39r3/962EbN27cZ4L7GTNmjL7wwgs3Ll26dMnnPve5jR0dHXumZVy+fPmAxx9/fOlPf/rTVQDd3d39H3rooWV33333shkzZhxxxhlnvLt06dIlAwYM6LvrrrsOiuXz4osvvvzaa6+9tH379po777zzoHTleuKJJwa3tbW9D3D66adve+mllxoAFi1aNPioo47avmjRooaHH3540IQJE/apyf7zP//z+oMPPnj3o48+uvSpp55aCrB9+/aaU089deurr7665NRTT936n//5nyP3zxGWLVs24NFHH136l7/85eV/+7d/a9y5c6c99thjDbfffvvwp59++uXFixe//Itf/GLk448/vs/MVDfffPOwyZMnb3nllVeWvPzyyy+dfPLJ29auXdvvO9/5zmGLFi1aumTJkpdPPPHEbd/61rcOAaitraW5uXnHk08+2RDsU/IoqIpISevqgpYWqKnxfnZ1FbtEya1bR30267MxbNiwvs985jMbv/vd7x4cv/7ZZ58dNH369HcAOjo63nn66af33Nv81Kc+talfv72VvSlTpmzp37+/O+mkk7b39vbaeeed9y7A+PHjt7/xxhv1APfdd98Bxx133LixY8e2PvHEEwe8+OKLyaZM3OOtt96qO+SQQ3oA6urqaG5u3vHMM88MeOaZZwZdccUVbz388MMHPProowecdtppGZuH6+rq3Pnnn78FYOLEie93d3cnfd/OPPPMzQMHDnSHHXZYz7Bhw3avWrWq3yOPPDL47LPP3nzggQf2HXTQQX1///d/v+nhhx8+IP51p5xyyvt33HHHiFmzZjX++c9/Hjh06NC+Rx55ZNDy5csHnHTSSePGjRvXeueddw5fuXLlnnxHjBjR8+abb9ZlKnu8Yj6nKiKSVlcXTJ8O27Z5y93d3jJAe3vxypXMoYeya+3a/QPooYfumVA+L1dfffVbJ554Yuv555//dpD9Bw8evE/bbf/+/R14NbB+/fq5mhqvTlVTU0NPT49t27bNvvKVrzQ/9dRTS4466qjds2bNatyxY0faiteAAQP6tm/fvmefD33oQ1sXLlx4UF1dnfv4xz/+7oUXXtjS29tr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\n", "text/plain": [ "
" ] @@ -565,6 +694,18 @@ "## Sinusoidal (4$\\pi$) Simulation" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Sine Period 4$\\pi$ $(X,Y) \\in \\mathbb{R}^{p} \\times \\mathbb{R}^{p}$: $U\\sim\\mathcal{U}(-1,1)$, $V\\sim\\mathcal{N}(0,1)^{p}$, $\\theta=4\\pi$,\n", + "

\n", + "

\n", + "
$X_{|d|}=U+0.02pV_{|d|}$ for $d=1,...,p$
\n", + "\n", + "$$Y=\\sin(\\theta X)+\\kappa \\epsilon$$" + ] + }, { "cell_type": "code", "execution_count": 25, @@ -582,7 +723,7 @@ "outputs": [ { "data": { - "image/png": "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vXR1OccbtHN7qCPt5Ou09l3ydmfMGH/hGKRptTsNM8Tjjzv/y5gxjrDsRPNEXWgnX6dtoWGWjYhw2mmn7fh99tlns3z58kzijqNRASxatIjLL7/cN45TTjmFm266KVZ6n//851m5ciUA559/Phs9qsGkSZPiZzwBBx98cKLre3pgzhw4++wPMn78b01YVpx28nXacQIzjzl8Y8eO5fvf/z7PPPNMS/dv3bo18FxPj+PqrKFRjhnj/I4rJJ599llWrVrFggULYl1/xhlnsHChs+agWWDmxS9/+cuW7luyZAlf+tKXMs6NkTXt5Ou0owRmXsbnUaNGsXjxYs4777wR59asWUN/fz9z5syhv7+fx9x+yKJFizj11FM59NBD+exnP8vy5cs54YQTeOc730lfXx/f//73+fu//3tmz57NwMBh7LPPFubNgx/+8AwOO+wAZs2axeLFi4naJvnyyy/nsMMOA+DWW2/lfe97HwBXXnkl48ePZ/PmzWzatIm99tprR74uv/xyLrjgAp544gkOPfRQDj300B3xLVu2jDe96U0ceOCBrFu3bkR6y5cv5yMf+Qhve9vb2Guvvbjgggt2nDv33HOZNWsWs2bN4vzzz99xvKG5PvnkkyxYsIC5c+cya9Ysbr75ZgB++tOfctBBB7HffvtxzDHHsGHDBgAOOeQQVq5cGfrCMcqnnXyddpTAzNP4/PGPf5yhoSFeeOGFYcc/8YlPcPzxx3P33XczMDDApz71qR3nHnroIVauXMk555wDwCOPPMLVV1/NlVdeybHHHsuhhx7KPffcw/jx47n66qt3xPfrX/+ae++9l1deeYWrrroqNF+/+MUv2H///QHYb7/9uOOOOwC4+eabmTVrFr/+9a+55ZZbmD9//rD7PvWpTzFt2jRuuOEGbrjhBgBefvllDjzwQO666y4WLFjAN7/5Td80H3zwQa655hpuvfVWvvCFL7BlyxZuu+02Lr74Ym655RZWrVrFN7/5zR15afCd73yHd73rXdx5553cddddzJ07l2eeeYYvfvGLrFy5kttvv5158+Zx7rnnAtDV1cXee+/NXXfdFfofGOXTLrsLdJTAzNP4/LrXvY7jjz9+mEYF8Ktf/YoPf/jDABx33HH8/Oc/33HumGOOobu7e8fvww8/nNGjRzN79my2bdu2QzOcPXs2jz76KAA33HAD8+fPZ/bs2Vx//fXcd999ofl68sknmTp1KuBownvvvTcPPPAAt956K6eeeio33XQTN998M4ccckhkGceMGcORRx4JwP77778jT80cccQRjB07lilTprDrrruybt06fv7zn/Pe976XiRMnMmnSJN73vvft0CAbHHDAAVx88cUsX76ce+65h5122olVq1Zx//3385a3vIW5c+fy7W9/mzVr1uy4Z9ddd+WJJ56IzLtRbeqy3LWjRsmnT3e64X7Hs+CUU05hv/3248QTTwy8xjvlZWLTcp2xY8cCjuY0evRo7rlH2LwZnn66i+7urWzatImlS5eyevVqXv/617N8+fLI+Ybjx48fds0hhxzCj3/8Y0aPHs3ChQtZtGgR27Zt4+yzz44s3+jRo3fkv7u7O7Ar3CiH97oo0wHAggULuOmmm7j66qs57rjj+MxnPsPOO+/MO97xDi677DLfezZt2sT48eMj4zaqS52Wu3aUhpm38XmXXXbhAx/4ABdddNGOYwcffDDf/e53ARgaGuKtb31rZDzr1ztdl8Z0om3bnKWRTzzhCL4pU6awYcOGwFFxL/vssw8PP/zwjt8LFizg/PPP56CDDmLq1KmsX7+eBx98kJkzZ464d6edduKll16KTCMOCxYs4Ic//CEbN27k5Zdf5gc/+MEIrXbNmjXsuuuunHzyyZx00kncfvvtHHjggfziF7/YUYaNGzfy0EMP7bjnoYce8s27UR/qNE+zowRmEcbn0047bdho+QUXXMDFF1/MnDlzuPTSS/nKV74SGYffKh5V2LBhMieffDKzZ8/m6KOP5oADDoiM64gjjuDGG2/c8Xv+/PmsW7dux6j5nDlzmDNnju9k78WLF3P44YcPG/Rplf32249Fixbx5je/mfnz5/PRj36Ufffdd9g1N954I3PnzmXffffliiuu4NOf/jRTp07lkksu4UMf+hBz5szhwAMP5MEHHwRg3bp1jB8/nt122y11/ozyqNM8TYnTVaoK8+bN09WrVw879sADD7DPPvuUlKN8aCriMObNSx7fW9/6Vq666iomT57ceqYSsn59/pPLzzvvPF73utdx0kknjTjXju2iXenr8zeV9fY6A0RFICK3qWrk09VRGmZdiFovnZRzzjlnx3SmImg4DGmYFDZvdn6vX59tOpMnT+aEE07INlKjcOo0T9MEZgWJu7onLvPnz2fO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\n", + "image/png": "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z/AJIelFRKbCGrf8xywv3XyO978AxgDY334xIISQvKCgEkIIIQZgly8hhBBiAAoqIYQQYgAKKiGEEGKAopo2M3DgQB0xYkTS1SCElBgLFy78WFUH5Szbt6qq6k5Y84JpfJAuAIs7OjouHTt27EdOGxSVoI4YMQILFixIuhqEkBJDRHoEs6iqqrpz8ODBBw0aNOjTiooKem+WOV1dXbJu3bqmtWvX3gmXKGl86yKEEGcOHjRo0GcUUwIAFRUVOmjQoI3wiGRGQSWEEGcqKKYkG/t+cNVNCiohhBBiAAoqIYSkFBEZe9lll2WSP+CGG27Y75prrgmT+jBvzjjjjBF33323Y4rDiy+++HOPP/54oMxDV111VcPvfve7vQBg6tSp+27atGm3/vTu3TuWdICHH3746Cj7nXzyyfu//vrrtWH3o6ASQogBZszAgIYGHFJRgbENDThkxgwMyPeYNTU1+thjj/Vfs2ZNJAfSXbt25VsFVz788MPKhQsX9pkwYcLmINv//Oc//+C0007bBAAzZ87cb/PmzbHrz6JFi97w36onbW1tH02bNm1w2P0oqIQQkiczZmDA1Vejcc0a1KgCa9ag5uqr0ZivqFZWVuoFF1yw7sc//vF+ueuWL19ec8wxx4waNWpU0zHHHDPqrbfeqgEsi/LSSy8ddtRRR42aPHnysGuuuabh9NNPH3HssceOHDp06CGzZs3qN2nSpGGjRo1q+spXvjJyx44dAgDXXXfdkIMPPvigkSNHjjnnnHMau7q6POs2e/bs/i0tLZ8BwLx583qfcMIJXwCAOXPm9Kurqzti+/btsnXrVhk2bNghmXrdfffd/X/0ox/t+9FHH1V/9atfHXXUUUftTvd4xRVXDD3wwAObDj300NHvvfdejxeIa665puGss84aceSRRx44bNiwQ370ox/tm1l344037jdy5MgxI0eOHDN16tTdyzOW78qVK6ubm5sPHD16dNPIkSPH/PGPf+wLAA899NDehx122OimpqaDJkyYsP/GjRsrAODEE0/c/Pzzz+8d9oWEgkp8aW8HRowAKiqsz/Z2vz0IKS+mTsXQ7du7P0+3b0fF1KkYmu+xv/e973300EMPDVi/fn23xPOTJk0afu65565fvnz50m9961vr29raPpdZt2LFiro///nPy3/5y1++DwArV66sfeaZZ95+4IEH3p40adLnjz/++M+WL1++tK6uruv+++/fJ3OexYsXL3vrrbeWbNu2reK+++7bx6tef/nLX/o2NzdvAYDjjjtu65IlS3oDwPz58/secMAB2+bPn9973rx5fQ4//PBuFuwPfvCDj/bdd99dzz333PKXXnppOQBs27at4phjjtn85ptvLj3mmGM233bbbYN6nhF4++2365577rnlf/vb35b95Cc/adixY4c8//zzve+99976hQsXLluwYMGyX//614P+/Oc/98re76677hrQ0tKy8Y033li6bNmyJUcdddTWNWvWVP34xz8eMn/+/OVLly5ddsQRR2z94Q9/uB8AVFZWorGxcfuLL77YO9hVsiiqeaik8LS3AxMnAlu3Wt9XrrS+A0Bra3L1IiRNrF2LmjDLwzBgwICus846a/3NN9+8b69evXabjYsWLerz+OOPrwCAtra2T2666abdY62nn376p1VVex7v48eP31hbW6tHHnnkts7OTjnzzDM/A4AxY8Zse+edd2oA4PHHH9/rpz/96eDt27dXbNiwoaqpqWkbrJSMjnz44YfV++23XwcAVFdXo7GxcfvLL79c9/LLL/e54oorPpw3b95enZ2dcuyxx/p2CVdXV+vZZ5+9EQDGjh275amnntrbabsTTjhhQ69evbRXr14dAwYM2PX+++9XPfvss31POumkDXvvvXcXAHz961//dN68eXsde+yxmdSNOProo7dcfvnlI3bt2lVx5plnfvrlL39529y5c/dasWJF3ZFHHjkaAHbt2iVjx47dXdeBAwd2vPfee9V+dc+GFirxZMqUPWKaYetWazkhxGLwYOwMszws119//Yf33nvvwC1btgR6Zvft27dbf21tba0CluVVVVWlFRXWYSoqKtDR0SFbt26Va6+9tvGhhx5asXz58qXnnXfex9u3b/c8V11dXde2bdt2b/PlL3958yOPPLJPdXW1nnLKKZ+98MILfV944YW+LS0tm/zqm12nqqoqdHR0iNN2mXZk2tLR0REoY9qECRM2z58//82hQ4fuvOiiiz7/i1/8ol5Vcdxxx332xhtvLH3jjTeWrlixYsn999+/O8DHjh07Knr37u3d750DBZV4smpVuOWElCM33IDVdXXo9vCtq0PXDTdgtYnj77fffp2nnHLKp/fee+/AzLLDDz98y5133tkfAGbOnDmgubk5kHOQ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\n", "text/plain": [ "
" ] @@ -612,6 +753,13 @@ "## Sinusoidal (16$\\pi$) Simulation" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Sine Period 16$\\pi$ $(X,Y) \\in \\mathbb{R}^{p} \\times \\mathbb{R}^{p}$: Same as above except $\\theta=16\\pi$ and the noise on $Y$ is changed to $0.5\\kappa \\epsilon$." + ] + }, { "cell_type": "code", "execution_count": 27, @@ -629,7 +777,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUwAAAEYCAYAAAA3cc++AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJztvXucHVWV6P9d3UmaPHAiTXBATAcGZwSTGCAIqEQxqPgYRUccMSIBJNegKBfm6vjJvYrM8BtHR0X0+oijoJ72NRHBC6NI5K28wkue8hACUSZAECYPEpLu9fujqjrVp2vv2lV1Tp9z+qzv51Of7lNVu/Z77bVfa4uqYhiGYeTT0+oAGIZhdAomMA3DMAIxgWkYhhGICUzDMIxATGAahmEEYgLTMAwjEBOYhmEYgZjANAzDCMQEZhshIhpfc1odloS8MInIBfHzcxv1zfids+N3FhcNcxlE5DoR+bOIvLAB32p6PjbKj3Ysc+2MCcxxRET2FZELReQJEdkqIutE5Jci8lfxK1+Or/9uYTDrGfcwichuwBnAnar66/je6SLyOxEZiiv4WQ637xSRm0XkORF5NhaEIULwS8BM4B9ywpaXh9CG+Sgij8Tp9rq6R20X1nZmUqsD0GX8DJgPXAHcD+wNLAL2BB5S1dNbGLZMWhSmDwDTgR+m7h0MPA08BgxkORKR44AfANuAi4BNwCHANODPOX5eAmwEThaRT6vqDsd73jyElqVZKToprG2Bqto1DhewG6BEFVdS9/uAafH/Gl9z6n5/hKhybgRqwJT4+ZzkndT3LojvnQUI8P8RCZltwH8BlwH9Kff/ATweh+tK4NC6cNeH6TXAncBm4HvAj+Ln58bPfwCsi/3bSCRY5vm+mZFWq+Pnr8p4dlESv7r7AjwaP3tdhrs+Ii1qiEiQbor/3wocFb9zeez+sLJ5mJOPHwceBp6J/z8C+H38+7yQPPX44Ux34JHU+8m11PEdb5kgp0xO9Mu65OPHRqJKOhO4TUS+KCLHAJNUdUuO288AvyXqESwBjg/0czHwSSLB8G3gGmAesKuITCeqVO8mKvhXAK8DrqjrXo4gIjOB/wfMBW4AZgHH1r02AFwN/DtwK3Ak8JPA8CbMj//eW8DNS4GXAM8BHxeRTSLyoIh8GEBVtwEfA36tqjNUdQaRRvhGVV1d59+BDj+q5CHAmcD1wF8AnwVWEaVjH3CaiBxVIL71+NL9O3HYAX5K1AW/p/4DBctE2TLZ0ZjAHCdUdTtwMvAs8ArgfxJ17x4SkUNynH9IVZeyswK4KnQ9k+O/D8ZuPwK8mEgTeyuwD/AHIo3s74i0t2lxOLN4G5GweJBIK3szcHvdO+8hEgIbgd/F914mInsFhhkgGXPc6H1rNLvHf6cC+xLF98XAV2OhBlFjcSeMCIe/Au5KfSMZx8sc86yYhwBnqur7gLVEGvF3VfUE4D/j56H5moUz3VX1bKLhDICvqurpqnpTxjeKlImyZbKjsTHMcURVfyIiPwdeS9QdOwV4EfB/gLd7nN4W/30m/jvD825v6v9fAV8jav2vjO/dDLyDqOsF8HuN+1rAffHfzDFCIgEE8EDKzf3AQQAi8lIi7SYrfLOAP3nCneYZIgG4K/ljjwlPpv4/XlVvFpHngFOJ0vYiIoE5GL8zD3hcVZ9OuXtByv9MKuQh7NRgnyFK49/Hv5OGYbrDXa/jPtDQdJ8T/w0pE0XK5ITBNMxxQkQmi8hrVHWrql6mqv8b+Jf48a45zpMJiHrjpZtT308q+9zU814irXImsB/RmOMhwAeJxrUA/lpEJP7/b+K/ax3h+GP896UpN3+dev5WoopzZ+zni1LPhHASDWn/Am7WMnamN/FzU/x3RMMk0hDvrHs/8e82MqiYhxANjfh+Q36eZhGS7olfvjr/SPw3pEy4yuSExjTM8aMPuFZE7iWqkFuAd8bPLi/zQVV9UkTWEc3U1kRkK7Ag9cqriCYMrifqkr06vv8McClRBfkr4EoReSoOz3NEY15ZXErUHd0PWC0izzO6K7Y+/vtSonGyBZTjEuD1RFrcbwFE5INEE04Hxe8cE68dvEhVL1LV5+O1oJ8Cvici1wPHEQmKQRHZnUjbSsbuXkakHRN/vw84FHiCSAvPouF5WE9AnmYRku6PEQ1VnC0ibwe+oKqP1b1Tpkx0FaZhjh9bidb6bQPeQtRNfgb4J+BzFb57MtGY0xHAMHBx6tkfgQeIJn9OIRqL+gawUlU3x/d/SiQ8jiKaNFisqg9meaSqfybqdt4NHE4kPH+aeuUnRJNL2+Pv/Uv9NwL5HpGmdVzq3muAE4gmdiDSEE9gtHD4J6LJlJnA3xONT75dVW8kmkh6SFWfi9/9I/AeETk0/v02Ii3x39W9pKhZeViPL0+zCEn3s4jGng8nmvx6Uf0LZcpEtyE7hyoMo30QkbOJxgXfkJrFbqZ/1wEvB/aNGwbDGIMJTMMwjECsS24YhhFIywWmiPSKyG0ickmrw2IYhuGj5QKTaAC6yI4OwzCMltDSZUUisjfRGrJziKzTeNl99911zpw5zQ6WYRhdxi233PKUqs7Ke6/V6zDPJTJC4Fz0KyLLgGUAs2fPZs2aNeMUNMMwugURcW3WGEXLuuQi8jbgCVW9xfeeqq5U1YWqunDWrNwGwDAMo2m0cgzz1cDbReQRIhNhrxeRWgvDYxiG4aVlAlNVP6mqe6vqHOC9wBWq+v5WhccwDCOPdpglNwzD6AhaPekDgKpeBVzV4mAYhmF4MQ3TMAwjEBOYhmE0jMFBmDMHenqiv4ODeS46i7bokhuG0fkMDsKyZbAlPt1o7droN8CSJa0LVyMxDdMwjIawYsVOYZmwZUt0f6JgAtMwjIbw6KPF7nciJjANw2gIs2cXu9+JmMA0DKMhnHMOTJs2+t60adH9iYIJTMMwGsKSJbByJQwMgEj0d+XKiTPhAzZLbhhGA1myZGIJyHpMwzQMwwjEBKZhGEYgJjANwzACMYFpGIYRiAlMwzCMQExgGsYEZKIbwWgVtqzIMCYY3WAEo1WYhmkYE4xuMILRKkxgGsYEoxuMYLQKE5iGMcHoBiMYrcIEpmFMMLrBCEarMIFpGBOMbjCC0SpaNksuIrsA1wB9cThWqeqnWxUew5hITHQjGK2ilcuKtgGvV9VNIjIZuE5EfqGqN7QwTIZhGE5aJjBVVYFN8c/J8aWtCo9hGEYeLR3DFJFeEbkdeAK4XFVvzHhnmYisEZE1Tz755PgH0jAMI6alAlNVh1R1AbA38EoRmZvxzkpVXaiqC2fNmjX+gTQMw4hpi1lyVX0GuAo4usVBMQzDcNIygSkis0RkZvz/VOAo4L5WhacTMIMKRh5WRppLK2fJ9wS+KyK9RIL7J6p6SQvD09aYQQUjDysjzUeiyerOYOHChbpmzZpWB6MlzJkTVYB6BgbgkUfGOzRGO2JlpDwicouqLsx7ry3GMI18zKCCkYeVkeZjArNDMIMKRh5WRpqPCcwOwQwqGHk0o4zYJNJoTGB2CGZQwcij0WUkmURauxZUd04idbPQtEkfwzAy6aZJJJv0MQyjEjaJNBYTmIZhZGKTSGMxgWkYRiY20TgWE5iGYWRiE41jsXPJDcNwYpbbR2MapmEYRiAmMA3DMAIxgWkYhhGICUzDMIxATGAaRpMpux/b9nG3HzZLbhhNpKxRXzMG3J7YXnLDaCJl92N30z7udsD2khtGG1B2P7bt425PTGAaRhMpux/b9nG3JyYwDaOJlN2Pbfu42xMTmIbRRMrux7Z93O1JyyZ9ROQlwPeAvwSGgZWq+mWfG5v0MQyjGXTCpM8O4ExV3R84DPiwiBzQwvAYhhNbE2lAC9dhqurjwOPx/xtF5F7gxcA9rQqTYWRhayKNhLYYwxSROcCBwI0Zz5aJyBoRWfPkk0+Od9AMgxUrdgrLhC1bovtGd9FygSkiM4CfAqer6n/XP1fVlaq6UFUXzpo1a/wDaHQ9tibSSGipwBSRyUTCclBVL2xlWAzDha2JNBJaJjBFRIBvA/eq6hdbFY5uwyYvimNrIo2EVmqYrwaOB14vIrfH11taGJ5cOl3YJJMXa9eC6s7Ji06Lx3hjayKNBDO+EUj9TClEWkYnVRwz6GAY2XTCOsyOYiLMlNrkhWFUwwRmIBNB2NjkRefQ6cM/ExUTmIFMBGFjkxedgY01ty8mMAOZCMJmyRI44QTo7Y1+9/ZGvztlDLZbmAjDPxOVrhKYVbo5E2GmdHAQvvtdGBqKfg8NRb/HS3OxbmYYE2H4Z8Kiqh1zHXzwwVqWWk112jTVqJMTXdOmRfc7lVpNdWBAVST6mxeXgYHR8U+ugYHxCWto+heN10SjlfnUrQBrNEAGtVwIFrmqCMyJVgjLNAAi2Wkg0vzwhqb/RGzYimJpMP6ECsyuWYfZ0xMVvSw6KAlGKLOmspXrMF3pLwLDwzt/21rRiMHBaMzy0UejicVzzums4Z9Ow9Zh1uGazRbpzLG0MuNcrZy4Cl1lYON3EUuWRA3E8HD014Rle9A1AvOccyLhWI9qZ84+llnm1MqJq1BhPRGWbxkTl64RmEuWuLvenai9lNUWW6W5hArribB8y5i4dI3AhKiSZtGJ2ksnLnMKEdadGC+je+iaSR+YGAY0DMNoPDbpk4FpL4ZRDNtsMJquEpjQ2bOPVniN8cT2tI+l6wRmp2KFd2LTjo2h7WkfS1cLzHYspC6s8E5c2rUxtDWxY+lagdmuhdSFFd6JS7s2hrYmdixdKzDbtZC6cBXSnp72FfKtplN6EO3aGNqa2LF0rcBs10LqIqvwQmSirZ0141bRST2IdtXkbFXJWLpqHWaaTjTyMDgYGfxN7Fmmaedwt4JOyl9bH9x6OmIdpoh8R0SeEJG7xs3TuJ/28Noe1socjmOnyhHU3Tj1VJg0KWpyJ02Kfody1FGRu+Q66qhwt6eeypLje9g+JAwjDCF8hZ1+52rGVcJdtW9b1X2JsCfp8UuOYhgZub659qhi3lfJs8B4pzU5iCzhb9kCO/7HqQz3lsyzKvkNlctqJb/beSwlxAZcsy5gEXAQcFfI+1XsYapqZFCwziDjMOhXWR5mqHbx4myjjsuX5/vtcnvAAfluly/PdDsM+hWW59v1dLgPCndGmimEG2es1VSnTCnnt2qUPiXCPjCg+ksW63BGmm1mcljwZ87M9nvx4ny3rnjPnOl1ktjBvJ0DxoQ9ON2q5Lequ6yGxNvld4hbVdW99hrrdvLkphsDpREGhIFe4PMhHyp7AXPGTWD29mZnZogAcAkOiL6bh8ttiN8uy7+gO+jJNy7r8zsPX5qF0N9fPt6uyge5Vo+XL9dsgRMLzXWyl99vl9AIjfuMGW63e2X7nRhZ/grLnWEP8tsT7yDFoFnlJc9jV+MIqtOn5/tdgYYIzOg7XEE81tmMK09gAsuANcCa2bNnV00V95Vnen369PIFyVfxIRIqJcM9DNUqQJ5jn9sQ7djnPq8S9PSUTvN7eh0aWirdSoc7L918jasn7Em7OIS7gazi9zDocdSqNbBVykteHauS5hVppMD8AvBz4HjgXckV8vGgAIyXhpmnMVStQD58rW6e+5KVLzjsFYS1gr+bVzXsFdx6NbRGCExfurnO48gJe+IsL+xev3Ma9ifo98uuvMZ9xgx/uvnKet5ZKFXiXZFQgRky6bMbsAF4PfC38fW2kkOmrePXv27u930D21nT2qF87GPV/M5jw4bybgG++U33swqLWgcHQUu7Hgd86RayNi1jIsO1dKyQ35s3e53uTuTWGURffgJs2uR/vmyZ+9luu/nd5lG1rDaCEKnazIvx0jDzWq+qWp5vHDOva+nzOyDcQz0ev0PC7uvqVEm3km6TyY9nyRkGcYS7VgvQ0nzhrhrvEA3ToS1VDnuOu6RbnqlhhpSVvHRTdffmpkxxl7UAv3N7BRWggV3yvYGfAU8A64GfAnuHfDzg2z8EHge2A+uAk33vN11gujIza7azSEHq62taBUgKklPm+SZdciqvqpbuXqpq6aGIxEvnTLEn3ImwDRI6voYiL918aZZ17GORdPNM8uW6DWicn6Q/O+ohZSX0iFHXt1xjAQF+76AnzO8SNFJgXg6cCEyKr6XA5SEfb/RVWmCGtpyuShDi1qdhhriv4DaZ/Sztt8//vMrvq0AlK59I9pKgkHAnwnaoSn67lgSlr7wlOsnh6mXSPG8csaJbp6YWkmZ58c6bK3CVl8By3iwaKTBvD7k3HldpgZk3w51XEEPcudaZhQhrn7YSWJCccqtKvJPw57X+LvLS3ZFmAwOBGmKG34WErSvsIVp16IH2ZdJNNV/wubTjlMDyLasqHNbe3urC0pduAXk1hDRtpryRAnM18H6iNZm98f+/Dvl4o6/SAjO08pQpSHkFIU/Y+MZ1VP3r+VIVIAnCmE+FdLN6HF2dEE3LJexDtCTH+pbgcbyM/CokbF35HdIldrmtx9VohKwrLFreQgQWHoHpi7eIo4AFhteT36oaPuwV2lAVpJECczbRsqIn43HMi4DZIR9v9NXWArPObdIjyx2DiwtQ8v6YchlYAY6jll0ma7Vop0SZeFcZ/wwZv/RUgCChl6FWFxK2LqEVomGKR9tJZ6ZrTDFkiUyeAKsnMN6VuuQ+oZeXzz5hGzIx6iurFWmkwHx1yL3xuEoLzECNIXPypFYLr7wp4ZcM++W67e3VexcvHzNMOFIuAwvRwwy4ZVDeeFqFblKVMSmn+9AxZ0eXPlhg+sYwQyZtstIt1G1Ixfdo6c9Nzwh7aLxdfoe6LVNe8gj1O2RXXQkaKTBvDbk3HldpgRmo7g/DmAb0uekBWlZdQUrLppDKm94TXl+fQyv/EHhlkKpma5u+fbpVKk8VDTNEwwO3tlNVcCRplWiJLrdZCR0a9tDZZscKi6yZ7uCGwrX4PKRH4Qt7hT3oQ9LhGiZwOHAm8BhwRuo6C7gj5OONvprdJd9M35g6XGg8LC5I6Tq2g7CCsJ3eMbePI1C7Zec45hgZlK74/f2qkyaNdusbQw2Jr2siIGQ8zeU+dAxxTGRLuM+ifnzENQ6ZpaEW8TtkAsPhdoixKyOytoOOKT+TJrn9DRl3dsU7oT7fA4RlrRaw5taX3w2gEQLztcCn43WSn05dZwAvDfl4o69mC8wd9IzU44QiAnNj/4CqjlYygpa31Am85HqYgWC/E/ejlK7Q8UtX1zLEb1cFDNW0sgR2wETXyFVhLC8q/hnxDu1SZ2lqofEOrfwOAbwDGRN1V3nZTm/+pE3IBF9yNXiL4sBAwP75MYW7sTSySz4Q8qHxuJotMNOzzQnepRmpaxPTdOnkmtZqo+tcqNBLT9wkV1AhGqlAPWPrQ5XlVEXcZgmOIppWfQWsqmGGuoWxFbCIwMtKt1AtDYK65b7yVx91V3kZIqD7H9odDwz3CM7ZzJ2IqD6Bw//eAGHfABq9cH1m6vcLgctCPt7oq5TADNWUiFriadOiMp/ksa/Abqd35G+9XcqknLyPmm6WMI3lsd6BkbLR3+8pRK6CVTLemTO+RYRGluCoIng8aT7qXko7TdfLHQUamjFSp4iwrhjvpEfiK7q+8lefZRv7s/3O88eX5kFplrB8+c6x697eqDter7Vm9ChO66/pc4ztCW0jZ8ldA2mkwLwt5N54XKUEZuDkwzDo1VMW6/Llo3tkRTTM46hlN771rWxABazVVJ8sIjDrK28RjSGrEhRxmyU4inRt69078mxMXvT2qtZqo7w6jpo+z6Rwf+szrGi61eMQuFnl5bR+vzAYGHA3ms/NyOgW12q6fcroNN8+JbAbGxpfV7e4iGZd16NwCfonY8tKiZNmys5GCsxb0usugYGOmiUvUvinRYU4fWs7gbO9REt7gsakAytgoQmn+spb1G294KjiVnXsDqH+/vDJk+VjDeg602L69FFtkHMIxKU51mdYUYEZ2KV/gn59mAEdQvRhBtyNawqRqAHYymgtbatP8wroAmfiivf06WHfC10VUaCspld+QP4ejyo0UmAeDTwKfD++1gJvCvl4o6+mC0xGr2eE8EmbKIMlLENDC1ITCqHzqqJh1s90Z2mXyVhHyLKmWm1MQ+XT9N+XGvv1jvs6F7umKNolr0+3jLhvlmljxqeznNaTyN7jqI0StnmaaSmKLjmrp2h5S+Mo59vpHZ+4q2rDBGb0LXYnsoH5t8DuIW6acY2HwBxCRt0qMlMdNFaUF6YKYR8luFwzzZMmhQkOl8bR1zd6nCprWZBr2CHRUPI0loLjn4/2DIz8dI77Jn26Bvvt1K5T/ly7vBaU5FmfSQ81JIJjY78j7L4PhWiJrvfy3BcZLy9QzoeJhi7S9zbh3k5bRrHeGYTGaZgS7x//VPx7NvDKkI83+hoPgbmxf2BU4f4Ky8doLVuZMrY19q1JLBKmhFqtuLaTrry+Pcwha+VcAjdE8LjCHTq7WjDeyYYD8Kznmz49rFZlLa+pX7uavrI0zAw/ylboWs0xKRKq/bm0fVfc6wMZ4r5oI1NAYIakeZEoumikwPw68H+Be+PfLwRuDvl4o6+GC0xHKiflJppAGNs1vGD68uxB7qxBlvqZw+XLVXfZJTs8u+yy012ZQpguiEXdpYV9nsaQVzpd2mno+j1H3F0VaDu9YXv3A4cDMt9bvHisIK+PdyNqbhZV0tOn7dfHOyvsIXYtizbs6XKq6nzHmZd1DW9oFH00fGtkema8o3b6uDb19/TkNvvb+rK1lW1908MKcZGZw/qCUKYQpgtiUXfpZUk+Ye0aV02XTpd2mnceTIKj8roq0FCVeNcLHZ+AyFMTq9Zc1/dDBU9W4xyq7VfRElusYVbt0ERBaNyZPttFpBeiI1ZEZBYwHOCuPZg6tdj9FFO2ZZ+PMmXbZvf5Iun7K1fm+jEK1Z3/z56d/c7AAPT1ZT+bMWPn//39xfxOnzvkO5PGdT5R2o3r3Jfk/uAgzJkDPT3R3/rzbZYsidJuYABEor8rV7K5fyDzs1vS93tCinSKdH4NDrrzNeScnrVri91PMzgIJ54Yvasa/T3xxMyzfzI59VT4+td35s/QUPTbdUhQXfnStQHxS9Pbu/P/t7wl+51ddnG7D4iXwNjwT5sWHX6UwlVVXPcrkSdRgSVE5t3WAecAvweODZHGjb4a3iXPW1RbtNWsbz2ruM0aS0vCV6uNHVer36LoesfVHIdomP39YVqUL35Vuq0h6wyrpLlPU+rvzw+3S/sOsbDj67EEhH2ox+F3T09uuEut+Q1JN1/Y0zs88spLzuBvW41hRt/iZcCHgY8A+4e4acbVzIXrozI5wdedD+mSl6m86ZlJ35hbVvcrjW8sLsvftHvXUMLy5WGl0zfh1Kxua4IrX1wNRXqYwDcMEjKWFyJcXOSVSU9Z8+0IChE63p02IWtnfX1iV5iS/nJedz5wtqzls+TApbF2OT3kQ+Nxjccs+ajCnSc48iYRyvidVMC8pTllZy4HBvKFbZ5Qy3Pvq+CNGHDy4VuAnTXbnc4zn6YUEu4qjYGvTPjKYeytc4NFot16Zu9dS+eeoD9sPNoX7zzFwidUp09vziRaZvJXF5jvIDrV8Ungx8AxwJSQjzbrKiUwqwxIZ3QXhkBP6492aZzWX4vWxGU1a75lQT7r0kkF9IUvpGI6/B6Krdx4W2GfcAgR1j73zdYwfemapyX6hkGqTPIlDYov7D7B5GsE1H2O0TBEPQpHniXrQ71GO0LriatM5KVb3jBIlbJSgIZ1yYGpwN8THbX7X8B3gDeEfDzg20fHY6IPAv+Y935p4xtZmRnS1XBk2BOpPa7OBs9VEJL1mr5CouofDwspxA7/k51MyULoYTIqr0+ohQg83zshRmZ9C6izTJClBZJvC2SelujrNYSczZPXK/D0SLZNcazIcNwfuWrRGePOBfuePHusNyoLLg3Ttcd7TFnz5VmZNE/ytNm9kRQNHcMceRnmA7cBQ0XcOb7VCzwE7AtMAe4ADvC5qXTMbtaC3JJd6nrblZkNnq+roZovsH0FNWRyIaOhSAyEZO1PHjXh5dMYQgpxllBM3OeFvYy2EgsObyPlex4yDOIpCyNFxhU2n3Yb53eokZessF273GNoWsTb24Co8awfw9zROzlcs/ZpznlpXquN7XGll/zl+d0gGqlhvgg4DfgN8AfgX4EFIR/P+e7hpMzEAZ8EPulzU1pguijZvasXmJkNnqdVr9U0X/CUqLxRdmbHLzH4ADnbB/PSJq8Qu7TnRIPMC3vZePs0yOTbeV3mPOHkKAtLJ9f02uU52m1OvL0C09dQ5FnACtAwvQ1onmKRN0ST99w3FOHqURTZ4x5II8YwTwGuAP4IfIUGH3wGvBv499Tv44GvZry3DFgDrJk9e3ZDEykXTyGuL5NjyKicydk906a5TVqNanldBS1Pk0rcpwRe2gqTV2vJI68Q52mQec9LCK2RuJcdL0vS3Bc2j9B6gn59rDcnT3LS3CcwT+v3aJB5DUWt5mwoksP3nPYS0mWxrAaZ5z6vLDrSfWP/gA4MRPZmH+t1DC0VoBEC83zgjUBPyIeKXsCxGQLzKz43Ddcw83BsYQwaw8wZ/zytP6BlrjePln7m02YyhO32KdNGrPrkCsyyS3dCuq55Wl5JoVVpRjZkos0j9IbJmSDxpVkctud3yda0nmWGguo3esaavBtZe+v6djKT7RFqtZrHwlO661R2jDKPvLLoGU44jtoY4xxlZ9GbMobZyKstuuQ+HBV7SHr0lOk7tTWnYVNP5RopT77JjbyZaMf3hxCntvPUjAH/cQBJZKrMgntMdY18xmf8o6TQCpokyBOoJbXfYXBrmL4Z+CTcqs4x7WeZrhAZgcls6JYvr95QhIwzFu3thM5klwzbwwzka8YF6ASBOSkeE90nNenzcp+bcRWYjsozhIQtDfNUrpE8LTpOGDATnZgAcxXCWi3SbrfVn2aZN9Ce9ttXQTMmfIZBf8lihViz9u2wyvPfZ0Upz61rom3KFG+eRdXE/XwIojHMvIKR1QgnWmJOefGus6wqELMam3TY89b0Zj0LtdyVt2rCM3kZpBkH0ogu+X8Cc0I+UvYC3gLcH8+Wr8h7vykC0yW0cgqwT57kuZ82Tf0VLKSbk6GxbGUewuQaAAAfs0lEQVTKyHIhbyB9M5N5QkPVLzBzljM5tduk+5hXeX3hc4U/1G2eYPHkqbcsJbiEvct6Vaq8eYdRqmiIWc/qTRU2c11tiVn4ZDy+rTRM4D2xMFsBTA75WLOvpsySZ507s3ixt2uZvpU27BoqcGs1rb7WMWP28jkmjywb8o7t+IwLhyxZ8lXenCUs3opff6BSVuX1uc/TVvKETt5whM99CD73jisZ83aeb9/TE6blNaE3E7S2tUqaOMJ+7fKaTp6smeU8+AyjMcFoQJccmB4vI7oD+AeiM8nPAM4I+Xijr4YLTN9yjAMOyLx/wfTlIz+9gimvIPgKmsNvPeCA3LCnF6Y/1jtQfGYypAB73nHN/j9MZJjZKzBDTMdVCXve8hzVajO6JZepua7k+I2BAbepwUL787PCF9qbacYYZkg9cfidzCM06giLRgnMKcCngPuAzwCfTq6Qjzf6arjA9C3HSPZI1+2ZTueft0uQVxB86xnz3Ko6nw8RnW++VjxLLcoInEChdVr/2EZkE9N0iUSGmQsfMlYfb9+6vZDK53oeshg6b81gyYm6oDD5BFsVoRd6MF2VCUoXvnqSsxSsfsdaIjDfR+uWFR0N3AN8FpgW8rFmX+OqYaYraR1J2cnda5t1JVvpfOsZQ8Lk0MZ2IGPPQQ+d5fZdgd1ikbGFeNQJiXlaRdaVHg6oaAbNO2mUZ1QkK7+Sd0M0Ld+kU56pQd/3Q8YBfWt3s+6HGntWzU83F3nrRz3vJMuK6k9E2E5va7rkwLV5s9bjfTVlDDOkkrpwFULffu90ZpbRthKKuktX3KKW4Osrn+e9oNMUXBM7VeMdsk+9aLxDx0+rhr0+PdKbEJKy6hrfDdESq4TbR94knY8coyKq6qxjz83o95/fVJC2X1ZU5mrKLLnPPmTemFQZwZOmqKYXMIbprZBpXOOkFSt+8PEzWVpJiJaWNymVd8BbUfuooZNdIe6L+l1f8bOEk69Hks7zMmHPI28DRf279XUpxKCJpydWacdaHSYwi5BVeUPGZopqiPVSo2g3qX6pRdlDqxL3WVqNI+zDMFLWnRMQU6aETZq6wp41S15kHDCEKoLDZ5YvxH1VoVW0kaw6WVZPvdALmUTz5Xeo31V6YoGYwKxKiLZTNBP7+kb7UVVDzWq1QwfhC1omT28HXTrZsWh4ypRRe9ZdyeZN2zyt3tfIhHQDqwiOMvkVoh2H5nfRHkk6PYr6Xd8jcS3BC4l3UUFfNd49PfnlYEyxMIFZjZCCVKXyqVYvSC7yhE7BsCcL4tO3N/S4jSLkyusq8SvSDcyiap65hnBcZaXKLHl9xS+qaaVxCXtXWia7nxKKltUqk4yhJ3m6rtBJp1HFwgRmeUIrZdWuQtXKW4VA/4YQ/QrLxzzK237plddVDgvLC3uD4u0MU8aGgeDwFNXyQo/+yLhG2elMyBp6Cg17UaGXxreELm91QMF4lzUubAKzCqHdvqwBadfSk0ZUoFDDqQ3WMJM1b+kr19iEj9D0ceE7nC6PMkuq0hTRtOrzq4if9ZNVBd0nW3DHZH26bIQuxSoa75DufDJm7bLIVSXPSmACsyjpglQkM7KEU8jBUarFCkFsbzJXFoaOYRbwO9nWmP7cvYsd2skBB+SvyQtdduWiSmUpkuYwtgEoUnnrZ7mLCJ2shqdAuEcZeUkoMg6ZtXC9rGaduE8Lx6xD6bK0y0akWwAmMIvgWrpQNjNCC1LoLHm83i5IFoZuVStQ+RJjraOEdJFuUr3QLFJRq6RvFkW1+tBJp5DwhJazJM+LxLvuGmVGsEzY6+NdJOxZ+RDqPiv/XYK+vqdR4URJE5hFCK38rsHk+rEhl/us8bDQFn9gILO8f4XlO01/+fyur4ChcXYVwiJCoz7eJXdYBfntG4ZI8qpI2BvtPjTdm6FhhmrHWcK6Spe8SLxd+Z+1BrW3d6fQLLLDKAMTmEUIzcis1m8cK2B9eXEalQ2pgHlbFPMET5E418c7xOiCj5DK59M2QsOcNQlVRcMM9bsBjdQOesJ7HyHhrjqOWNJtMgTltNsQmuc5mMAsQpWCUKSLl6U1FGh568u706hs1pVVkFx+J0ZpfQKziMaQJXhc6Va/nCWLqkMooeHOmngpIjiyGtgQ91n+qjoFXtZ55BdMXz4260KXRFXVMLPqSYk0S3fAgu022BhmmwvMIm4rag31Pfhg7TIr3Kph2q1rIL7ImFZWV8m3ayZPWCf+503SuZaYhFb+LIFXZRxQNdxtVprVapG9x9R7mWUgvYW2jN9Z5cW31K6R9SQV73RSB2mYvjzPwQRmEaoUpFAN0zWZUdDvtJwopGFm4drLGxr2PI2l3vhv0XjndbHSY8dZl0vbKDKMUk+otSXXEqdQfx0V/+opi/Mbyqp+u8pLqNus8hLqNpVnafn8SwLi7cvzHExgFiG05Sw7hpkc/5BFlUJcpeJX9Vs1v7FoxDhiFaHn6trWL2cpGu/Q4YgmpHlwI9kEv4PcuXokJfxOa5jB8bYxzDbSMF2ZETI2VEXTaoT7Km6ruHcIvODhBFcXK6SRc+0cCvXbpVmHDEe4TIxVTPPgdGuC30HuXI1UqL+pPEsPQVWKdwChArMHI5wlS7LvX3ddvtuVK6v5/bWvVXNfhf7+7Pu9vflu167NvD1EgFuA2bOz76vmux0aCvPDxZe/7H6W5/9zz1Xze8aMbG+R8t+cPj3sPVd+h3DVVdn3BwbC3KfybMmSqNoMDBQoL03GBGYj2LYt/x1X5V28uLFhaQYuwbFsWelPfpNl5Iq8adPgnHNK+1EZVwO5YgVs3+53Ozycfb+vL8zvb3wj83bPjEChl8U3vxn2nq+hyMNVzkPzsU6wLlkCjzwCk5YHlLUqgj6UEDW00RdwLHA3MAwsDHXX8oXrLgp2NcYQYsy3it8u96Ezvj5CxhIdXuceHesbjwodd84i1HhyFb9d+R06adSMeKuGlXUXVctLiNu8ST6XO988QQC0eZf8LuBdwDUt8n80VVrUUHza2Pr15b8b0NXZQS9z5sDgYN2DkFY/7/tXX53/jQxyvX7LW9waHkTVJA9X2O++O9+tD9cwQRpXfvvi1Ci/fXz5ywz3TCrnttnafl+fP33uv9/9bOrU6mkbQohUbdYFXEU7aJiq5TUG1bBJnyp++9znaCzDMGKeLXPSukqLH+LeNQmgORpm3nq6EG3HF/Ympnkr81vBux+/VlMdambYPct6Si+HCvW7AnTCLHk7CMxkXWNuZubtU21RIcxzPwT+T1UthM2Mt49mC60825zN9DvPfV632tNQBJX1KmH3+P2UVBgOCPG7Ai0XmMBqoq53/fWO1Du5AhNYBqwB1syePbtSotSTXrbwBAVsA2bhc5tngadCBcjzu96W5RjFrYhNxKLxztMY8tZxNtPvvMqX10BWSbc8t3nlpcJefJEcgZl3vG4FofU+an6/m9lI5dBygRnkeYs1zHSv7jhfZs6cmf+xkDOWXVQ1RuEQPMMw5miJMRqmz+/6M4iy8E2g5Akdn98h52L71kLm+e0bRgnZXlerZXZth0E3ztyrfLxDyotq2NG6GQwMqPt42hC/ffmdk26R31Pd9axKnpU4xyeNCcwA6mXccdR0BzI6Q0OEpaq7EoSanHLNAIZUngy/h0G/0TP6aAnnxpssv0MPFVPNrkRV4j1pUul4K3jHTXPDXSDep/XX9Pm4vCTXI+wVtjuvVosapLTfrl0yLvchxztkOFs6uabb6BlTXoLzbK+9SpXVpEf3BDNHpVlD/K5g2k21zQUm8E5gHbANWA9cFuKumRpm+iq5HTXsaIgK7r2PMx4WCk7VsFehit9NTnMfQUcKN5OSYa/VImH/MAM6hOjG/nC3jfC7cjHLOpuoIqECU6J3O4OFCxfqmjVrGva9wcFo9ceWLTvvTZsW7S4YjxUKReiksHYLc+Zkb2QaGIgWWxudg4jcoqoL897r6p0+ydar9AaBqVNbFx4fK1aMFpYQ/V6xojXhMaJlidOmjb7X6s1JRnPpaoGZkN72u2FDpMmNWeTdYh59tNh9o/mk9zqLRH9N45/YdL3A7BTNzbXBo+rGj05mcDDqFvf0kL2TaRxI9joPD0d/x0tYtkPcu5GuF5iN0tyaXYCt+zeaZEx37dpoqmXt2vbsGTSDqnE3YVuBkJmhdrmasdOnETPloUeBV6WVE9ntRsNXOHQQVeI+XmU1hKLluZnln3ZeVlT2atbWyKoFqJsrb6vIO8qnkxqUooKgynKmdimrRetdswW9CcwCVG25Wr4erwsJsb3RbM2pERpPGUFQRei1S1ktGodmC3oTmONIu7Ta3USWoBnPPGiUxlOm7FTx27WNPW/7eqMpKribLehDBWbXT/o0ApuQGX/ql/S4aNayq0atrigz6TgRljMVXfXRNqtEQqRqu1ztqmGq2oRMqxlvLb9RGk+nhrsqNobZ5QLTaC3jPfvbKEHXqeFuBDZLbgLTaCHjqeU3UtB1argnEqECs6uNbxhGFQYHozHLRx+NxtLOOaczxhE7NdzNJNT4hgnMBpIuiLvtFt17+mkrlIbR7pi1ohJU2TJWv11tw4boUu2ObXu23c7oBkzDjKlqb9JlGzHNRLWTaLY6jU7HuuQFqWoMtqcn0iZ9iERWbSYaZkjX6HSsS16QqlaLQhbQTlRTbGar0+gWTGDGVN1JkLXbJ81E3vnTNrswDKPJmMCMqbq9sX67Wn9/dHXq1rUi2NZQo1uY1OoAtAuJMKuyPm3JkokrFH00Iu0MoxNoyaSPiHwe+FvgeeAh4ERVfSbPXbuvwzQMozNp90mfy4G5qjofuB/4ZIvCYRiGEUxLuuSq+qvUzxuAd5f91vbt21m3bh1bt26tHjBjQrDLLruw9957M3ny5FYHxZhgtMMY5knAj8s6XrduHbvuuitz5sxBfIYRja5AVdmwYQPr1q1jn332aXVwDA+duKe9aQJTRFYDf5nxaIWqXhy/swLYATg30onIMmAZwOyMdSpbt241YWmMICL09/fz5JNPtjoohof63WHJ9mFob6HZNIGpqkf5novICcDbgMXqmXlS1ZXASogmfRzfqhBSY6Jh5aH98Vms70qB6UNEjgY+AbxWVbfkvW8YxsSiU3eHtWqW/KvArsDlInK7iHyjReFoCCLCmWeeOfL73/7t3zjrrLPGNQxLly5l1apVmc9OP/10rrnmmqDvfOpTn2L16tUAnHvuuWxJqQEzZsyoHtAMXvWqV5Vy9973vpcHHnigwaExxoNO3R3WEoGpqvup6ktUdUF8fWi8/G6GGbK+vj4uvPBCnnrqqVLud+zYUT0QDp5++mluuOEGFi1aFPT+2WefzVFHRaMp9QKzWfz2t78t5W758uV87nOfa3BojPGgU3eHddXWyHqblY2yUzlp0iSWLVvGl770pTHP1q5dy+LFi5k/fz6LFy/m0bjPsXTpUs444wyOPPJIPvGJT3DWWWdxwgkn8MY3vpE5c+Zw4YUX8vGPf5x58+Zx9NFHs337diASaIcccghz585l2bJl5G08WLVqFUcffTQAN910E+9617sAuPjii5k6dSrPP/88W7duZd999x0J16pVqzjvvPP405/+xJFHHsmRRx458r0VK1bwile8gsMOO4z169eP8e+ss87ipJNO4nWvex377rsv55133sizL37xi8ydO5e5c+dy7rnnjtxPNNfHH3+cRYsWsWDBAubOncu1114LwK9+9SsOP/xwDjroII499lg2bdoEwBFHHMHq1aub2uAYzaFTT77sKoHZqKNRs/jwhz/M4OAgzz777Kj7H/nIR/jABz7A7373O5YsWcJHP/rRkWf3338/q1ev5gtf+AIADz30EJdeeikXX3wx73//+znyyCO58847mTp1KpdeeunI926++WbuuusunnvuOS655BJvuH7zm99w8MEHA3DQQQdx2223AXDttdcyd+5cbr75Zm688UYOPfTQUe4++tGPstdee3HllVdy5ZVXArB582YOO+ww7rjjDhYtWsS3vvWtTD/vu+8+LrvsMm666SY+85nPsH37dm655RbOP/98brzxRm644Qa+9a1vjYQl4Qc/+AFvetObuP3227njjjtYsGABTz31FP/8z//M6tWrufXWW1m4cCFf/OIXAejp6WG//fbjjjvu8KaB0Z4sWRKZ/xsejv62u7CELhOYzRxofsELXsAHPvCBURoVwPXXX8/73vc+AI4//niuu+66kWfHHnssvb29I7/f/OY3M3nyZObNm8fQ0NCIZjhv3jweiQ1LXnnllRx66KHMmzePK664grvvvtsbrscff5xZs2YBkSa83377ce+993LTTTdxxhlncM0113DttddyxBFH5MZxypQpvO1tbwPg4IMPHglTPW9961vp6+tj9913Z4899mD9+vVcd911vPOd72T69OnMmDGDd73rXSMaZMIhhxzC+eefz1lnncWdd97Jrrvuyg033MA999zDq1/9ahYsWMB3v/td1qaMb+6xxx786U9/yg27YTSCrhKYzR5oPv300/n2t7/N5s2bne+kl7xMnz591LO+vj4g0pwmT5488m5PTw87duxg69atnHrqqaxatYo777yTU045JXeH09SpU0e9c8QRR/CLX/yCyZMnc9RRR3Hddddx3XXXBY1xpsPU29vr7Aon8Ui/F2KzYNGiRVxzzTW8+MUv5vjjj+d73/seqsob3vAGbr/9dm6//Xbuuecevv3tb4+42bp1K1OnTs39tmE0gq4SmM0eaN5tt914z3veM6pCv+pVr+JHP/oRAIODg7zmNa8p/f1E8O2+++5s2rTJOSueZv/99+fBBx8c+b1o0SLOPfdcDj/8cGbNmsWGDRu47777ePnLXz7G7a677srGjRtLhzfN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\n", + "image/png": "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c/c+4IADug499NADV61aNegFYt68eZPPPPPMqUceeeQB++yzzyFf+9rXdo/2ffnLX95j2rRpB0+bNu3gBQsW9G+PLN8VK1a0zpgx44ADDzywa9q0aQf/8pe/7ACAH//4x7scdthhB3Z1dR108skn77t+/fomAHjf+9638b777tsl6wtJmVG+k0RkfPj/TghWtqjpbYKQNBYvBqZOBZqagr+LF7tyEFIbCxZg761bB7anW7eiacEC7J33uz/3uc+t+fGPfzxh3bp1AxaanzNnzpSzzz573bJly5746Ec/uq67uztaiQnPPvvs2F//+tfL/v3f//15AFixYsWYu+6665mbbrrpmTlz5rz1hBNOeGPZsmVPjB07tu/GG2/cNSrnsccee/Lpp59+fMuWLU033HDDrrZ6/eY3v+mYMWPGJgA47rjjNj/++OPjAODee+/t2G+//bbce++945YsWdJ++OGHD7Bgv/jFL67Zfffdt99zzz3L7r///mUAsGXLlqZjjjlm41NPPfXEMcccs/Hyyy9PdUc+88wzY++5555lf/jDH57853/+58nbtm2T++67b9x1113X+cADDzy5dOnSJ3/4wx9O+vWvf71TPN/VV189YebMmev/9Kc/PfHkk08+ftRRR21evXp1y9e//vW97r333mVPPPHEk0ccccTmr371q3sAQHNzMyqVytbf/e534/zuUkCZUb57AbhGRJoRCPuNqvrzEutDRhCLFwMXXABs3hx8XrEi+AwAs2eXVy8yMnnpJbRl2Z6FCRMm9J155pnrvvGNb+y+00479ZuNDz30UPttt932LAB0d3e/+pWvfKW/r/VDH/rQay0tO5r3E088cf2YMWP0yCOP3NLb2ytnnHHGGwBw8MEHb1m+fHkbANx22207X3bZZXtu3bq16fXXX2/p6uragmCJxlRefvnl1j322KMHAFpbW1GpVLY++OCDYx988MH2uXPnvrxkyZKde3t75dhjj3W6hFtbW/Wss85aDwDTp0/fdOedd+6SdtxJJ530+k477aQ77bRTz4QJE7Y///zzLXfffXfHKaec8vouu+zSBwDvf//7X1uyZMnOxx57bLRUI44++uhNf/u3fzt1+/btTWecccZr73rXu7Zcf/31Oz/77LNjjzzyyAMBYPv27TJ9+vT+uk6cOLFn1apVra66xykzyvcRDFycmpDCmD9/h5hGbN4cbKegkqLZc0+8uXr1YPHcc0+8WcT3f+ELX3j5iCOO6DrrrLNe8Tm+o6NjgL92zJgxCgSWV0tLizY1BcZ0U1MTenp6ZPPmzXLJJZdU7r///if222+/7fPmzZu8detWqwdz7NixfVu2bOk/5l3vetfGW265ZdfW1lb94Ac/+MbZZ589tbe3Vy677LLkQvaDiNeppaUFPT09knZcdB7RufT09HitmHbyySdvvPfee5/60Y9+tOt555331r//+79/ecKECT3HHXfcGz/72c+Wp+XZtm1b07hx4+x+7wTDog+VkKJZuTLbdkLycOmleGHsWAxofMeORd+ll+KFIr5/jz326P3gBz/42nXXXTcx2nb44Ydvuuqqq3YDgCuvvHLCjBkzvIKD0ti8eXMTAOy5554969evb/rZz36WGtUb54ADDti6bNmy/kjY448/fuOVV165+zvf+c6NkydP7nnttdda/vznP4+dPn361mTe9vb23qi/Mi8nnHDCxltvvXX8hg0bmt54442mW2+9dbf3vve9G+LHLFu2rG3vvffefskll7zysY997JUHH3xw3PHHH79p6dKlHY899tgYANiwYUPTI4880n8+y5cvH3P44YcPqrsNCioZkUyZkm07IXmYMwevfutbWLHXXnhTBNhrL7z5rW9hxZw5eLWoMubPn//S66+/3u9V/N73vrfy2muvnbj//vt3XX/99Z3f/e53nZagiYkTJ/bOnj17bVdX18Enn3zyfoceeugmV55TTz11/T333LNz9Pn444/fuG7dutbjjz9+IwB0dXVtOeCAA7ZElmecc88995WTTz55WjwoqVaOO+64zWefffa6I4444qDp06cfdM4556yNu3sB4Pbbb9+5q6vr4IMOOqjrpz/96W6f//znX548eXLPlVde+dxZZ5217/777981ffr0Ax999NGxALBq1aqWMWPGaKVSyRSV1FALjM+YMUM5ly/xIdmHCgDjxgGLFtHlSwYjIg+o6oz4tocffvi5Qw891MvFOlqZPn36AbfffvszEydO7C27LkXyla98Zfdddtml7+KLLx50/x9++OGJhx566NS0fLRQyYhk9uxAPCsVQCT4SzElpFi++c1vPv/ss8/mDrwabowfP773M5/5TOaXqYZabYaQLMyeTQElpJ6ccMIJTtdwI3LhhReuqyUfLVRC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\n", "text/plain": [ "
" ] @@ -659,6 +807,17 @@ "## Square Simulation" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Square $(X,Y) \\in \\mathbb{R}^{p} \\times \\mathbb{R}^{p}$: $U\\sim\\mathcal{U}(-1,1)$, $V\\sim\\mathcal{U}(-1,1)$, $\\epsilon\\sim\\mathcal{N}(0,1)^{p}$, $\\theta=-\\frac{\\pi}{8}$,\n", + "\n", + "$$X_{|d|}=U\\cos(\\theta)+V\\sin(\\theta)+0.05p\\epsilon_{|d|}$$\n", + "\n", + "$$Y_{|d|}=-U\\sin(\\theta)+V\\cos(\\theta)$$" + ] + }, { "cell_type": "code", "execution_count": 29, @@ -676,7 +835,7 @@ "outputs": [ { "data": { - "image/png": "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ql+9ceKcvr564xYT06ZNwy233IIXXngh6LwEu3fvznQeBy+++CLuu+8+HHfccazjL730Upx44okAGom1WfjFL36R6byhoSF85jOfKbg1EZpGrER0IhHNM5TvMavYCOB12uc5AJ4tvqVTFytWRELceljIa+7ciYOyYM89/cfUMdUg7j1vVV2cwMdHL8M29NvPL5fr/1arQK1W7+qkY+7ciODPOadR+h4ZAV7zGqsUaophWH7RHlj1yHxgwQJg/vxMutWenh4sX74cX/jCFxp+Gx4exsKFCzF//nwsXLgQ62MJftmyZbjoootwwgkn4O///u+xcuVKLF26FO9617swODiIW265BR//+Mdx0EEH4aSTTsKu2LXr0ksvxWGHHYZ58+Zh+fLl8Bmvb775Zpx00kkAgPvvvx/vf//7AQDf+973MGPGDOzcuRM7duzAAQccMN6um2++GZOt9GQAAA//SURBVFdeeSWeffZZnHDCCTjhhBPG61uxYgXe+ta34sgjj8Tzzz/fcL2VK1fi7LPPxvHHH48DDjgAV1555fhvl19+OebNm4d58+bhiiuuGP8+kYSfe+45HHfccTj44IMxb948rF69GgDwox/9CEcddRQOPfRQnH766dgau70de+yxuPPOO5szMXEdXptRANwNYIHltx4ATwPYH0AfgIcBvMVXpwQI8JH43ht3DEic+LOmD0w73puCAgzBCNtUfRaqpH3OOH/bLgKu9FNxQMJjP/gB0a9+NVEefpjohReiv/pnCky8EoCBgQF6+eWXqVqt0h//+Ef67Gc/S5dccgkREb3nPe+h66+/noiIrr32Wjr11FOJiGjp0qV0yimn0O7du4mI6JJLLqFjjjmGdu7cSQ899BDNmDGDbr/9diIiOu200+jWW28lIqKRkZHx637oQx+i2267bby+b3/72w1t+/CHPzx+zK5du2hwcJCIiC6++GJasGAB3XvvvXT33XfTGWec0VBPtVqlzZs3j9cFYLyuj33sY/SP//iPDde75JJL6KijjqIdO3bQ5s2badasWbRz505as2YNzZs3j7Zu3UpbtmyhAw88kB588MHx/iMi+tznPkf/9E//REREu3fvpj/96U+0efNmOvbYY2nr1q1ERPTpT3+aPvWpT41f78QTT6Q1a9Y0tOOxxx5r+A6dHtKqlHqfUmojgKMAfF8pdUf8/Z8r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\n", + "image/png": "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bBVCTEl8d0BbW9v1CJbQsRHDqAJ4dGBg4IKZM2dulm0w5ki3u7sbq1evzloNBoMxxkBEycIjaGtru/6ggw46esqUKS/ncjmO1Y1zVKtV2rJly4wXXnjhegTL+urAb2YMBoORHm+eMmXKq0y4DADI5XJiypQp26CpTseky2AwGOmRY8JlxBE+D0puZdJlMBgMBqNFYNJlMBiMUQwimnnhhRceGn2+7LLLDrz00kun6vbxjY9+9KPdN9544/6y3z71qU+94ec//3mXzTif/exnp/7kJz/ZGwAuv/zyA7Zv3z7EUYVCoSltKY877rij0uz3vve977BHHnlkgut+TLoMBoPRIqxYgUlTp+ItuRxmTp2Kt6xYgUmNjtnR0SFWrly5//PPP58qMXbPnj2NqqDEiy++mF+zZk3nmWee2W+z/Xe/+93nPvShD20HgGuvvfbA/v7+pnPUQw899KR5q3qUy+XNy5Yt07U2lYJJl8FgMFqAFSsw6ZJLUHr+eXQIATz/PDouuQSlRok3n8+LT3ziE1uuuOKKA5O/rV27tuPEE0884ogjjphx4oknHvGXv/ylAwgs0wsuuODQE0444YjFixcfeumll079yEc+0n3yySdPP+SQQ95y880377do0aJDjzjiiBnvfOc7p7/22msEAJ///OcPfvOb33z09OnTj5k7d26pWq1qdbvlllv2nz179qsAcM899xROP/30NwFApVLZb+LEiW/bvXs37dy5kw499NC3RHrdeOON+3/9618/YPPmze3vete7jjjhhBOOiMZbsmTJIUceeeSMY4899qhNmzbVvWRceumlU88+++zu448//shDDz30LV//+tcPiH776le/euD06dOPmT59+jGXX3750PeRBd3b29s+a9asI4866qgZ06dPP+YXv/hFFwD86Ec/2uetb33rUTNmzDj6zDPPPGzbtm05ADjjjDP6V61atY/rSwuTLoMxhtDTA3R3A7lc8LenJ2uNGBEuvxyH7N5dO+fu3o3c5ZfjkEbH/sIXvrD5Rz/60aS+vr6adpuLFi2adu655/atXbv28Y9//ON95XL5DdFv69atm/ib3/xm7fe+971nAaC3t3fC3Xff/fQPf/jDpxctWvTG00477dW1a9c+PnHixOodd9yxb3ScRx999Im//OUvj+3atSt3++2376vT67e//W3XrFmzdgDAKaecsvOxxx4rAMD999/fdfjhh++6//77C/fcc0/ncccdV2MJ/8M//MPmAw44YM9999239ve///1aANi1a1fuxBNP7H/qqaceP/HEE/uXL18+pf6IwNNPPz3xvvvuW/vHP/7xiW9961tTX3vtNVq1alXh1ltvLa5Zs+aJ1atXP/H9739/ym9+85u94vvdcMMNk2bPnr3tySeffPyJJ5547IQTTtj5/PPPt11xxRUH33///Wsff/zxJ972trft/Md//McDASCfz6NUKu1+4IEHCjI9VBhz63QZjPGKnh5g4UJg587gc29v8BkA5s3LTi9GgBdeQIfL9y6YNGlS9eyzz+77xje+ccBee+01ZH4+9NBDnT//+c/XAUC5XH7pa1/72lDs9yMf+cjLbW3DFPCe97xn24QJE8Txxx+/a3BwkM4666xXAeCYY47ZtX79+g4A+PnPf773t7/97YN2796de+WVV9pmzJixC8A2lV4vvvhi+4EHHjgAAO3t7SiVSrsffPDBiQ8++GDnkiVLXrznnnv2HhwcpJNPPtnofm5vbxfnnHPONgCYOXPmjl/96lf7yLY7/fTTX9lrr73EXnvtNTBp0qQ9zz77bNu9997bNWfOnFf22WefKgC8973vffmee+7Z++STT94V7feOd7xjx9/93d9179mzJ3fWWWe9fNJJJ+267bbb9l63bt3E448//igA2LNnD82cOXNI18mTJw9s2rSp3aR7HGzpMhhjAT09eNf53di+M4f16MZcBCbuzp3A0qUZ68YAABx0EF53+d4VX/7yl1+89dZbJ+/YscNqXu/q6qrxDU+YMEEAgQXX1tYmcrlgmFwuh4GBAdq5cyd97nOfK/3oRz9at3bt2sfPO++8rbt379Yea+LEidVdu3YNbXPSSSf133nnnfu2t7eL97///a/+7ne/6/rd737XNXv27O0mfeM6tbW1YWBggGTbRecRncvAwIBVj4Ezzzyz//7773/qkEMOeX3BggVvvOqqq4pCCJxyyimvPvnkk48/+eSTj69bt+6xO+64Y6hIymuvvZYrFAp6H3sCTLoMRjPgw89rMUZPD/CZyT3Ycd5CHDrYixwEutGL72HhEPFu3NjIiTB84bLL8NeJE1EzQU+ciOpll+GvPsY/8MADB9///ve/fOutt06OvjvuuON2XH/99fsDwLXXXjtp1qxZVglN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\n", "text/plain": [ "
" ] @@ -706,6 +865,13 @@ "## Diamond Simulation" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Diamond $(X,Y) \\in \\mathbb{R}^{p} \\times \\mathbb{R}^{p}$: Same as above except $\\theta=-\\frac{\\pi}{4}$." + ] + }, { "cell_type": "code", "execution_count": 31, @@ -723,7 +889,7 @@ "outputs": [ { "data": { - "image/png": "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JCKLcrIkBQQ4Y2Jigk2bNrFz5852dyWgg7DHHnuw//7709+fTWvsj44mWRH5S+DROB3bS4gk7/E2dytgDmHTpk3sueeejIyMIJJNJhYwH6GUYnx8nE2bNnHAAQc03V67XbiuAo4BFonIJqJ0e/0ASqkvE2USGhOR3cCTwJvLSuAREACwc+fOQLABdRARKpUKZdl22kqySqnschjZ/79ASM8WUBLWrIFVq2DjRli8GFavhkMOIRBsQAPKfCY63fAVEFAK1qyBlSthwwZQKvpcuRK2b8/fNyCgGQSSDZgXWLUKdmRSke/YAX/6U3v6EzB/EEg2YF5gYypd9nLWsI4RJunhLyc3wXh7bakiwvve977p3//8z//M+eefP6t9WLFiBVdfnc0RHuE973kPN954o1M7H/7wh7nuuusA+NznPseO1JtteLjZhTT0eOlLX1povze/+c387ne/K7k3jQgkGzAvsDhe7Wo5a7iElYywgR4UfUxGuoOYaMfH4e67Ye3a6DPLv2vWwMgI9PREn2vWNN+3BQsW8M1vfpPHHivmmbh79+78SgXx+OOPc+utt3L00Uc71f/IRz7C8ccfDzSSbKvws5/9rNB+Y2NjfPKTnyy5N40IJBswL7B6NQwOwsdYxRCZgT81BQ89xPh4xLe74oVvdu2q41+jXrdZou3r62PlypV89rOfbfhvw4YNHHfccSxZsoTjjjuOjbFIvmLFCt773vdy7LHH8vd///ecf/75nHHGGbzyla9kZGSEb37zm7z//e/n4IMP5sQTT2RiYgKISPCwww7joIMOYuXKleQ561x99dWceOKJANx+++288Y3Riuvf+c53WLhwIbt27WLnzp0ceOCB0/26+uqr+fznP8/DDz/Msccey7HHzqzuvmrVKl70ohdxxBFH8OijjzYc7/zzz+fMM8/kmGOO4cADD+Tzn//89H+f+cxnOOiggzjooIP43Oc+N709kZAfeeQRjj76aJYuXcpBBx3ETTfdBMAPf/hDjjzySA455BBOPfVUtm3bBsDLX/5yrrvuupa+pCCQbEA3oQkxcnQULr4YFpuW2dq1i4ceivg2jZh/AbNed9Uq524Y8Y53vIM1a9bwxBNP1G1/5zvfyVvf+lbuvvtuRkdHede73jX93/333891113Hpz/9aQB+//vf8/3vf5/vfOc7vOUtb+HYY4/lnnvuYeHChXz/+9+fbu/nP/85v/rVr3jyySf53ve+Z+3XT3/6Uw49NFpn8pBDDuGXv4xWZr/ppps46KCD+PnPf85tt93G4YcfXrffu971Lp75zGdy/fXXc/311wOwfft2jjjiCO666y6OPvpoLrnkEnS47777+MEPfsDtt9/OP/7jPzIxMcEdd9zBZZddxm233catt97KJZdcMt2XBF/72td41atexZ133sldd93F0qVLeeyxx/joRz/Kddddxy9+8QuWLVvGZz7zGQB6enp49rOfzV133WW9Bs0ikGxAd6AEMXJ0FHqqi/V/DgxMS7BZJNs3GvjZtN0HT3va03jrW99aJ7kB3HLLLZx22mkAnH766dx8883T/5166qn09vZO/z7ppJPo7+/n4IMPZnJycloCPfjgg1m/fj0A119/PYcffjgHH3wwP/7xj/n1r39t7dcjjzxCEqbe19fHs5/9bO69915uv/123vve93LjjTdy00038fKX5y8SPDAwwGteEyXUO/TQQ6f7lMWrX/1qFixYwKJFi9h333159NFHufnmm3nDG97A0NAQw8PDvPGNb5yWVBMcdthhXHbZZZx//vncc8897Lnnntx666385je/4aijjmLp0qVcccUVbNgwk0hr33335eGHH87tezMIJBvQHShLjEz0Bmn09MB++zEwoN8l2b7YwM+m7b54z3vew1e+8hW2W/zK0v6bQ0NDdf8tWLAAiCS0/v7+6bo9PT3s3r2bnTt3cu6553L11Vdzzz33cPbZZ+eGEy9cuLCuzstf/nKuvfZa+vv7Of7447n55pu5+eabnXS26T719vYap+nJeaTrucQgHX300dx4443st99+nH766Xz1q19FKcUJJ5zAnXfeyZ133slvfvMbvvKVr0zvs3PnThYuXJjbdjMIJBvQHWhWjExUDaefDgsXQqUCItDbG31/6CEO3rWWF3EnL+JODmUtB3M3FRlnv/2iJnT8PDgYbS8De++9N29605vqSOClL30pX//61+NTWMPLXvaywu0nZLlo0SK2bdtm9CZI4/nPfz4PPPDA9O+jjz6az33ucxx55JHss88+jI+Pc9999/HCFzYmyNtzzz3ZunVr4f6mcfTRR/Ptb3+bHTt2sH37dr71rW81SM8bNmxg33335eyzz+ass87iF7/4BUcccQQ//elPp89hx44d3H///dP7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\n", + "image/png": "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5+3Tp09/UwRX8MhkMjx9+vSdcHo/Kj+vc3vKIKLVbkm2JzSfn0lEO93SZL8jIpsKMoIgCPUiI4IrBHF/E0p9Tbt7+RY4qem+Y1hnHTN/wPC5IAiCIDQFqXq6zPwgnAT7giAIQgyIaM6nPvWpmd77q6666rArr7xyRj3b8LGPfazr5ptvPkT12WWXXfaWe+65xypP+2c+85kZP/jBDw4AgOXLlx+6a9euUY1qa2tLUjZTy0knnXRcnO0+8IEPHP34449PirpdM4zpnkZEjxHRPUR0vG4lIlpEROuJaP327dvr2T5BEAQrVq7E1Bkz8I5MBnNmzMA7Vq7E1KT7zOVyvHbt2kNefvnlWD2XQ0NDSZug5dVXX81u2LCh/dxzzx2wWf/f/u3fXvrIRz6yCwBuuOGGwwYGBmquUY8++ugz4WtV0tPTs23FihXaymE6Gl10HwFQYOYTAFwD4Ae6FZl5FTPPZea506dHKT8qCIJQe1auxNQrrkDh5ZeRYwZefhm5K65AIanwZrNZ/vjHP77961//+mHBzzZu3Jg77bTTjjnmmGNmn3baacf84Q9/yAGOZ/rJT35y5imnnHLMkiVLZl555ZUzPvrRj3adfvrps4488sh33HrrrQcvXrx45jHHHDP7z//8z2ft27ePAOBzn/vcEW9/+9vfNmvWrOMXLFhQKJVKxrbddttth8ybN+9NALjvvvvazj777D8BgGKxePDkyZPfuXfvXhocHKSZM2e+w2vXzTfffMjXvva1Q7dt29b67ne/+5hTTjlltFzn0qVLjzz22GNnn3DCCcdt2bKl4iHjyiuvnHH++ed3nXzyycfOnDnzHV/72tcO9T778pe/fNisWbOOnzVr1vHLly8fXe550H19fa1z58499rjjjps9a9as43/yk590AMD3vve9A0888cTjZs+e/bZzzz336J07d2YA4JxzzhlYt27dgVEfWhpadJn5TWYecP9eC6CViKal3CxBEITILF+OI/fuLb/n7t2LzPLlODLpvv/u7/5u2/e+972p/f39Wf/yxYsXd1544YX9GzdufOpv/uZv+nt6et7iffb8889P/uUvf7nxxhtv3AoAfX19k37xi188d9dddz23ePHio84666w3N27c+NTkyZNLd95550HecZ544omn//CHPzy5Z8+ezB133HGQqV2/+tWvOubOnbsbAM4444zBJ598sg0AHnzwwY63vvWtex588MG2++67r/2kk04q84T/8R//cduhhx469MADD2z89a9/vREA9uzZkznttNMGnn322adOO+20gWuuuUbpXT333HOTH3jggY2//e1vn/6Xf/mXGfv27aN169a13X777fkNGzY8vX79+qe/853vTP/lL385xb/d6tWrp86bN2/nM88889TTTz/95CmnnDL48ssvt3z9618/4sEHH9z41FNPPf3Od75z8Ktf/ephAJDNZlEoFPY+/PDDbXbfkkPagVRGiOhwAK8yMxPRyXAeEvpTbpYgCEJkXnkFuSjLozB16tTS+eef3/+Nb3zj0ClTpoy6n48++mj7Pffc8zwA9PT0vPaVr3xldOz3ox/96OstLWMS8N73vnfnpEmT+OSTT94zMjJC55133psAcPzxx+958cUXcwBwzz33HPCtb33r8L1792beeOONltmzZ+8BsFPXrldffbX1sMMOGwaA1tZWFAqFvY888sjkRx55pH3p0qWv3nfffQeMjIzQ6aefHtr93NrayhdccMFOAJgzZ87un/3sZweq1jv77LPfmDJlCk+ZMmV46tSpQ1u3bm25//77O+bPn//GgQceWAKAv/zLv3z9vvvuO+D000/f42136qmn7v7bv/3brqGhocx55533+rve9a49a9asOeD555+ffPLJJx8HAENDQzRnzpzRtk6bNm14y5YtrWFt95P2lKE1cGqpHktEW4noE0S0mIgWu6ucB+AJInoMwL8DuKBa9U6FCURvL9DVBWQyzmtvb9otEiYghx8OZY1o3fKofOELX3j19ttvn7Z7926r+3pHR0dZ3/CkSZMYcDy4lpYWzmSc3WQyGQwPD9Pg4CB99rOfLXzve997fuPGjU9ddNFFO/bu3Ws81uTJk0t79uwZXedd73rXwN13331Qa2srf/CDH3zzoYce6njooYc65s2btyusvf42tbS0YHh4mFTreefhncvw8LBVCdtzzz134MEHH3z2yCOP3L9w4cKjrr322jwz44wzznjzmWeeeeqZZ5556vnnn3/yzjvvHE2Qsm/fvkxbW5u5jz1A2tHLC5j5CGZuZeaZzPyfzLySmVe6n1/LzMcz8wnMfCoz/yrN9gpNSG8vsGgR0NcHMDuvixaJ8Ap156qr8MfJk1F2g548GaWrrsIfq7H/ww47bOSDH/zg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\n", "text/plain": [ "
" ] @@ -753,6 +919,17 @@ "## Two Parabolas Simulation" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Two Parabolas $(X,Y) \\in \\mathbb{R}^{p} \\times \\mathbb{R}$: $\\epsilon\\sim\\mathcal{U}(0,1)$, $U\\sim\\mathcal{B}(0.5)$,\n", + "\n", + "$$X \\sim \\mathcal{U}(-1,1)^{p}$$\n", + "\n", + "$$Y=\\left((w^{T}X)^{2}+2\\kappa\\epsilon\\right)\\cdot\\left(U-\\frac{1}{2}\\right)$$" + ] + }, { "cell_type": "code", "execution_count": 33, @@ -770,7 +947,7 @@ "outputs": [ { "data": { - "image/png": "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wVou+QTn7bf/OpT5o729neuvv778jnmYP3FukmwKqBsq/UTNFt4NDcFfnSuVDrF///4sWLCAm2666YBtGzZsoLW1lcmTJ9Pa2sorni1j3rx5XH755Zx++ul8/vOfZ/HixcydO5czzjiDlpYW7rnnHq688kqOPfZYzjzzTPbu3Qs4wXfiiScyadIkFixYQDEXw+XLl3PmmWcC8Jvf/IaPfvSjANx3330MHjyYPXv2sGvXLo444oiefi1fvpwlS5awadMmTj/9dE4//fSe4y1atIi/+7u/45RTTmHz5s0HtLd48WLmz5/P+973Po444giWLFnSs+2++77O7NmT+Md/nMT3v39zz/oZM4bR3Ax79rzOjBkzmDJlCpMmTeKXv/wlAA8++CDTpk3j+OOP57zzzmP79u0ATJ8+nZUrV0byYEpyqszYCerwmpaS5gCBarFu3brAdSuVDnHo0KH6zjvvaHNzs7799tt6ww036NVXX62qquecc47eeeedqqp622236bnnnquqqnPnztWzzz5b9+3bp6qqV199tZ522mm6Z88eXbt2rQ4ePFjvv/9+VVWdNWuW3nvvvaqq2tXV1dPunDlzdMWKFT3H+/GPf3xA3y688MKeOnv37tWWlhZVVb3iiit06tSpunr1al21apXOnj37gOM0Nzfrli1beo4F9Bzrc5/7nP7bv/3bAe1dffXVOm3aNN21a5du2bJFR44cqXv27NE1a9bopEmTdMOG7fr449v08MMn6N13P6lvvumun6rqjTfeqF/+8pdVVXXfvn36l7/8Rbds2aLTp0/X7du3q6rqddddp1/60pd62ps5c6auWbPmgH6Ucl+4c63MvZFUKCFAIMl+rEYCqKQf4EEHHcSFF17IkiVLGDx4cM/6xx9/nHvuuQeACy64gCuvvLJn23nnnUdDQ0PP8llnncWAAQM49thj2b9/f4+meeyxx/Ky51bxi1/8guuvv56dO3eydetWJk6cyIc+9KG8/Xr99dfJuO3179+fI488kmeeeYbf/OY3XH755Tz22GPs37+f6dOnFz3HxsZGzjnnHABOOOEEHnrooZz1zj77bAYOHMjAgQMZM2YMmzdvZvXq1XzkIx9h/PihjB8PbW0fZfPmX9LUdFzPfieeeCLz589n7969zJo1iylTpvDoo4+ybt06TjvtNAD27NnDtGnTevYZM2YM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\n", + "image/png": "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L7985Jlnnjn2iCOOOGj06NEf/d73vrdzCszvfOc7+4wbN27CuHHjJsyYMWPn8kQJeunSpX0mTpx40Pjx45vHjRs34Xe/+90ggHvuuWfPQw89dHxzc/PBJ5988gHr16+vAzjppJM2/OEPf9gz34sWBV0RqXkdHTB2LNTVBY8dHeXPw4wZjNqyZddz7pYt1M2YscuczgX5xje+seqee+4Zunbt2vrk5dOmTRtz9tlnr120aNHCz3/+82vb2to+lHhtyZIl/R9//PFFP/vZz5YDLF26tN9DDz20+O677148bdq0/U844YT3Fy1atLB///5dd911116J/bz44osvvfrqqws2b95cd+edd+6VLV9/+tOfBk2cOHEjwHHHHbdpwYIFjQCPPfbYoA9/+MObH3vsscaHH3544GGHHbZLSfhb3/rWqr333nv7o48+uujPf/7zIoDNmzfXHX300RteeeWVhUcfffSGa6+9dsTue4TFixf3f/TRRxc99dRTL/3whz8cuXXrVvvDH/7QePvttw97+umnX5o/f/5Lt95664jHH398QPL7brrppqGTJk1a//LLLy986aWXFhx55JGbVqxY0fD9739/v8cee2zRwoULXzr88MM3ffe7390HoL6+nqampi1PPvlkY27fUqDm7tMVEUnW0QEXXQSbNgXPly4NngO0tpYvHytX0jef5fkYOnRo15lnnrn2mmuu2XvAgAE7i5/PPvvswPvvv38JQFtb27tXX331zrbfz372s+saGrpDwOTJk9f369fPjzjiiM07duywM844432ACRMmbH799df7Atx///17/OhHP9p3y5Ytde+9915Dc3PzZmB9pny98847ffbZZ59OgD59+tDU1LTlmWee6f/MM88MvOSSS955+OGH99ixY4cde+yxPVY/9+nTx6dMmbIeoKWlZeO8efP2TLfeiSee+N6AAQN8wIABnUOHDt2+fPnyhkceeWTQpz/96ff23HPPLoC///u/X/fwww/vceyxx25OvO+oo47a+OUvf3ns9u3b684444x1xxxzzOY77rhjjyVLlvQ/4ogjxgNs377dWlpaduZ1+PDhnW+++WafnvKeTCVdEalpV17ZHXATNm0KlpfTvvuyLZ/l+briiiveuf3224dv3Lgxp/P6oEGDdqkb7tevn0NQgmtoaPC6umAzdXV1dHZ22qZNm+xrX/ta0z333LNk0aJFC6dOnbpmy5YtWffVv3//rs2bN+9c55hjjtkwd+7cvfr06eOnnHLK+0888cSgJ554YtCkSZM+6Cm/yXlqaGigs7PT0q2XOI7EsXR2duY0he3JJ5+84bHHHntl1KhR284///z9r7vuumHuznHHHff+yy+/vPDll19euGTJkgV33XXXzkFStm7dWtfY2Ji9jj2Fgq6IVLxiqoeXLctvealcdRVv9e/PLifo/v3puuoq3opi+/vss8+OU045Zd3tt98+PLHssMMO23jjjTcOAbj++uuHTpw4MacOTels2rSpDmDfffftXL9+fd29996btrdysoMOOmjLokWLdvbwPf744zdcf/31e3/sYx/bMHLkyM5169Y1vPbaa/1bWlq2pL534MCBOxLtp8U64YQTNtx3332DP/jgg7r333+/7r777hvyyU9+cpdAv2jRor6jRo3a/rWvfW3N1KlT1zzzzDONxx9//Mb58+cPevHFF/sBfPDBB3XPP//8zuN5/fXX+x122GG75T0bBV0RqWiJ6uGlS8G9u3o418A7Zkx+y0tl2jTe/fGPWbrffmwzg/32Y9uPf8zSadN4N6p9XHnllSvfe++9nXXGs2fPXnbbbbcNP/DAA5vvuOOOYbNmzXqz0G0PHz58R2tr6+rm5uYJJ5988ocPOeSQjT2959RTT13/6KOP7pF4fvzxx29Yu3Ztn+OPP34DQHNz8+aDDjpoc6IEm+y8885bc/LJJ49L7khVqOOOO27T2Wefvfbwww8/uKWl5eBzzjlndXLVMsADDzywR3Nz84SDDz64+Te/+c2Qf/7nf35n5MiRnddff/0bU6ZMOeDAAw9sbmlpGf/CCy/0B3jzzTcb+vXr501NTXn1pMqp2F1NJk6c6Bp7WaR2jB0bBNpUTU3wxhs9vz+1TRegsRFuuCG/Nl0ze9rdJyYve+6559445JBD1uS+ld6npaXloAceeGDx8OHDd8SdlyhdffXVe++5555dl1122W7f/3PPPTf8kEMOGZvufSrpikjJxVk93NoaBNimJjALHvMNuFK4H/zgB8uXLFlSdGexSjN48OAdF198cd4XXAq6WVTCbQYi1a4SqodbW4NScVdX8KiAWz4nnHDCxiOPPHJzz2tWl0svvXRtnz55dVwGFHQzKvZEIVJtSnWRWWzv4Zkzg+rgZI2NwXKR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\n", "text/plain": [ "
" ] @@ -800,6 +977,20 @@ "## Circle Simulation" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Circle $(X,Y) \\in \\mathbb{R}^{p} \\times \\mathbb{R}$: $U\\sim\\mathcal{U}(-1,1)^{p}$, $\\epsilon\\sim\\mathcal{N}(0,I_{p})$, $r=1$,\n", + "

\n", + "

\n", + "
$X_{|d|}=r\\left(\\sin(\\pi U_{|d+1|})\\prod\\limits_{j=1}^d \\cos(\\pi U_{|j|})+0.4\\epsilon_{|d|}\\right)$ for $d=1,...,p-1$
\n", + "\n", + "$$X_{|d|}=r\\left(\\prod\\limits_{j=1}^p \\cos(\\pi U_{|j|})+0.4\\epsilon_{|p|}\\right)$$\n", + "\n", + "$$Y_{|d|}=\\sin(\\pi U_{|1|})$$" + ] + }, { "cell_type": "code", "execution_count": 35, @@ -817,7 +1008,7 @@ "outputs": [ { "data": { - "image/png": "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woQJPPXUUzzxxBMcfPDBPd53xhlnMGbMGB544AEeeOABALZu3cohhxzCihUr+MxnpvHAA7/sFse6OsfzHzwYXnzxRe655x6efPJJzj33XEaP3slLL/2Z3//+Gq699gmuueZxbr31l3R2PtPjmjfeeCOf+9znWL58OStWrGDSpEls2LCB8847j46ODp5++mmmTp3KxRdfDEBNTQ377bcfK1as6PvB+/f3vC9GcPJ2XonIocBhwCgROStr14eA2qgNM5JBlOOsP/ShD3HyySdz2WWXMWjQoO7tf/rTn7j55psBmDVrFt/73ve6951wwgnU1n7w9Tv66KPp378/+++/P7t37+72NPfff39Wr14NwAMPPMBPfvITtm3bxsaNGxk/fjxf+tKX8tr15ptvMmrUKMDxrPfbbz9eeOEFnnzySc466ywefvhhdu/ezRFHHOH7Gevq6vjiF78IwJQpU7jvvvuYOLHvcV/4whcYMGAAAwYMYPTo0eza9RZr1jxKc/PxDBo0hLo6OP74L/Pcc49w5JEHdL/vwAMP5JRTTmHnzp0cd9xxTJo0iYceeohVq1Zx+OGHA7Bjxw4OPfTQ7veMHj2adevWdT88uhkzxvfzGMHwygqoA4a6x+yRtf3vOHFWowooNmk7aKrQmWeeyeTJk/na1/KH7bNTw4b0Gu41YMAAwPHE+vfv331sTU0Nu3btYvv27cyfP59ly5ax9957c8455/iOOBs0aFCPY4444gjuuusu+vfvz/Tp05kzZw67d+/mwgsv9L4J0MOm2travE3wzOfIPm7wYOXDH4apUzN29X3ftGnTePjhh7njjjuYNWsW3/3udxk+fDhHHXUUN910U85rbd++vceDLAiKT6EWowd5QwGq+pCqngscoqrnZi0Xq2oR3YpGGikmaTuTKpTpaMmkCuVKhh8xYgRf+cpXWLJkSfe2ww47jF/96lcAtLe386lPfapo+zMCOXLkSLZs2ZI3CyCbT3ziE7z66qvd69OmTeOSSy7h0EMPZdSoUXR2dvLiiy8yPkdP+R577MG7775btL3ZTJs2jd/97nds27aNrVu3csstt/TxktesWcPo0aM5/fTTOfXUU3n66ac55JBDeOyxx7o/w7Zt23j55Ze73/Pyyy/ntN2L3VRGofRyFbwOEmO9SkSGZVZEZLiI3BONOUbSKGYEWKEjtb7zne/0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\n", + "image/png": "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m9/8ZjAAzJo16/AdO3YciFHV1dWFLLNpafz48WOd9+rrS1/60nFvvvlm/1yfx6BLRBSQuXMxtLYWJ5eVoaG2FifPnYuhhb5mZWWlLlq0aMimTZvySoz97LNsK2x648MPPyx/+eWXB06ZMmWnm/3/8z//c+OFF164AwDmzZt3xM6dO32PUa+++urbznv11dra+tHs2bOPzPV5DLpERAGYOxdDb7oJdZs2oVIV2LQJlTfdhLpCA295ebleeeWVW2699dYjMh9buXJl5ZlnnjlmzJgx9WeeeeaYd999txIwaqbXXnvtyNNPP31MW1vbyJtvvrn2oosuGjVp0qTRI0aMOHn+/PmHtbS0jBwzZkz9X/3VX43et2+fAMC3vvWto0466aQTR48ePe6yyy6r6+npsS3bAw88MKSxsfFTAHj66aerzz333L8AgEQicVhVVdVpe/fuld27d8vIkSNPTpXr3nvvHfKjH/3o8I8++qjf5z//+TGnn376gSU0b7jhhhEnnHBC/SmnnDJ23bp1fS4ybr755tpLLrlk1MSJE08YOXLkyT/60Y8OrAT2gx/84IjRo0ePGz169LhZs2YduD9Vg16zZk2/CRMmnDB27Nj60aNHj/vDH/4wCAAeffTRQ0499dSx9fX1J06ZMuW47du3lwHAeeedt/O55547JNeLFgZdIqIAzJqFEXv39j7n7t2LslmzMKLQ1/72t7/90aOPPjq0s7OzPP3+lpaWYy6//PLOlStXLv/a177W2draenTqsdWrV1c9//zzK3/xi1+sB4A1a9b0f+qpp1Y98sgjq1paWo4955xzPl25cuXyqqqqnocffvjQ1Pu89dZbK959991le/bsKXvooYcOtSvXH//4x0ETJkzYBQBnn3327mXLllUDwJIlSwYdf/zxe5YsWVL99NNPDxw/fnyvmvD3v//9jw4//PDPnn322ZV/+tOfVgLAnj17ys4888yd77zzzvIzzzxz5x133DG87zsCq1atqnr22WdXvvTSSyt+8pOf1O7bt0+ee+656gcffHDYyy+/vGLp0qUr7r///uHPP//8gPTn3XPPPUMbGxu3v/3228tXrFix7PTTT9+9adOmiltvvfWoJUuWrFy+fPmK0047bfe//uu/HgEA5eXlqKur2/viiy9Wu/uWDEU3TpeIKIo2b0ZlLvfnYujQoT2XXHJJ52233Xb4gAEDDlQ/X3311YGPPfbYagBobW395Ic//OGBvt+LLrpoa0XFwRDQ1NS0vX///jpx4sQ93d3dcvHFF38KAOPGjdvz/vvvVwLAY489NvinP/3pkXv37i3btm1bRX19/R4YS1Nm9eGHH/Y74ogjugCgX79+qKur2/vKK69UvfLKKwNvuOGGD59++unB3d3dMmnSJMfm5379+umll166HQAaGhp2LV68+JBs+5177rnbBgwYoAMGDOgaOnToZ+vXr6945plnBk2dOnXbIYcc0gMAf/u3f7v16aefHjxp0qQ9qeedccYZu6677rpRn332WdnFF1+89ayzztqzYMGCwatXr66aOHHiWAD47LPPpKGh4UBZa2pqutatW9fPqezpQq3pisg9IvKRiLxl8biIyH+JyCoReUNETgu6jBRPySQwahRQVmb8TSbTHhw3DhDJf2tqCulTUZwdeST253J/rr73ve99+OCDD9bs2rXL1Xl90KBBvdqG+/fvr4BRg6uoqNCyMuNlysrK0NXVJbt375ZvfvObdY8++ujqlStXLp82bdrHe/futX2vqqqqnj179hzY56yzztq5cOHCQ/v166df/vKXP33hhRcGvfDCC4MaGxt3OJU3vUwVFRXo6uqSbPulPkfqs3R1dblawnbKlCk7lyxZ8s6IESP2X3XVVcf+/Oc/H6aqOPvssz99++23l7/99tvLV69evezhhx8+MEnKvn37yqqrq+3b2DOE3bx8H4wFwa1MATDa3GYAmBNAmSjmkklg55VteG+NoFsF768RXD5NoKmguXx5YW/Q0dEnEKsIOstq0CzJvkHeZZktLxKoKNxyCzZUVaHXCbqqCj233IINXrz+EUcc0f3lL39564MPPliTum/8+PG77r777iEAMG/evKETJkxwldCUze7du8sA4Mgjj+zavn172e9+97us2crpTjjhhL0rV648kOE7efLknfPmzTv8L//yL3fW1tZ2bd26teK9996ramho2Jv53IEDB3an+k8Ldc455+xctGjRYTt27Cj79NNPyxYtWjTkC1/4Qq9Av3LlysoRI0Z89s1vfvPjadOmffzKK69UT548edfSpUsHvfXWW/0BYMeOHWVvvPHGgc/z/vvv9x8/fnyfstsJNeiq6hIAn9jscgGA+9XwIoDDROSoYEpHfvM00LS1HQiAl08TzOiZgzIA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\n", "text/plain": [ "
" ] @@ -847,6 +1038,13 @@ "## Ellipse Simulation" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Ellipse $(X,Y) \\in \\mathbb{R}^{p} \\times \\mathbb{R}^{p}$: Same as above except $r=5$." + ] + }, { "cell_type": "code", "execution_count": 37, @@ -864,7 +1062,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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zDnpwIEDx2JUSUnJJHdK29ukSZNOt9+qry9+8YunvvXWW/2TfR6DLhGRTxYswLCyMpxVUICqsjKctWABhqW7z6KiIl2+fPnQHTt2pJQYe/ToUfuNUrRz587Q6tWrB06bNu2gk+1/9rOfbb/yyisPAMDChQtPPnjwoOcx6rXXXltvv1VfDQ0NH86dO3dkss9j0CUi8sGCBRh2112o2LEDRarAjh0ouusuVKQbeEOhkN544427fvSjH50cu27Dhg1FU6ZMGT9+/PjKKVOmjH/nnXeKAKNmeuutt44+99xzxzc2No6+++67y6666qqxF1xwwbjy8vKzlixZMmTmzJmjx48fX/nZz3523OHDhwUAvvWtb40688wzzxg3btzE6667rqKnp8eybA899NDQmpqajwHghRdeKLn44os/CQBNTU1DiouLz+ns7JT29nYZPXr0WZFyPfDAA0N/+MMfnvThhx/2+/znPz/+3HPPHR/Z3x133FE+YcKEyrPPPvv0LVu29DnJuPvuu8uuueaasZMnT54wevTos374wx+eFFl3zz33nDxu3LiJ48aNmzhnzpxjj0dq0G1tbf2qq6snnH766ZXjxo2b+PTTTw8CgCeeeOKET3/606dXVlaeMW3atFP3799fAACXXHLJwZdeeumEZE9aGHSJiHwwZw7KOzt7/+Z2dqJgzhyUp7vvb3/72x8+8cQTw/bs2ROKfnzmzJljrr/++j0bNmxo/cpXvrKnoaHhlMi6TZs2Ff/5z3/e8Otf/3orALS1tfV//vnnNz7++OMbZ86c+YmLLrro4w0bNrQWFxf3PPbYYydGjrNmzZp177zzztqOjo6CRx555ESrcv3lL38ZVF1dfQgALrzwwva1a9eWAMCqVasGnXbaaR2rVq0qeeGFFwZOmjSpV034e9/73ocnnXTS0ZUrV27461//ugEAOjo6CqZMmXLw7bffbp0yZcrBX/ziFyP6HhHYuHFj8cqVKzf8/e9/X/df//VfZYcPH5aXXnqp5OGHHx6+evXqdS0tLet++9vfjvjzn/88IPp5ixcvHlZTU7N//fr1revWrVt77rnntu/YsaPwRz/60ahVq1ZtaG1tXXfOOee0/+AHPzgZAEKhECoqKjpfeeWVEmefkiHnrtMlIgqiDz5AUTKPJ2PYsGE911xzzZ577733pAEDBhyrfr722msDn3rqqU0A0NDQ8NH3v//9Y32/V1111d7CwuMhoLa2dn///v118uTJHd3d3XL11Vd/DAATJ07seO+994oA4Kmnnhr8k5/8ZGRnZ2fBvn37CisrKzsA7E9Urp07d/Y7+eSTuwCgX79+qKio6Hz11VeLX3311YF33HHHzhdeeGFwd3e3XHDBBbbNz/369dNrr712PwBUVVUdWrFixQnxtrv44ov3DRgwQAcMGNA1bNiwo1u3bi188cUXB1166aX7TjjhhB4A+Kd/+qe9L7zwwuALLrigI/K8884779Btt9029ujRowVXX3313vPPP79j6dKlgzdt2lQ8efLk0wHg6NGjUlVVdayspaWlXVu2bOlnV/ZoGa3pishiEflQRNYkWC8i8nMR2Sgib4rIOX6XkTJjfW0jekSgNguilshjXVKIfykNIxzuu99wGBg7FigoMG7jbUPkhZEjcSSZx5P13e9+d+fDDz9ceujQIUe/64MGDerVNty/f38FjBpcYWGhFhQYuykoKEBXV5e0t7fLN7/5zYonnnhi04YNG1rr6+t3d3Z2Wh6ruLi4p6Oj49g2559//sFly5ad2K9fP73ssss+fvnllwe9/PLLg2pqag7YlTe6TIWFhejq6pJ420VeR+S1dHV1OZpjYNq0aQdXrVr1dnl5+ZGbbrrpE7/85S+HqyouvPDCj9evX9+6fv361k2bNq197LHHjg2Scvjw4YKSkhLrNvYYmW5efhDAJRbrpwEYZy4zAMz3oUzkkbgBLxwG+vfvEzwnNM9HAQCxWaJFHitEN+7bU4/r63sH5m0TazFjBtDWBqgatzNmxA+8iYJzYyNQWGjssrDQuG+1PVHE7NnYVlyMXj/QxcXomT0b29zY/8knn9x92WWX7X344YdLI49NmjTp0P333z8UABYuXDisurraUUJTPO3t7QUAMHLkyK79+/cX/OEPf4ibrRxtwoQJnRs2bDiW4Tt16tSDCxcuPOkzn/nMwbKysq69e/cWvvvuu8VVVVWdsc8dOHBgd6T/NF0XXXTRweXLlw85cOBAwccff1ywfPnyof/wD//QK9Bv2LChqLy8/Og3v/nN3fX19btfffXVkqlTpx5qaWkZtGbNmv4AcODAgYI333zz2Ot57733+k+aNKlP2a1kNOiq6ioAH1lscgWA36rhFQBDRGSUP6WjZFkFnnDYCHDnt4WxU0vxXpsYQbG+HjjS+0Q/XkBNVrzAXNbajIPtgh4YSxcEV7SHMWtW77KXlgJf/Wrf4FxbC8yfD3R3G/vr7jbu19bCcTCn/DVzJj766U/RNmoUjogAo0bhyE9/iraZMy1/A5Mya9asD/bt23eszXj+/PmbH3roodLx48dXLl26dPi8efO2pLrv0tLS7rq6ul2VlZUTp02bdtrZZ599yO45l19++f6VK1cOjtyfOnXqwT179vSbOnXqQQCorKzsmDBhQkekBhtt+vTpu6dNmzYuOpEqVRdeeGH79ddfv+ecc845o6qq6owbbrhhV3TTMgA888wzgysrKyeeccYZlU8++eTQf/3Xf91ZVlbWtXDhwvevvfbaU8ePH19ZVVV1+ltvvVUMAFu2bCns37+/VlRUJJVJlfGp/URkLIA/qmqfYbNE5I8A7lXVP5n3mwH8m6q2xGw3A0ZNGGPGjKlqa+szRCp5LBJU29uPP1ZSAixaBNQhjM76W9EfxglhugHVTZFvfweKcCsWYynqXNt3RQXw/vuu7Y4yTERWq2p19GNvvPHG+2efffbuTJUpG1RVVU145plnNpaWlnZnuixu+v73v3/SCSec0HPXXXf1+fzfeOON0rPPPntsvOdlunnZTrzf5z5nCaq6SFWrVbV6xIi4CW3ksVmzegdcAGhtL8f19QLU16MYna7UYN0WKVMJjiCMevRA8CFsW80caWtjkzPRj3/8462bNm1KO1ksaIYMGdJ9++23J33CFfSguxXAKVH3RwPYnqGykIXNm4///Qs0ogeCMdgeuCBrJRKAS7EPPRAcRj9ch9QjpQibnIkuuuiiQ+eee26H/ZbZ5c4779zTr19SicsAgh90lwG40cxiPg/AflXdkelCUV+3DwvjEPqjB4KvY77rtVpNsMRu44ZI2YvQhTDq8Qs0oqQEqKmJv31NjdGU3msfYgTbaO3tRosAEeWvTF8ytBTAywAmiMhWEblFRGaKyExzk+UA3gWwEcCvATRmqKhZy/Os2nAYEMF9e+pRgiNpBdtEgbUHAmlogKj2WRC17C2rjBuU0wnGAuDrmI+D7YIVzYIXKhsRMocfCIWAhgZgxQqj77qiwgi2FRV9A25EdIsAEeWfTGcvX6eqo1S1n6qOVtXfqOoCVV1grldV/bqqflJVz4pNoCJrkeQmz5o4a2uB+noAqQXa2OC4XcpQAO2znFrRA8ybZ7mvcBg4Zd/aXs8bVKIINymkoQE9iF87diL6RGJq63x0zWiEKtDVdbxYdXVG0lRPj3FbURF/X2PGOD8uL0Miyj1Bb16mNMRLbnKliTMcBgYMAJqbU3p6JPi9VFSDh5uO11hffGhbn2bakhJg7lz7fVq+1nnzUBCpHdfUJGyedmz+fKNKW1ubcJO5c/s2OTt9LYAPJ0yUMzIxy1CqM/MQg25OS9SUmVYTZ6R225nU9eDHyfGm4s8dXoG6qCt06ur6NtMuWoRe2yTi+LWuWHG8ebqpCQiFUg/Czc1AUfykzHReC+DhCRPlnHRnGUpFqjPzEINuTkvUlJlME+cxjY1G9EildhsKAU1NRpWtx7qpOLaZ1mmQSum11tUBXV14uMloij6AAckH3qNHjfbfOFXQVF8LkPgkoq2Nzc1ZbcGCYSgrOwsFBVUoKzsLCxakPbVfKrMMRfNzZh5i0M1p6TZxHhMZiikVDQ1G52cyEScF6bzWSK30UxXteA41ydd6VYGbbnI1ClqdLLC5OUstWDAMd91VgR07imDM7VeEu+6qcCPwpjLLUDS/ZuYhBt2clm4TJwCjhptK7TZSs7VJgHJLuq81Uiu9WFccb3ouTKK1rqvLaHbv39+VSBjvJCIWm5uzzJw55YidIKCzswBz5qQ9tV/0LEPRj7/22msDZ8yY8RFgzDK0evXqQfGeH5mZZ9SoUXFn5jnxxBN7IjPzRD/vvPPOO7R06dLSu+++u+xvf/vbgKFDh/a8+OKLAyMz85x++umVjzzyyPDNmzfn3OAYqWLQzXEpN3FGkqWSreHW1BjB1uOabTzpNOfG3dnRo8bJw/Dhzp935IgRfC2SrJwePvokIhFegpRFPvggfuBJ9HiSkp1lKJqfM/PkOwZd6mvixOSSpYqKjtdsV6zwtmx+q6sDdu82msmT0dwMDE1vOMnokwg3LkGiDBs5Mv4UfokeT5Lbswx5NTNPvmPQpd7Ky4HWVufbV1YChw9npGbrq3nzjBOLZOzbZ99G7JBr/fOUObNnb0Nxce+5V4uLezB7titT+wHuzjLkxcw8FIBZhtxWXV2tLS0cQyMltbXJ9d82NPjWZxsojY3JNbuXlQHb0v9dDYeNPtzNm40a7ty5uX+uEySuzDK0YMEwzJlTjg8+KMLIkUcwe/Y2zJzp2tR+FAxWswz5dl0XBVg4DNx2G3DIdnpMQ74G24h584ALLgBuvdVZE/z27cYJTZpN73V1DLJZb+bMjxhk8xublx3K2SH5wmGj/9ZpwK2pye+AG1FXB3R0GM3rTjQ3G33lppz9PhGRJQZdB3J6SD5z7GRHamrSrq3lXLBZu9Z54G1tBYYOze3vExFZYtB1IGeH5HOa5CNiJBG5EHBzMtisXZt43r9Y+/bhlJtrLb9POXdiktt6enp6smnaaPKY+X3oSbSeQdcBT8YwzrTaWqN51E5NjXHNigudiTl78gIYJySqRtKUjc8eacYv4sxSuXlzDp+Y5K41u3btOpGBlwAj4O7atetEAGsSbcPsZQfGjjV+/GJVVBjXUWadiROdXRbkcsJUQUH8eWZFjLieMxxkgSuAAxiAE3H8LCRyLW5OfddySLzs5dWrV59UWFh4P4AzwUoMGTXcNV1dXbdWVVV9GG8DBl0HIrWP6FpaSUkKQypmUORykzfbSjAYHfbz3w4ZAuzd62oZcu7kxYqDE5vowBv5Pt1wQ56cmGSheEGXKFk8M3PAlTGMMyhy0rCyrdxZwC0ocD3gAnk2wMPatcaJiwUBMBgd+CUaMX268X1ydWYoIgocBl2HXB3X12ezZgF/aZ+IMdhuH3AHDAC6uz0pR7afvCRt717bBCsBcBsWYfly435enZgQ5SEG3TywqK0Wn0KrfcAtKuqb6eSybD55ScmKFbbjNofQjUVtxgQJeXdiQpRnGHRzXTiML6DZPuACwOLFXpcmZ1le5jNvntGCkIAA+AKajZMe5OGJCVEeYdDNdfX1zgJuUxN/3VPk6DKf9nZgwAAkSlsUwJhKMM2ZiYgo2Bh0c1nUsIOWGhoYcNPg+Prj9nZIQ0PCwAvAmJmIF+US5SxeMpSrnM4Y5MGlQfkm6euPrWalB4DiYmcDl5CveMkQuYE13VwUDjsLuAMGMOC6IJnLfMJhYFVRjXVtt7PTtXl4iShYGHRdEqjxcm+4wdl2Hmcq5wunl/lE+n4/f2SFddAFjJouAy9RzmHQdUHgxst10mXQ1OR9OfKE08t8ovt+69GUeET0iI4Oo5uAiHIG+3RdEJThDcNh4Cv1ghBgnbGc75PQZ0hs3+91CCMM6+xyBfCJCsXcucx1yzT26ZIbWNN1QRBmIQqHgcvqS+wDbgAnoW9sBAoLjVpiYaFxPxfF9vEuRR2ehU3/LoAn2yZypiGiHMGg64JUx8t1sx+467ZGZ+MqpzknrtsaG4H584+PPNndbdxPJvBmsj89mWPH6/u9qmQFjvazHjjjU2jFFe3h3JgCkSjfqWpOLVVVVeq3pibVkhJVo/HQWEpKjMfdfI6VbkjvncVbUt25h0Kh+EUNhZw93+33MRmpfu4VFaoixu2xbW0+u06EVMT710SJAWjRAPzGccnuJeMFcHvJRNBVtfgxTaCiQuP+vlZUpHb8HruAO2RIajv2mFWRnXDjfUz2s3Pz2Mc0NFi+GT2APjiwIYUdk1sYdLm4sTCRKkNcndC9sRE6f75103JAP+fCwviTGoVCQFeX/fPTfR/TmSvZ1c8QAMrLge3bE65WwGjPoIxgIhW5gX26GeLqvKl2ATfAlwfNmJHc47HSfR8dD+HowbH72LbNcrUAvISIKMsx6GaIa/Omlpdbr+/fP9DXmsybZ1zBFAoZ90Oh5K5oSvd9TCfz3JO5b22mAURzs6uZYoEa1IUoH2S6fdvtJVN9uqlItS/xGJt+wKAmT7ktnfcx3X7ZtD/DeOw+00GDXDhIZpPQshHYp8vFhYV9utnMbuD8mprAXSIUNOn06XrGpm8XgCt99EEZ1CVbsE+X3MDm5WzlpB2QAdeW0yEcfWXTtwvAlb7dIAzqQpRvGHSz1Z13Wq+vqfGnHDmgrs6o2fX0GLeB6AK3+/yczCJlw/VEMCKyxaCbrfbssV7PWm52W7ECKCuz3ibN8TI9SQQjIksZDboicomIvC0iG0XkO3HW3yQiu0TkdXO5NRPlDJyJE63XV1b6Uw7yll0z8/z5ae0+kE3rRDmuMFMHFpEQgF8B+AKArQD+LiLLVLU1ZtNHVfV23wsYVLW1QGvsWxQlFALWrvWvPOSt4mJjUvtEwuG0omRdHYMskZ8yWdOdDGCjqr6rqkcAPALgigyWJzvY9eUtWeJPOcgf999vvf6WW/wpBxG5IpNBtxzAlqj7W83HYn1JRN4UkcdF5JR4OxKRGSLSIiItu3bt8qKswWDXhzd8OKstuaauDigqSrz+8OHcnQuRKAdlMujGu8g09uLDPwAYq6qfArACQNxqnKouUtVqVa0eMWKEy8UMELs+vPvu86cc5K/Fi63XL1rkTzmIKG2ZDLpbAUTXXEcD6DUigKruUdXD5t1fA6jyqWxJC8Rweqzlpi0Qn2Msu8813owRRBRImQy6fwcwTkQ+ISJFAK4FsCx6AxEZFXX3cgDrfCyfY5FRjdrajIGC2tqM+67+YNvtzG7MXrLly+eYqgKbf1VOhECUFTI6DKSIXArgZwBCABar6lwRmQNjjNNlIvIfMIJtF4CPADSo6nqrfWZiGEhfhtMrLjb67xLJseE8MyHQwyI2Ntp3L/A74CkOA0lu4NjLLnB9XtVY4TBQX594fVmZs6EDyZLnn2O6Bg0CDh1KvD6Z6ZkoaQy65Ia8HpHKrf47z4fTsxvykQHXFYEfFnHhQuv1aQ6WQUTey9ug62b/nefD6dkN+UiuCPywiEyUI8p6eRt0Z83qPZ0bYNyfNSv5fXk6nJ7dWcDAgS4chIAsGRYxFLJez2t2iQItb/t0A99/F1Faal3TbWoKWFQgT9klVIVCQFeXf+XJI+zTJTfkbU038P13EVYBd9AgBtwsllJOgV2iFK/ZJQq0vA26ge+/A+ybChcs8Kcc5Lq0cgo4ixRR1srb5mXA+IGbNQvYvNmo4c6dG7CKo8QbKdM0cCBw8KB/ZSFXpX1NsNV3g5cOeYLNy+SGvA66gWf1w8q+3KyWdk6B1XcjcIkJuYFBl9yQt83LWY8BN6ulnVNg1cScYyfSRLmEQZcoA9LOKVi71vUyEZH3GHQDJDqbdV3hxD7zHDp5XrIjawVyVp084Pk1wZwAgSiYVDWnlqqqKs1GTU2qJSWqRtugak/kj0RLgucBxv2mpuSPmcxzKXOamlQrKlR/iQbr7wm5CsZELBn/jeOS3QsTqQIiNpu1B4KEqTKDBgEHDsR9XoSTLNhAz6pDcUUuNYqMpmb5Pcmx/+1MYyIVuYHNywGxefPxv38B59fnRj8v0f6cHDPZ51JmxBu+NCH2FRAFDoNuQERnrTZifuLaC9Cr4y+dLNisGZWLjok9IepAUeKN7WanIiLfMegGRHQ2q2XAtXhehNMs2KwYlYt6iT0huhWLEyfccXYqosBh0A2I6GxWSzGzzKSTBZsVs+p4LNuyt2NPlJYijz4sohzARKog4khUvohNSgKMgBb0E4/Y4Uvfa2MylR+YSEVuYNANmnAYqK9PvD7HPq9MypnsbauTNH5fXMOgS25g83LQMPnFN3mRvR309nKiPMOgGzRMfvFNzmRvDxyYeN2tt/pXDiKyxaCbhIwn3RRZXB5CScuZ7O2FCxOv6+z0rxxEZItB16G0Jh1PhlWtZfFilw+W37ItezvhSV9QC0xEfVgmUolICMC9qvpt/4qUHq8SqXxLuhk8OP7k9MXFQEeHiweibGKbac1kKs8xkYrcYFnTVdVuAFUiVv/R+cG3pJt4ARdgM2Geizf8Y3u78TgRZQ8nzcuvAXhSRG4Qkasii9cFCxpfkm6YaUoJpHXS12gzljcR+cZJ0B0GYA+AiwBcZi5f9LJQQeRL0s3Mma7sJuMJX+S6tE765s93tSxElLpCuw1U9at+FCToIrkq0SMBzZ3rcg5LoqZlwIigDsT2/UUSvgDm22SzuXPj9+keO+kbNMj6+0NEgWD7Sy7Iy9U9AAAcVElEQVQio0XkdyLyoYjsFJH/EZHRfhQuaOrqjKSpnh7j1tcgdtttjjZj319uss20jprukYiCy0n16QEAywCUASgH8AfzsZwWuCbaefMcbZYXoyzlKcuTPjZjOBa4/23KK06C7ghVfUBVu8zlQQAjPC5XRvl2Ta4HcmaUJSIPZPP/NuUGJ0F3t4jUi0jIXOphJFblrGxuos2ZUZaIPJDN/9uUG5wE3ZsBfBnABwB2ALgaQE4nV6XSROtKk1Wiy6GTuEw620ZZIvITu18o02yzlwGcoqqXRz8gIhcAyNmv6Zgx8UefStRE61rGcEEB0N0d//Ek1NUxyBLFk+z/NpHbnPya/8LhYzkj2SZa15qs4gVcq8eJKCnsfqFMS1jTFZEpAM4HMEJE7o5adQKAkNcFy6Rkr8llkxVRdvDlensiC1Y13SIAg2AE5sFRy8cw+nVzWjLX5HqdMazgJQ5Ebsno9faU9xLWdFV1JYCVIvKgqsbpBaEI29GCXBDph+IIU0RE2ctJn+79IjIkckdEhorIMx6WKev4nTHMSxyIiLKTk6Bbqqr7IndUdS+Ak9w4uIhcIiJvi8hGEflOnPX9ReRRc/1fRWSsG8f1gt9NVuwvJiLKPk6Cbo+IHOudFJEKGN2MaRGREIBfAZgGoBLAdSJSGbPZLQD2quppAH4K4D/TPW6u4CUORETZx8l1urMA/ElEVpr3PwdghgvHngxgo6q+CwAi8giAKwC0Rm1zBYB7zL8fB/BLERFVTTvoZzNe4kBElJ1sa7qq+jSAcwA8CuAxAFWq6kafbjmALVH3t5qPxd1GVbsA7AcwPHZHIjJDRFpEpGXXrl0uFC14OMJUZnBwfCJyk21NV0QEwCUATlXVOSIyRkQmq+rf0jx2vLENY2uwTraBqi4CsAgAqqurc64WLDD6iclfnJuYiNzmpE93HoApAK4z7x+A0Rebrq0ATom6PxrA9kTbiEghgBMBfOTCsYlscXB8InKbk6B7rqp+HUAncCx7uciFY/8dwDgR+YSIFAG4Fsa8vdGWAZhu/n01gOfzvT+X/MORxojIbU6C7lEz01gBQERGAOhJ98BmH+3tAJ4BsA7AY6q6VkTmiEhkgoXfABguIhsB3A2gz2VFmcT+vtzGuYmJyG1Ogu7PAfwOwEkiMhfAnwD8yI2Dq+pyVR2vqp9U1bnmY7NVdZn5d6eqXqOqp6nq5EimcxBYTYadK8E4V15Hqjg4PhG5TZy01orI6QBqYOT0NKvqOq8Llqrq6mptaWnx/Dhjx8afImz4cKCjo++QkI4yjq3mzfW5VT02iQhI4nXkkHA4iwbHD9D3JxeJyGpVrc50OSi7JQy6IvK/AB4G8HtVPeRrqdLgV9AtKEjud6yiwkEGcoB+NBOdVDh6HZQZAfr+5CIGXXKDVfPyIgBfBPC+ORTjlWbCEyH5fj1HyTdlZck97iEmERERuS9h0FXVJ1X1OgBjADwBI4t4s4gsFpEv+FXAoErU3ze8z9AdBkdBeseO5B73EJOIiIjc52REqg5VfVRV/xnAxQAmAXja85IFXKKZhe67L43km0RNgBloGmQSERGR+5yMSHUygC/DuI52FID/BvBVj8uVFerqEifVZE3yTQKR8mb76yAiChKrRKqvwRiFagKM5uVHVPXPPpYtJX4lUnmCiTCUDn5/PMVEKnKDVU33fAD3AlihqmkPhkFERJTvrBKpvqqqzzLgBkS+jUxByeH3gygrOBmRioLgttsyXQIKsltuyXQJiMiBhEFXRJaLyFj/ikJoaEi87lDWjE9CmXD4cOJ1Vn29ROQrq5rugwCeFZFZItLPp/Lkt3nzMl0CykUzZ2a6BERkSphIpaqPmUNBzgbQIiIPIWp2IVX9iQ/lI6J08WSOKDDs+nSPAjgEoD+AwTELEfkk32d8IsoVCWu6InIJgJ/AmEj+HFVtT7QtEXkndsanyDSSAAcrIco2VjXdWQCuUdXvMOAGBKs3eWnWrN5TLALG/VmzzDu1tb6XiYhSY3Wd7mdVda2fhSEb06dnugTHsLnTP7YzPjU3+1YWIkoPr9MNmuLixOu6u/0rh4VIc2dbmzG6YKS5k4HXG2nN+BQKuVoWIkoPg27Q3H9/pktgy7a5k1yV1oxPS5Z4UiYiSg2DbtBkQWYMJ7j3V6JpJB19VWI2YrcAUWbZTu1HFGvMGKNJOd7j5I2E00gmkUTFLGiizGNNN4is+uECUDXhBPcBkkQSFbsFiDKPQTeIItWPeAKQwZxWcyf5J2Ysb3YLEGUeg24G2ParWQ3bF5AM5ro64P33gZ4e45YBN4BivkdpZUETkSsYdH3myuU2AWhipuzDbgGizGPQ9Zkr/Wp33ulqmShLJXnyxW4Bosxj0PWZK/1qe/a4UhbKcjfdlPRT0u0W4CVHROlh0PWZ4341qwntiWprga6uxOs9+P5wJDKi9DHo+sxxv5rdHKj8pctvdpcKeTCHLi85Ikofg67PkupXK7D4eFJoWqQ8MXy4J7vlJUdE6WPQzQDH/Wq33ZZ4J11dQGOjB6WjrHfffZ7slpccEaWPQTfI7JoI58/3pxwULHZdCx6lI/OSI6L0MegSZZsbbsjIYXnJEVH6OOFB0A0cCBw6lOlSUFA0Nhqpw4lUVnp6+IQTLxCRI6zpBtyfblwIi59Y9uvmG7suhbVr/SkHEaWEQTfAwmHgH5fUoQuSeCP26xIRZQ0G3QCLXBc5HQ9Z13aTmFOVMiutEZ3sPueamvSPQUSeErXqH8pC1dXV2tLSkuliuEKiKrg9EKv6rnU/HwVC7CTygJH96zgZSSy/AYBq+seghERktapWZ7oclN1Y0w2w6Lns1TrkUkBF1zqnT/d+RCeOGkUUbBkJuiIyTESeE5F3zNuhCbbrFpHXzWWZ3+XMtOipc+dhpnUTM9sQAyd2rOJEUyE7GtHJLmGuqMhyXxw1iigYMlXT/Q6AZlUdB6DZvB9Ph6p+2lwu9694wVBRcfzvO2AzUAan+wuceLXOeByN6GSXMLd4seW+OGoUUTBkKuheAWCJ+fcSAFdmqByBFjsC0LOoSVzb3bMnZ2u72ZoY5KR26WhEJ7tablPTsQ5bjhpFFHCq6vsCYF/M/b0JtusC0ALgFQBXWuxvhrldy5gxYzQbNDWpVlSoihi3TU3OtusxWirjLxUVvpXfL01NqiUlvV9mSUni9ytIKirif0yhkP3n3ksolPgzD4X6bO70u0XJAdCiGfi95JJbi2fZyyKyAsDIOKtmAViiqkOitt2rqn36dUWkTFW3i8ipAJ4HUKOqm6yOmw3Zy2llmDrIYM0lY8cafaKxKiqMySKCzLVMYqvPvKHBk2n8qC9mL5MbPGteVtVaVT0zzvIkgJ0iMgoAzNsPE+xju3n7LoAXAUzyqrx+CYfTzGKN7uiNp7w85bIFUTYnBrkyVrHV5ynCgEuUZTLVp7sMwHTz7+kAnozdQESGikh/8+9SABcAaPWthB6I1HzSymKdOxfo1y/x+u3bs6fT04FsTwxyPI1jPLW1xueZyMyZaZaOiPyWqaB7L4AviMg7AL5g3oeIVIvI/eY2ZwBoEZE3ALwA4F5Vzeqga5fN6iiQ1NUBDzxgvU2GZqHxQrYkBnmS7NXcbL2etVyirMMRqXxUUJC4yzXpvj67vt3KypwZ/D4cNk5YNm82Tkzmzg3W6EqejAJVW2sfdHPsfzfo2KdLbmDQ9VGipKBQCFiyJMkf6H79gK4u621y7LMNKk+SvexOqgYNAg4cSHHnlAoGXXIDh4H0UaKm0qQDLgA8+KD9NjnUtxtkGUn2WrDAw50TkVcYdH3kSjZr9M4aGqy3yaG+3SBzPdnLLgN9yJCU262zdaARolzBoOuztLJZY9kl0qjm3CVEQeRqsldjo3XGMgDs3ZvCjvuOBd3WBtTXA6WlDL5EfmHQzXZ21+3a/YBT2lxrwQiH7cdYbmpKuZyJsuf37DGCMQMvkfeYSJXtwmHg5puBI0cSb1NWBmzb5l+ZKDVW6e0Rafy/2u0+G0b5yiQmUpEbWNPNdnV1x2aYSWj7duMSFAquxkb7gFpZmdYh7PqYs2GUL6Jsx6CbC+rq7C8xsbvmkzLLrlkZSPu663h9z9GyZZQvomzGoJsrHnrIfhu7KeIoM5wku9XUpH2YSN/z8OF91wVxlC+iXMSgmyvq6oCiIuttnNSmyF/l5fbJbkOGACtWuHK4ujpg924jH8uVS9eIKCkMurnErm8XYIpqkITDzrLLU7xEyIqrl64RkWMMurmkrs6+GbK+Pq+SqgI9GER9vf02dgOgEFFWYdDNNStWAIWF1ts0NwMTJ/pTngyKNxhEYK5HtcpoiqipCdRMQoE+gSHKEgy6ucjJuMytrTn/qxlvMIj2duPxjCovBzo6rLcRca0f1w2BPoEhyiIMurkoMi6z3WVEN9/sT3kyJCMTEdixm5gegALOstF9FNgTGKIsw6Cbq+bNAx56CJbDLRw5Agwd6leJfOf6RARusLleWgFsQRnCCFZmUyBPYIiyEINuLqurw3OosQ68+/blbOB1dSICN9i8zwrgCApQgW2Bq0EG8gSGKAsx6Oa4GRUrcAQh641yNPC6OpViusrLjffZRjG6AQSvBhm4ExiiLMWgm+PmzgVm9ltiXdsFcjrwZvx6VAfT9SmAzSg7dj9oNchAncAQZTEG3RxXVwfUPlCHl4psmpkBI/Dm0TW8vqittR0JTAHsxhCMhTETVFBrkIE4gSHKcgy6eaCuDvjc4RWQIUPsN25uZuB1S0mJo4kmtlfW4DMVe1mDJMoDDLr5ZO9eYxxfO3kyeIanROyvxQWAIUNQvnaFJzVIDmZBFDwMugHiy4/k3r321+8CxuAZTma/yTOOPiO7iSciRDwZVxngYBZEQcWgGxC+/kg6HXhh+/acTK5KlaPPqKQEOHrU2Q49HACDg1kQBZOo2qbXZJXq6mptaWnJdDGSNnas8SMeq6LCaHJ0XTgM3HILcPiw/bYiRoDI845G289o6FBHlwUBMMZV9nCYx4IC48QglojRjE3JE5HVqlqd6XJQdmNNNyB8H/Gnrg7o7HQ2ObqqMSNOnvfzWn5GjY3OA25Dg+fjKnMwC6JgYtANiIz9SK5YAVRWOtu2tdUy8OZ64k68z+J1TES3iu1lQceo+jJzEAezIAomBt2A8PJH0jYYrl0LlJXFeWYcra1xE4XyIXEn9jN6HRPxKbTCQVqaoanJi2LFxcEsiAJKVXNqqaqq0mzV1KRaUaEqYtw2Nbmzz5ISVSMUGktJSYJ9DxnSe0O7JWonFRXxN6mo8P41+qmhQTUUUr0OTdrj9H0Syb4XSn0AaNEA/MZxye4l4wVwe8nmoOsFp8HwmLKy+E+wCSgiiVdHNDWp9uvXe32/fu6dXHgdzJuaVBcUNGg34DzgDhnifkEoIxh0ubixsHk5xyWdoLVtm5Ho45QaSVYPlDTGXR3dD3rnnX2vpjl61Hg8Hb40bU+ciOvrBTN65qMAcNak3NDg2XW4sXK9P50oVzDo5riUErTmzUu6//HGQ/OxoKB34I3tk96zJ/5zEz3ulKfXpIbDRqdoq9F367j/tqHBl4QpID/604lyBYNujks5QauuLqkarwCY0TMfPRB0oQAPDmz0LXHHs8utGhuNS6WS5WPABTgQBlE2YdDNcWllsSZZ443UBENQTD80H3U39+9V3Ro+PP7zEj1uJbo5tSDBtzjZy63CYeBfSsN4X8ZCRaBOLwOKGD7ceL8sAq4XzcC+X+NNRKnLdKey2wsTqTzS0KBJJVjFLpWV2tSkWlTU++GiouSTnuJlZMcuCTO0E1hX06A9ySRIxS4NDSmVO9lyxpN0shylBEyk4uLCkvECuL0w6HqjqUn1juFN2pVOYAK0Y+BwvWN4U1pZxomCTCiUQvZyTY1qOq8pFHJ8MK+Co1fBnHpj0OXixsKxl8lWJFEn0m/4NGpxMZqdJxUlUllpDMyRpLTHFS4pcTbtnp0kx0/2cjzkcNjow9282WhWnzuXA2G4jWMvkxvYp0u2YhN1LsEK1KEJBzAwvR23thoRR8SISI3xLzuKZZeRHdtvur628fhxnM5za6WszIieSY6f7OVQn3V18GROXiJyF4Mu2YqXkLMUdThRDhqJQ07m57WjaoxfHB0cRdBV2B//UhrulXiUKCP70kuB5wtrcX294L02QbcatxOak0yISiSSKLVtm6PNY4P/pZf2LbeI8TgR5YeMNC+LyDUA7gFwBoDJqhq3PVhELgFwH4AQgPtV9V67fbN52X2Oph2cONGouXog9huq6Hu9bA+On0G6cArQW1NT0lXH2CZ5wAi4U6YAzz/fu5m5pITjImcDNi+TGzJV010D4CoAqxJtICIhAL8CMA1AJYDrRMThdDjkJkfX+q5da0SSpiYjGrtIYpaCOI+Fov52TVFRSgEXSHzt7Isv9u3X5TW1RPkjI0FXVdep6ts2m00GsFFV31XVIwAeAXCF96WjWEld6xvpXFQ9HoTdaH72U2WlUfbDh1Oufia6Rra7O7ntiSi3BLlPtxzAlqj7W83H+hCRGSLSIiItu3bt8qVw+SblRJ26OuNJTufszZSmpuMnCilkVMdKlBwVCiW3PRHlFs+CroisEJE1cRantdV41aO4HdCqukhVq1W1esSIEakXmrwTaX4OUvCNJEaput6hmqhJfsYMTi5PlM88C7qqWquqZ8ZZnnS4i60ATom6PxrAdvdLSr6KBN/IUlPjyWE0ZgEADBzYu0a7e7dn2UuJmuTnzePk8kT5LKODY4jIiwC+FS97WUQKAWwAUANgG4C/A7heVS3b/pi9nAPCYWO+P4fTDyl6Zy8DgCQ5cAWRHWYvkxsy0qcrIv8sIlsBTAHwvyLyjPl4mYgsBwBV7QJwO4BnAKwD8JhdwKUcUVdn1EKja8QWi6giZN5GFgZcIgqiwkwcVFV/B+B3cR7fDuDSqPvLASz3sWhERESeCXL2MhERUU5h0CUiIvIJgy4REZFPGHSJiIh8wqBLRETkEwZdIiIinzDoEhER+SSjI1J5QUR2AYgz+6ulUgC7PShOOoJWJpbHGstjL2hlSrY8FarKwd0pLTkXdFMhIi1BG94taGVieayxPPaCVqaglYfyA5uXiYiIfMKgS0RE5BMGXcOiTBcgjqCVieWxxvLYC1qZglYeygPs0yUiIvIJa7pEREQ+YdAlIiLySV4GXRF5VEReN5f3ReT1BNu9LyJvmdu1eFyme0RkW1S5Lk2w3SUi8raIbBSR73hYnh+LyHoReVNEficiQxJs5+l7ZPd6RaS/+XluFJG/ishYt8sQdaxTROQFEVknImtF5M4420wVkf1Rn+Nsr8pjHs/y/RfDz833500ROcfj8kyIeu2vi8jHIvKNmG08fY9EZLGIfCgia6IeGyYiz4nIO+bt0ATPnW5u846ITHezXEQAAFXN6wXA/wUwO8G69wGU+lSOewB8y2abEIBNAE4FUATgDQCVHpXnYgCF5t//CeA//X6PnLxeAI0AFph/XwvgUQ8/o1EAzjH/HgxgQ5zyTAXwRz++M07efwCXAngKgAA4D8BffSxbCMAHMAaV8O09AvA5AOcAWBP12P8B8B3z7+/E+z4DGAbgXfN2qPn3UL/eLy75seRlTTdCRATAlwEszXRZHJoMYKOqvquqRwA8AuAKLw6kqs+qapd59xUAo704jg0nr/cKAEvMvx8HUGN+rq5T1R2q+qr59wEA6wCUe3EsF10B4LdqeAXAEBEZ5dOxawBsUtVkR4hLi6quAvBRzMPR35MlAK6M89R/BPCcqn6kqnsBPAfgEs8KSnkpr4MugM8C2Kmq7yRYrwCeFZHVIjLDh/LcbjYBLk7Q/FUOYEvU/a3w50f/Zhi1pXi8fI+cvN5j25gnCfsBDHe5HH2YzdiTAPw1zuopIvKGiDwlIhM9Lord+5+p7wxgtDwkOqH18z0CgJNVdQdgnDwBOCnONpl8ryhPFGa6AF4RkRUARsZZNUtVnzT/vg7WtdwLVHW7iJwE4DkRWW+eRbteJgDzAfwAxo/oD2A0e98cu4s4z035mi8n75GIzALQBSCcYDeuvkexRYzzWOzrdfU9cUJEBgH4HwDfUNWPY1a/CqM59aDZL/97AOM8LI7d++/7+wMAIlIE4HIA342z2u/3yKmMvFeUX3I26KpqrdV6ESkEcBWAKot9bDdvPxSR38Fo7kw5oNiVKapsvwbwxzirtgI4Jer+aADbvSqPmUjyRQA1qhr3x8ft9yiGk9cb2War+ZmeiL5Ni64RkX4wAm5YVZ+IXR8dhFV1uYjME5FSVfVkoH8H77+r35kkTAPwqqrujF3h93tk2ikio1R1h9m8/mGcbbbC6G+OGA3gRQ/LRHkon5uXawGsV9Wt8VaKyEARGRz5G0Zi0Zp427ohpp/tnxMc6+8AxonIJ8yaxLUAlnlUnksA/BuAy1W1PcE2Xr9HTl7vMgCRLNOrATyf6AQhXWZf8W8ArFPVnyTYZmSkT1lEJsP4H9vjUXmcvP/LANxoZjGfB2B/pJnVYwlbkfx8j6JEf0+mA3gyzjbPALhYRIaa3TsXm48RuSfTmVyZWgA8CGBmzGNlAJabf58KI1v2DQBrYTS5elmehwC8BeBNGD8Qo2LLZN6/FEbW7CYvywRgI4z+rdfNZUFsefx4j+K9XgBzYJwMAEAxgP82y/s3AKd6+J5cCKO58c2o9+VSADMj3yUAt5vvxRswEtDO97A8cd//mPIIgF+Z799bAKq9/B6bxyyBEURPjHrMt/cIRrDfAeAojNrrLTD6+ZsBvGPeDjO3rQZwf9Rzbza/SxsBfNXr94pL/i0cBpKIiMgn+dy8TERE5CsGXSIiIp8w6BIREfmEQZeIiMgnDLpEREQ+YdClrGHO8vOeiAwz7w8171fEbPeiiPxjzGPfEJF5KRzzShGpTK/kREQGBl3KGqq6BcZwmfeaD90LYJH2HVB/KYyBNKJZjQNs5UoASQVdc2QsIqI+eJ0uZRVzGMbVABYD+BqASWrMQBS9zXAA6wGMVtXD5uQEq2CM96si8m0Ys0v1B/A7Vf1383k3AvgWjg+AMR/GcJz7zeVLMKb0WwBjAIhNAG5W1b0i8iKAvwC4AMAyVf2/Xr0HRJS9eEZOWUVVj5pB82kAF8cGXHObPSLyNxjTsj2J4/PsqohcDGNw/ckwRmtaJiKfgzGC0iwYEwjsFpFhqvqRiCyDMffr4wAgIm8CuENVV4rIHAD/DiAySfsQVf28l6+fiLIbm5cpG02DMczfmRbbRDcxRzctX2wur8GY7eZ0GEH4IgCPqznovqr2mTRBRE6EEVhXmg8tgTFhesSjqbwYIsofDLqUVUTk0wC+AOA8AHdZTMj+exgT2p8DYICak8/DqN3+h6p+2lxOU9XfmI+n29dyKM3nE1GOY9ClrGHOTDMfxjy2mwH8GMB/xdtWVQ/CmJZtMXonUD0D4GZzTlyISLk5F20zgC+b/cGIZEgDOACjHxequh/AXhH5rLnuBgArQUTkEIMuZZOvAdisqs+Z9+cBOF1EEvWjLgVwNoBHIg+o6rMAHgbwsoi8BeBxAINVdS2AuQBWisgbACJT9z0C4Nsi8pqIfBLGtHA/Nvt2Pw1jxiMiIkeYvUxEROQT1nSJiIh8wqBLRETkEwZdIiIinzDoEhER+YRBl4iIyCcMukRERD5h0CUiIvLJ/wO9l0ZfXmcu9wAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] @@ -895,6 +1093,17 @@ "## Multiplicative Noise Simulation" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Multiplicative Noise $(x,y) \\in \\mathbb{R}^{p} \\times \\mathbb{R}^{p}$: $u\\sim\\mathcal{N}(0,I_{p})$,\n", + "\n", + "$$x \\sim \\mathcal{N}(0,I_{p})$$\n", + "

\n", + "
$y_{|d|}=u_{|d|}x_{|d|}$ for $d=1,...,p$
" + ] + }, { "cell_type": "code", "execution_count": 39, @@ -912,7 +1121,7 @@ "outputs": [ { "data": { - "image/png": "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Hi5YsIA1a9bw0Y9+dN5399xzD6tWreLAAw9k1apVbA2aRSeddBJnnHEGhx12GO973/tYt24dJ554IocffjgTExNcdtllvPe972XlypUcccQRPP64W6fvgx/8IIceeigHHHAAa9asocwZ2KoUzG3ANlUN1z++FCeghgerV8OGDTA+DiLudcMGt90wfCkzePiOd7yD6elpHnxw7jJXp512GieccAK33HILq1ev5l3vetdT3911111cc801fOQjHwHgRz/6EVdddRWXX345xx13HIcddhi33norT3va07jqqqueyu+GG27gtttu45FHHuHKK6/svfAJVCaYqvpT4N5gCVJwa6X8MOUQo4PVq2HLFnjySfdqYmnkpczg4V577cUJJ5zAueeeO2f7d77zHd7ylrcAcPzxx/Otb80u//PGN76R4eHZxTRf85rXMDIywsqVK9m9ezdHHOHWxFu5ciVbtmwB4LrrruN3f/d3WblyJddeey23335774VPoOqO6+8EpoN1kn8MnFxxeQxjoCg7eHj66adz8MEHc/LJyY92tKvP4sVzwxh77LEHAENDQ4yMjDy179DQEE888QSPPvoob3/725mZmWHfffdl3bp1pY5wqrRbkareFPgnD1TVY1T151WWxzAGjbKDh/vssw/HHnss559//lPbXvSiF3HJJW4l4OnpaV7ykpd0nX8ojkuXLuXhhx8uPCreSdX9MA3DqJB+BA/PPPPMOdHyc889lwsvvJADDzyQiy++mHPOOafrvPfee29OOeUUVq5cyTHHHMOhhx5aRJETadSaPpOTk2oTCBtGOps3b+Z5z3ue9/7T085nuXWrsyzXr2+3Pzzu/IjIJlWdzDq2ah+mYRgVs3p1uwWySKxJbhiG4YkJpmG0kCa52vpJr+fFBNMwWsbChQvZuXOniWYH4XyYCxcu7DoP82EaRstYvnw527Ztw+ZemE8443q3mGC2hEGLdBrJjIyMdD2jeF4G7b4zwWwB4XjgcIhbOB4Y2n3zGtUyiPed9cNsARMT7mbtZHzcjTE3jDJo033n2w/Tgj59osz1d2wyYaMKBvG+M8HsA2Wvv2OTCRtVMIj3nQlmHyh7/R2bTNiogkG870ww+0DZTRebTNiogkG870ww+0A/mi42mbBRND5+90G770ww+8AgNl2MZmPr3sdjglkCnTUzDF7TxWg2tu59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\n", + "image/png": "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xx1y4IEHvuyaa655/uLFiw+aP3/+occff/whzzzzjAFccMEFLzz88MNfesghhxz2rne9a3BiYqJuv/OOUC8BvubuLyGYrWN1jfU7krExmDcPenqC17GxvD0SQojaLFvG7A9+kMFHHqHXHR55hN4PfpDBLET1wx/+8KM333zz7C1btkyZ5nDx4sUD7373u7esWbPm/ne84x1blixZ8ty8xr/61a9m3n333Ws++9nPbgBYt27dHnfeeedDN91000OLFy9+0Wtf+9o/rFmz5v6ZM2dO3Hjjjc+L9rNq1arVDz744C+eeuqpnhtuuOF59fqcm6CG84K+ErgSwN13uPvj8d/qPMbGYGQE1q0D9+B1ZESiKoQoPhdfzIFPPz1VR55+mp6LL+bARrc9e/bsibe97W1bPv7xj+9Xuvyee+6ZNTIyshVgyZIlW1euXLlX9Nmpp5762PTpk1niE0444Yk99tjDjznmmKd27dplp5122h8ADjvssKd+85vf9AJ89atf3fuII454yfz58w/9wQ9+sPeqVav2rNfnPCPUFwObgKvN7J5wzs9Z5SuZ2YiZjZvZ+KZNm1rvZZMZHYXt26cu2749WC6EEEVm40Z60yxPy0c+8pHfX3fddXOefPLJRFq11157TcnX7rHHHg4wbdo0pk+f7j09wWZ6enrYuXOnbd++3T70oQ8N3nzzzb9as2bN/YsWLdr89NNP162LeQrqdODlwGXufjTBZNb/WL6Suy939yF3H5o7t/MGMlm/Pt1yIYQoCvvvz440y9Pyghe8YNeb3vSmx6677ro50bKjjz76ySuuuGJfgMsvv3z20NDQH+vd/vbt23sA9t9//51PPPFEz2233ZaqqrecPAV1A7DB3X8Uvr+JQGC7ioGBdMuFEKIoXHghv505kylR4cyZTFx4Ib/Nah+jo6MbH3/88efyuJdddtn6a6+9ds78+fMPvf766/svvfTSh+vd9pw5c3YNDw9vOvTQQw97wxve8KdHHnnkk434mutsM2b2PeBsd3/AzC4CZrn7h6utPzQ05J029GDUhlqa9u3rg+XLYXg4P7+E6CbMbKW7D+XtRxG477771h555JGbk66/bBmzL76YAzdupHf//dlx4YX8dvFitjbTxzy577775hx55JHzKn2W91i+7wfGzKwX+DXw3pz9aTmRaI6OBmnegQFYulRiKoRoDxYvZmsnC2gachVUd78X6PqnwuFhCagQQrQ7efdDFUIIIToCCaoQQohSJiYmJixvJ4pIeFyqDqUkQRVCCFHKqk2bNj1PojqVcD7U5wGrqq2Td1GSEEKIArFz586zN27ceMXGjRsPR0FXKRPAqp07d55dbQUJqhBCiOdYsGDBo8DJefvRjujpQwghhMgACaoQQgiRARJUIYQQIgMkqEIIIUQGSFCFEEKIDJCgCiGEEBkgQRVCCCEyQIIqhBBCZIAEVQghhMgACaoQQgiRARJUIYQQIgMkqEIIIUQGSFCFEEKIDJCgCiGEEBkgQRVCCCEyQIIqhBBCZIAEVQghhMgACaoQQgiRARJUIYQQIgNyF1Qzm2Zm95jZV/L2RQghhKiX3AUVOA9YnbcTQgghRCPkKqhmdhDw18AVefohhBBCNEreEeqngb8HJqqtYGYjZjZuZuObNm1qnWdCiLZgbAzmzYOenuB1bCxvj0S3kpugmtkbgUfdfWXceu6+3N2H3H1o7ty5LfJOiO6jHYVpbAxGRmDdOnAPXkdG2sN30XnkGaEeB5xsZmuBG4DXmtmKHP0RomvJSphaLcqjo7B9+9Rl27cHy4VoNebuefuAmb0auMDd3xi33tDQkI+Pj7fGKSG6iHnzAhEtZ3AQ1q5Nto1IlEsFrq8Pli+H4eEsvNydnp7gAaAcM5io2pBUaX1b6e5D2XkmupG821CFEAVg/fp0yyuRR7Q4MJBuuRDNpBCC6u531YpOhRDNIwthykKU07J0aRAFl9LXFywXotUUQlCFEPmShTDlES0ODwcp5cHBIM07ONjcFLMQcUhQhRCZCFNe0eLwcNDOOzERvEpMRV5IUAtKO3ZhEO1H6XU2OhqIX73CpGhRdDuFqPJNSrdU+eZRLSm6D11nk6jKV2SBBLWAZNGFQYha6DqbRIIqskAp3wKSR7Wk6D50nQmRLRLUAqK+daIV6DoTIlskqAVEfetEK9B1JkS2SFALSCuqJVVFLFSVK0S2SFALStZ960oFdM4ceO97kw2EnlR4JdDtifpwCpEdEtQuoHwmkS1b4Nlnp65TaczVpDOQaAotIYRQt5muoFr3iHLKZ+hI2q1C3S9Eu6NuMyILFKF2AUm7QZRXdybtVqHuF+2LUvVCZIcEtQtI0g3CbPfqzqTdKtT9ojVkLX6tTtVLvEXH4+5tYwsWLHCRnhUr3Pv63IPbZnUzcx8cDNav9r2+vsnP47ZfaT1RP804xoODla+DwcGsvJ6k6NcIMO4FuMfJ2ttydyCNSVDrZ8UK9/5+rymq4N7bO1VUBwd3F9ta2+/vL87NshNohviZVd6m2e7rNnp+Wyne9SBBlWVhHZvybff0UjP8f+qpZOvt2AHnnRf8naZbRen2t2xRpW+WNKOdOmmqfmwM3vOe4JxGbNkSdL1Ken7Vzi66grwVPY0ljVCLnl6qRSvTe3GWxfaLEoG0O804vkmvs7jMRtL9F/36QBGqLAPryAh1dHTqlFRQuZ9lUWmG/82OBBSB1EfSTMRJJwWFY6WYBYVE9WYwko6UVBqZlpP0/GqYQ9EV5K3oaSxphJqmbaiINMP/tBHqrFnZbL8oEUgRaaToq9yamYGJ22+a85u0PT4PUIQqy8A6MkJt924czfC/UoRQHvGUMnNm49svjUDavU27GSTNRFRar5xmZmD6+6t/libC1DCHotPpSEFt9/RSM/yvlN5bvLj6+lu2pBO9aPulN9899wxezz0XTj9dQxOW0+jAGUm31yiXXAIzZuy+fMkSiaIQU8g7RE5jabrNFDG9lManVvkfV3CSNo1YKTU5Y0b17Xd7Ojhpmjxpur6Zx7OI/09ZglK+sgwstwjVzA42s2+b2Woz+4WZnZfl9ouWXqo0Ks3ppwfRW55ccsnu0XBElEY891yYPj2IbKdPn/S5PI173nm7pybLB+EvpVsLlqLjtm7d7mn3SpmIpJmJk07KxL2KFO3/SYhCkpeSAy8EXh7+vTewBjg07jvtPLBDtSjDLP+Rh1asqOxbnC1cmGz0pbwiqqJS6dxGRWhxkd+sWTqezQRFqLIMLLcI1d0fcfefhn9vA1YDB+blT7OpFo25JytCaWbRyfBw0Kaahm99q3ahTByVxg7uBiqdW/fJmXmqRX6XX165HbOURiN+FY4J0RiFKEoys3nA0cCPKnw2YmbjZja+adOmVruWGXEVukWYvaVSIVQWzJgBvb1Tl5kFBVHdmDas99wOD8PVV8c/+NSqAo8TTM1pK0QG5B0iA3sBK4FTa63bzinfFSuq9y+dNm1qsUdefTrj9p3U+vt3L17p9IKWNFQ7vj09U49hrYK1tE0Ctb7T7f2IUcpXloHlu3OYAXwdOD/J+u0sqO7uS5ZUF9XSm9ySJfkOnZhEVKdPr+67xLM6SWf+mTEjuyrwFSuCh7Y4wazmR7sMhtIoElRZFpbfjsGAzwOfTvqddhdU96k3wribXJ5R3YoV8d1dqtnChcFMNaXLSmeuEQFJroGsosNaAh4VxVV70FOEKpMlN3P3HBLNYGZ/CXwP+DkwES7+J3e/vdp3hoaGfHx8vBXuZc7YWFCQsn590Na1dGnQbabS4TcLuifkydhY0A0mGsfVrLKvpfT0VPa7vx82b87ex06gp6f6cc3iOoi651QjapOttI4ZXHttd7R1m9lKdx/K2w/R3uRZ5ft9dzd3P8Ldjwqtqpi2M9UKPmbPrrx+s4ZITFPFOTwciOCKFUGxUpLnrmo3/7jB1bu9sjTuXJd+Vu9xiit2ivq8xlWgt5OYdvu1JApA3iFyGmvXlG+1Nsn+/ta1ldbbt7XRIqXIyn2JtlueamynafayYMWK3dPk5SnXtG3qSVLK06a1tiCp2U0YjfbdRilfWQaWuwNprF0FNW72mFa1ldZ706xVRBVZaZVqpQeHiCRFOaXrdyLl53zhwvjjl6aNtZ6ZaZo9kEgrBipp9KFAgirLwnJ3II21q6AWoUtCvVPCJYlQ+/vjxwQuvXEmjXjbKUpNW3Hb6AhT5ecuaZETBJ8vWdLYb0hLs67/Up9rHaNaSFBlWVjuDqSxdhXUJE/ozY5U672pVROA0r6StYYuLCVpxNsuUWra6CurFHp07uoR6Fan1Zsxv2/S360IVdZKy92BNNauguoeL5itSIk1so+0vsfd0NIISjuQ9kEl6QNFEmtkII5WZkeaEaEm+d1qQ5W12nJ3II21s6DG0YqUWFTcUv6+NFVba4SeNL5Xu6HVKsKJE9QijriUNvqKS42nsSiCr1egWzlgQzMeGGuledNeHxJUWRaWuwNprFMFtVUpsdKbWDVh6+lJdyOKu7FVaqtzTy4qpTfFVs/Ak5S4Cu7yh5UlS5I/TNQSw2hIx1ptpnGC3MqHk6wfhrJ+CJWgyrKw3B1IY50qqK1MiUXbjIssy6ty426EaSLUelKU0TaKUNhViUpCn4Vo1rJGipt6eyuPhFVPhiIvsn7AkqDKsrDcHUhjnSqorUyJRVFvrVRh0n6itW7s9XQHqeRLM6L4rFixIrtUbtLjUW/b6bRp8b4mmZs1zXFpdt/TrLYvQZVlYbk7kMY6VVDdW58Sa6TatDwqrGeC8nqEIIkveZBVV5i+vmQTiceNvVvLzJJ/t5GHuqKm6KshQZVlYfEfwjTgk3k7GVknC2pSkgpvkjbUem/8laLCLLuDpLFq7bTNJuuoNDqXScRucLD+fff3p2t3rfeBpagp+mpIUGVZWO0V4E4IBtHP24oiqHlVm6Z96q/l55IlnupmHFk0bF3p9vv7s0nv1iMQrT4XaSqV0/6WJBEqVG8HjbMZM9L7XfrwlOa6L3KKvhISVFkWVnsF+A/gVuB04NTI8nC2CIKaZyqrGU/95TfJpJFPPTfnVlgzx0JOOhpRq6zWCFXl10g9UW10bWU1gIUiVFknW+0V4OoKdlUezhZBUONuFGnSsfVEVWme+uvdx8KFlffRTpb1oO6tLDhKa+61/YuEr1Y6uVIBWtR3udp3qo1opTZUWTda7g6ksSIIatxNKckNpJEbTdKn/kaGOixK9JWF0DRKs1K7WVqUeq+V/o2rDC6NQssH/khSbJX1g2MeSFBlWVjtFeAg4EvAo8DvgS8CB+XhbBEEtdpNKWkVaiOpsDihTJKSTJK+y1sgsrL+/sZv5EWOTEuvuyRRdDQYRDPGHS5qGjcNElRZFlZ7Bfgm8F5gemjvAb6Zh7NFENRqN6W4G1kpjRZrVHrqT9Ntwz1e1DslQk0qGnHk7Xea31drnWpRaD2FRfVeu0VGgirLwmqvAPcmWdYKK4Kgule+KSWNPPMaKBwCsXSPF/V6K3+LbvUc37x9zsrqfaCoN0Jtp1RvhARVloX1UJvNZrbIzKaFtgjYkuB7HcvwMKxdCxMTwevwMCxdCn19U9fr6wuWlxK33tgYzJsHPT3B69hYMn/Wr0+23q5dwevAQOXPBwbg0kthyZLAh05i3bra60TH36yzfv+ee9b3vUrXajlmU6/xsTEYGQmOt3vwOjKS/FoWoq2ppbjAAEG3mU0E7ahfBgbyUP+iRKjVaKTKtxnFStUiiWop4mgs16xG/imaxY1V26m/Oe5aSnK9Jhl/Ocm1WPR2VhShyjKw2ivAcUmWtcKKLqiN0GixUq32rkpVvpUKWfr62qMYJ2thyWNQilZb6bXUrH6l7TagQ4QEVZaF1V4BfppkWSuskwW10RtRrRtppRtlXsMF5m1RZax7Z1U2J7Fa577aA1xSAVaEKutmq9pSZGbHmtmHgLlmdn6JXUQwxq/IkLh2zSQMDlZfHrXzlpO07TVi1qx0bYuDg7BiBUwr2NWyaxcsWhS0/y1alLc3raP03FU799WWDw/D8uXBOTULXpcv3/26SlpLIEQnEnd77AX2Iugqs3eJ/QE4LYudm9mJZvaAmT1kZv+YxTbblUZvRPV8v5pY9/dX3tYZZ8DMmcn8iVi0KCjeEvkzMTFZ7FbPA1ylYrxK6yQRXiE6klohLDDYjNCYIMr9FfBiAvG+Dzg07judnPJ1b7y7QdrvJx0oIho1pxP7qHajRUMKttPQgM0GpXxlGVjtFYKBHZ5f8n5f4OsN7xiOLd0O8BHgI3Hf6XRBzYNSoZw2LXhf7xB0svaxNGNPdwMSVFkWlqRFbI67P14S0T4G7JdBcHwg8HDJ+w3hMtEixsbgmmsm+6fu2gVXXAFnnTW1H+GyZbB9e76+imxZv35qCnfpUhgdTd8HWggxyfQE60yY2YC7rwcws0HAM9i3VVi223bNbAQYARhIWqEjEjE6urtQPvvs7ut5FmdbFAr3QDijNvaRkclrIRqMAdT2KUQakkSoo8D3zexaM7sW+C5BerZRNgAHl7w/CPhd+Uruvtzdh9x9aO7cuRnsNl/qHQ2p0e9WIm2Vr+gsIuE877zdH6y2bw8euIQQyakZobr718zs5cArCKLKD7r75gz2/RPgEDN7EfBb4J3AuzPYbmGJhmWrJxJo5LvVGBhINiSfyIeenuZXSG/fXj2drwcuIdJRM0I1MwNOBF7u7rcBfWZ2TKM7dvedwPuArwOrgRvd/ReNbrfIVEqxJo0EGvluNSp1tZkxA3p74783OBj0SRXZYxZ0WzLLv7tRpRaWrLMkQnQS5jUayMzsMmACeK27v9TM9gW+4e5/3goHSxkaGvLx8fFW7zYzenoqt0cmuXk28t04xsYCUV6/PriBRm1qZ545WaxUyuBgsM5ZZ8GOHfXvtwgsWRK8XnZZvn4Ukb6+oP8oTF4fs2fDtm1Tz3u0Xru3tZrZSncfytsP0ebUKgMmHGYQuKdk2X15lCS3e7eZRoZla/WQbkuW7D4cYtRPsROGLCwf1zhvf4pi9cyzW/RhBZOAus3IMrAkRUnPmtk0CCpwzWwuQcQqUlIpxWoGJ51U33eTjqRULU0Xt3z58uB2WcqZZwaRSDu3rfX1BcMhlkZUw8PBsnanv7+x7w8OTh0FqVIzQyVqXQ9KE4uuoZbiAsME07dtAJYCDwBvy0P92z1CdY+P/GpRT0f8aqMhxY2UM2uWV4xEZs0Kttlus9H09yc7Zu0+uXrSzEFvr/uMGVOXzZix+3GqNYNRkgi1kWkJWwmKUGUZWM02VAAzewmwkKDK91vuvrpZAh9Hu7ehQvCEXqmyNhrEvlX7q8bgYPz67jBnDmxpoynmE1zizzE2FoxZnHdBUL2Yxf/eqA0careN7rln7fNcqw211dd7vagNVWRBVUE1s/8GrgO+7O5PttSrKnSCoDaruCjt/uql1g27aNRz4876mBWN/n645JJJEawmev398NRTU9O+M2bAPvvA1q2TRWxxBUmtvt7rRYIqsiCuDXUIPldCAAAT/UlEQVQ58EZgrZl9wczebGY1OlSIWsTN8tGMtqa0g0vVmmqtnYRmxoz6pg1Lcswaba/Mky1bgirt6Pqq1ga6devuM8dcfTVs3hw/40wpjU5LKEQ7UVVQ3f0Wd38XMADcDJwJrDezq8zsda1ysNOoVlx00knBQA2lY+iOjDQ+klKl/VWjr69yV5l2xSoNbpmAWsestzeI8OrdfhHYsWOyD3Oc6CWZsi0OzY8quoo0Da7AEcA9wK48Gnw7oSjJvXJxUaPdYmpNxVZr6rXIjywKjmbNKk7Xmnq7dJSeo/7+yoVN7V7EZDb5O+otlEt7LIs6qw0qSpJlYLVXgBcA7wfuBn4NfAI4Kg9nO0VQK1GtojK66dWiliDHVW2Wis5ee1VeJ61FQt7bm832GhWNZrFwYXP8njmz+dXUkbiVP4iZBSJbSjuIYiNIUGVZWPUP4BzgToJxdj8DHJe3s50sqI1GqEkEOYnoZHWzjrrYZBXF1Tu5eTMHHUg68EG9v7eZEXBvb+1BOuIGeChi15dGkKDKsrDqH8DVwOuBnrydjKyTBbXRm1YSQU6yTpY37YULWzMxea1+tc2iVlo7aT/Oer7fyLZnzpw8LrW209dXPVJu9sNKKyNiCaosC8vdgTTWyYLq3thNJIkgV0vvlUYjzRa/rG3atMnf2OqbcBJRi0Q3irD7+92nT8/3mCV5yEpizUqn5xERS1BlWVjuDqSxThfURkkiKKVpvkqFKNVGSSqi5Z12rCVGlSK4rAq/agldpUKjSkLYSNq6WRFqq8etdncJqiwTq/4B3A7My9vBUpOgZke1m1Z/f/6FRHE2bVpxCmNqRfSVCntakQKHdKnaWm2p/f3pIsZGMwWNFujVgwRVloVV/wDeDqwBRoEZeTvqLkHNkribVtpimHqi2nqitLwj0krE/Y5y4UqbXi0fbzcr6++vnr2I63qVRCSzSNcqQpW1q8V/CLPCbjL3ARcA50eWh7P1CGqnl/vXS1yEmrSitvRGmVZU0wy+Ht1Mi3ju4qLU8ogqbSFRb2/z0sPVRK7R/5csxFBtqLJ2tfgPoRe4EPgl8DHgo5Hl4WxaQe2Gcv96qXRsKs1CUk0oym+2acSipyf4Tlw7X+m+in6+kqZW6ykA6umJL2IaHKxfdGuJXD3imlW6VlW+sna06h/AicD9wMeBvrwddU8vqHmkjopErZtS+edJbszVjl0asSivzI3bb3k7ZBFJUj0drVdvGnfmzMm/y1O29bbNxolcvQ+j7fo/J0GVZWHVP4DvAYfl7WCppRXUPIobikI9N8Ra0WI0GEDS/aUR5nJhrdbOV1RqVU9Hv6XeaLJapF6637SDX8SJXL3C2K5ZIQmqLAvL3YE0pgg1OUl/e2mUGndD7umpHS2mKWbq1IeaWunfRgZkKD93lVLmSdP29T5cJTlv7Vi3IEGVZWFx07e1Pd0800W1KblKl4+NTZ3hJm6mmYkJuOaa+NlvbrwxuX+dOH3X2Fj1Cbmj497I7462MTYGe+0Fl10WnLdSduwI5isdHAzeR9Px9fcHFk3Dtnx5sLzadIG1pl2Lm2qw0RlqhGhb8lb0NKYq3+S/p5GhCOMi1bjoPmmk1Q4pwHqoNS6ue3xqPBpCMW4Sg6QTDtS61mulZmt1oWnHtG4cKEKVZWC5O5DGur0fapobWZJ149J6aVN+tQY56KSHmmrEpXPLi4jK2z3Lp4Wr1g6bpvgrTuSSPHBVe3jrxKYUCaosC8vdgTTW7YKa9kZWK5qN215c9FqpWjiuIKm/P+MDUVDi+vZWIu78VPssbRtstWujkTbSTiz2k6DKsrB8dgqfJOjb+jPgS8Dzk3yv2wW12k2z3htZ2rRetcgnLmqKqwzuNLLOIFQibV/WatdG3MNUIw9i7YoEVZaF5bPTYFq46eHfnwA+keR73SyocSMLNXIjq3bzrNU/NOmUb90iphFZtnFX236asZbjsheVBL3WNHjVrgu1ocpkOQnqFAfgLcBYknW7WVBrDV6eZftkkj6lpZFPtSKmadMa96XdSZu6TdotJUl/1lqjTFXyrVbkWum6qNRnuN2KASWosiwsfwfgNmBRzOcjwDgwPjAw4N1K0razeiKFekZMim6itVKQ3UxcWjertGncdVHPKFNxQp+mb3O7VQFLUGVZWPM2DHcAqyrYKSXrjIZtqJZkm4pQk1mjA5EnsVmzan+vndvUsiBttFeP6KQthGrE56RRdTPbWJsV+UpQZVlYfjuGM4H/IcU4wZ0qqEluEmmEL02RUj0DtiexokckraCWAGUhDllHg/VE1eVz1DarCriZka8EVZaF5bPTyYH356b5XicKatrK0CSp2UqRQFbdMJJY3ENBO7WrNUqrqmGzPq5xhWq1HurSTGyelmYeTwmqLAvLZ6fwEPAwcG9oy5J8rxMFtZGbRFIxrifq6O+PH+w97U2zHdvVGqUTf3OSsZ/7+5vzu5vZ/1WCKsvCcncgjXWioDZ6k0gSnTTalldpH2nFohP7LiYh76i8fP9LlmTnT9y124zfrQhVVnTL3YE01omC2gqhaVZbXprvdeLoOvXQSoFNmqKt14dWPySpDVVWdMvdgTTWiYLairRgEaLDIviQN61OASctOKv3HOSR0laVr6zIlrsDaawTBdW9uWm5aPt5t+UVwYe8afVDRdKCs0ayBHmntLNCgirLwnJ3II11qqCW0izhKcKNrwg+5Emr095JBujotixBNSSosizM3L3xSVVbxNDQkI+Pj+ftRlOZNy+Y8LucwcFgsmbRvrTy3I6NwVlnBROOx9HXF0w23u2TgJvZSncfytsP0d705O2AmMr69emWN4uxsUAAenqC17Gx1u6/E1m6NBCwUvr6guVJSHNORkcri+leewUCbha8SkyFyI7peTsgpjIwUDmKGRhonQ9jYzAyAtu3B+/XrQveg26+jRAdu9HR4AFpYCAQ0yTHNO05qfYA9uSTsG1bet+FELVRhFowGo1ismB0dPLGHbF9e7BcNMbwcJDenZgIXpM+oKQ9J9UewLJ+MFMmQ4hJJKgFY3g4SMPlmZYrStpZTJL2nLTiwSyKmtetC8qb1q2DRYtgzhwJq+hOJKgFpN4oJitaFd2I5CQ9J1HEePrpsOee0N/fvAezSlEzwJYtgdBKVEW3IUEVu1GEtLOYSpJzUh4xbtkCW7fC4sXNeTCLy1ioiUB0IxJUsRtFSDuLqSQ5J5UiRndYtqw50WKtjIWaCES3oX6oTWZsrL6qTiHS0tMTCGglmtXXtbTyuBX7bBbqhyqyQBFqE6lUtKG2JdEs4iLGZkSLUdTc37/7Z2oiEN2IBLWJqPuJaCVLlwbp4Eo0q6BseBg2b4YVK9REIIQGdmgi6n4iWsnwMNx9d9BmWpr6bUW0ODwsARVCEWoTUfcT0WouvRSuvVbRohB5IEFtIup+IvIg737MQnQrEtQm0ozuJxrqTQghiokEtclkGS2oalh0KnpQFJ2ABLWNUNWw6ET0oCg6BQlqG6GqYdGJ6EFRdAoS1ByoN72lqmHRiehBUXQKuQqqmV1gZm5mc/L0o5U0kt5S1bDoRPSgKDqF3ATVzA4GXgd01XNoI+ktDVovsqYIxUB6UBSdQm6D45vZTcA/A7cAQ+6+udZ32nFw/HKqDWBuFlQCC9EqKg1u39eXz0Na3pNIaHB8kQW5CKqZnQwsdPfzzGwtMYJqZiPACMDAwMCCdevWtc7RJjBvXpDmLaedZuYQnYGuxUkkqCILmpbyNbM7zGxVBTsFGAUuTLIdd1/u7kPuPjR37txmudsylN4SRUHFQEJkS9MGx3f3EyotN7OXAS8C7rNgaoyDgJ+a2THuvrFZ/hSFKI2lOVJF3gwMVI5QVQwkRH20vCjJ3X/u7vu5+zx3nwdsAF7eDWIaobFWRRFQtkSIbFE/1C6kCJWdIn9UNS5EtuRW5VsPnVDlmzdFquwUoiioKElkgSLULkPDvAkhRHOQoHYZquwUQojmIEHtMqpVcM6erXZVIYRoBAlql1GpsnPGDNi2TdNnCSFEI0hQu4xKlZ377AM7dkxdT+2qQgiRDglqF1LeD3br1srrqV1VCCGSI0EVmj5LCCEyQIIqNGKOEEJkgARVaMQcIYTIgKYNji/ai+FhCagQQjSCIlQhhBAiAySoQgghRAZIUIUQQogMkKAKIYQQGSBBFUIIITJAgiqEEEJkgARVCCGEyAAJqhCiYcbGNP2fEBrYQQjREGNjwXR/27cH76Pp/0CDhYjuQhFqi9GTvOg0RkcnxTRC0/+JbkQRagvRk7zoRKpN86fp/0S3oQi1hehJXnQimv5PiAAJagvRk7zoRCpN/2cGJ52Ujz9C5EVugmpm7zezB8zsF2b273n50Ur0JC86keFhOPPMQEQj3OGaa1QjILqLXATVzF4DnAIc4e6HAZ/Kw49Wo4m8Rady++2BiJai5gzRbeQVoS4BPu7uzwC4+6M5+dFSNJG36FTUnCFEfoI6HzjezH5kZt8xsz/PyY+WMzwMa9fCxETwKjEVnYCaM4RooqCa2R1mtqqCnULQXWdf4BXAh4EbzUpbYKZsZ8TMxs1sfNOmTc1yVwjRAGrOEKKJguruJ7j74RXsFmADcLMH/BiYAOZU2c5ydx9y96G5c+c2y10hRAO0qjlDA6OIIpPXwA5fBl4L3GVm84FeYHNOvgghMmB4uLlNGBoYRRSdvNpQrwJebGargBuAM93LawSFEGISDYwiik4uEaq77wAW5bFvIUR7okpiUXQ0UpIQoi1QJbEoOhJUIURboEpiUXQkqEKItkADo4iio+nbhBBtQ7MriYVoBEWoQgghRAZIUIUQQogMkKAKIYQQGSBBFUIIITJAgiqEEEJkgLXTiH9mtglYl7cfJcyheGMQF9EnKKZfRfQJiulXEX2C7PwadHfNviEaoq0EtWiY2bi7D+XtRylF9AmK6VcRfYJi+lVEn6C4fonuRClfIYQQIgMkqEIIIUQGSFAbY3neDlSgiD5BMf0qok9QTL+K6BMU1y/RhagNVQghhMgARahCCCFEBkhQhRBCiAyQoDaImf2zmf3MzO41s2+Y2QEF8OmTZvbL0K8vmdnzC+DT28zsF2Y2YWa5d3MwsxPN7AEze8jM/jFvfwDM7Coze9TMVuXtS4SZHWxm3zaz1eH5O68APs00sx+b2X2hTx/L2ychQG2oDWNm+7j7H8K//w441N0X5+zT64E73X2nmX0CwN3/IWefXgpMAJcDF7j7eI6+TAPWAK8DNgA/Ad7l7vfn5VPo1yuBPwKfd/fD8/QlwsxeCLzQ3X9qZnsDK4E353mszMyAWe7+RzObAXwfOM/df5iXT0KAItSGicQ0ZBaQ+xOKu3/D3XeGb38IHJSnPwDuvtrdH8jbj5BjgIfc/dfuvgO4ATglZ59w9+8CW/P2oxR3f8Tdfxr+vQ1YDRyYs0/u7n8M384ILff/OyEkqBlgZkvN7GFgGLgwb3/KOAv4at5OFIwDgYdL3m8gZ5FoB8xsHnA08KN8PQmyDGZ2L/Ao8E13z90nISSoCTCzO8xsVQU7BcDdR939YGAMeF8RfArXGQV2hn4VwqeCYBWWKcKJwcz2Ar4IfKAsK5ML7r7L3Y8iyL4cY2aFSJGL7mZ63g60A+5+QsJVrwP+G/hoE90BavtkZmcCbwQWeosaylMcp7zZABxc8v4g4Hc5+VJ4wnbKLwJj7n5z3v6U4u6Pm9ldwIlAYYq5RHeiCLVBzOyQkrcnA7/My5cIMzsR+AfgZHffnrc/BeQnwCFm9iIz6wXeCdyas0+FJCwAuhJY7e7/mbc/AGY2N6pcN7M9gRMowP+dEKrybRAz+yLwZwQVrOuAxe7+25x9egjYA9gSLvphASqP3wJ8BpgLPA7c6+5/laM/JwGfBqYBV7n70rx8iTCz64FXE0xJ9nvgo+5+Zc4+/SXwPeDnBNc4wD+5++05+nQEcA3BuesBbnT3i/PyR4gICaoQQgiRAUr5CiGEEBkgQRVCCCEyQIIqhBBCZIAEVQghhMgACaoQQgiRARJUkTvhjCa/MbPZ4ft9w/eDZevdZWZ/VbbsA2Z2aR37fLOZHdqY50IIMYkEVeSOuz8MXAZ8PFz0cWC5u68rW/V6gkEYSnlnuDwtbwZSCaqZaWQxIURV1A9VFIJweLuVwFXAOcDR4Uwwpev0E4yIc5C7PxMO1v5dYNDd3cw+DLydYFCLL7n7R8PvnQFcQDBe788IxPsrwBOhvRXYG1gG9AG/As5y98fCYe1+ABwH3Oru/9GsYyCEaG/0xC0Kgbs/Gwri14DXl4tpuM4WM/sxwbittxBEp18IxfT1wCEEU7MZcGs4v+gWYBQ4zt03m9lsd99qZrcCX3H3mwDM7GfA+939O2Z2McF4zB8Id/18d39VM3+/EKL9UcpXFIk3AI8AcTOHlKZ9S9O9rw/tHuCnwEsIBPa1wE3uvhnA3Xebb9TMnkcgmt8JF10DvLJklS/U82OEEN2FBFUUAjM7Cngd8Argg2b2wiqrfhlYaGYvB/aMJr8miEr/zd2PCu1Pw3FwjcanZnuywe8LIboACarInXBGk8sI5tpcD3wS+FSldd39j8BdBG2tpcVIXwfOCuftxMwONLP9gG8Bbw/bX4kqiYFtBO2muPsTwGNmdnz42enAdxBCiBRIUEUROAdY7+7fDN9fCrzEzKq1W14PHAncEC1w928QzEf7P2b2c+AmYG93/wWwFPiOmd0HRFOQ3QB82MzuMbM/Ac4EPhm2pR4FaPYSIUQqVOUrhBBCZIAiVCGEECIDJKhCCCFEBkhQhRBCiAyQoAohhBAZIEEVQgghMkCCKoQQQmSABFUIIYTIgP8PC9JHEYPOQLIAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] @@ -941,6 +1150,17 @@ "## Multimodal Independence Simulation" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Multimodal Independence $(X,Y) \\in \\mathbb{R}^{p} \\times \\mathbb{R}$: $U\\sim\\mathcal{N}(0,I_{p})$, $V\\sim\\mathcal{N}(0,I_{p})$, $U'\\sim\\mathcal{B}(0.5)^{p}$, $V'\\sim\\mathcal{B}(0.5)^{p}$\n", + "\n", + "$$X=U/3+2U'-1$$\n", + "\n", + "$$Y=V/3+2V'-1$$" + ] + }, { "cell_type": "code", "execution_count": 41, @@ -958,7 +1178,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUwAAAEWCAYAAAANe67OAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJztnXucXlV573/PTCaJM0Ehk6iUMDOgKKTGKsZLAa+xHExVtArHdgQilBxGUWlpT21zTk3tJ1WLQOUgaiqgdUa0RVRuKiAXSyvKIHeCETCJKRwIIAgkUZJ5+sfaO7Nnz1prr7X32rf3fb6fz/q8t/2uvfa6/PaznnXZxMwQBEEQsumpOwGCIAhtQQRTEATBERFMQRAER0QwBUEQHBHBFARBcEQEUxAEwRERzBwQ0VoiYiL6csZx10fHraomZTPS9m3H40ei40udX+abrrogolVROm+rOy15IaI3RdewqcRzBKk3VaQ1JF0hmES0KS5cIjo88f3rE99vKhC/qdAvBvBZAPfkjbsJJIT/tLrTIgBEdCARXUJEjxDRTiLaSkTfI6IXRYdshap3F9SYzFkYDIhGptXEnLoTUANjAP4jen9KmSdi5nPLjF/oWr4F4OUArgWwEcASAG8AsC+A+5n5PgCtuLm1Ka1Al1iYCX4F4L1EtIiIFgN4T/TdHnRdDSL6cvTd2nSERPQmANdFH4eT/03fURPx/AsRfZeIdhDRVUQ0TETfJKJniOhHRHRAIv6XR9bDo0S0jYguI6KXJn5fSkQ3EdF2IroMwGAqffsS0Q+j/z8bxTFORHvnzcRE9/ri6FqeJqL7iOitrumKjjkiyqNfEdGDRHQBEQ1Gv+0pByI6iYj+K0r7PxJRbyKOE4no9igNPyeivyGiOdFvcff6RiI6m4ieiOIZTfz/d6IyeIaI/h3AAZp0voyIrogsum1RWQ0lfo/TeSoRbSSip6I8nps4ZmWUjl8R0a+J6AqXfNCkZSGUWD4B4K3MPMbM7wDwfAA/jY6Z0eNJ5eWHiej/E9HDRHQcEb2HiLZE1/WxxHnSdTez60xEXyNl7f4myoNriWhZHB+AN0aHXhjFtVYXr0Odj3uMHyOiW6Oyu5KI9jGlLRjM3PEBwCYADODs6PV/A/ir6P1Z0eum6NiR6DMn/v/l6Lu10ee10ecvA3gxVNebAfwawD8B+KfouOuj71el4pkC8G8A/iv6/ASAHwC4M/o8Hh2/L5SgM4DLAVwVvX8IwD5QPYT7ou9uBvCvAHZFn78dxfGS6LcLAZwHZZEwgC+YrleTf/F1nJa6fgZwDYCbovdbot9d0vUyAL8B8BSAixLnuBYAJdMF4AGoLtvT0ecPR3H8r/i8Ud7eG33+ePT7qkQcP0nk39MAnpu6tg0A/gXAzujzbdHvLwTwOIDfArgkKof4+HnRMfE5HovSsSP6fFL0+x8kjrkyOuZul3zQlEVfdCwDuA2q/r4LwEDimDfBUKcB3A/gO9H7nVB1aRyqTk4BeImh7hrjTJz3PwBMAPgcgBvifIp+OxWq+81ROfwTgKM08VrrfKo9bwfwlSjfGcDfl60l3WZh3gDlT1wdhXsA/LBIhFGXIu56P87MpzFzVhfjWmY+BsA/R593QDWqv4k+vzJ6PQ7A3gCuZ+a3M/ORUI3khQCOAfA6AC+CakBvZOZjoRpDMn0boa51A1QFuzv66S2+16rh7ijdfxx93p+IFrmkC8o1MjeK4+Houn4D4M0AXpo69t3MfCKANdHn46PXj0SvP4G66Uwm4k7yOFSX9Q8B7AYwAOAlRLQE01bPkcx8PFRjT3Ic1M3pPihhvg/ANgAHR2lNcgozr4K6QQDT5fjR6PUcZl4ZHfOKHPkAZn4WwEkAngTwewD+DKqLfj8RvTp9vIYToHpWuwDMgxKZ9wO4FepG9XsOcZg4Furm+RSAO6LvDiai32Hlnrov+u5rUTv5niaOrDqf5OPMfAKm298rUTLd6MP8AoBzovcfdvxPb/YhXmyIXp+IXu9j5ikieir6PBC9jqSOB5QV9QoAw1CNBgC2MvP26P3G5ImI6I8BfE2ThsX5kj6D25iZieiJxHcLAOyXlS5MX9tro5DkxQDuSnyOr//e6HVJKo73pP7/AiJakPw/M+8EACJ6BsBzU+ncwcy/zEjnIVFIpzPJrdFrnB9xGuJu/k3xgZHwJeM35cO9qe/AzP9KRJdCif3rAZwM4AUA/i+Ad6aPT7GBmXdF+fA8AD+Lvk/XvTTWNkBEB0G5BBZofl4M4MGMdMWMxOlMfJes80lM+V0a3WZhAqrbtR3AMwC+qvn9mfgNET03evuyjDh3R6+u+bk743PMpuj14MR3sdWxGapLDwBLiKg/ev+SVBz/M3r9EpRFEX8mx7Ta2BW9pqeWuKRrU/R6FjNTHAAcyMyXp46NhSrOh62pON6pieNpTTrTaY3T+Rwi2j8jnZekzrEvgPNTx5ry4xfR6x5BjP2s8MsHEFEfER3BzDuZ+fvM/H8AfDL6ea/08Rpc617cDlzbwB9CCdadUBbiC5LJTp3L1k42Ra+mOp/ElN+l0XUWJjM/SURvSLxP/76NiLZCWTHjRLQT090nE7F1soSIvgTg58z86QDJHYfqpr85sijmQnU7Hobym/4ayr93IIDrI8f5u1NxPBy9vg3A5wGsDJCuLG5ySNd6KMvoo0R0IIBHoYTxMMxuUJcQ0Q1QXT5g+kZ3LpRfdpyIvhX9bzmAR6B8Y1aYeSsR/RCqu34VEd2M6RtKzARUGfwREX0fqkG/CMq6OwjTDdzGZ6EE5aNE9GKoMnk11OCNTz4A6qb370S0AcrC2o7pvL3aIS2u3ApVV/48GuD604zj43p2ENT16tpM3E4+SkQvh/Krp8mq87XSjRYmmPkWZr7FcshJUA3+9VCO8LT/LR3fJgCfgeoinwTlhwmRzgehfFlXATgcSgyuAPBmZn6cmXcBOBrKh7cMqov1xVQ0fwc1ij8I4FUA/iFE2jLSnZkuZr4dwFuhfMhvAPA+KAvpU5ooPw7gSKhBijMx7Wf8AlRD/gWA90I18EehrGlXRqEGroahrMuzUul8EEocL4cSgfdDdeU/F50rE2a+Gkow/xPAEVC+uF9Gv/nkA6Dy4GwoP+dKqLr2BIC/B/CPLulx5CwA3wOwCKoOnp1x/L9CWdzPQl3PJzXHnAnl21wK5dc9KH1AVp3PcyEhIZYNhIUGQkQjiLqyURdVEGqnKy1MQRCEPIhgCoIgOCJdckEQBEfEwhQEQXCkVdOKFi1axCMjI3UnQxCEDuOWW255lJkzF3O0SjBHRkYwOTmZfaAgCIIHRJSeFK9FuuSCIAiOiGAKgiA4IoIpCILgiAimIAiCIyKYgiAIjohgCoIgOCKCWTMTE8DICNDTo14nJupOkSAIJlo1D7PTmJgAVq8Gtkd7km/erD4DwOio+X+CINSDWJg1smbNtFjGbN+uvhfqQSx+wYZYmDWyZYvf90K5iMUvZCEWZo0MDfl9L5SLWPxCFiKYNbJuHdDfP/O7/n71vVA9YvELWdQmmES0PxFdR0QbiOhuIvpo9r86i9FRYP16YHgYIFKv69dL968uxOIXsqjTwtwF4HRmPgTA6wB8iIiW1pieWhgdBTZtAqam1KuIZX2IxS9kUZtgMvNDzPzT6P1TUA9u36+u9AiCWPxCFo3wYUZPCHwlgB9rfltNRJNENLlt27aqkyZ0GWLx2+n2aVe1CyYRLQDwTQCnMfOv078z83pmXs7MyxcvztwQWRCEkoinXW3eDDBPT7vqJtGsVTCJqA9KLCeY+ZI60yIIgh2ZdlXvKDkBOB/ABmY+q650CILghky7qtfCPBzAcQDeQkS3RWFljekRhK4hjy9Spl3VuDSSmW8EQHWdXxC6lbxLQNetm/k/oPumXdU+6CMIQrXk9UXKtCuAmLnuNDizfPlylsfsCkIxenrUKHcaIjWdqhsholuYeXnWcWJhCkKXIb7I/IhgCkKXIUtA8yOCKQhdhvgi8yOCGZhuXzommGlS3ZAloPkQwQyILB3rDvIIn9SNzkBGyQMyMqIaQprhYXUXF9pPeg4joPx/WV1aqRvNRkbJa8C0RGzzZjdLpEiXrSndvaakoyzyzmGUZYUdAjO3JrzqVa/iJjM8zKw6XPrQ3888Pq7/7/i4+t31+Dz/HR9XaSRSry5x+1DkGtoCkb5siez/GxzU/29wcPaxruVUdnl2EwAm2UGDahdBn9B0wdQJRjoMD+v/axLb+Hhb48j6ryltecXMlBaXdLSdvNfoKpg+N79OvzlViQhmTcRiYhJMkyVis1yyGoeL1RNKzGxpyWt9tYm8QuWaN67lVNXNqQwrtomWsQhmzbhW6CyB7e01/xbHZTtXVvyAX4W1nasbLEzmfA3eNW9chdV0XBzn2NjsNPqmuwwrtkzLuIgQi2DWjEvFcOnC20Jsfeq6e/39qtG4xO9TYbOEV7qJelzzpqiFaQpz5zL39WWfPyk6ppt1kRtgWTfVonVPBLMBZN3x8lqWcRgc1Avi4KCbZZmnwtrSlceK6SZc8qaIDzNPyPJzm27UPteUpCy3TVEhFsGsmDxCYas8ti5X3IhMAwlxJcmKI0+FzUqTCGRxfEfJiwimi5/bVL/yWHVlWZhFhVgEs0Lydgfy+APj310GWfJYmEWs4hAVv1MIZWkn4xkcVMF1doJvubscn6zXecSvLLeNWJgtEsy8hWWrPC4Vy3Te3l7VqAYG3BrB3Lnu58zqtnXSiHheQolCVl7b6oqujHU+zLExc0/FdKOOyWvVlTXyLj7MlgimS8XRVZL0gE3se7T9J0koP1Y8F9BnZD9rQKCbfZl5La90frkIWTK/bXM9df5l10FBk/g0bVaEjJK3RDBdJp2nK6bujq8TzTTpSrFihdsAkS3Ewu5jMRS1jsukbrH2tbxM9cOn7JJxuQws5enG626cnTIrQgSzQrIqjm/lNFW6UBZlOvT22huRbvlenB6fFT+meELShEbsY3mNjRUruxALD3xvrOn4OqEnIYJZMbaK4zNanW4ILvPiQgRbGvv6/BqCLa6yG1QTuonj47N7D7o8LCqWfX3T3fC4bsRdbZOrx9Vf6VonQw1o1S22IpgNIk/3x7Qksq7gIzhZI/xl0oTlmePjs7vU8cBakjJvgLqwYkX+/4Z2tzShJ5BEBLNB+Pgwk8JSdI5dyBALjquPLCuesrBZmHksmrGxaWHr7VWfi6QhSVaepwW1r8/dt5m3jHXfJy3UUPnbhJ5AEhHMBmEaDTeNbBKphpmnK19WiBuAq1WQNam+zLzWpVE3Ipxl0ZgssizRdLVysyzMwcGZAlSkO50VenrMv7ls9BIf55q/TegJJBHBDExef4uuAceCGKMTR9tKnqpD7H/zsQpM7oSsWQAh0JWVr0Vjs5J7e+3ndz2Xqw9zYKD+uhCn3Tb31yd/xcKsINQlmKYutW7VRRpTxYhF09btdp14XnaIR7fzTJcxbQzS9Kk+We6QGNP8Wldrq+jAT1Uh6ZLRXVvW/9KID7OCUJdguvgSTYVt68I0qcvt0lhc5pumXQ91dc3T+Fo0trKJLcysuaiuPZLQ7pfe3vADSsl8CmHBm+KpCxHMgLhWZl3laNLATdHGYupm2/xfWfFW1Vh8LRpbucXulBDzTcuaCRFSgNMupBD52zREMAPiKnqmib15Km/RCh+7C4r6vnRrycvwp1XRuHwsGpOQrVgxfUyR+aZ5V9tUEebMyVc+TbIYfRHBDIirFWDqfvh2uUI1pNgqKBKHrtKX1dDrcvibyJpSlHe+aZPm16aDbdOWKlZq1YUIZmCyLIJ4onnW/+O774IF9koZSpSKWjI6fK1f1y57k3Y6culi2kbS47yPj6tqelCcj2XF3Sar0YeuF8yyugcu04RcyBq1DWWFmOZPugTT9JmyGnyTLEzXQQxbXvg8JsR0rqVL/f9X5si7aQpZW7viMV0tmGU7oE1TSXwqjamhLVgw3ViTokqUf5VHvL44j6WZ7orqlv2FCE0bIHCdhpR1MyoyWp1n/4C4vMoSTJfrb1pZutDVgln1pNg8labuici+IWtkuEgDtC2xrMty8Z2kX0aeN3FQKH39TZuAnpeuFsyql125zE9MN/y2zMFM51+e/+V5+mBIyyWP8Pqcf3zcfI2m7+Nlj7Z8s8VbR3nHn5N52LQljnnpasGs+q6XNb1E5/M0Dfp0Wsi7jjtUGRYRXteNRmybqKxYYd/qzSSIseBUsRJocND8+AqdeyiZh2JhNjg0xYeZPpet0ret6x0i6ETG1+8bynIpu0FnlW9Pz+x5jcmt3rLysYrySk6dis+bLAtbHoZa7VQ3rRBMABcAeATAXS7HN2GUPH2Ops6nqyskl8plWWZ5dqn3Fbqyu4xF8om53i63LugMC5cZHUXW0zeBtgjmGwAcWoZghsZn/Wy3Bp/ut4vfN0SDK9vCzJtXsdjUXWYueZMnD9vWVW+FYKp0YqTpgum7Q0sydEuXPN62zbWhuFh+IXoJoS0d1wUIrqIUysIMvXa8aB62bTCoYwQTwGoAkwAmh4aGSsiqbEwikFXZ40pVt5hVEWIBcG0oVVogRYU3eSNIX19fn37ttUu9YK6/3ExlkLzmLB+nDrEwSwptsDB9dpmOj01Wrm6wMl23gItpi4/LxU+dnCKUXAY6MDB7kn96VVgT68aKFeZr9plh0IbyjRHBDEjWKGHSetH58Mp+FksTQh7fYxtGUV391D7/Td48miiYWT0nFysxvatVFTvtF0EEMyC65YC6pwDaphgNDjZnB/UyQnr5ZNOF0BUX36Bpzb2Le6KNCxgAe561zbpkZmfB7EGNENFFAH4E4KVEtJWITqozPTaY7Z8nJoDVq4Hdu/X/f/xx4OmngYGBctJXN1/5isoDABgdBTZtAqam1OvoaJ0pK8bQUPYxu3cDIyPT15/13+T3LvE3jd5e++9r1gDbt8/8bvt29X3rcVHVpoQmdsmzjkkf28lzN3t7O8OqTOJTXrrt31y2iLOtFGpqiFcBlbnooErQli65T2jaoI9r10rXSJo2YTl00HXB2thVT/viXEL8LKN4CWxyIHBsbGY+NNGHWbS8TcZDkzcgFsEMiMska9vmC64rXTotJC3wNvq1yiijNg0ADg76XX+yPeiuMbmGvmmIYAYka71s3ikYyUcg5H2QWJND0gJv27w85u5eyZWs33nKuylPC3VFBDMwpu6kbVK7TSzbamH67LSU7IK10a/V1hHsrJA1WyM9Bcj1xuGyZLip5e0qmLWOkrcJ08jvli3646em7KPDupHEJtLXBwwOAkTA8DDw1a8CzzzjH4/LiHHTqDttROHjHB4GvvhFe9w7dsz8vHJldrz9/eq41auBzZvNx9Wdp4VxUdWmhDotTBM+K1va5ug3Dcy4WhzpdeFN9mHqFiDUWU5x3occHExuALxiRfb5Y2y9KJ/NaJpU3mkgXfJqyBKCPKOsTQk+12xqUOnZAU0cJXe9Ht1Sx6wQj5bnFbhQA0S63dOz4o7LyhZnEtuxWXuj1o0IZoWYKkBb/ZSx2Lles27H7jg02aqICemjS4sDc7vrQdZ1uuRjG2ZLiGA2gDaPsvo8NjjLim7qyGiMqwWYx8Wg2/WniNXZlGC6Vt2NYcGC6WvO83ynKhDBbABNbhS2tMVimXfndJvQNBEfCzNJVv7knY4WqhzLqje2bnReF1TddUQEswFUYWEODpoHKNJbzWU1trTvtcjO6TahaRou4lXGbu9Jwa1S9JLBZ/6vaznmqfd11xERzAZgeuJfKEd+cp6jrXFmOeN1VkPRndOToW7/lAu6UfKiAxM+c0/rcN+YHiliOtY1D3xvAOLDLCm0TTBtohOiwif9jLbGaVvbm/avxeJQdOd0nah3Gz6rm0zLCcsIpid6mo7PWoThet3pOGWUvOTQNsG0iU6Iiu+6lt1WaXXf9/e7L20rsjS008nyYaYt2CqmoNm6vqFWY2W5OJpYL0QwG4DNwgi1mbBrl8o36DZeyNo5PSnCTbEc6sYkjC7bvoUu16znhdssw6zy1NWB5KyAeJS8qfVCBLMBZFkYaYd7T0+zJrk3cYJx3eTNk+T/XKfWpOe6xnUjTw8lubVc3pF72w2z7b0MEcwaMFkTpsEE3Z23KZOcidpR0atE52fUPapE9z+XMjV1fXV1KM+SSRdXS5Y/U9eld5nI33REMCumSDdrwQL9EsKyRdFlaZwwjUlssga28s7zZDbXq9CuGNdljjpRz7J4655j6YIIZsW4jIjaGo7poWplWptt3YqrLmx5acOlC23qutrqVdryLFIXXJc56kbMxcJsaGiyYIZ4QqDJwijDr+k6h1OYJq9guu72oyP0XE7XwTwfv6T4MOMfgV4AZ7hEVEVosmAWtTBNjSBGJ5xFdmlPCmZTN0RoGqYb18CA/X9F8td3LqfLs6VcB65s09VMA1TxjSA+xhZ3kwYUg1mYAK4FQC6RlR2aLJiuPsysVTc+FJnPmRbnplXgJqKb2QC4D/zkHV33EduxMX296OmZvaGKS5rK2Cm/iTfokIJ5JoBLARwH4I/i4BJ56NBkwWR2q4C25ZKh1ionBdj32SoinHbqeFaNb5mY3Dgh9woocr1NdAGFFMwLNeECl8hDh6YLpitjYzMtlYGBfMJks1iT00R8JqA37c7fNNrybKIsUXIVrTLqRBPzUAZ9GkroCqjrgulcAS4WShPv/E2jLXmUJUo+ohW619HEPAxpYS4B8C0AjwB4GMA3ASxxiTx06ATBLKOy2CbHuy5p83kUQTfTVCs8XQeyXAd1ilYT8zCkYF4N4AMA5kRhFYCrXSIPHTpBMMvujhTtgjftzt9Emubn1ZVjX9/shQl5fJhlprlJeRhSMG9z+a6K0AmCWeTO7lLJfOJ3mbdX951fyMZUjvH2fbYd4ZskWnUSUjCvAfD+aE5mb/T+By6Rhw6dIJh57+yu/wu1pE0aUfORlVrhCCmYQ9G0om2RH/PbAIZcIg8dOkEwmfPd2V0txxAWpnTBm4+LO0XK0R1XwexBNvsz8zuZeTEzP5+Z3wVgf4f/CQZGR4FNm4CpKfU6Opr9ny1b3L5ftw7o75/5XX+/+j6Nz7FCMSYmgJERoKdHvU5MFItvzRpg+3bz71KOJZGlqAB+6vJdFaFTLMw8+C6RyzNKLl3wcqhyLmNcJ6Qc/UDRLjmA3wdwOoBfAvjzRFgL4HaXyEOHbhbMukc1hfxUuVqmjGfldMNN1VUwbV3yuQAWQE0l2isRfg3gveFtXcHG6Ciwfj0wPAwQqdf1692686EI3a3sFlzdKT7o3CkAsHu3ks7Nm4HVq4uX0cSEimfz5rDxtpYsRQUw7KK8VYRutjDrRizc/JQ1uJa0/Fx3FWpK2psGAg76fImI9o4/ENE+RPT9sgRcaCa6QYbt29X3gp2yBteSg4dTU/pjilixtv8XjbetuAjmImZ+Iv7AzL8C8PzykiQ0EWk4+anCnTI05Pd93fG2FRfBnCKiPdlDRMMAuLwkCU1EGk4x8kwl86EsK1amns3ERTDXALiRiL5KRF8F8EMAfx3i5ER0FBH9jIjuI6KPhYhTKAdpODNp2gBYWVZsEwYbG4WLoxPAIgBvB/AOqC564QEcqGWW9wM4EGpE/nYAS23/kUGf8MicTX9kAKzzQKhBHyIiAEcBOJSZLwPQT0SvCaDVrwFwHzM/wMy/BfB1AEcHiLdymmZtuOI7ZaTsbmVbkAGw7sWlS34e1CT2P44+PwXgcwHOvR/UpPiYrdF3MyCi1UQ0SUST27ZtC3DasISep1al+ErDz4cMgHUvLoL5Wmb+EICdwJ5R8rkBzk2a72YNJjHzemZezszLFy9eHOC0YQkpOlVPEpaGnw8ZAOteXATzWSLqRSRmRLQYgGHWlxdbMXMTjyUAHgwQb6WEFJ2qLT5p+PmQAbDuxUUwz4F6RMXziWgdgBsB/EOAc98M4CAiOoCI5gJ4H9Q2cq0ipOhUbfFJw89Hp44ct9UXXykuI0MADgbwIQCnAjjE5T+O8a4EsBFqtHxN1vFNHCUPOWJaxzI0GfluLyHLrttH/hFgt6IrAIwCGHCJqIrQRMFkDldxu73SCu6ErivdsmbchKtgkjp2NkR0NFQ3+a0ArgVwEYArWU0BqoXly5fz5ORkXaevhIkJ5bPcskV169eta39XTwjPyIgaFEwzPKymfPnS06MkMg2ReZ16J0FEtzDz8szjTIKZiOg5AN4JJZ6/D+BKABcx89UhEupDNwimILgQWuBCC3DbcBXMzEEfZt7BzN9g5ncDOBLAKwF8L0AaBUGI8B1wCT3DQQYA3XBZ6fMCIvowEf0H1APQrgLwqtJTJtSKjJhWR575t6EFrlNH/oNjcm4COBnKd/lfAP4fgMNdnKJlhqYO+uSlqSPULgMKTU17G8k74CJlEA4EGCW/EKoL3uMSURWhkwSzKSPiukaX1YCbkvZOwedZ8mXSzQJcWDCbGDpJMJswjcMkfKanEcYN2JR2eWJhNnluUFWkY2ysu2+CIpgNx8WqKPuOb2qoPT367wcH7Wnvxobmg+kGVbVY6dJhKlOZh+komFDTh0ZcIqkqdJJgVt3t1YlvlvCZBNNmYXZbQ/PBVuZV7kvqUn553AJt7tKHEMxjoZYtrgHQ5xJZ2aGTBDNLEEN200znGhz0E8y48ejiK9LQuoUQvsoQN1KfMnetb233awfpkgMYAPBpqN3Q/wLAn8fBJfLQoZMEk9l+Rw45EGAS38FB5rlzZ343d65ZSJONx+Z7EwuzHF+lrVcQIo709z6C1wSffBFCCeZcAH8L4F4Afwfg43FwiTx0qEMw6+pmhKyAtq53X9/szz4+tbZbFmVQhq9yfHx2WeW5kZrqFZFKX9663pSR/ryE6JIfBeAeAJ8C0O8SWdmhasGsUwxs5/YVcVMj6e01i7I86yc/eX2Vtt+y/I6uN1LbzbOsa24DIQTz3wH8rkskVYWqBbPuSqBrQHlEfGxM393ytVZchbHbBTSPtWXzC7v4msvqOvuUeZt7GjKtKAC+Fb8KoXCt8Emfme46VqzwazyuDaLtDScENoveVDd8Rq51guqKT/n4lqXpBt+Gm6cIZgBCCkqoiuM6f9NlFFsvdtXFAAAZ5UlEQVTnU4vjd+0SpvOibqu8CWT5G3XCk1cs5871r0uudTHEIFVbbp4imAHwKfAsv1WVu7K7Witx2kxdvmRjdLW2Qzr/22KdpBkfnz37IKvMTP5knTWZfO86YJQnH4uWZZtuniKYgXCtbLbKVcWcyrzWSpY1mjVZvSwLs03WSRrXG1ZSeFxvcL4UyUeX6WU22jRyLoKZoq5lhvE5i1acZPoHB1UwjbS6ruDp7XVr3HG8Vfow22SdpHHNf59eQV9fvpkKefNxbCxfOpK0qQxFMBNUYa3Y5t4Vnb4TwjVgs3JcBDNOR1Wj5FVbJyFvqC5lEC8QsG1+EYesrretfuQdsTelu6wBproRwUxQ1Z0u3ehsjcA2kTk9gdjUNertnW1d+ojl8HB2444bSNX+xCqtk9ANO6scBgdnDwrFwhbfXOPXIvNsbXXHJnxZ05h88qUtfmgRzARlWSvJqTu6Cm6bXpL8ry5drqKXnMyeNTJu+l9W46jDUqjynGWIs0l0YpeKz40ta/Nm0/9s57IJpm96OgERzARlNAjb1JGs7lAsRL67BZmCi6Vo+p9tlDxrwKenp1zLoSrrpIwbasjyTdbVFSv06TT9J8+1+aSnUxDBTFCGtZJlJWSJWJ7dgsoILmucXeNpq9VRVvc/ZDnF82Ztv+vKI2u6m+6G5Fov21reOkQwU4S2VlwquMuUHdeNXBcsyD5f3sZoazw+llJbrY4QN1Rd/pnESlfuLnmbNVfTVH6+G6y4ziNt800yjQhmAGwi6yoeNqsAmD3AY6rILnf9oqKZZ9OH9PnbSpEbqk5wiVT32SZKrpPV45tvnpuVSfwGBszx2Nw06ZAeeGwrIpgFybI6sipUPBUkS3BMcxnTjTekPyxLaJNp8jmvz5STplFEMG1lvHTpzJHvsbHp87mWTfwfm8Ca0pvH7ZOu91nWZidYmiKYHuhGu21zJ+P/uFQklwrq0pV1sfTyDv7Y0uQT38BAOLdH2spxXQaY91w+G1IUuZmZfMa2m1CcDlNvZcUKffryiKWp3pue85RMZ4hyqKrM04hgOuI7HSe9yUVcOV27V6aQTlO6Ueq2aNM1nFADSfF1+uaPi+i4lInuZuSzysQH10Efk7DmedSHz/HxdY+Pz/RlJ61PU/pCpivLQCh6g6yyzNOIYDria5HprEHfCePp0NMzHVeWzzNkQ7SFpG/Kx9/mkl9FyqSMgSXXqTe2QZwyXSaAst6zrGBf4V6wYHa6bdcxOGivB0XKpuoyTyOC6UieSeJJbPMxY+FxiTuOq8xG59uo09vT5bFeXAaCXCdiu8bni6uFWbYo5glJF5HP/+bO9b+erMGnImVjS0sVg4kimI5kNVDbpq9Z/zftOakLLmkpEgYG9JOeXRsk88x18UTTFoptCV6WdWAaYXZJTyhcfZhllk/RkOVjTIYFC7L367TlfdFdjHSIhVlCqNqH6bK7dFYli31Ptu5S7DAv04Lp7WWeP9//f1m+zFg0deujXXyYPiJUpj/LZZQ8r5WdvOmWVb4hg26eaFZvo+hIufgwSwhVjpKnG0169NHnDj0wYHaYx5OIm9qYfEbL0zvwuFT0LJ9Z8n0Tpq4k64FL/hX1M1YdXB+0V8ayVRklDxzqei550dFHU4jn5ZURd2jR9DnWh7KWJVaBzT+dFJL0zbbojIqyQt5J6KHEswwRdkUEMyBlWX8+3bS6LRNXi8rXQV9G964s0g3a5BNeunSmQOp6F/PmNaubbrMsbUIWqvzqrgcimAHx2cG8jMoc77AeUtjKCnkswzotC1dMDXrp0vx5NTCgrtlnwKasMouFUbfKx+abDtVDqLunIYLpia3Ruvrvyuhe6ypsOiQHFcru4tsEuamWYQhMdaAOsQt9U8y6RpuQhdoar+od9tO4CmYPaoCIjiGiu4loioiW15GGJBMTwOrVwObNqpg2b1afJybU7ytXZsfBDBx+OLB+PTA4OPv3nhw5TQT09QHPPms/bv58YOFCYMsW4MorgRNOAHp7/c/nwsKFwLx5+rSecAIwOlrOeetmyxb991NT1aYDUHUtJETAokWq3rsS58fQkP530/cxExPAyIhqFyMjql7liadyXFQ1dABwCICXArgewHLX/5VlYWZ1B3z8jDFpR7/LdlmhQl2DSMlJ1E3vYvvSFF9jU0KyrH19j7r/9PXNbiPiw0yfvCGCmdUd8OkC+U5uLyvU1VXUrXnv6/OfbtQ0yl6F1aaQ9ciMvHNvBwdllNx+cgfBBLAawCSAyaGhoRKyKtvC9B2hThd23RW8quC6pjrPfM0qrVbTuWyP8rDdFAcHZ6+SqrusioSieV+3v1JH7YIJ4BoAd2nC0YljGmFhZnUr8u4pGI88tr2BlB3ydOFcVmGF2gw4WZam3ctjwbTtLWqKv00hxKh13SPiOmoXTKeTN0Qwme2NrIjgNXWSctOCrbH4NLCi8/ls59It3+vtnf1dXF90Yt1mX2gon6IuH+fOrddVI4IZkCoq+fBwuxtT0WDrjvl04YpaL7ZzhVjxVHc+5w0hXScmS10E03RS4N0AtgL4DYCHAXzf5X91Lo0sc5Q7vnMX2Quz7SGUhVnUP2Y7V57t0NKikTUY11T3jWs7KbLrk3TJA4e6BJM5/NLEuOEkN/uoe/mjKcQT4nXdqDxp9t3VyKebXbQx2s6VtweQ9IHajivbfaNb1BALtO3cAwNueeea9zLoU1GoUzCz7vzz59sbVN3L3/KEtF/JtM44j1Vk2hXKhOtATog1yaZzuc4fLCKGZd00Y9FLX5vLyjDX5/UU3bleLMzAoekWpm1fyKZaj8m0px/56yoyec9Z1sTkMqcg6eLOszFzHeWrS7uL1RzCnZHOw6ZtuCKCGRCdk9oWdPMM6/ZNJecBmkL6ml1Fp8hgVRu2cbPRFr+zaVPgkGWkE8L0g9qSxzZpNZgIZkDyCEL60RY+FmZ8bMhufJYPrbd3+np1q3Wy5j3qGmPSYjWdt06/VQjaMG2MSHXJTeXuUnd06ETPt+40BRHMgBS1Dvv7zRVWF5J39FBL8uI4bcfE5zNdr83SyLIYmui3CkGWULVBUG1B5780GQA211PTy1kEMyC2xl6GbzJpdYVcw2xLa0+PWwPPayk00W8VAlN+xRZ7m1f26CaT572epvckRDADYutmlCGYybvxggX1N5xk0G2k4TOC3SS/VQhMPsyxsWJTkZoQdNZl3usRC7OGUIdgZjmyQw/mJJfVtWFAoe5tuZrA2NhMf/PAQL6NnPN033t6pm9gobv/Oqswq75nPXGyqYhgBiLUXplFxLONoYi/s22Ybqp5yrus+pQnPboytKXP9YmTTUQEMxBZk3Hb7KMqM5h8VmX4MutuoKFELk576PqU1/I0TQfSpa8pj0HOiwhmDnwm9qZHstvsqyojmCzM0KPlTRhM8rHeTHtiJtOcrIdFu9lFl3XqhLDuG1QZiGB6YptL6Nog6xYpYHq0e3hYrUDx7YrpHqcRx6H7zdeHGXodcROmK5nS4CqKvks9XUI6Xt3Apa/odjIimJ5k7YMYV+74kbe6it6UOXdJXK0L0/OI0tdoWk9edFVQXoFrwkYOLhP3i1hi4+N+dUtXZ3Ur1ebP9xPRTrEmdYhgJnBp0C4NL6v7l3WXtv0eP6bXdW1vnoptm9Np8zmGnDIUugvdBAuTWb+phS0/kktVe3v1/sIkrsJGpHoWPlapjxh3qrUpghnh2kBdGl7eEfP0HT+rQYXwh+qu0XcVj2ve+YpgSB9YE3yYvmmyzd1MxpHMI5/5vmXPrmj6nMo8iGBGhNxBJc+IeZ7GG2qkNH2NNl+bLo2ueVe3lde0QYis5YF5VgfNneu3AUye4GPFdhoimBE+Pq4Q66FDNd5kPEUagEteAMXyrgl+xKbg4vawlRmzuZ7F/vMyBTO+BlsvRyzMloQyLUwX6ur+hVqO5psXbbEwm4SL0GRZmFk3IFfxK1pfmujuKAsRzIjQhV5H9y9vF1030BBi27aiPsxOxiZUrj7MoqvL4oEfnxttcklu1qyITkQEM0EnFLrvIMCCBbP/77q5axLX0dxOyOMQ2LrTSWz5mnUDcrmBZk1YHxyc/q2N+1eGRgSzYYQWlPFx8yDAnDn5/K+6c4jl6EfIgT/bXNjkDdM28yErPT6Dop18QxTBbBBluQV0jcW0ptfWVTQ1APFN5iOvuLj8z8c9kx7E0cUbYv5xJyCC2SCaMPCU5c/SxSGj39VRdL6w780wKz6f+cedgAhmgwgpPHm7UC77M6Yn2JtGczupoTQF13LNM/pddGCvG26cIpgNIuQdukgXymXppUt3r+1beVWFT9fcVZRs5WcbCMzyVRedf9x2RDAbREgfUJlLOE0Wpe7plZ3mwwqNb5n79BxsgzxlWIPiwxTBrJyQK4DKWsKZZVl2soURGl+rzEeUbGVSlhtFRslFMFtLkS5UcoQ9blzp711DJ/mwQpPH0ssq16wyMp2z06zBMhDB7GJsPkzfCdFtftZ0nRT1+/kO2pnEsrdXxNIFEcwuR2et5N08pBt8WKEpkmemVVk214j0AoohginMosiAQKf7sMogb575rgG3/Ud6AW64CiapY9vB8uXLeXJysu5ktJaREWDz5tnfDw8DmzYVi3tiAlizBtiyBRgaAtatA0ZHi8XZKfjmTU+PkjsX4rKbmABWrwa2bwf22edZrF27FQcdtBOLFwMDA0EuoyOYP38+lixZgr6+vhnfE9EtzLw8MwIXVW1KEAuzGGV1rfNu7NEN5Mlzk7WYtUlGbNF+9rMP8OTkNt62barsy2sVU1NTvG3bNn7ggQdm/Qbpkgs6yuha2xp4t3fdQ2564vpQtXvuuYenpkQsdUxNTfE999wz63tXwewpx/AVmsroqOrCTU2pV1vXcGJCdeN7etTrxIT+uC1b9N8zq65oN2PKG9P3gCqT9etVd5tIva5fD5x3nnvZEVGRZHcsRfNlTqB0CB1G0icGKN/n6tXqfbqhDg3pfaOAXRi6AVPeDA3Z/zc6Kj7gJiIWpqBlzZppsYzZvl1vMa5bpywhHVnC0OmsWwf098/8rr9ffd/JEBFOP/30PZ8/85nPYO3atZWmYdWqVbj44ouDximCKWjx6UqOjgKnnDJbNLtBGLIwda+bZD26ul58mDdvHi655BI8+uijuf6/a9eu4okogVq65ER0BoB3APgtgPsBfICZn6gjLYIe367keecBhx8uU4t0NLl77eN68WHOnDlYvXo1zj77bKxL3TU3b96ME088Edu2bcPixYtx4YUXYmhoCKtWrcLChQtx66234tBDD8Vee+2FX/ziF3jooYewceNGnHXWWbjpppvw3e9+F/vttx8uu+wy9PX14ROf+AQuu+wy7NixA4cddhi++MUvlubDrcvCvBrAy5j55QA2AvjrmtIhGMjTlfQZUBKagY/rxZcPfehDmJiYwJNPPjnj+1NPPRXHH3887rjjDoyOjuIjH/nInt82btyIa665BmeeeSYA4P7778cVV1yB73znO3j/+9+PN7/5zbjzzjvxnOc8B1dcccWe+G6++Wbcdddd2LFjBy6//PLiiTdQi2Ay81XMHNvcNwFYUkc6OpFQ3as2dCWF4uQZxXfluc99Lo4//nicc845M77/0Y9+hD/5kz8BABx33HG48cYb9/x2zDHHoLe3d8/nt73tbejr68OyZcuwe/duHHXUUQCAZcuWYVO02uK6667Da1/7WixbtgzXXnst7r777uKJN9CEUfITAXzD9CMRrQawGgCGun0EIYPQ3asmdyWFMOQdxXfltNNOw6GHHooPfOADxmOS3eeB1LKkefPmAQB6enrQ19e359ienh7s2rULO3fuxAc/+EFMTk5i//33x9q1a7Fz584widdQmoVJRNcQ0V2acHTimDUAdgEw2kHMvJ6ZlzPz8sWLF5eV3I6gzO6V0JmUPYq/cOFCHHvssTj//PP3fHfYYYfh61//OgBgYmICRxxxRO74Y3FctGgRnn766eCj4mlKszCZ+a2234noBABvB7AimmkvFKTM7pXQmcQ9iDIH604//XSce+65ez6fc845OPHEE3HGGWfsGfTJy957742TTz4Zy5Ytw8jICF796leHSLKRWjbfIKKjAJwF4I3MvM31f7L5hp0yN9cQ2sOGDRtwyCGH1J2MxqLLH9fNN+oaJT8XwF4Ariai24joCzWlo6Po1knSglAVtQz6MPOL6zhvp1NF90oQupkmjJILAZGRbQFQu5DJBhyzKeqClKWRgtBhzJ8/H4899lhhceg0mBmPPfYY5s+fnzsOsTAFocNYsmQJtm7dim3bnMdTu4Z4x/W8iGAKQofR19eHAw44oO5kdCTSJRcEQXBEBFMQBMEREUxBEARHWvWYXSLaBsDwMIQZLAKQb+fS4nTrues+f7eeu+7zd8q5h5k5c7OKVgmmK0Q06bLMSc7dOefv1nPXff5uO7d0yQVBEBwRwRQEQXCkUwVzvZy7687freeu+/xdde6O9GEKgiCUQadamIIgCMERwRQEQXCkIwSTiM4gonuJ6A4i+hYR7W047igi+hkR3UdEHwt07mOI6G4imiIi4xQHItpERHdGGyYH2Tbe49zBrzuKdyERXU1EP49e9zEctzu67tuI6NKC57ReCxHNI6JvRL//mIhGipzP89yriGhb4lr/NOC5LyCiR4joLsPvRETnRGm7g4gOrfDcbyKiJxPX/bcBz70/EV1HRBuiuv5RzTGlXfssmLn1AcCRAOZE7z8N4NOaY3oB3A/gQABzAdwOYGmAcx8C4KUArgew3HLcJgCLAl935rnLuu4o7n8E8LHo/cd0+R799nSg82VeC4APAvhC9P59AL5R4blXATg3ZBkn4n4DgEMB3GX4fSWA7wIgAK8D8OMKz/0mAJeXdN37Ajg0er8XgI2afC/t2tOhIyxMdnvO+WsA3MfMDzDzbwF8HcDRmuN8z72BmX9WNJ4Sz13KdUccDeAr0fuvAHhXoHhNuFxLMk0XA1hBYXbSLTMfM2HmHwJ43HLI0QD+hRU3AdibiPat6NylwcwPMfNPo/dPAdgAYL/UYaVde5qOEMwUJ0LdbdLsB+CXic9bMTvjy4QBXEVEt0TPWq+KMq/7Bcz8EKAqNoDnG46bT0STRHQTERURVZdr2XNMdBN9EsBggXP6nBsA3hN1Cy8mov0DnNeVuuv37xPR7UT0XSL63TJOELlXXgngx6mfKrv21uyHSUTXAHih5qc1zPyd6Bjbc851VobTnCqXcztwODM/SETPh3r4273Rnbvsc+e+7qzzu8YBYCi69gMBXEtEdzLz/R7/35MczXfpayl0vQXPfRmAi5j5N0R0CpSl+5YA53ahrOt24adQa7GfJqKVAL4N4KCQJyCiBQC+CeA0Zv51+mfNX0q59tYIJhd/zvlWAMk7/hIAD4Y4t2McD0avjxDRt6C6eJmCGeDcua876/xE9DAR7cvMD0VdoEcMccTX/gARXQ9lJeQRTJdriY/ZSkRzADwPYbqTmedm5scSH/8Zyp9eFYXKuQhJAWPmK4noPCJaxMxBNsYgoj4osZxg5ks0h1R27R3RJSf1nPO/AvBOZt5uOOxmAAcR0QFENBdqQKDQiK1H+gaIaK/4PdQglXbEsQTKvO5LAZwQvT8BwCyLl4j2IaJ50ftFAA4HcE/O87lcSzJN7wVwreEGGvzcKb/ZO6H8bVVxKYDjoxHj1wF4MnaXlA0RvTD2ExPRa6B05TH7v5zjJgDnA9jAzGcZDqvu2ssaTaoyALgPyodxWxTiUdLfAXBl4riVUKNs90N1aUOc+91Qd7jfAHgYwPfT54YaWb09CndXee6yrjuKdxDADwD8PHpdGH2/HMCXoveHAbgzuvY7AZxU8JyzrgXAJ6BulgAwH8C/RXXiJwAODHi9Wef+ZFS+twO4DsDBAc99EYCHADwblflJAE4BcEr0OwH4XJS2O2GZsVHCuU9NXPdNAA4LeO4joLrXdyTa98qqrj0dZGmkIAiCIx3RJRcEQagCEUxBEARHRDAFQRAcEcEUBEFwRARTEATBERFMoXaiHWl+QUQLo8/7RJ+HU8ddT0T/I/XdaUR0Xo5zvouIlhZLudBtiGAKtcPMvwTweQCfir76FID1zJx+pPJFUBPGk7wv+t6XdwHwEsxo5ZDQxcg8TKERRMvfbgFwAYCTAbyS1a5AyWMGAdwLYAmr9dojUMtLh5mZiegvARwLYB6AbzHzx6P/HQ/gLzA9AfrzAC6H2pjjSQDvgdo67AsA+qEmQJ/IzL+KlnL+J9QKpUuZ+cyy8kBoPnLHFBoBMz8bCd73AByZFsvomMeI6CcAjoJahhnvd8lEdCTUhg+vgVr5cSkRvQFqid4aqM1PHiWihcz8OKmNjC9n5osBgIjuAPBhZr6BiD4B4OMATotOvTczv7HM6xfagXTJhSbxNqgleC+zHJPslie740dG4Vao3XMOhhLQtwC4mKONIJh51kYcRPQ8KFG8IfrqK1Cb5sZ8I8/FCJ2HCKbQCIjoFQD+AGrH7D+zbAD7bahNgQ8F8ByONpeFsio/ycyviMKLmfn86PuifqdnCv5f6BBEMIXaiXak+TzUXodbAJwB4DO6Y5n5aahHclyAmYM93wdwYrRvIohov2jv0R8AODbyfyIeiQfwFJTfEsz8JIBfEdHro9+OA3ADBCGFCKbQBE4GsIWZr44+nwfgYCIy+Q0vAvB7UI+JAKAeUwLgawB+RER3Qj2eYi9mvhvAOgA3ENHtAOItwr4O4C+J6FYiehHUlnBnRL7MV0DtQiQIM5BRckEQBEfEwhQEQXBEBFMQBMEREUxBEARHRDAFQRAcEcEUBEFwRARTEATBERFMQRAER/4bnioDFM6tcBkAAAAASUVORK5CYII=\n", + "image/png": "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DlQDbQ6k2g58QFV/IyK7A2tE5EpV/V0ozCvx1l09GG/nlS8yfVszwzAMo8OsXMn8M89k/zvvZGSffXj8jDP409KllFoje3h4WN/ylrds+djHPrb35z73uT+Fz61bt27k1FNPHd+6deusXq+3/etf//qGgw8++PETTjhhfK+99tp+/fXXjx522GHbdt99950bNmwYueuuu2Zv2LBht4997GO3/eIXv5h31VVXPXXvvfd+4oc//OH6OXPm6Ac/+MF9f/CDH+z55z//eWjx4sUPT05ObhwaKtZmba2lq6p3qOpv/L8fwtsXc/9IsOOBr6vHNcCeIrJvw1k1DMMwCrJyJfPf9z7G7riDEVW44w5G3vc+xlauZH7ZuD/0oQ/dfckll8zfunXrLvs4L126dNHf/d3fbV23bt3v3vjGN25dtmxZsCUnt956624/+9nP1n35y1/eDLBx48Y5V1111fqLL754/dKlS5/+0pe+9MF169b9brfddtt50UUX7RGkc8MNN9x0yy233Pjoo48OffOb39yjaJ470afrL1p/BPDLyKn9mdrmC7z9UaPCHMSxRERWi8jqLVu21JFNI4PJSRgfh6Eh73Nysu0cGYbRNmeeyf6PPbar1jz2GENnnhlfludh/vz5O0866aStn/jEJ54WPn7ttdfOXbJkyb0Ay5Ytu3fNmjXzgnOvf/3r75s1a8rJ+7KXveyBOXPm6FFHHfXojh075MQTT3wQ4DnPec6jf/zjH0cAvv/97+9+2GGHPfuQQw459Oc///nuN9xww1OK5rl10RWRecC3gfeq6oPR0zE/iR0xp6rnqOpiVV28cOHAz11vnMlJWLIENm4EVe9zyRITXsMYdO68k5E8x/Py4Q9/+K4LL7xwwSOPPOKkZ/PmzdsZ/j5nzhwFGB4eZtasWRq4jYeGhti+fbts27ZNPvCBD4xdcsklt65bt+53J5988j2PPfZYYe1sVXRFZDae4E6q6iUxQTYDB4a+HwDc3kTejHwsXw7btu16bNs277hhGIPLPvvweJ7jedl77713vPrVr77vwgsvXBAcO+KIIx4599xz9wL40pe+NH/x4sUPF41/27ZtQwD77LPP9gceeGDou9/9bq7RylHaHL0seJtZ36Sqn0kIdinwFn8U8wuAB1T1jsYyaQBubuNNm+J/m3TcMIzB4Iwz+NNuu7FL63K33dh5xhn8Kek3eVm+fPmd999//5M+4y9+8YubLrjgggWHHHLIod/4xjd6Z5999m1pv09jwYIFOyYmJrYceuihz3nlK1/5zMMPP/yRMnltbZchEfkr4D+A6+HJB/KPwCIAVV3pC/PngWOBbcDbVDVzfcfFixerLQNZDYHbONyKHR2FU0+Fyy7zRHXRInj4Ydi6dfrvx8Zgw4bGsmsYtSIia1R1cdv5aJu1a9duOPzww+9xDV/H6OWus3bt2gWHH374ePR4a1OGVPU/ie+zDYdR4H82kyMjjiS38cqVXt8teP23IyMwezaEp76NjsKKFc3ltWomJ73rDyoWK1bAxETbuTKM/mPpUu6d6SLrSusDqYzmKDK6OMk9HHWQPP44PPWpXstWxPs855z+FSkbGGYYRh3MyF2GjOlE3cSBiEC6MC5a5IV14d574R5nh1O3SRsY1q8VCcMw2sdaugNC0dHFK1Z4buIwktApsGhR8fx1DRsY1hw2v7sv2blz587U7sFBxr83O+POmegOCC4iElf4TUx4buKw23jp0ulCnNV/228Fa1IFYiZVLLqAufH7lhu2bNmyhwnvdPz9dPcAbog7b+7lASHJTRyISJb7OepSPfro6YOMwBPU6MCjoq7tNlmxIn7Udj8PDOsi5sbvT7Zv3/7OO++889w777zzuVjjLcpO4Ibt27e/M/asqs44O/LII9XYlVWrVEdHVb32hGejo95xVdWxsV3PBTY2Vj7+snG3RZB3Ee8zuFf9RtnrqPM+iMS/GyLVpVElwGrtQBln1r/WegbqMBPdeNIKz7KFX5qw9lvBOpPIqmyl/S54ptHn5/J7V/qtQmaia1bWWlsco05scYz8jI/Hu59dF7cYGpo+jQi8fuAk17YtnFE/RZ5r3IIoeX6fh6TFV7o63cwWxzDKYr54A4gfpZynD3N+wiZdQd+uS9z9NtiqHygyCjuunzXP7+NIerYTE97qZsP+xmzDw973LgquYVRC203tOszcy8Uo2ne3apXqyIhOcxHOnj0VR1bcRd2gRjpF3LdJ3QF53L/h593ree9C3LPtt+eOuZfNSlrrGajD+lF0+3nQTlLBPjTkfh391rfXLxQRtaRn4fr7uDSTnm2/PXcTXbOy1noG6rB+E91+q+1HSWsZuV6HDbaqj7wVurj3MXg+Lr/PEu1wnHU/96orsya6ZmWt9QzUYf0mul2u7bsUWlmFrMt1dPkeDCJlxMrFPQ2qw8Oe67mu515HZdZE16ystZ6BOqzfRLerrTzXQsvFnVhVWkZ7uAqxa0sXvL7e6HiAqp57HRU5E12zstZ6BuqwfhPdrrby8uRr1Sqv5ZJUeXApRPu5X7sOunQ/8lSK4sKOjCRXLnu9eq6zjsqsia5ZWWs9A3VYv4lu3gKtqYI4b6G1alXyb/KsbNUVoWmTpHdi2bKpylBQyWniPuWtGMY9x6Y9OtbSNeuitZs4nAfcDdyQcP4lwAPAdb6d4RJvv4muqpvYpIlz9PdB4SyiOneuN5I4KKiXLXPLQ5H+tiQ3okvBai7mKZIEI0m46r5PLoKZ9Q437dGxPl2zLlq7icOLgedniO738sbbj6LrQlKh1eu5TdEIW1R4k1yCSfMr8+bRBlPlw3UwUpX3KU0009694Ldx70+vt2tFsOlKlY1eNuuatZ8BGDfRdaNIQZxkQ0O7xp1WqOYptJYti48nqXXtcn1tDyhrgzyDkcrep1Wr4r0aYUFctWp6BSwQ1rRNLaLxhT0wWe9TF7saTHTNylr7GcgW3a3AWuD7wHNS4lkCrAZWL1q0SGciRQriNKtyw4OsPFpLNx9pc2WrbOlmjTwPx5nW3eBaIaxi16o2MdE1K2vtZyBddJ8KzPP/Pg64xSXOmdrSTSqIkgrDLJs7d6rATBp5HBSUroVdlnintV66WtC2RVw/fdr9LXKfsipy4UpXWtp5FsQok6+2K2AmumZlrf0MpIhuTNgNwIKscDNVdFXjRct12b0yFhW/ZcumhDo8OCutsHQR1TwuxS66H+smTnhF3Nz3cbius5y1L3KepR/L5KvtrgYTXbOy1n4G0lu6+8CT2w8eBWwKvqfZTBbdJKICdMwx6a3XtJZIVoGZ1m+bJqxVtl76rVVcZQWhyrhcW6hBf2zaPXfd5MDlOrIGbrWFia5ZWWs3cfgGcAfwBLAZeAewFFjqn383cKPfp3sN8CKXeAdRdMPU1fINXJhJ54eHp9KPK0zTBD0vXXU/xtHVCkLSAKok6/Wq80S4zEOOs/DOVW1gomtW1lrPQB026KJb9YCrwObOjR/B6iqeaXNP45aWTCvcu+p+jKOLFYSiFbMkwcsS2Oi5vPOQo5W7toTXRNesrLWegTps0EW3yqlFeSxo6SbhumKVS8uwi0KWRBcrCEUH3yUtAZrUak2ailT2XWvLU2Cia1bWhtI2uDf6k0WL2kl3yRLvc3ISxsdBBGbN8j7Hx71zqvG/3bRp6u/ly2Hbtl3Pb9vmHQ9YsQJGR3cNMzrqHa+C4BqGhrzPycnicSU9D9fnVDQv4d8tWODZ0BDsvjts3eoWR5SNG6fnJel5rVwZn862bTA8XCz9cBzB+1DlszKM2mlb9euwfm3pVjVAponRzFELRs+mpZ02vSncgnJtGdY1ernqPtg8y3fGudmL5KWpd6BMGnnnIce9D033l2MtXbOS1noG6rB+FN06Cvoio5eLWpDPrP7kuCUru+Y6riN916leVd2Luvr146zIexbu201bJjIrjqTrrKvf10TXrKy1noE6rB9Ft46Cvqq+XddC1aWfMGid1NG6q4qm+mBdnnnRvDTdr59HLNOepeuI6iCOtOssMwc8CRNds7LWegbqsH4U3TIFfVJhUra1E15FqqpCPDpgKs+I16ZoqqXt8syL5qXoQKmiNm+ee5ppC3m4uMXzvOPBfaqqImeia1bWWs9AHdZvortq1dTWe1HLWgwgboWicH9hmT63sIuuioI5vOuMy+IJZe9pUdFuqqXtIqhJzzCYM5uU/5GRap5ZHsv7rsU9lzQRDYt1eNpRWoUwqMBUVZEy0TUra61noA7rJ9HNEsY00c2aghN11fV6+VtAWatJVW1ZhaCLmFYhmk20tF3zmeRyTbqmpGcVVOySKnhtWPQaXN6NPJXJ4DdVdRmY6JqVtdYzUIf1k+jmWXA+72/Ljg4NF1xNjohO6+uNtuCCreVc7ksX5/C6inuea8rq52xbaKPmWhnIarUmeXzy3r80THTNylrrGajD+kl0y2zXlvbbJkcu12XRVlBSK31oaNdwXVyMoix5riltRG/bz7SMZbVagzB17mBlomtW1mxxjJZJWyBhdBSOO85b1EDEswULpib/J/1WBHbsqD6vTRNdECNpQYedO72FObLuS1uLhlRBnmuKWzhkZCT9nRgbg1WrPOsi4YVPku7F2Bhs2OC9Dxs2wMTE1LmJCTjnHC+MiPd5zjm7hjGMRmhb9euwfmrpJrlt01xtgUs17rfBNm9Nj14tYsPD3nrOaWHCLbms+IL+77anHFWByxzW8AYBweC08EC1tEFrcS3IJvvui7Z005aWbOL5Yi1ds5LWegbqsH4SXdVdC9hez23kabSgjC660KXBMmmC6hImKExdKhJB2KT9fvuBrB14XBeTcBkEV3akexfes7SR3FVjomtW1oK9amcUixcv1tWrV7edjUIsWOC2Lq6I50aLMjnpuVqja+H2M6OjnisQ4G1vgyeeSA47Nua5IaP3IIijH9yJ4+PeGsdRAvdpVrjobzZt8uQpjl4P7r3XW7e4aJfErFmwfXux31ZB9L7UiYisUdXFzaRmzESsT7dDTE66L0Sf1K8Vt/h8lF4Pli0rv+h8UwR9uxMT8NWvevlPYuNGOO207A0Tukx484e040nhwmzcCPPnJ5/futUT5DJjAPbYwxPeNHq9qb7UefOKpxWHy30wjK5gotshXEVhZCR5N52slg/Ao4/C0UfD+ee7561tgoJ1YgLOOstrmSWRVHHpl8I5qUI1f/6uu+mkiWmY++6rKmfxbN2aLdqPPgoXXOC1SFeujN8hKhjIFT2XRT8PkDMGkDZ928B5wN3ADQnnBfgssB74LfB8l3j7rU83wKWPM+hDS5rHmqcfrMuDZqJWZGGEpDi6TtwqY7Nnx89RThsg1TUL3/9on/sxx0z1V8+d695XHAwcbAqsT9espLWbOLwYeH6K6B4HfN8X3xcAv3SJt19FN0kEg4EiadvD9cNoZRfbbbf440HBWrSi0C+jl/NWKoLKU9MbHJSxrNHUXX62JrpmZa39DMB4iuh+CXhz6PvNwL5Zcfar6KYJa5ogd3GVoSIWjMqNOzc8XE5Y+mX0cpFKRZnfzhRryothomtW1rrep7s/cFvo+2b/2DREZImIrBaR1Vu2bGkkc1WTNoE/qT9y69aZM1JZNblPescO73xRLrqo+G+rZnJy177ZYFEPyN/vHB4Mt2KF198/iGzcOP1eGkYX6broSsyx2KJXVc9R1cWqunjhwoU1Z6s+JibiV9WpYrCISPrI35mM66jwugmmdG3cOFXJcFlNK4kdO6bEG+C88wb3GUfvpWF0ka6L7mbgwND3A4DbW8pLq8Qt7Tc6mq+AdR3tWhdpI44HhbgpXdu2wamnevfn4Yfzt1bD4g1wzz3FRgHPBIKpYWneBMNok64Xg5cCbxGPFwAPqOodbWeqDZJcz2ed5V64bt3abovvKU/JF14keS5x3jnGXWn9JbmPA/d5MG+2SH7Dc5GD96XqObH9QFABSfImGEabtCq6IvIN4BfAs0Rks4i8Q0SWishSP8hlwB/wpgx9Gfj7lrLaKJOT8ZscxLmeo2LcFXGJ45FH3MOOjXnXef758S38vIs5nHVWvvB14eI+fuIJTyzHxvLHHxb1iYluvw8uFOmjHh7u78VRjBlO2yO56rB+Hb2sGr9nLHhTLKJr7+bde7VfbGhoarH+YI3h6JrDeUYyBxshdIE8U4LyzLsObHh46r0o8vs6LVg/Os96zcGzD64NvO9F1nyuYmtHbPSyWUlrPQN1WD+Lbtp827RNusMsW5YcB6jOm7eriB16aHr4ti262H/avrCzZrndozYJb1KRdB3Dw17YpPchbapYcL/KTCWreu/dcCUxT4UpaSpQ1m/S8uBScU3CRNesrLWegTqsX0W3SMskrlByaem67lQTFJBZW/B1xcoWqk2Tdi2q2YuiJIljWdGscrGNqKchjycmqXWaJaxJuzSV3fLRRNesrLWegTqsX0W3iFs4KJRcWk9FC9exsf5Y8SrPAgldEec08QhI2qawqPvYZevIqitZ0e4ClzykPdOsPZPjnq/Lvc7CRNesrLWegTqsX0W3SOsiqWY/aJanxdKlTe5dxMO11ZbnfcmqRNW5T+7IiFv8IyO7inXQug/vPR09n0bS/1eevl4TXbOy1noG6rB+Fd0iLd2sTcpnsgVLQ+ZtqVbR4qmStFZ3Ul6LimJ4w/euDbSKXl90fea4DR7yVJaspWvWBbNN7DtE3Ab0o6Pe/Na4+bVDQ1NFx6BRZlP64L5FEfGmKXWJpLyWQcSLc2zMW4wj7t0aHs43LWvuXNhtt3bmgbtuYp/0/5XnPbJN7I2ydH1xjIEi7wIYO3eWL5BF4NBDvc+uE6xoFV6TughJc2W7uC9rHXkK3pmNG+P32h0d9cQp+s6lzZkVgQcfrC6PeXBdrzptbXPDaIy2m9p1WL+6l9MIuyCrns4RnZJT9dZreSzod+v1vKlNcXkt2/fapT7dLJp2AYf3p41ze1eRRtY+wKOj+QbuNdktgLmXzUpa6xmow2ai6IapY+/UaMFVdDR0nr7GrMEwRfrgXEcld2X0sgtNjxxPu79FKnzRCl1wPUFcSceiI5zL9ulWgYmuWVlrPQN12EwX3ToGTiWN4Fy1Kr/wuoyqdWmd5B1t2k8t2DzEXVednoi0+1tGwLPmHMddY9ro5TYqSya6ZmWt9QzUYTNddOuYItTrxS+3l7eVFcwjTWsRibgVlklzRYMRuOG8hVtLRQS+68TN1U17DmVEOe5+FXnnAld1IJJJXpCxse6NKE/CRNesrLWegTpspouuarV9fbNnuy9W4GJBH3FamDLXNzKSP7/94kqOI6kVmCRiwfrLRTwiSZ6Bot4VF6EWSfemdOl5meialbXWM1CHDYLoqmYXhEHrNdp3Gu1HraPPcGwsuaXq0nqp0oXuumZ1V8lzL7IW1ki7R2kVkjRRTHp/XPt/01q6ZZ5XHa5oE12zstZ6BuqwQRHdtEI1raCKFkZVC25gSbsluRR+VQ0WS4qna27LNFzvRXSHoWh3QZIIlqkEBS7kuL5a12ca2+QyAAAgAElEQVS0bFl2xS/v86qrf99E16ystZ6BOqyLolvXAJC4wjVr1G6VruQ0AYg77rrNXlplIG2EdLh1nxZHFdu8NUWeipFqtQv+u7ipk3bvccn33LnuLugq7lnZypaJrllZaz0DdVjXRLdLo2qLuJKzWlp5WjmuhWdS5WBoKHnB/LhWdL8M0EnCZZ3ksIX3n80Sx6y1i13d02mjnauaj5v1vFy9N2UrWya6ZmWt3cThWOBmYD1wesz5twJbgOt8e6dLvF0T3S4V/GkFW1wLctas9L65YFH64Huvlz6IKhh57DqXNhp32H2adC4aR1cqPHlJEr20HYCC9aizBGfZsuy+btcWdtp7nNbf6zodzaU1Hr1PdXUrmOialbX2EoZh4FbgIGAEWAscGgnzVuDzeePumuhWsbuJK1mC5lKIhoUsb8s4q/US504Mz9XM4yp3vQ95d6PpCmmVtSwRTHqeLr8NqEIQs979pPzk2cwirb85T15dMNE1K2vtJQwvBC4Pff8w8OFImBkhuk21dF22icsjoEVWpCpqvV6xQWFF7kPXyeoPTVsKNGhBxk0xcunLD1cE6xTE4N2v4lmlvaM2etmsa9ZewnAicG7o+ylRgfVF9w7gt8DFwIEp8S0BVgOrFy1apF2iKRHIKuCKjFSuc1/VvBWAqu5Dl3HpRx0bS3bhJ62b7OqxiI6Adnlv07wrSa7fIJ9Zv3ehyedtomtW1tpLGE6KEd3PRcL0gDn+30uBq1zi7lpLV7WZ5euyXHlNtVqTLNr/m8fyuOKbdOdXTVbFKCx6catUhSm6fnbUO5L23roI8zHHpKdRliY9Gya6ZmWtvYQd3MuR8MPAAy5xd1F0m6COlm6VlrTGrsso1kFp6Wa5Sl2FpOxSoa73KssFnfZcq3weTa3JbKJrVtbaSxhmAX8Anh4aSPWcSJh9Q3+/DrjGJe5BFd20+ZlB4ZhWqBdpCUcXpXdZ/ziugEwbyeq6VnPWfeiHPt2qKgwuFays5+0iXmW8J/3geYhiomtW1tpNHI4D1vmjmJf7x84EXuP//XHgRl+Qfww82yXeQRVd1emCFrcgQnjP2ujSkK6FZVKhXEbw0tIsex/6QXBVq6swZFWuXBewEPHcw0n3soz3xHWhlC5homtW1lrPQB02yKIbxaXllOWKDPpiXQXMdQ5tkbwOAlVUGFzvZRE3dNH1nU10zcxMdDtP2QI4rcUTkNZaKZJm0dZaP7uFu0aee+m6ZGNapS14R/Nscm/uZbNBtPST3uClT7edybw2U0S3ChFKWzggiMfVFVk2TZcWa7+6hbtI3nuZR3jTln50bfn2owfDRNesrGUHgKsAaTujeWymiG4V7ta0AUp5RjXnEft+nrIzyLguy5j1DrqMK+hXD4aJrllZGyKba4F/E5FTROT1gTn8zijJpk35jscxMeEVc2nxrFgBo6Pp8WzbBsuXu6W5aFG+40Y3mJiApUtBJD3c6CgcdxyMj8PQkPc5OblrPBs2wM6d3ufZZ8M558DYmBf32Jj3fWKivmsxjK7iIrrzga3AS4FX+/aqOjNleFQlXmNj6fFMTOxaKCbhKvZxIj466h03us3RR8P8+cnnez049VQ4/3zYuNGr0G3cCEuW7Cq8UaJCbIJrDCxtN7XrsJniXq5qYFHeeKpya1vfbH/hugRlW6PMu/BOYe5ls5KWHQAOAL4D3A3cBXwbOKDtjKfZTBFd1eoKmjzx2CjiwcR1QY02+uy78k6a6JqVNVFN6PDzEZErgQuBC/xDJwMTqvryetre5Vm8eLGuXr267Wz0NZOTXh/upk2eG3rFCnMJznSGhpL7/wN6Pbj/ftixY/q5sTHPdVwH4+OeG7vJNOMQkTWquri5FI2ZhovoXqeqz8s61iVMdA0jP0nCFjB7ttfn//jj08+NjtY7OCqpQiDi9RM3hYmuURaXgVT3iMjJIjLs28l4A6sMw5hBxA2ACwbWjY3BU58aL7jDw/WPRrYR8cZMwUV03w68AbgTb2/bE4G31ZkpY2YzOZk83cRoj+go9rExuOACr4W5YQPce2/873burL/rwUbEGzMFF9E9UFVfo6oLVfVpqvpa4MC6M2bMTCYnvekleaabGM2Q1Y/fZmszrkJgc32NfsSlT/c3qvr8rGNdwvp0u0tXBsQYuxJUhrZtmzoW7ad1CTPTsT5doyyJLV0ReaGIfABYKCLvD9lH8dZkNgaIqlzCVayyZVTP8uW7iilMX4XMWpuGUZ409/IIMA9vs/ndQ/YgXr+uMSAUdQnHCXVeF6X1/zaDa2XIVpYyjJJkTeQFxtqeTJzXZtLiGF2gyApESYsZ5Fn8visLIgwCSc+412t/FagugS2OYVbSXAZSnSsiewZfRGQvEbm8CsEXkWNF5GYRWS8ip8ecnyMi3/LP/1JExqtI18hHEZdwkrvyssvcXZQuLk+jGuJGB8+eDQ89ZIPeDKNKXAZSXauqR2Qdy52wyDCwDng5sBn4NfBmVf1dKMzfA4ep6lIReRPwOlV9Y1bcNpCqWooMfqpiMYOuLIgwKERHLz/8MGyNmZE/yIPebCCVURaXlu5OEXmyx01ExoCMxeKcOApYr6p/UNXHgW8Cx0fCHA+c7/99MXCMSNbGYzOPtvs1i8yRrGJ6iS2I0CzR/tqkebk26M0wiuMiusuB/xSRC0TkAuCnwIcrSHt/4LbQ983+sdgwqrodeADoxUUmIktEZLWIrN6yZUsF2esGXZjXWmTUahWLGdiCCO1ilR7DqAGXjl9gAd4euq8GFlTRmQycBJwb+n4K8LlImBsJ7WgE3Ar0suKeSQOp2tpGrQqq2CGpC9u5DSo2kG062EAqs5I2K0uUfXfuscBBqnqmiCwSkaNU9Vcl9X4zu65sdQBwe0KYzSIyC9gDSHB6zUz6eV7rxET5KSVVxGEUI7jvttuUYVSHi3v5bOCFwJv97w8BX6gg7V8DB4vI00VkBHgTcGkkzKXAqf7fJwJXqWoV/cl9g7n4jDaxebmGUS0uovuXqvo/gccAVPU+vIUzSqFeH+27gcuBm4CLVPVGETlTRF7jB/sK0BOR9cD7gWnTimY61q9pGIYxc8h0LwNP+NN7FEBEFgKVTNhQ1cuAyyLHzgj9/Rhe3+/AYi4+wzCMmYOL6H4W+A7wNBFZgefm/V+15srYBevXNAzDmBlkiq6qTorIGuAYQIDXqupNtefMMAzDMGYYabsM/buITIjIXFX9vap+QVU/b4JrGEa/0vZCM4aRNpDqHLy5uRv89Y9f648yNgzD6Du6sNCMYSSKrqr+m6q+GVgEXII3dWeTiJwnIi9vKoNG/2CtCKPL2AYaRhfInDKkqo+q6rdU9XXAK4AjgB/UnjOjr6ijFWEiblRJPy80Y8wcMkVXRPYWkfeIyM+AfwWuAI6sPWdGX+HainAVUnMFGlVjC80YXSBtINW7ROQq4DfAIcD/q6oHqeo/qOp1jeXQ6AtcWhF5hNRcgeUxT8Gu2EIzRhdIa+m+CPgEcKCqvkdVf9ZQnowOkLfAdmlF5BFScwWWwzwF0ymyW5ZhVE3aQKq3qeoVqmrbhQ8YcQX2ySfDggXJhbZLKyKPkJorsByD6inIqizaWtJG27isvWwMGHEFNsDWrcmtJZdWRB4hNVdgOQbRU2Cte6MfSOvTvUxExpvLitEV0grmtNZSVisij5CaK7Acg+gpGNTWvdFfpLV0vwZcISLLRWR2Q/kxKiZP32wQNmvzxKKtpSwhjeYVzBVYlDY8BUUHblU14GsQW/dGH5K2wz0wF/gksBb4IN72eu8H3p/2u7btyCOPVEN11SrV0VFVT0Y9Gx31jruETbKxsXbzarixapX3rES8zzrvZdHnV+VzHxur/30FVmsHyjiz/rX0k96+uWcAvwf+CfhIYG1nPM1MdD3yFEJJYaNWlxA2UWAa1RAn5kWfX5XPvYmKm4muWVkT1XhfoogcC3wGuBQ4U1VjhtZ0k8WLF+vq1avbzkbrDA0lu4qjx9PCjo3Vv5dvUvoinnvZ6AbBYKVw3+noaPzAO8h+flU/98nJeveeFpE1qrq4uhiNQSOtT3c5cJKqnl614IrIfBG5UkRu8T/3Sgi3Q0Su8+3SKvMwU0jrD0saNCMyvd8sKezYWP5+1SJ9dIM48KcfSRqsNDwcHz54fknvxPz56b/Li00JMjpPG81r4FPA6f7fpwOfTAj3cJH4B8W9nOVOW7XKcwG6uO+qcs11oW/PqI+k9yl4XuHvQdheT3VkJP5cnI2MdPe5Y+5ls5LWTqJwM7Cv//e+wM0J4Ux0U0jqD+v1psIkFWwi0+PLGngTdz56rNeLT8+lj67JgT8ziSrvW7h/dnh46tkFcab1wYZ/myaqWRZ+f8teR9XvkomuWVlrJ1G4P/L9voRw24HVwDXAazPiXOKHXb1o0SIdBNIKNpdCMg95Rje7irxRnrjnErwXecUm7RkHXodly6a/d1GPhOugvLrelTq9Jia6ZmWtvojhh8ANMXZ8DtHdz/88CNgAPMMl7UFv6YZFtaoCqGxB2utZK7YOsp5LnmedFdfQkOrs2bseE/GEOEyZVi54Lewy70edI+FNdM3KWjuJOrqXI7/5GnCiS/yDIrqrVmlmi2FszCsUywpemYJ09uwpV2X4mAlveVyei6vYFH3Gw8O7vmPRZ13EopWFPO7ipOuowttiomtW1tpJFD4dGUj1qZgwewFz/L8XALcAh7rEPyiiq5rch1q2ZRuQNgfTtVU7d25y2KKVAOv/9XB5Nq5i4/IuFbWhIc/y/Kaot8ZaumZdtnYShR7wI19IfwTM948vBs71/34RcD3ealjXA+9wjX+QRNe1r3V4OL9AFenHjSsMs34zMuIV+K75s5HOU7g8o7iR6nED4vKKYp5KWNLo5bRKQ1BZyCui1qdr1mVrPQN1WNui23QrLJxeUWGMI28LN+la8xbSWfnr99Wrqn4/0kYNx7lp4wQpzRtRxsbGsp9X1vki7mIbvWzWVWs9A3VYm6LbdivMVShdBCpPH1+UIm5p1/zlyUfXqOP9CAtMr5fuNSg7IK6IZYnmMcfEnw8GaHWpkmWia1bWWs9AHdam6LZVQOQVOZd+Ptf4oq7rstOLsvKXNFBneLiim1kjVb8fLiKe1xOSZcuW5Quf1IoO3pekfAXvVZx7uq3uBBNds7LWegbqsDZFt86Rk0kUETmXBQiKxFtkwExeEUr7ncs1tTkAq2pXaZKIByOKXQdHuTyz8PSgvM8zOtUoeAdd8zd7dr5+/7ow0TUra61noA4btJZuEZdh0pSdaAGfp+Cuyurq023b9a9a/aCgKlqvs2erzps3/fisWclCV2REe9n3qAt99ia6ZmWt9QzUYYPWp1u04HVZui8YWVy30OZZRanoPe5C32DSClLRBSZc81ymjzbJdRuIZHjubbSveNmyfF6Q4Hdl35G2MdE1K2utZ6AO69ro5SoWp0ijTGFWtu+1CityT4q4idtw/cfhspSiavriJ0Gei/afZ4l2r5ce7+hovr7dQLDLvidtY6JrVtZaz0Adlkd06+7jq6vlGx2xGtda6bp13bXbZj6yxDQaNs8qUFW5p8fGmut6yPOu1Pk/baJrVtZaz0Ad5iq6TbiCswrYIgVEXEtp9uz6Fjeo0sJu5Lo9AFG60Ker6tbiTvNeRLdvTOseiNrQULWbE8T1BVf9roAn7i7Pqe5nbKJrVtZaz0Ad5iq6VbZ8ksQzrYAtUkCkTbFwXeCgbXEO7k/ctdctxG2PXlZ1e+/SBDQQoKT+4SBM0nMOV3ii4gbd9ZqU6bcvu4lCgImuWVlrPQN1mKvoVtXHlyaeaQVsHtEvu9hEHVamcE5yh7r0dXYZF1HPqmy5uItHR9P3Ll61Kp/rN+yBaHK0etxUojTLqhCnVVaqeJdMdM3KWusZqMOabummxZNWwLqKfhWLTbRdWJaxMq74JsnjuUi6lqqedZHnE9znpp5r0PrM06+cVSHOqpiW7b830TUra61noA5ruk83SzyTClhX0Xdp4QYDqpooLIeG6u3Li7u2JDFy7etrgioqcW17M/KuNlU2LdV8FY25c9PvX1ZcZUeqm+ialbXWM1CHNT16ue7FGrJaAsE8zy62iKuwNFd8cM+aHpQVRxXdFXlafVnTerps0XnJq1a5jzVwmced5J63lq5Z29Z6Buqwpufplmkxu4h+muBEf5M2tzMsAm0XuoEF6+tmFbJ58zwy0rzwNt3SDSpabT/DvJa0EMiqVW7jBFzuZ12jmE10zcpa6xmow9pYHKPO/sY8BUiWe7Bt92VSAZy2SEPa+TRzWV+6Sqoo6PN4K4KlPF3vTXh0+267tfvc4yqLrtfh6jmo43/SRNesrLWegTqs7RWp6sB1VKxLizDPQgpNFb5x/dHREb1FXKlNU0VBn2exi6BPO+u5z53bPVd08HzzPts2V6Yy0TUra+0kCicBNwI7gcUp4Y4FbgbWA6e7xj8TRdeFpjcmqLLwTRKTMHmnwRQR3a6MkM4jRKrxC6aE72+Zd6POebtZ/fVRS9qooylMdM3KWjuJwl8AzwKuThJdYBi4FTgIGAHWAoe6xD+IotvkqNMmLLorTTDIJm4lq6pEtysrVoXzE1ynyzXGVUpcW8Jpz8F1gJNL/3ycuf6mCyPVTXTNytoQLaCqN6nqzRnBjgLWq+ofVPVx4JvA8fXnrv+YnISVK9vORbVs3epZwM6d3ufGjXD++bBihXdswwbo9eLjCB+fnITxcRga8j4nJ6eHX74ctm3b9di2bd7xNpiY8K5v5870awyu7eSTd71nAA895H0uWpQ/fREvvuDeZ7Fzp3vYcBrz52eHW7YM7rnHuyeG0c+0IrqO7A/cFvq+2T8Wi4gsEZHVIrJ6y5YttWeuSyxf7rUFBoWoEJ51FoyM7BpmZMQ7Dp4oLVniCbaq97lkyXTh3bQpPr2k402SdI1veMPUtcXx+ONw2mleJWV01D09kfzvVCCeSRWEOII0svJ2zjnpFSbD6BvqakIDPwRuiLHjQ2GuJtm9fBJwbuj7KcDnXNIeNPdyl6YANWVxq3YlrfDkOmezzV2IXAfKRcO49odGf590T3q94iPcZ8/2XP+ua4CHn2Weaynq8q+ivx5zL5uVtHYTTxfdFwKXh75/GPiwS7yDJrouhdXcuf070KqoEOZdnaitPt0y6bpWuPJsxNF0JS7cZ+yadt6KUFXP1kTXrKy1m3i66M4C/gA8namBVM9xiXfQRNdlpGswyKXX69aUoSLmWlgWWYe3jdHLZVrYeVulwb1LqoCVaek2aXmXc6zKi2Gia1bW2kkUXofXR/tn4K6gRQvsB1wWCnccsA5vFPNy1/gHTXRVu7kLUR2WRwjr2nGmamEus3xkXUt/NtHaTRsVHVQSq1rOsaodxUx0zcpa6xmow2aK6LoW7oMkuHmoY2/VvG7KMst8ZuUz/NwDcQqmWnWxn3/evF3vQ1oew5uFVOEWtpauWVes9QzUYTNhGci0wiacVq/X3U3Hq7Yq9zkuSt49kF3SX7UqeSu+tK0Bs96Ptp9XnB1zTPa9jN7Pqlb5sj5dsy5Y6xmow/ppw4Mk0tYibnIv2y5ZkX1123QFuwp01kL/cYKe9n50bbnHqIW39Js1a/r5tFWnyjxPG71s1gVrPQN1WNOiW8dUky66B+OEJu2860pGLpa2Tm+Tq0bledZpAu0yfScc3jXufrDhYe8aklr4YVEOi+SyZe2vGGaia1bWWs9AHda06FY1SCNMV92DQUHnMv1o7tzsVrmreAQFa5tzaVXziX5VrdG4lnG/j0BPc4EHrVDXe9TkBggmumZlrfUM1GEzoaWbVLi3XViWXcs3bK7CEb6PdVRwijwb1wFu0WeW975FBb2O0crBSOEqPRMu15V0zmVN7baevYmuWVlrPQN12Ezo0w3ijRbubS9wEQhg2ZZ4cH9c4gnfx7ZbunkJX2NewY1b4L/IfR8ZyX5vVJvfNCNtOlDee9XUnGoTXbOy1noG6rCZMHo5LZ2kQTdBQVWn6zHojywr/r2eV8i7xBO9/rb79YrgIpZBizPt/SniYchyzQfPo40KXdKzLFK5iO6/XMf/o4muWVlrPQN12EyZp5tE3PzMJgfWNJlWr5d8/W3veZuHrHvmUnEo0pcbrDAVTC+r4xkFLengebiuvRy05MP5Co6ldWGk3YOk/uCqKmYmumZlrfUM1GEzXXQD8rYI+m395ejiEP0otgFZc1JdBDepH3R01Jv/GhWp2bPrn8Mdl3fXStnISPqI5GXLpscVnEvr26+zC8JE16ystZ6BOqwrolunSBxzjBYqJLswGMvVwq3cfnUrB+TJf9x747JqVfR3dVew8o7aTsp/mkAm/Q+lCWudg+1MdM3KWusZqMO6ILp1ikTZAS9NTzcpml64kEwTnX5p+bpUwvKOWk8Tkia6AeJaj1UMyMoSyLT/L2vpmnXZWs9AHdYF0a3zH7+f5mgGBf+8ecV+77JOb7TQ7WfyDiBKe5/S5glX1QqO2x4xz4ppZTY0SKrEWJ+uWZet9QzUYV0Q3XpdXOkWFGRJ8y67JNouA8FcF+NwKay73i+cp3WaJSRZ4pNnVSzX+51WaYjrn61rlSkbvWzWVWs9A3VYF0S3rpbuqlXx8QYWXkIvbhCN6wIIZacf5UnHZQqS68YOaZWafugXdm3puu6U5Co+RV3R0bnEWfEktUzrqghVHbeJrllZaz0DdVgXRLeOAt5lNaIy8xzbmH5UdXpF3K1dWljDdcWpqldhKrPYSfi9zmrpNlnBqeN/0ETXrKy1noE6rAuiq1p9Ldu1YCyyok8TC2vUbVkFaheWkHTBxe1bdUUhb19s1IL5wC7vZlPUUcky0TUra0O0gIicJCI3ishOEVmcEm6DiFwvIteJyOom81gFExOwYQPs3Ol9TkyUi2/TJvdwixbli1vV+9yxI9/vuoAIjI3BOeek3+Oke5L3XtVN8N5ccAHsuef086OjsGJF+XQmJ2F8HIaGYPlyeOc7odcrFtfWrbBxY3Y413e4CpLSajIPhhGlFdEFbgBeD/zUIezfqurzVDVRnAcFV3FYtMgrlEdH681PnQwPu4UbG3Ov1MTdk6oErGomJ2HJEk/MwvR62ZWLPPFv3OhVuDZuhK98Zeq8SLn4k2iygtMvlSxjsGhFdFX1JlW9uY20+xkXIR0ZgYcfhlNOgac8pXjLJczs2V68TTE6Cuef7wlqVrg8gjkx4QnW2Jh767gtli+HbdumH583r5r8xsX/+ONTIq86Jby9XjXPf/Zs790cGvJa2JOT5eNMo58qWcYA0aZvG7gaWJxy/o/Ab4A1wJKMuJYAq4HVixYt0plK3Mbe4bV1o/1yWYNykkYNRxedqHsP16C/NWu+ZVy4mUjd/c+uff5B/+eyZbtORQvWV06LJ2s+sMuUp7JjImz0slnXrL6I4Yd4buSoHR8KkyW6+/mfTwPWAi92SbsrA6maJm3VpqQCNc8Iz6y5tOHvIyPu04bitrAL6Pq82rqoe6S166C8YMRx3DuSJahxc3Dj3s08K3O1/fxNdM3KWruJZ4huJOxHgQ+6hB1U0c0jikW2QUsTgqLr/sbtImTULzquU5PGxopNJ8ozbS3uuro6vctE16ystZt4iugCc4HdQ3//HDjWJd5BFd08oljUVVdFqzhqRjxxWzhW2drPWpQka0efLLHOGz5MV6d3meialbV2EoXXAZuBPwN3AZf7x/cDLvP/Psh3Ka8FbgSWu8Y/qKLbhEuubKs4rhBt22XYZepaZCVrHnDY7Zu2hnPWZgyuohsVU2vpms1Uaz0Dddigiq5qd/pAXd2XXShIu0zV4lNkxas04c9yI+cdsOWSZpuY6JqVtdYzUIcNsuh2iWgFwLWVY0xRtZs1z6pmYbIqc2niGh1tX2Zf4bYx0TUra6KqxecbdZTFixfr6tV9t4DVjGd8PH7VorExb3ELYzpV37OhIU/q0hgdzT9/ecGC6Qt5QHw+Jye9ecLBymkrVnRzrnQcIrJGbaEeowRtrUhlDCC2WEF+qr5nLqsx5RXcyUl48MHpx0dG4vNZ9fKohtFPmOgajdFPK0J1harvWdaqZmNj+eNevhyeeGL68d13t2drGFFMdI1GsVZOfqq8Z4GIxy0PWrQFnbSBwL33xh8Pb7QQLAcZd8z1t4bRT1ifrmEMKFX1rebpdw42Wgiv+zwy4vUzh1vLcf3Kcb8t0v9cBuvTNcpiomsYRiEC0d640XN9h4uSJDFMEug4oqLdhYF4JrpGWcy9bBhGbsJbA4InuMGuRGn9znn2so2Gtf1xjZnArLYzYBhG/xG3NaBqdqtz0SL3lm50pHXSb21/XKOfsJauYRi5KdrqjBs9PTLi7bUbJm5Ql005M2YCJrqGYeQmqXWZ1eqMmwJ13nnw1a9mT4uyKWfGTMAGUhmGkZs6RxJ3ecUqG0hllMVauoZh5KauVmd4gJaq97lkic3HNWYO1tI1DKMzdGFaUBrW0jXKYi1dwzA6g00LMmY6JrqG0SK2rOGuFB2gZRj9QiuiKyKfFpHfi8hvReQ7IrJnQrhjReRmEVkvIqc3nU/DqBPrv5yOTQsyZjpttXSvBJ6rqocB64APRwOIyDDwBeCVwKHAm0Xk0EZzaRg1ErfAxLZt3vFBxaYFGTOdVlakUtUrQl+vAU6MCXYUsF5V/wAgIt8Ejgd+V38ODaN+rP8ynokJE1lj5tKFPt23A9+POb4/cFvo+2b/WCwiskREVovI6i1btlScRcOoHuu/NIzBozbRFZEfisgNMXZ8KMxyYDsQ14slMccS5zep6jmqulhVFy9cuLD8BRhGzVj/pWEMHrW5l1X1ZWnnReRU4FXAMRo/WXgzcGDo+wHA7dXl0DDaJXChdnX1JcMwqqeVPl0RORb4B+BvVHVbQrBfAweLyNOBPwFvAv6uoSwaRiNY/6VhDBZt9el+HtgduFJErhORlQAisgsEKNUAAAfaSURBVJ+IXAagqtuBdwOXAzcBF6nqjS3l1zAMwzBK09bo5WcmHL8dOC70/TLgsqbyZRiGYRh10oXRy4ZhGIYxEJjoGoZhGEZDmOgahmEYRkOY6BqGYRhGQ8zI/XRFZAsQsytnLSwA7mkora6lP6hpt53+oKbddvoLgLmqaqvvGIWZkaLbJCKyus1NrdtMf1DTbjv9QU277fTbvnZjZmDuZcMwDMNoCBNdwzAMw2gIE93ynDPA6Q9q2m2nP6hpt51+29duzACsT9cwDMMwGsJauoZhGIbRECa6hmEYhtEQJro5EZFPi8jvReS3IvIdEdkzIdyxInKziKwXkdMrTP8kEblRRHaKSOL0BRHZICLX+7s4rW447cqvXUTmi8iVInKL/7lXQrgd/jVfJyKXlkwz9TpEZI6IfMs//0sRGS+TXoH03yoiW0LX+86K0j1PRO4WkRsSzouIfNbP129F5PlVpJsj/ZeIyAOh6z6jwrQPFJEfi8hN/rt+WkyYWq/fmOGoqlkOA14BzPL//iTwyZgww8CtwEHACLAWOLSi9P8CeBZwNbA4JdwGYEHF156Zdl3XDnwKON3/+/S4++6fe7iia828DuDvgZX+328CvlXhvXZJ/63A56t8xn68LwaeD9yQcP444PuAAC8Aftlw+i8Bvlf1dftx7ws83/97d2BdzH2v9frNZrZZSzcnqnqFenv9AlwDHBAT7Chgvar+QVUfB74JHF9R+jep6s1VxFVT2nVd+/HA+f7f5wOvrSDONFyuI5yni4FjREQaTL8WVPWnwL0pQY4Hvq4e1wB7isi+DaZfG6p6h6r+xv/7Iby9vPePBKv1+o2ZjYluOd6OV+ONsj9wW+j7Zqb/49aNAleIyBoRWdJgunVd+96qegd4BSPwtIRwu4nIahG5RkTKCLPLdTwZxq+IPQD0SqSZN32AE3wX58UicmBFaWfRhff7hSKyVkS+LyLPqSMBv7vgCOCXkVNduH6jT2llE/uuIyI/BPaJObVcVf/ND7Mc2A5MxkURc8x5bpZL+g4craq3i8jTgCtF5Pd+C6LutAtfe1raLr/3WeRf90HAVSJyvaremuP3T2Yn5lj0Oko95wrS/y7wDVX9s4gsxWt1v7Si9NOo87pd+A0wpqoPi8hxwL8CB1eZgIjMA74NvFdVH4yejvmJzb00nDDRjUFVX5Z2XkROBV4FHKOqcf9sm4Fwq+MA4Paq0neM43b/824R+Q6euzJTdCtIu/C1p6UtIneJyL6qeofvyrs7IY7guv8gIlfjtVSKiK7LdQRhNovILGAPqnOLZqavqltDX7+MN8agCUq932UJi6CqXiYiZ4vIAlWtZCMEEZmNJ7iTqnpJTJBWr9/ob8y9nBMRORb4B+A1qrotIdivgYNF5OkiMoI3yKbUSNqceZwrIrsHf+MN/oodCVoDdV37pcCp/t+nAtNa3SKyl4jM8f9eABwN/K5gei7XEc7TicBVCZWwWtKP9CO+Bq//sQkuBd7ij+J9AfBA4PpvAhHZJ+g7F5Gj8Mqxrem/co5bgK8AN6nqZxKCtXr9Rp/T9kiufjNgPV5/znW+BaNX9wMuC4U7Dm/k4614rtmq0n8dXk37z8BdwOXR9PFGvK717caq0ndJu65rx+sr/RFwi/853z++GDjX//tFwPX+dV8PvKNkmtOuAzgTr8IFsBvwf/134lfAQRW/a1npf9x/vmuBHwPPrijdbwB3AE/4z/sdwFJgqX9egC/4+bqelFH0NaX/7tB1XwO8qMK0/wrPVfzb0P/4cU1ev9nMNlsG0jAMwzAawtzLhmEYhtEQJrqGYRiG0RAmuoZhGIbRECa6hmEYhtEQJrqGYRiG0RAmukbf4O8A80cRme9/38v/PhYJd7WI/LfIsfeKyNkF0nytiBxaLueGYRgeJrpG36CqtwFfBD7hH/oEcI6qbowE/QbeYhJh3uQfz8trgVyi669OZRiGMQ2bp2v0Ff4SfWuA84B3AUeotwtPOEwP+D1wgHrrEo/jLYE5pqoqIh8C3gDMAb6jqh/xf/cW4INMLY7wReB7eBsZPACcgLfd20pgFG9xhLer6n3+kpM/x1sF61JV/ee67oFhGP2L1ciNvkJVn/BF8wfAK6KC64fZKiK/Ao7FWy4y2OtWReQVeIvjH4W3stClIvJivGUEl+NtFHGPiMxX1XtF5FK8vVsvBhCR3wLvUdWfiMiZwEeA9/pJ76mqf1Pn9RuG0d+Ye9noR16Jt0zgc1PChF3MYdfyK3y7Fm+3mmfjifBLgYvVXzRfVadtXCAie+AJ60/8Q+fjbbge8K0iF2MYxuBgomv0FSLyPODlwAuA96VsHv6veJvKPx94ivobk+O1bj+uqs/z7Zmq+hX/eNm+lkdK/t4wjBmOia7RN/g7wHwRb4/TTcCngf8TF1ZVHwauxuv7DQ+guhx4u79fKiKyv7/n8I+AN/j9wQQjpIGH8PpxUdUHgPtE5K/9c6cAP8EwDMMRE12jn3gXsElVr/S/nw08W0SS+lG/ARwOfDM4oKpXABcCvxCR64GLgd1V9UZgBfATEVkLBNu6fRP4kIhcKyLPwNvK79N+3+7z8Hb9MQzDcMJGLxuGYRhGQ1hL1zAMwzAawkTXMAzDMBrCRNcwDMMwGsJE1zAMwzAawkTXMAzDMBrCRNcwDMMwGsJE1zAMwzAa4v8Hqa8GxYSYIT4AAAAASUVORK5CYII=\n", "text/plain": [ "
" ] From 13013b23a195a75da848344da622c00af379f1d0 Mon Sep 17 00:00:00 2001 From: Sambit Panda Date: Fri, 7 Dec 2018 18:05:44 -0500 Subject: [PATCH 53/60] Update simulations and delete extraneous demos --- demos/mcorr_dcorr_mantel.ipynb | 443 --------------------------------- demos/other_tests.ipynb | 339 ++++++++----------------- 2 files changed, 109 insertions(+), 673 deletions(-) delete mode 100644 demos/mcorr_dcorr_mantel.ipynb diff --git a/demos/mcorr_dcorr_mantel.ipynb b/demos/mcorr_dcorr_mantel.ipynb deleted file mode 100644 index 04fff1d..0000000 --- a/demos/mcorr_dcorr_mantel.ipynb +++ /dev/null @@ -1,443 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "from scipy.spatial.distance import pdist, squareform\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "module_path = '/Users/junhaoxiong 1/Documents/Projects/mgcpy'\n", - "if module_path not in sys.path:\n", - " sys.path.append(module_path)\n", - "from mgcpy.independence_tests.dcorr import DCorr\n", - "from mgcpy.benchmarks.power import power\n", - "from mgcpy.benchmarks.simulations import linear_sim, quad_sim, ubern_sim, exp_sim, w_sim, joint_sim, spiral_sim" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_distance_matrix(data_matrix_X, data_matrix_Y):\n", - " # obtain the pairwise distance matrix for X and Y\n", - " dist_mtx_X = squareform(pdist(data_matrix_X, metric='euclidean'))\n", - " dist_mtx_Y = squareform(pdist(data_matrix_Y, metric='euclidean'))\n", - " return (dist_mtx_X, dist_mtx_Y)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Test Statistic" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "def test_stats_vs_dimension(corr_type, simulation_type, dim_range):\n", - " test_stats = []\n", - " for d in range(1, dim_range+1):\n", - " x, y = simulation_type(num_samp=100, num_dim=d, noise=0)\n", - " corr = DCorr(data_matrix_X=x, data_matrix_Y=y, compute_distance_matrix=compute_distance_matrix, corr_type=corr_type)\n", - " test_stats.append(corr.test_statistic())\n", - " return test_stats" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "def plot_test_stats(simulation_type, dim_range, simulation_name):\n", - " mcorr_test_stats = test_stats_vs_dimension('mcorr', simulation_type, dim_range)\n", - " dcorr_test_stats = test_stats_vs_dimension('dcorr', simulation_type, dim_range)\n", - " mantel_test_stats = test_stats_vs_dimension('mantel', simulation_type, dim_range) \n", - " plt.plot(mcorr_test_stats, label='MCorr')\n", - " plt.plot(dcorr_test_stats, label='DCorr')\n", - " plt.plot(mantel_test_stats, label='Mantel')\n", - " plt.xlabel('Dimensions')\n", - " plt.ylabel('Test Statistics')\n", - " plt.legend()\n", - " plt.gca().set_xlim(1, dim_range+1)\n", - " plt.xticks(np.arange(0, dim_range+1, 5))\n", - " plt.title('Test Statistics \\n Data: {} Simulation, 100 samples, noise=0'.format(simulation_name))\n", - " plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_test_stats(linear_sim, 20, 'Linear')" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_test_stats(spiral_sim, 20, 'Spiral')" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_test_stats(quad_sim, 20, 'Quadratic')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## P-value" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "def pvalue_vs_dimension(corr_type, simulation_type, dim_range):\n", - " p_value = []\n", - " for d in range(1, dim_range+1):\n", - " x, y = simulation_type(num_samp=100, num_dim=d, noise=0)\n", - " corr = DCorr(data_matrix_X=x, data_matrix_Y=y, compute_distance_matrix=compute_distance_matrix, corr_type=corr_type)\n", - " p_value.append(corr.p_value())\n", - " return p_value" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "def plot_p_value(simulation_type, dim_range, simulation_name):\n", - " mcorr_pvalue = pvalue_vs_dimension('mcorr', simulation_type, dim_range)\n", - " dcorr_pvalue = pvalue_vs_dimension('dcorr', simulation_type, dim_range)\n", - " mantel_pvalue = pvalue_vs_dimension('mantel', simulation_type, dim_range) \n", - " plt.plot(mcorr_pvalue, label='MCorr')\n", - " plt.plot(dcorr_pvalue, label='DCorr')\n", - " plt.plot(mantel_pvalue, label='Mantel')\n", - " plt.xlabel('Dimensions')\n", - " plt.ylabel('pvalue')\n", - " plt.legend()\n", - " plt.gca().set_xlim(1, dim_range+1)\n", - " plt.xticks(np.arange(0, dim_range+1, 5))\n", - " plt.title('P-value \\n Data: {} Simulation, 100 samples, noise=0'.format(simulation_name))\n", - " plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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bOm5yMzMBkFjSyO11bWdy6NhuhgHGDOzQdDYmlzFnxkNE146wJiZDYJsqv6MU2RmZjYgSqXImlqb6IiObrYa3hxgzMxy1hEdNLU27ZIi64gOXm19dQh7li8HGDOznG3etpntsX2XFBkk94gZqRxgdkOSOqd8gWTG42nTpnHiiSf2uc2vfvWrZdWbOXMmr7xSzmTWZlau7GB+cYqscN1I5ACzG5owYQKrV69m69atANx9991Mnz69X22WG2DMbOBl85AVp8hgxxQyI5EDzG7q+OOP54477gDgxhtvZNGiRZ3rHnnkEY488kgOO+wwjjzySJ5++mkArrnmGj70oQ9x3HHHMWvWLD73uc8BcO6553bODnDaaacByfQyhx9+OPPmzeNjH/tYjxd3mlnfZaOUwhRZNpoZySkyX8nfjYsfuZjfNwzslGaHTDmEfz78n3ust3DhQi644AJOPPFEHn/8cZYsWdJ59f4hhxzCL3/5SyorK7nnnnv4/Oc/z6233grAY489xm9/+1uqq6s5+OCD+fu//3suuugiLr/88s6p+5966iluuukmfvWrX1FVVcUnPvEJrr/+es4444wB3VczS3QGmOodASYbwYzkFJkDzG5q7ty5rF+/nhtvvJETTth54ujm5mYWL17Ms88+iyTa2to61x1zzDFMnjwZgNmzZ/Pcc8+x33777bT9vffey6pVq3j7298OJHOf7bXXXjnvkdnolaXIsuMuAGMrxjKhaoIDzGhVzkgjTyeddBLnnHMO999/P5s27bif2he/+EXe/e53c9ttt7F+/XqOPvroznXV1dWdzysqKmhvb9+l3Yhg8eLF/Ou//muu/TezRGNLI+MqxzGuctxO5bXVtZ3BZyTyMZjd2JIlSzj//PN561vfulN5c3Nz50H/a665pqy2qqqqOkc6xxxzDLfccgsbNmwAklstP/fccwPXcTPbSWNL407pscxIny7GAWY3NmPGDD796U/vUv65z32O8847j3e+851lH5w/++yzmTt3LqeddhqzZ8/mK1/5Csceeyxz587lfe97Hy+++OJAd9/MUo2tO08Tk6mrqRvRAUbl3aF4ZJo/f36sXLlyp7KnnnqKN7/5zUPUo92X3xezvlv444XU1tTy7fd+e6fyLzz4BR556RHuPvnuIepZ30haFRHze6qX6whG0nGSnpa0VtK5JdZXS7op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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_p_value(linear_sim, 20, 'Linear')" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_p_value(exp_sim, 20, 'Exponential')" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_p_value(spiral_sim, 20, 'Spiral')" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_p_value(w_sim, 20, 'W-Shape')" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_p_value(quad_sim, 20, 'Quadratic')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Power" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], - "source": [ - "def power_vs_dimension(corr_type, simulation_type, dim_range):\n", - " '''\n", - " Generate power of an independence test given a simulation for a range of dimensions\n", - " \n", - " :param simulation_type: a simulation function from mgcpy.benchmarks.simulations\n", - " :param dim_range: the upper end of the range of dimension\n", - " :return: power for each dimension\n", - " '''\n", - " estimated_power = []\n", - " for d in range(1, dim_range+1):\n", - " corr = DCorr(data_matrix_X=np.nan, data_matrix_Y=np.nan, \n", - " compute_distance_matrix=compute_distance_matrix, corr_type=corr_type)\n", - " estimated_power.append(power(corr, simulation_type, num_samples=100, num_dimensions=d))\n", - " return estimated_power" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "def plot_power_curve(simulation_type, dim_range, simulation_name):\n", - " mcorr_power = power_vs_dimension('mcorr', simulation_type, dim_range)\n", - " dcorr_power = power_vs_dimension('dcorr', simulation_type, dim_range)\n", - " mantel_power = power_vs_dimension('mantel', simulation_type, dim_range) \n", - " plt.plot(mcorr_power, label='MCorr')\n", - " plt.plot(dcorr_power, label='DCorr')\n", - " plt.plot(mantel_power, label='Mantel')\n", - " plt.xlabel('Dimensions')\n", - " plt.ylabel('Power')\n", - " plt.legend()\n", - " plt.gca().set_xlim(1, dim_range+1)\n", - " plt.xticks(np.arange(1, len(mcorr_power)+1))\n", - " plt.title('Power \\n Data: {} Simulation, 100 samples, noise=0'.format(simulation_name))\n", - " plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_power_curve(quad_sim, 20, 'Quadratic')" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_power_curve(w_sim, 20, 'W-Shape')" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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zZpFS0sLmZmZzJs3jy9/+ctkZAT73C+88AJXX301W7Zswcw45ZRT+PnPf05+fn6aI++cmrkQEdkHeXl5LFu2DIDKykouueQSqquruf7669myZQsXXXQRixYt4sQTT8Tduffee6mtre1VUojH42RmZnbZnwpKCiIi+8no0aO55ZZbOO6441iwYAE333wz8+bN48QTTwSCto0uvPBCALZv387ll1/O2rVryc/P55ZbbqGsrIwFCxa0ayb77LPP5sEHH6SxsZFdu3bxxBNPpPQ7KCmIyNDw8LWw+dX9O82DZsG5N/bpI4ceeiiJRILKykpWrFjBvHnzOi333e9+l6OPPpo//elPPPHEE1x22WXREUdyM9m33XYbzz77LMuXL2fkyJH7/JV6oqQgIrKf9ab5oGeeeYZ7770XgA984ANUVVVRXV0N7NlM9llnndUvCQGUFERkqOjjHn2qrF27llgsxujRo6Nms88/v2MLP50njrams9PVbDao6WwRkf1m69atXHnllcyfPx8zY/78+dx+++08//zzUZk77riDzZs3c+qpp3LnnXcCsHjxYkpKShg2bFi6Qo/oSEFEZB80NDRw1FFHRZekXnrppXz1q8FV9mPGjGHRokVcffXVVFZWkpGRwamnnsoFF1zAggUL+PSnP01ZWRn5+fncfvvtaf4mgZQ1nZ0qajpbRNqo6ezODdSms0VEZJBRUhARkYiSgoiIRJQUREQkoqQgIiIRJQUREYkoKYiI7AMz49JLL4364/E4paWlzJ49e6+n+YMf/KBX5SZNmsS2bdv2ej6dUVIQEdkHBQUFrFixgoaGBgAeffRRxo0bt0/T7G1SSAUlBRGRfXTuuefy4IMPArBw4ULmzp0bjXvhhRc46aSTOProoznppJN44403ALjtttu44IILOOecc5g6dSrXXHMNANdee210l/QnPvEJIGga4/jjj+eoo47ic5/7HK2trSn7LmrmQkSGhB+98CNe3/76fp3mtJHT+Mbx3+ix3MUXX8wNN9zA7NmzWb58OZdffjlPP/10MI1p03jqqafIzMzkscce45vf/GbUOuqyZct4+eWXycnJ4fDDD+eLX/wiN954I7/4xS+iZrRXrVrF73//e/7xj3+QlZXF5z//ee68804uu+yy/fpd2ygpiIjso7KyMtatW8fChQs577zz2o2rrq5m3rx5vPXW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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_power_curve(joint_sim, 10, 'Joint Normal')" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_power_curve(spiral_sim, 20, 'Spiral')" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.6" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/demos/other_tests.ipynb b/demos/other_tests.ipynb index d508d36..fd1c2a3 100644 --- a/demos/other_tests.ipynb +++ b/demos/other_tests.ipynb @@ -9,20 +9,9 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 1, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(None, )" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import numpy as np\n", "from scipy.spatial.distance import pdist, squareform\n", @@ -34,16 +23,16 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "First, import the simultions utilizing the import statement below (for this tutorial only 4 out of 20 were imported):" + "First, import the simultions utilizing the import statement below (for this only linear was utilized in this case). Refer to the simulations jupyter notebook for more information about the simulations:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ - "from mgcpy.benchmarks.simulations import linear_sim, quad_sim, w_sim, spiral_sim" + "from mgcpy.benchmarks.simulations import linear_sim" ] }, { @@ -62,64 +51,9 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 3, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/anaconda3/lib/python3.6/site-packages/Cython/Compiler/Main.py:367: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /anaconda3/lib/python3.6/site-packages/mgcpy/independence_tests/mgc/distance_transform.pyx\n", - " tree = Parsing.p_module(s, pxd, full_module_name)\n" - ] - }, - { - "ename": "ImportError", - "evalue": "Building module mgcpy.independence_tests.mgc.distance_transform failed: [\"distutils.errors.CompileError: command 'gcc' failed with exit status 1\\n\"]", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mDistutilsExecError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m/anaconda3/lib/python3.6/distutils/unixccompiler.py\u001b[0m in \u001b[0;36m_compile\u001b[0;34m(self, obj, src, ext, cc_args, extra_postargs, pp_opts)\u001b[0m\n\u001b[1;32m 117\u001b[0m self.spawn(compiler_so + cc_args + [src, '-o', obj] +\n\u001b[0;32m--> 118\u001b[0;31m extra_postargs)\n\u001b[0m\u001b[1;32m 119\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mDistutilsExecError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mmsg\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/distutils/ccompiler.py\u001b[0m in \u001b[0;36mspawn\u001b[0;34m(self, cmd)\u001b[0m\n\u001b[1;32m 908\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mspawn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcmd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 909\u001b[0;31m \u001b[0mspawn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdry_run\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdry_run\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 910\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/distutils/spawn.py\u001b[0m in \u001b[0;36mspawn\u001b[0;34m(cmd, search_path, verbose, dry_run)\u001b[0m\n\u001b[1;32m 35\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'posix'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 36\u001b[0;31m \u001b[0m_spawn_posix\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msearch_path\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdry_run\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdry_run\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 37\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'nt'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/distutils/spawn.py\u001b[0m in \u001b[0;36m_spawn_posix\u001b[0;34m(cmd, search_path, verbose, dry_run)\u001b[0m\n\u001b[1;32m 158\u001b[0m \u001b[0;34m\"command %r failed with exit status %d\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 159\u001b[0;31m % (cmd, exit_status))\n\u001b[0m\u001b[1;32m 160\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mWIFSTOPPED\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstatus\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mDistutilsExecError\u001b[0m: command 'gcc' failed with exit status 1", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[0;31mCompileError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/pyximport/pyximport.py\u001b[0m in \u001b[0;36mload_module\u001b[0;34m(name, pyxfilename, pyxbuild_dir, is_package, build_inplace, language_level, so_path)\u001b[0m\n\u001b[1;32m 214\u001b[0m so_path = build_module(module_name, pyxfilename, pyxbuild_dir,\n\u001b[0;32m--> 215\u001b[0;31m inplace=build_inplace, language_level=language_level)\n\u001b[0m\u001b[1;32m 216\u001b[0m \u001b[0mmod\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mimp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_dynamic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mso_path\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/pyximport/pyximport.py\u001b[0m in \u001b[0;36mbuild_module\u001b[0;34m(name, pyxfilename, pyxbuild_dir, inplace, language_level)\u001b[0m\n\u001b[1;32m 190\u001b[0m \u001b[0minplace\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0minplace\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 191\u001b[0;31m reload_support=pyxargs.reload_support)\n\u001b[0m\u001b[1;32m 192\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexists\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mso_path\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"Cannot find: %s\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mso_path\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/pyximport/pyxbuild.py\u001b[0m in \u001b[0;36mpyx_to_dll\u001b[0;34m(filename, ext, force_rebuild, build_in_temp, pyxbuild_dir, setup_args, reload_support, inplace)\u001b[0m\n\u001b[1;32m 101\u001b[0m \u001b[0mobj_build_ext\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_command_obj\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"build_ext\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 102\u001b[0;31m \u001b[0mdist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_commands\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 103\u001b[0m \u001b[0mso_path\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mobj_build_ext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_outputs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/distutils/dist.py\u001b[0m in \u001b[0;36mrun_commands\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 954\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mcmd\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcommands\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 955\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_command\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 956\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/distutils/dist.py\u001b[0m in \u001b[0;36mrun_command\u001b[0;34m(self, command)\u001b[0m\n\u001b[1;32m 973\u001b[0m \u001b[0mcmd_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mensure_finalized\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 974\u001b[0;31m \u001b[0mcmd_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 975\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhave_run\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mcommand\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/Cython/Distutils/old_build_ext.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 185\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 186\u001b[0;31m \u001b[0m_build_ext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuild_ext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 187\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/distutils/command/build_ext.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 338\u001b[0m \u001b[0;31m# Now actually compile and link everything.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 339\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuild_extensions\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 340\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/Cython/Distutils/old_build_ext.py\u001b[0m in \u001b[0;36mbuild_extensions\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 193\u001b[0m \u001b[0mext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msources\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcython_sources\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msources\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mext\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 194\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuild_extension\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mext\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 195\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/distutils/command/build_ext.py\u001b[0m in \u001b[0;36mbuild_extension\u001b[0;34m(self, ext)\u001b[0m\n\u001b[1;32m 532\u001b[0m \u001b[0mextra_postargs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mextra_args\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 533\u001b[0;31m depends=ext.depends)\n\u001b[0m\u001b[1;32m 534\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/distutils/ccompiler.py\u001b[0m in \u001b[0;36mcompile\u001b[0;34m(self, sources, output_dir, macros, include_dirs, debug, extra_preargs, extra_postargs, depends)\u001b[0m\n\u001b[1;32m 573\u001b[0m \u001b[0;32mcontinue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 574\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_compile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mext\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcc_args\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mextra_postargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpp_opts\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 575\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/distutils/unixccompiler.py\u001b[0m in \u001b[0;36m_compile\u001b[0;34m(self, obj, src, ext, cc_args, extra_postargs, pp_opts)\u001b[0m\n\u001b[1;32m 119\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mDistutilsExecError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mmsg\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 120\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mCompileError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 121\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mCompileError\u001b[0m: command 'gcc' failed with exit status 1", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mmgcpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindependence_tests\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdcorr\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mDCorr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/mgcpy/independence_tests/dcorr.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mmgcpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindependence_tests\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mabstract_class\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mIndependenceTest\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mscipy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstats\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mmgcpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindependence_tests\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmgc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdistance_transform\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mtransform_distance_matrix\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/pyximport/pyximport.py\u001b[0m in \u001b[0;36mload_module\u001b[0;34m(self, fullname)\u001b[0m\n\u001b[1;32m 460\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpyxbuild_dir\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 461\u001b[0m \u001b[0mbuild_inplace\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minplace\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 462\u001b[0;31m language_level=self.language_level)\n\u001b[0m\u001b[1;32m 463\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mmodule\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 464\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/pyximport/pyximport.py\u001b[0m in \u001b[0;36mload_module\u001b[0;34m(name, pyxfilename, pyxbuild_dir, is_package, build_inplace, language_level, so_path)\u001b[0m\n\u001b[1;32m 229\u001b[0m name, traceback.format_exception_only(*sys.exc_info()[:2])))\n\u001b[1;32m 230\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0msys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mversion_info\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m>=\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 231\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwith_traceback\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 232\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 233\u001b[0m \u001b[0mexec\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"raise exc, None, tb\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m'exc'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'tb'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mtb\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/pyximport/pyximport.py\u001b[0m in \u001b[0;36mload_module\u001b[0;34m(name, pyxfilename, pyxbuild_dir, is_package, build_inplace, language_level, so_path)\u001b[0m\n\u001b[1;32m 213\u001b[0m \u001b[0mmodule_name\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 214\u001b[0m so_path = build_module(module_name, pyxfilename, pyxbuild_dir,\n\u001b[0;32m--> 215\u001b[0;31m inplace=build_inplace, language_level=language_level)\n\u001b[0m\u001b[1;32m 216\u001b[0m \u001b[0mmod\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mimp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_dynamic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mso_path\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 217\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_package\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mhasattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'__path__'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/pyximport/pyximport.py\u001b[0m in \u001b[0;36mbuild_module\u001b[0;34m(name, pyxfilename, pyxbuild_dir, inplace, language_level)\u001b[0m\n\u001b[1;32m 189\u001b[0m \u001b[0msetup_args\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msargs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 190\u001b[0m \u001b[0minplace\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0minplace\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 191\u001b[0;31m reload_support=pyxargs.reload_support)\n\u001b[0m\u001b[1;32m 192\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexists\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mso_path\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"Cannot find: %s\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mso_path\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 193\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/pyximport/pyxbuild.py\u001b[0m in \u001b[0;36mpyx_to_dll\u001b[0;34m(filename, ext, force_rebuild, build_in_temp, pyxbuild_dir, setup_args, reload_support, inplace)\u001b[0m\n\u001b[1;32m 100\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 101\u001b[0m \u001b[0mobj_build_ext\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_command_obj\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"build_ext\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 102\u001b[0;31m \u001b[0mdist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_commands\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 103\u001b[0m \u001b[0mso_path\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mobj_build_ext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_outputs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 104\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mobj_build_ext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minplace\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/distutils/dist.py\u001b[0m in \u001b[0;36mrun_commands\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 953\u001b[0m \"\"\"\n\u001b[1;32m 954\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mcmd\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcommands\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 955\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_command\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 956\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 957\u001b[0m \u001b[0;31m# -- Methods that operate on its Commands --------------------------\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/distutils/dist.py\u001b[0m in \u001b[0;36mrun_command\u001b[0;34m(self, command)\u001b[0m\n\u001b[1;32m 972\u001b[0m \u001b[0mcmd_obj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_command_obj\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcommand\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 973\u001b[0m \u001b[0mcmd_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mensure_finalized\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 974\u001b[0;31m \u001b[0mcmd_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 975\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhave_run\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mcommand\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 976\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/Cython/Distutils/old_build_ext.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 184\u001b[0m \u001b[0moptimization\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdisable_optimization\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 185\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 186\u001b[0;31m \u001b[0m_build_ext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuild_ext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 187\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 188\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mbuild_extensions\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/distutils/command/build_ext.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 337\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 338\u001b[0m \u001b[0;31m# Now actually compile and link everything.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 339\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuild_extensions\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 340\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 341\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcheck_extensions_list\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mextensions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/site-packages/Cython/Distutils/old_build_ext.py\u001b[0m in \u001b[0;36mbuild_extensions\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 192\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mext\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mextensions\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 193\u001b[0m \u001b[0mext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msources\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcython_sources\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msources\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mext\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 194\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuild_extension\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mext\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 195\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 196\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcython_sources\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msources\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mextension\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/distutils/command/build_ext.py\u001b[0m in \u001b[0;36mbuild_extension\u001b[0;34m(self, ext)\u001b[0m\n\u001b[1;32m 531\u001b[0m \u001b[0mdebug\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdebug\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 532\u001b[0m \u001b[0mextra_postargs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mextra_args\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 533\u001b[0;31m depends=ext.depends)\n\u001b[0m\u001b[1;32m 534\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 535\u001b[0m \u001b[0;31m# XXX outdated variable, kept here in case third-part code\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/distutils/ccompiler.py\u001b[0m in \u001b[0;36mcompile\u001b[0;34m(self, sources, output_dir, macros, include_dirs, debug, extra_preargs, extra_postargs, depends)\u001b[0m\n\u001b[1;32m 572\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 573\u001b[0m \u001b[0;32mcontinue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 574\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_compile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mext\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcc_args\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mextra_postargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpp_opts\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 575\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 576\u001b[0m \u001b[0;31m# Return *all* object filenames, not just the ones we just built.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/anaconda3/lib/python3.6/distutils/unixccompiler.py\u001b[0m in \u001b[0;36m_compile\u001b[0;34m(self, obj, src, ext, cc_args, extra_postargs, pp_opts)\u001b[0m\n\u001b[1;32m 118\u001b[0m extra_postargs)\n\u001b[1;32m 119\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mDistutilsExecError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mmsg\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 120\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mCompileError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 121\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 122\u001b[0m def create_static_lib(self, objects, output_libname,\n", - "\u001b[0;31mImportError\u001b[0m: Building module mgcpy.independence_tests.mgc.distance_transform failed: [\"distutils.errors.CompileError: command 'gcc' failed with exit status 1\\n\"]" - ] - } - ], + "outputs": [], "source": [ "from mgcpy.independence_tests.dcorr import DCorr" ] @@ -147,25 +81,21 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 4, "metadata": {}, "outputs": [ { - "ename": "NameError", - "evalue": "name 'DCorr' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mquad_sim\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m100\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mdcorr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mDCorr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mwhich_test\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'dcorr'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0mtest_stat\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdcorr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtest_statistic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"DCorr's test statistic: %.2f\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mtest_stat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mNameError\u001b[0m: name 'DCorr' is not defined" + "name": "stdout", + "output_type": "stream", + "text": [ + "DCorr's test statistic: 1.00\n" ] } ], "source": [ - "x, y = quad_sim(100, 1)\n", + "x, y = linear_sim(100, 1, noise=0)\n", "\n", - "dcorr = DCorr(which_test='dcorr')\n", + "dcorr = DCorr(which_test='biased')\n", "test_stat = dcorr.test_statistic(x, y)[0]\n", "print(\"DCorr's test statistic: %.2f\" % test_stat)" ] @@ -179,9 +109,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DCorr p-value: 0.00\n" + ] + } + ], "source": [ "p_value = dcorr.p_value(x, y)[0]\n", "print(\"DCorr p-value: %.2f\" % p_value)" @@ -210,13 +148,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MCorr's test statistic: 1.00\n" + ] + } + ], "source": [ - "x, y = quad_sim(100, 1)\n", + "x, y = linear_sim(100, 1, noise=0)\n", "\n", - "mcorr = DCorr(which_test='mcorr')\n", + "mcorr = DCorr(which_test='unbiased')\n", "test_stat = mcorr.test_statistic(x, y)[0]\n", "print(\"MCorr's test statistic: %.2f\" % test_stat)" ] @@ -230,9 +176,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MCorr p-value: 0.00\n" + ] + } + ], "source": [ "p_value = mcorr.p_value(x, y)[0]\n", "print(\"MCorr p-value: %.2f\" % p_value)" @@ -261,11 +215,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mantel's test statistic: 0.26\n" + ] + } + ], "source": [ - "x, y = quad_sim(100, 1)\n", + "x, y = linear_sim(100, 1)\n", "\n", "mantel = DCorr(which_test='mantel')\n", "test_stat = mantel.test_statistic(x, y)[0]\n", @@ -281,9 +243,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mantel p-value: 0.00\n" + ] + } + ], "source": [ "p_value = mantel.p_value(x, y)[0]\n", "print(\"Mantel p-value: %.2f\" % p_value)" @@ -346,7 +316,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -362,19 +332,25 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 11, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "HHG test statistic: 56.76\n" + "ename": "AttributeError", + "evalue": "'NoneType' object has no attribute 'test_statistic_'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlinear_sim\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mhhg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mHHG\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0mtest_stat\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mhhg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtest_statistic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"HHG test statistic: %.2f\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mtest_stat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/code/mgcpy/independence_tests/hhg.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, compute_distance_matrix)\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0;34m:\u001b[0m\u001b[0mtype\u001b[0m \u001b[0mcompute_distance_matrix\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mFunctionType\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mcallable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 11\u001b[0m \"\"\"\n\u001b[0;32m---> 12\u001b[0;31m \u001b[0mIndependenceTest\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcompute_distance_matrix\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 13\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwhich_test\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"hhg\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/code/mgcpy/independence_tests/abstract_class.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, compute_distance_matrix)\u001b[0m\n\u001b[1;32m 26\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 27\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcompute_distance_matrix\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 28\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtest_statistic_\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 29\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtest_statistic_metadata_\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 30\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mp_value_\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mAttributeError\u001b[0m: 'NoneType' object has no attribute 'test_statistic_'" ] } ], "source": [ - "x, y = w_sim(10, 1)\n", + "x, y = linear_sim(10, 1)\n", "\n", "hhg = HHG()\n", "test_stat = hhg.test_statistic(x, y)[0]\n", @@ -390,26 +366,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "HHG p-value: 0.51\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/anaconda3/lib/python3.6/site-packages/mgcpy/independence_tests/abstract_class.py:154: UserWarning: The p-value is greater than 0.05, implying that the results are not statistically significant.\n", - "Use results such as test_statistic and optimal_scale, with caution!\n", - " \"Use results such as test_statistic and optimal_scale, with caution!\")\n" - ] - } - ], + "outputs": [], "source": [ "p_value = hhg.p_value(x, y)[0]\n", "print(\"HHG p-value: %.2f\" % p_value)" @@ -431,7 +390,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -461,19 +420,11 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Kendall's test statistic: 0.05\n" - ] - } - ], + "outputs": [], "source": [ - "x, y = quad_sim(100, 1)\n", + "x, y = linear_sim(100, 1)\n", "\n", "kendall = KendallSpearman(which_test='kendall')\n", "test_stat = kendall.test_statistic(x, y)[0]\n", @@ -489,17 +440,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Pearson's p-value: 0.49\n" - ] - } - ], + "outputs": [], "source": [ "p_value = kendall.p_value(x, y)[0]\n", "print(\"Pearson's p-value: %.2f\" % p_value)" @@ -528,19 +471,11 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Spearman's test statistic: -0.04\n" - ] - } - ], + "outputs": [], "source": [ - "x, y = spiral_sim(100, 1)\n", + "x, y = linear_sim(100, 1)\n", "\n", "spearman = KendallSpearman(which_test='spearman')\n", "test_stat = spearman.test_statistic(x, y)[0]\n", @@ -556,17 +491,9 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Pearson's p-value: 0.72\n" - ] - } - ], + "outputs": [], "source": [ "p_value = spearman.p_value(x, y)[0]\n", "print(\"Pearson's p-value: %.2f\" % p_value)" @@ -588,7 +515,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -626,17 +553,9 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Pearson's test statistic: 0.53\n" - ] - } - ], + "outputs": [], "source": [ "x, y = linear_sim(100, 1)\n", "\n", @@ -654,17 +573,9 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Pearson's p-value: 0.00\n" - ] - } - ], + "outputs": [], "source": [ "p_value = pearson.p_value(x, y)[0]\n", "print(\"Pearson's p-value: %.2f\" % p_value)" @@ -707,19 +618,11 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "RV test statistic: 0.02\n" - ] - } - ], + "outputs": [], "source": [ - "x, y = quad_sim(100, 3)\n", + "x, y = linear_sim(100, 3)\n", "\n", "rv = RVCorr(which_test='rv')\n", "test_stat = rv.test_statistic(x, y)[0]\n", @@ -735,17 +638,9 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "RV p-value: 0.43\n" - ] - } - ], + "outputs": [], "source": [ "p_value = rv.p_value(x, y)[0]\n", "print(\"RV p-value: %.2f\" % p_value)" @@ -778,19 +673,11 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CCA test statistic: 0.28\n" - ] - } - ], + "outputs": [], "source": [ - "x, y = spiral_sim(100, 6)\n", + "x, y = linear_sim(100, 6)\n", "\n", "cca = RVCorr(which_test='cca')\n", "test_stat = cca.test_statistic(x, y)[0]\n", @@ -806,17 +693,9 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CCA p-value: 0.00\n" - ] - } - ], + "outputs": [], "source": [ "p_value = cca.p_value(x, y)[0]\n", "print(\"CCA p-value: %.2f\" % p_value)" @@ -846,7 +725,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.6" + "version": "3.6.7" } }, "nbformat": 4, From d8f2d5601ffe33f8ba414295c7f9e8227f2c4803 Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Sat, 8 Dec 2018 18:11:54 -0500 Subject: [PATCH 54/60] Make Docker build's branch specific --- Dockerfile | 3 ++- mgcpy/independence_tests/unit_tests/mgc/__init__.py | 0 2 files changed, 2 insertions(+), 1 deletion(-) mode change 100644 => 100755 mgcpy/independence_tests/unit_tests/mgc/__init__.py diff --git a/Dockerfile b/Dockerfile index fd65d2b..c5a1760 100644 --- a/Dockerfile +++ b/Dockerfile @@ -82,7 +82,8 @@ RUN mkdir /root/code/ WORKDIR /root/code/ # clone the mgcpy code into the container -RUN git clone https://github.com/NeuroDataDesign/mgcpy.git . +ARG SOURCE_BRANCH=master +RUN git clone -b ${SOURCE_BRANCH} https://github.com/NeuroDataDesign/mgcpy.git . # install python requirements RUN pip install -r requirements.txt diff --git a/mgcpy/independence_tests/unit_tests/mgc/__init__.py b/mgcpy/independence_tests/unit_tests/mgc/__init__.py old mode 100644 new mode 100755 From c63d0108a596987d4da6fca31af45470f9a56bd8 Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Sat, 8 Dec 2018 18:22:04 -0500 Subject: [PATCH 55/60] Remove pytest call from Dockerfile, Travis CI does that Replace with simple import check --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index c5a1760..056b5cb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -100,9 +100,9 @@ RUN python setup.py build_ext --inplace # add mgcpy to PYTHONPATH for dev purposes RUN echo "export PYTHONPATH='${PYTHONPATH}:/root/code'" >> ~/.bashrc -# test if mgcpy is correctly installed +# clean dir and test if mgcpy is correctly installed RUN py3clean . -RUN pytest +RUN python -c "import mgcpy" # launch terminal CMD ["/bin/bash"] From 857f3f46e21347ce5d6d0f85d7205d64ce4744d7 Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Sat, 8 Dec 2018 19:09:28 -0500 Subject: [PATCH 56/60] Move git-hooks into hooks --- {git-hooks => hooks}/pre-commit | 0 install-hooks.sh | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename {git-hooks => hooks}/pre-commit (100%) diff --git a/git-hooks/pre-commit b/hooks/pre-commit similarity index 100% rename from git-hooks/pre-commit rename to hooks/pre-commit diff --git a/install-hooks.sh b/install-hooks.sh index 83c8b1b..3ac90f0 100755 --- a/install-hooks.sh +++ b/install-hooks.sh @@ -2,7 +2,7 @@ basedir=$(git rev-parse --show-toplevel) repohookspath="$basedir/.git/hooks" -localhook="$basedir/git-hooks/pre-commit" +localhook="$basedir/hooks/pre-commit" repohook="$repohookspath/pre-commit" From 3dfea197e921f470978fc71faa7b771b3d72b728 Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Sat, 8 Dec 2018 19:13:12 -0500 Subject: [PATCH 57/60] Add DockerHub build and env hooks --- hooks/build | 12 ++++++++++++ hooks/env | 10 ++++++++++ 2 files changed, 22 insertions(+) create mode 100644 hooks/build create mode 100644 hooks/env diff --git a/hooks/build b/hooks/build new file mode 100644 index 0000000..e6e7f92 --- /dev/null +++ b/hooks/build @@ -0,0 +1,12 @@ +#!/bin/bash -xe + +. ./hooks/env + +docker build \ + --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \ + --build-arg "SOURCE_COMMIT=$GIT_SHA1" \ + --build-arg "SOURCE_BRANCH=$SOURCE_BRANCH" \ + --build-arg "DOCKERFILE_PATH=$DOCKERFILE_PATH" \ + --build-arg "SOURCE_TYPE=$SOURCE_TYPE" \ + ${VERSION:+--build-arg "VERSION=$VERSION"} \ + -t $IMAGE_NAME . diff --git a/hooks/env b/hooks/env new file mode 100644 index 0000000..a6f477b --- /dev/null +++ b/hooks/env @@ -0,0 +1,10 @@ +[ -n "$SOURCE_BRANCH" ] || SOURCE_BRANCH=$(git symbolic-ref -q --short HEAD) +[ -n "$GIT_SHA1" ] || GIT_SHA1=$(git rev-parse -q HEAD) + +if [[ "${SOURCE_BRANCH/-*/}" =~ ^[0-9][0-9.]*$ ]]; then + VERSION=${SOURCE_BRANCH/-*/} +fi + +[ -n "$SOURCE_TYPE" ] || SOURCE_TYPE=git +[ -n "$DOCKERFILE_PATH" ] || DOCKERFILE_PATH=. +[ -n "$IMAGE_NAME" ] || IMAGE_NAME=tpsatish95/mgcpy:${SOURCE_BRANCH} From 97e5c845d80fa4a748e6dcf91470d35b58626dad Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Sat, 8 Dec 2018 19:14:43 -0500 Subject: [PATCH 58/60] Update Readme to have all automated docker images --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 3fd9f77..83e8a98 100644 --- a/README.md +++ b/README.md @@ -33,12 +33,12 @@ python3 setup.py install ## Setting up the development environment: - To build image and run from scratch: - Install [docker](https://docs.docker.com/install/) - - Build the docker image, `docker build -t mgcpy-dev:latest .` + - Build the docker image, `docker build -t mgcpy:latest .` - This takes 20-30 mins to build - - Launch the container to go into mgcpy's dev env, `docker run -it --rm --name mgcpy-dev-env mgcpy-dev` -- Pull master branch image from Dockerhub and run: - - `docker pull tpsatish95/mgcpy-dev:latest` - - `docker run -it --rm -p 8888:8888 --name mgcpy-dev-env tpsatish95/mgcpy-dev` + - Launch the container to go into mgcpy's dev env, `docker run -it --rm --name mgcpy-env mgcpy:latest` +- Pull image from Dockerhub and run: + - `docker pull tpsatish95/mgcpy:latest` or `docker pull tpsatish95/mgcpy:development` + - `docker run -it --rm -p 8888:8888 --name mgcpy-env tpsatish95/mgcpy:latest` - To run demo notebooks (from within Docker): @@ -49,7 +49,7 @@ python3 setup.py install - Then open `mgc.ipynb` - To mount/load local files into docker container: - - Do `docker run -it --rm -v :/root/workspace/ -p 8888:8888 --name mgcpy-dev-env tpsatish95/mgcpy-dev`, replace `` with your local dir path. + - Do `docker run -it --rm -v :/root/workspace/ -p 8888:8888 --name mgcpy-env tpsatish95/mgcpy:latest`, replace `` with your local dir path. - Do `cd ../workspace` when you are inside the container to view the mounted files. The **mgcpy** package code will be in `/root/code` directory. From a9779dd2764729aafa72d92850f51614d5d86530 Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Sat, 8 Dec 2018 19:28:53 -0500 Subject: [PATCH 59/60] Remove mgcpy sys path addition --- docs/source/conf.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index d193053..a65d5ac 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -12,9 +12,9 @@ # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # -import os -import sys -sys.path.insert(0, os.path.abspath('../../')) +# import os +# import sys +# sys.path.insert(0, os.path.abspath('../../')) # -- Project information ----------------------------------------------------- From 6b9c5cd0f8c382269ff5fea92f7a2abdfe2713f4 Mon Sep 17 00:00:00 2001 From: tpsatish95 Date: Sat, 8 Dec 2018 19:35:33 -0500 Subject: [PATCH 60/60] Update Sphinx docs --- docs/source/mgcpy.independence_tests.mdmr.rst | 30 +++++++++++++++ docs/source/mgcpy.independence_tests.mgc.rst | 8 ---- docs/source/mgcpy.independence_tests.rst | 1 + docs/source/mgcpy.rst | 1 - docs/source/mgcpy.utils.rst | 38 ------------------- 5 files changed, 31 insertions(+), 47 deletions(-) create mode 100644 docs/source/mgcpy.independence_tests.mdmr.rst delete mode 100644 docs/source/mgcpy.utils.rst diff --git a/docs/source/mgcpy.independence_tests.mdmr.rst b/docs/source/mgcpy.independence_tests.mdmr.rst new file mode 100644 index 0000000..31f27ce --- /dev/null +++ b/docs/source/mgcpy.independence_tests.mdmr.rst @@ -0,0 +1,30 @@ +mgcpy.independence\_tests.mdmr package +====================================== + +Submodules +---------- + +mgcpy.independence\_tests.mdmr.mdmr module +------------------------------------------ + +.. automodule:: mgcpy.independence_tests.mdmr.mdmr + :members: + :undoc-members: + :show-inheritance: + +mgcpy.independence\_tests.mdmr.mdmrfunctions module +--------------------------------------------------- + +.. automodule:: mgcpy.independence_tests.mdmr.mdmrfunctions + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: mgcpy.independence_tests.mdmr + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/mgcpy.independence_tests.mgc.rst b/docs/source/mgcpy.independence_tests.mgc.rst index 811fb3d..0a3f357 100644 --- a/docs/source/mgcpy.independence_tests.mgc.rst +++ b/docs/source/mgcpy.independence_tests.mgc.rst @@ -12,14 +12,6 @@ mgcpy.independence\_tests.mgc.distance\_transform module :undoc-members: :show-inheritance: -mgcpy.independence\_tests.mgc.fast\_mgc module ----------------------------------------------- - -.. automodule:: mgcpy.independence_tests.mgc.fast_mgc - :members: - :undoc-members: - :show-inheritance: - mgcpy.independence\_tests.mgc.local\_correlation module ------------------------------------------------------- diff --git a/docs/source/mgcpy.independence_tests.rst b/docs/source/mgcpy.independence_tests.rst index fbe9f87..c226f3e 100644 --- a/docs/source/mgcpy.independence_tests.rst +++ b/docs/source/mgcpy.independence_tests.rst @@ -6,6 +6,7 @@ Subpackages .. toctree:: + mgcpy.independence_tests.mdmr mgcpy.independence_tests.mgc mgcpy.independence_tests.unit_tests diff --git a/docs/source/mgcpy.rst b/docs/source/mgcpy.rst index 83a90e7..8e01ba7 100644 --- a/docs/source/mgcpy.rst +++ b/docs/source/mgcpy.rst @@ -8,7 +8,6 @@ Subpackages mgcpy.benchmarks mgcpy.independence_tests - mgcpy.utils Module contents --------------- diff --git a/docs/source/mgcpy.utils.rst b/docs/source/mgcpy.utils.rst deleted file mode 100644 index f676b31..0000000 --- a/docs/source/mgcpy.utils.rst +++ /dev/null @@ -1,38 +0,0 @@ -mgcpy.utils package -=================== - -Submodules ----------- - -mgcpy.utils.dist\_transform module ----------------------------------- - -.. automodule:: mgcpy.utils.dist_transform - :members: - :undoc-members: - :show-inheritance: - -mgcpy.utils.permutation\_test module ------------------------------------- - -.. automodule:: mgcpy.utils.permutation_test - :members: - :undoc-members: - :show-inheritance: - -mgcpy.utils.power module ------------------------- - -.. automodule:: mgcpy.utils.power - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: mgcpy.utils - :members: - :undoc-members: - :show-inheritance: