摘抄于網(wǎng)頁(yè)
多重假設(shè)檢驗(yàn)與Bonferroni校正星岗、FDR校正
總結(jié)起來(lái)就三句話(huà):
(1)當(dāng)同一個(gè)數(shù)據(jù)集有n次(n>=2)假設(shè)檢驗(yàn)時(shí)填大,要做多重假設(shè)檢驗(yàn)校正
(2)對(duì)于Bonferroni校正,是將p-value的cutoff除以n做校正俏橘,這樣差異基因篩選的p-value cutoff就更小了允华,從而使得結(jié)果更加嚴(yán)謹(jǐn)
(3)FDR校正是對(duì)每個(gè)p-value做校正,轉(zhuǎn)換為q-value寥掐。q=p*n/rank靴寂,其中rank是指p-value從小到大排序后的次序。
舉一個(gè)具體的實(shí)例:
我們測(cè)量了M個(gè)基因在A,B,C,D,E一共5個(gè)時(shí)間點(diǎn)的表達(dá)量召耘,求其中的差異基因百炬,具體做法:
(1)首先做ANOVA,確定這M個(gè)基因中有哪些基因至少出現(xiàn)過(guò)差異
(2)5個(gè)時(shí)間點(diǎn)之間兩兩比較污它,一共比較5*4/2=10次剖踊,則多重假設(shè)檢驗(yàn)的n=10
(3)每個(gè)基因做完10次假設(shè)檢驗(yàn)后都有10個(gè)p-value,做多重假設(shè)檢驗(yàn)校正(n=10)衫贬,得到q-value
(4)根據(jù)q-value判斷在哪兩組之間存在差異
通過(guò)T檢驗(yàn)等統(tǒng)計(jì)學(xué)方法對(duì)每個(gè)蛋白進(jìn)行P值的計(jì)算德澈。T檢驗(yàn)是差異蛋白表達(dá)檢測(cè)中常用的統(tǒng)計(jì)學(xué)方法,通過(guò)合并樣本間可變的數(shù)據(jù)固惯,來(lái)評(píng)價(jià)某一個(gè)蛋白在兩個(gè)樣本中是否有差異表達(dá)梆造。
但是由于通常樣本量較少,從而對(duì)總體方差的估計(jì)不很準(zhǔn)確葬毫,所以T檢驗(yàn)的檢驗(yàn)效能會(huì)降低镇辉,并且如果多次使用T檢驗(yàn)會(huì)顯著增加假陽(yáng)性的次數(shù)。
例如贴捡,當(dāng)某個(gè)蛋白的p值小于0.05(5%)時(shí)忽肛,我們通常認(rèn)為這個(gè)蛋白在兩個(gè)樣本中的表達(dá)是有差異的。但是仍舊有5%的概率烂斋,這個(gè)蛋白并不是差異蛋白麻裁。那么我們就錯(cuò)誤地否認(rèn)了原假設(shè)(在兩個(gè)樣本中沒(méi)有差異表達(dá)),導(dǎo)致了假陽(yáng)性的產(chǎn)生(犯錯(cuò)的概率為5%)源祈。
如果檢驗(yàn)一次煎源,犯錯(cuò)的概率是5%;檢測(cè)10000次香缺,犯錯(cuò)的次數(shù)就是500次手销,即額外多出了500次差異的結(jié)論(即使實(shí)際沒(méi)有差異)。為了控制假陽(yáng)性的次數(shù)图张,于是我們需要對(duì)p值進(jìn)行多重檢驗(yàn)校正锋拖,提高閾值诈悍。
方法一.Bonferroni
“最簡(jiǎn)單嚴(yán)厲的方法”
例如,如果檢驗(yàn)1000次兽埃,我們就將閾值設(shè)定為5%/ 1000 = 0.00005侥钳;即使檢驗(yàn)1000次,犯錯(cuò)誤的概率還是保持在N×1000 = 5%柄错。最終使得預(yù)期犯錯(cuò)誤的次數(shù)不到1次舷夺,抹殺了一切假陽(yáng)性的概率。
該方法雖然簡(jiǎn)單售貌,但是檢驗(yàn)過(guò)于嚴(yán)格给猾,導(dǎo)致最后找不到顯著表達(dá)的蛋白(假陰性)。
方法二.FalseDiscovery Rate
“比較溫和的方法校正P值”
FDR(假陽(yáng)性率)錯(cuò)誤控制法是Benjamini于1995年提出的一種方法颂跨,基本原理是通過(guò)控制FDR值來(lái)決定P值的值域敢伸。相對(duì)Bonferroni來(lái)說(shuō),F(xiàn)DR用比較溫和的方法對(duì)p值進(jìn)行了校正恒削。其試圖在假陽(yáng)性和假陰性間達(dá)到平衡池颈,將假/真陽(yáng)性比例控制到一定范圍之內(nèi)。例如钓丰,如果檢驗(yàn)1000次躯砰,我們?cè)O(shè)定的閾值為0.05(5%),那么無(wú)論我們得到多少個(gè)差異蛋白斑粱,這些差異蛋白出現(xiàn)假陽(yáng)性的概率保持在5%之內(nèi)弃揽,這就叫FDR<5%脯爪。
那么我們?cè)趺磸膒 value 來(lái)估算FDR呢则北,人們?cè)O(shè)計(jì)了幾種不同的估算模型。其中使用最多的是Benjamini and Hochberg方法痕慢,簡(jiǎn)稱(chēng)BH法尚揣。雖然這個(gè)估算公式并不夠完美,但是也能解決大部分的問(wèn)題掖举,主要還是簡(jiǎn)單好用快骗!
FDR的計(jì)算方法
除了可以使用excel的BH計(jì)算方法外,對(duì)于較大的數(shù)據(jù)塔次,我們推薦使用R命令p.adjust方篮。
FDR的計(jì)算方法
除了可以使用excel的BH計(jì)算方法外,對(duì)于較大的數(shù)據(jù)励负,我們推薦使用R命令p.adjust藕溅。 p.adjust(p, method = p.adjust.methods, n = length(p))
> p.adjustfunction (p, method = p.adjust.methods, n = length(p)){ method <- match.arg(method) if (method == "fdr")
? ? method <- "BH"? ? nm <- names(p)? ? p <- as.numeric(p)? ? ……? ? BH = {? ? ? ? i <- lp:1L? ? ? ? o <- order(p, decreasing = TRUE)? ? ? ? ro <- order(o)? ? ? ? pmin(1, cummin(n/i * p[o]))[ro]? ? }? ? ……? ? p0}
其實(shí)該函數(shù)表達(dá)的意思是這樣的:
我們將一系列p值、校正方法(BH)以及所有p值的個(gè)數(shù)(length(p))輸入到p.adjust函數(shù)中继榆。
將一系列的p值按照從大到小排序巾表,然后利用下述公式計(jì)算每個(gè)p值所對(duì)應(yīng)的FDR值汁掠。 公式:p * (n/i), p是這一次檢驗(yàn)的p value集币,n是檢驗(yàn)的次數(shù)考阱,i是排序后的位置ID(如最大的P值的i值肯定為n,第二大則是n-1鞠苟,依次至最小為1)乞榨。
將計(jì)算出來(lái)的FDR值賦予給排序后的p值,如果某一個(gè)p值所對(duì)應(yīng)的FDR值大于前一位p值(排序的前一位)所對(duì)應(yīng)的FDR值偶妖,則放棄公式計(jì)算出來(lái)的FDR值姜凄,選用與它前一位相同的值。因此會(huì)產(chǎn)生連續(xù)相同F(xiàn)DR值的現(xiàn)象趾访;反之則保留計(jì)算的FDR值态秧。
將FDR值按照最初始的p值的順序進(jìn)行重新排序,返回結(jié)果扼鞋。