def test(self): _, expected_pvalue = spearmanr(x, y) test_pvalue_nospeedup = stats.compute_permutation_test_pvalue( x, y, pdist_metric='spearman', permute_func='ecdf', speedup=False, iters=1000, seed=123) self.assertLessEqual(abs(test_pvalue_nospeedup - expected_pvalue), eps)
def test_compute_permutation_test_pvalue_insignificant_speedup(self): np.random.seed(2) x = np.random.normal(size=1000) y = np.random.normal(size=1000) test_pvalue = stats.compute_permutation_test_pvalue( x, y, pdist_metric='pearson', permute_func='ecdf', speedup=True, alpha=0.05, iters=1000, seed=123) # we don't care about the exact value self.assertTrue(test_pvalue > 0.05)
def test_compute_permutation_test_pvalue_insignificant(self): np.random.seed(2) eps = 0.02 x = np.random.normal(size=1000) y = np.random.normal(size=1000) _, expected_pvalue = pearsonr(x, y) test_pvalue = stats.compute_permutation_test_pvalue( x, y, pdist_metric='pearson', permute_func='ecdf', speedup=False, iters=1000, seed=123) self.assertLessEqual(abs(test_pvalue - expected_pvalue), eps)
def test(self): _, expected_pvalue = spearmanr(x, y) test_pvalue = stats.compute_permutation_test_pvalue( x, y, pdist_metric='spearman', permute_func='gpd', speedup=True, alpha=0.05, iters=1000, seed=123) if expected_pvalue <= 0.05: # significant self.assertLessEqual(abs(test_pvalue - expected_pvalue), eps) else: self.assertTrue(test_pvalue > 0.05)
def test_compute_permutation_test_pvalue_significant(self): np.random.seed(1) eps = 0.001 # source: https://machinelearningmastery.com/how-to-calculate-nonparametric-rank-correlation-in-python/ x = np.random.normal(size=1000) * 20 y = x + np.random.normal(size=1000) * 10 # get expected p-value _, expected_pvalue = spearmanr(x, y) test_pvalue = stats.compute_permutation_test_pvalue( x, y, pdist_metric='spearman', permute_func='ecdf', speedup=False, iters=1000, seed=123) self.assertLessEqual(abs(test_pvalue - expected_pvalue), eps)