<p>It is correct, because you are testing all of your p-values come from a random uniform distribution. The alternate hypothesis is that at least one of them is true. Which in your case is very possible.</p>

<p>We can simulate this, by drawing from a random uniform distribution 1000 times, the length of your p-values:</p>

<pre><code>import numpy as np
from scipy.stats import combine_pvalues
from matplotlib import pyplot as plt

random_p = np.random.uniform(0,1,(1000,len(p_values_list)))
res = np.array([combine_pvalues(i,method='fisher',weights=None) for i in random_p])
plt.hist(fisher_p)
</code></pre>

<p><a href="https://i.stack.imgur.com/Iqdvw.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Iqdvw.png" alt="enter image description here"></a></p>

<p>From your results, the chi-square is 62.456 which is really huge and no where near the simulated chi-square above.</p>

<p>One thing to note is that the combining you did here does not take into account directionality, if that is possible in your test, you might want to consider using stouffer's Z along with weights. Also another sane way to check is to run simulation like the above, to generate list of p-values under the null hypothesis and see how they differ from what you observed. </p>

<p><a href="https://arxiv.org/pdf/1707.06897.pdf" rel="nofollow noreferrer">Interesting paper but maybe a bit on the statistics side</a></p>
Combining p values using scipy
<p>I have to combine p values and get one p value.
I'm using scipy.stats.combine_pvalues function, but it is giving very small combined p value, is it normal?</p>

<p>e.g.:</p>

<pre><code>&gt;&gt;&gt; import scipy
&gt;&gt;&gt; p_values_list=[8.017444955844044e-06, 0.1067379119652372, 5.306374345615846e-05, 0.7234201655194492, 0.13050605094545614, 0.0066989543716175, 0.9541246420333787]
&gt;&gt;&gt; test_statistic, combined_p_value = scipy.stats.combine_pvalues(p_values_list, method='fisher',weights=None)
&gt;&gt;&gt; combined_p_value
4.331727536209026e-08
</code></pre>

<p>As you see, <strong>combined_p_value is smaller than any given p value in the p_values_list</strong>?
How can it be?</p>

<p>Thanks in advance,
Burcak</p>