I have multiple individuals, for whom I collected two time series of some parameter. For each individual, I calculated, whether these time series are correlated. So, if I have 20 individuals, as a result I have 20 rho and 20 p-values. Then, I would like to group these values into one group p-value. First, I tried Fisher's method (Wikipedia, MRC wiki).
Here is the MATLAB code example I used, for the sake of reproducibility I provide my input values as well:
pvals = [0.265337997085488 0.00408191031608826 3.39739013503740e-05 0.254982443552454 0.165041294656449 0.416553830442594 0.854810976365062 0.555604221080550 0.256959004076953 0.371337447007835 0.705098835272764 0.122815481253417 0.562862850057724 0.781570743043581 0.248570986138274 0.448488806357779 0.179768419684463 0.560862182877956 0.169198118710575 0.681402534954493 0.723443480957150]; %// pvals is vector of (21,1) shape which holds individual p-values chi_vals = -2.*log(pvals); group_pval = 1 - chi2cdf(sum(chi_vals),2*length(pvals)); nsig = sum(pvals < 0.05)
I would have felt that this was enough, but there is something that really got me worried - I get a group p-value of 0.0054, while in my individual p-values there are only 2 values that are "significant" at $p < 0.05$. That doesn't make sense, right? Why is my group p-value so low? Did I make a mistake in calculations or assumptions?