Ajuste de valores p (pvalues) (no R) - lmigueel/Bioinformatica GitHub Wiki

1. Sobre

Importante mencionar que para ajustar seus p-values no R, você pode usar a função p.adjust(p), onde p é o vetor de p-values. Por exemplo, vamos supor que estejamos calculando o p-value enriquecido por hipergeométrica para várias classes de GO. Os softwares de enriquecimento sempre ajustam os valores de p (Panther, David ...). Sendo assim, caso tenha executado o cálculo com o phyper algumas vezes para algumas classes, utilize:

p.adjust(p, method="bonferroni") # método de Bonferroni (multiplicação simples)
p.adjust(p, method="holm") # método de Holm-Bonferroni (mais potente que o Bonferroni)
p.adjust(p, method="BH") # Benjamini-Hochberg

Após executar para o vetor p contendo 12 p-values

p <- c(0.0002,0.00003,0.002,0.0000003,0.00000005,0.0002,0.05,0.21,0.98,0.0004,0.0003,0.02)

obtemos:

> p.adjust(p, method="bonferroni")
 [1] 2.4e-03 3.6e-04 2.4e-02 3.6e-06 6.0e-07 2.4e-03 6.0e-01 1.0e+00 1.0e+00 4.8e-03
[11] 3.6e-03 2.4e-01
> p.adjust(p, method="holm")
 [1] 1.8e-03 3.0e-04 1.0e-02 3.3e-06 6.0e-07 1.8e-03 1.5e-01 4.2e-01 9.8e-01 2.4e-03
[11] 2.1e-03 8.0e-02
> p.adjust(p, method="BH")
 [1] 0.0004800000 0.0001200000 0.0030000000 0.0000018000 0.0000006000 0.0004800000
 [7] 0.0600000000 0.2290909091 0.9800000000 0.0006857143 0.0006000000 0.0266666667

Após o ajuste, o corte deve ser realizado segundo o seu valor de confiança.

Deixo uma leitura super importante "Why, When and How to Adjust Your P Values?".