[2]:
from permanova.experiments.exp_utils import NumpyTest as npt

PERMANOVA test on tabular data#

Here are presented a series of experiments on tabular data with continuous variables. The tests are handled on different levels of noise applied to the second sample.

Normally distributed covariates#

Two covariates - low noise#

[3]:
sample_1, sample_2 = npt.generate_samples_with_normal_covariates(
    dim=2, noise_mean=0, noise_std=1, size=10000
)
npt.test(sample_1, sample_2, show_plots=True)
../_images/experiments_docs_test_tabular_numpy_5_0.png
../_images/experiments_docs_test_tabular_numpy_5_1.png
Computing permutations...
100%|██████████| 10000/10000 [00:08<00:00, 1208.86it/s]
p-value: 0.79082

Two covariates - high noise#

[4]:
sample_1, sample_2 = npt.generate_samples_with_normal_covariates(
    dim=2, noise_mean=1, noise_std=1, size=10000
)
npt.test(sample_1, sample_2, show_plots=True)
../_images/experiments_docs_test_tabular_numpy_7_0.png
../_images/experiments_docs_test_tabular_numpy_7_1.png
Computing permutations...
100%|██████████| 10000/10000 [00:06<00:00, 1652.49it/s]
p-value: 0.0001

Multiple covariates - low noise#

[5]:
sample_1, sample_2 = npt.generate_samples_with_normal_covariates(
    dim=10, noise_mean=0, noise_std=1, size=10000
)
npt.test(sample_1, sample_2, show_plots=False)
Computing permutations...
100%|██████████| 10000/10000 [00:14<00:00, 668.29it/s]
p-value: 0.9996

Multiple covariates - high noise#

[6]:
sample_1, sample_2 = npt.generate_samples_with_normal_covariates(
    dim=10, noise_mean=1, noise_std=1, size=10000
)
npt.test(sample_1, sample_2, show_plots=False)
Computing permutations...
  0%|          | 0/10000 [00:00<?, ?it/s]100%|██████████| 10000/10000 [00:15<00:00, 657.93it/s]
p-value: 0.0001

Mixture of gaussians covariates - low noise#

Two covariates - low noise#

[7]:
sample_1, sample_2 = npt.generate_samples_with_mixture_covariates(
    dim=2, noise_mean_perc=0.01, noise_std_perc=0.01, size=10000
)
npt.test(sample_1, sample_2, show_plots=True)
../_images/experiments_docs_test_tabular_numpy_14_0.png
../_images/experiments_docs_test_tabular_numpy_14_1.png
Computing permutations...
100%|██████████| 10000/10000 [00:09<00:00, 1105.07it/s]
p-value: 0.70163

Two covariates - high noise#

[8]:
sample_1, sample_2 = npt.generate_samples_with_mixture_covariates(
    dim=2, noise_mean_perc=0.1, noise_std_perc=0.1, size=10000
)
npt.test(sample_1, sample_2, show_plots=True)
../_images/experiments_docs_test_tabular_numpy_16_0.png
../_images/experiments_docs_test_tabular_numpy_16_1.png
Computing permutations...
100%|██████████| 10000/10000 [00:09<00:00, 1046.79it/s]
p-value: 0.0001

Multiple covariates - low noise#

[9]:
sample_1, sample_2 = npt.generate_samples_with_mixture_covariates(
    dim=10, noise_mean_perc=0.01, noise_std_perc=0.01, size=10000
)
npt.test(sample_1, sample_2, show_plots=False)
Computing permutations...
100%|██████████| 10000/10000 [00:16<00:00, 607.47it/s]
p-value: 0.9911

Multiple covariates - high noise#

[10]:
sample_1, sample_2 = npt.generate_samples_with_mixture_covariates(
    dim=10, noise_mean_perc=0.1, noise_std_perc=0.1, size=10000
)
npt.test(sample_1, sample_2, show_plots=False)
Computing permutations...
100%|██████████| 10000/10000 [00:18<00:00, 548.29it/s]
p-value: 0.0001