FDR錯誤發現率-P值校正學習

轉自:https://baike.baidu.com/item/FDR/16312044?fr=aladdin  https://blog.csdn.net/taojiea1014/article/details/79681249

http://www.360doc.com/content/18/0914/21/19913717_786724085.shtml   https://www.sohu.com/a/165109778_785442

https://www.jianshu.com/p/13f46bebebd4

 1.定義

 FDR(false discovery rate),是統計學中常見的一個名詞,翻譯爲僞發現率,其意義爲是 錯誤拒絕(拒絕真的(原)假設)的個數佔所有被拒絕的原假設個數的比例的期望值。

//FDR是個期望值

 2.利用Benjamini–Hochberg方法計算FDR的計算及R語言實現

FDR的計算相當簡單,包括以下幾步:

  1.對p值進行從小到大的排序,標記上序號1~n;

  2.其中,最大的FDR(不考慮重複則爲第n位)等於最大的p值;

  3.對於n-1位的FDR,取下面兩者的較小值:

  • 上一步(第n位)計算得出的FDR值;

  • p值*n/(n-1)

  4.不斷迭代第三步(n-2,n-3....),直至計算到最小p值對應的FDR。

例子:

temp <-c(0.01,0.11,0.21,0.31,0.41,0.51,0.61,0.71,0.81,0.91)
p.adjust(temp,method = "fdr")

結果:
[1] 0.1000000 0.5500000 0.7000000 0.7750000 0.8200000 0.8500000 0.8714286
 [8] 0.8875000 0.9000000 0.9100000

 

另外,如果對temp的倒數第二個P值進行更改:

temp2 <-c(0.01,0.11,0.21,0.31,0.41,0.51,0.61,0.71,0.90,0.91)
p.adjust(temp2,method = "fdr")

[1] 0.1000000 0.5500000 0.7000000 0.7750000 0.8200000 0.8500000 0.8714286
[8] 0.8875000 0.9100000 0.9100000

 

第一次:min(0.91,0.81*10/9)=0.90

第二次:min(0.91,0.90*10/9)=0.91

分別演示了兩個取到不同值的過程。

這樣可以保證從統計學上FDP不超過q。

3.確定FDR


 

3.只使用P值的話

單次檢驗:針對單個基因(蛋白),採用統計檢驗,假設採用的p值爲小於0.05,我們通常認爲這個基因在兩個(組)樣本中的表達是有顯著差異的,但是仍舊有5%的概率,這個基因並不是差異基因。

注:原假設是兩個基因不存在顯著性差異。

多次檢驗:當兩個(組)樣本中有10000個基因採用同樣的檢驗方式進行統計檢驗時,這個時候就有一個問題,單次犯錯的概率爲0.05, 進行10000次檢驗的話,那麼就有0.05*10000=500 個基因的差異被錯誤估計了。

有一種嚴格校正法:

Bonferroni 校正法  
Bonferroni校正法:如果進行N次檢驗,那麼p值的篩選的閾值設定爲p/N。 比如,進行10000次檢驗的話,如果p值選擇爲0.05, 那麼校正的p值篩選爲0.000005。 p值低於此的基因纔是顯著性差異基因。  
該方法雖然簡單,但是過於嚴格,導致最後找的差異基因很少,甚至找不到差異的基因。

 4.假設檢驗

我們在處理宏基因組差異基因的選擇時,需要對兩個樣本的每個基因進行一次假設檢驗。如果我們有m個基因,那麼我們就要做m次假設檢驗。每一次的假設檢驗的零假設H0爲:兩個樣本的這個基因沒有顯著性差異。其中有m0個零假設是正確的,即這個基因在兩個樣本中確實沒有顯著性差異;但有m1=m-m0個零假設是錯誤的,即兩個樣本的這個基因是有顯著性差異。m次檢驗之後,被拒絕的零假設的個數記爲R。爲了方便記憶,可用一張表格來表示假設檢驗的結果,如上。

我們可以得到FDR準則,即要求控制錯誤拒絕率。令Q=V / (V+S),它表示被錯誤拒絕的零假設數目佔所有被拒絕的零假設數目的比例。Q也是一個不可觀測的隨機變量。

 https://stackoverflow.com/questions/10323817/r-unexpected-results-from-p-adjust-fdr

這個裏講了如何計算及過程,明天來總結。

5.R中的cummin函數

> cummin(c(3:1, 2:0, 4:2))
[1] 3 2 1 1 1 0 0 0 0

> c(3:1, 2:0, 4:2)
[1] 3 2 1 2 1 0 4 3 2

#求從左到右累積的最小值。
#到第二個2出現時已經有了最小值是1,所以對應都是1.
#到第一個0出現時,是最小值,那麼對應之後再出現的4 3 2 累計最小值都是0.

 

轉自:https://baike.baidu.com/item/FDR/16312044?fr=aladdin  https://blog.csdn.net/taojiea1014/article/details/79681249

http://www.360doc.com/content/18/0914/21/19913717_786724085.shtml   https://www.sohu.com/a/165109778_785442

https://www.jianshu.com/p/13f46bebebd4

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章