P-Value

為什麼我使用 Fisher 方法獲得的組合 p 值如此之低?

  • June 23, 2015

我有多個人,我為他們收集了一些參數的兩個時間序列。對於每個人,我計算了這些時間序列是否相關。所以,如果我有 20 個人,結果我有 20 個 rho 和 20 個 p 值。然後,我想將這些值分組為一組 p 值。首先,我嘗試了 Fisher 的方法(維基百科MRC 維基)。

這是我使用的 MATLAB 代碼示例,為了重現性,我也提供了我的輸入值:

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)

我會覺得這已經足夠了,但有些事情真的讓我擔心——我得到一個 0.0054 的組 p 值,而在我的個人 p 值中只有 2 個值是“顯著”的. 這沒有意義,對吧?**為什麼我的組 p 值這麼低?**我是否在計算或假設方面犯了錯誤?

您的 p 值看起來是正確的。

考慮如果原假設為真,則 p 值應該是一致的;當你有很多它們時,你實際上是在檢查你的 p 值集合是否與均勻性一致,而不是它們比你對製服的預期要小(Fisher 的方法測量這種程度太小)一種特殊的方式)。

您的值偏低(例如,考慮 7 個值低於 0.25,但只有 2 個值高於 0.75)。Fisher 的方法可以發現您的 p 值往往太小。

如果 p 值來自製服,它們應該靠近該圖中的紅線(F 值是製服分數;本質上 ecdf 向下移動了(相當於該點前後 ecdf 的平均值)):

[在此處輸入圖像描述

我們可以看到大的 p 值往往太小(它們位於靠近圖頂部的線的左側)。因此,Fisher p 值非常小。

引用自:https://stats.stackexchange.com/questions/158225

comments powered by Disqus