この問題は、p.adjust
を使用してp値のベクトルでFDR調整を実行しようとしたときに発生しました。問題は、得られたp値の多くが同一であったことである。私はこれが私のデータでは奇抜であるかもしれないと考えましたが、私はこの同じ問題を任意の入力ベクトルで再現しました。例:R:予期せぬ結果がp.adjust(FDR)
temp <- runif(40, min = 0, max = 1)
temp
# [1] 0.81563482 0.17471363 0.74697979 0.88755248 0.69676260 0.58207008
# [7] 0.87138747 0.76432908 0.64352955 0.06501659 0.70680646 0.81557281
#[13] 0.58480274 0.19476004 0.01035137 0.46119840 0.17783440 0.71828874
#[19] 0.30978182 0.76902202 0.01615609 0.93122152 0.37936458 0.52369562
#[25] 0.90997054 0.30098383 0.70873206 0.71159740 0.38148526 0.78415579
#[31] 0.64605509 0.18898361 0.76770495 0.40651004 0.42255944 0.68395505
#[37] 0.51844368 0.25855720 0.12090991 0.50110836
p.adjust(temp, method="fdr")
# [1] 0.9062609 0.9062609 0.9062609 0.9312215 0.9062609 0.9062609 0.9312215
# [8] 0.9062609 0.9062609 0.8668878 0.9062609 0.9062609 0.9062609 0.9062609
#[15] 0.3231218 0.9062609 0.9062609 0.9062609 0.9062609 0.9062609 0.3231218
#[22] 0.9312215 0.9062609 0.9062609 0.9312215 0.9062609 0.9062609 0.9062609
#[29] 0.9062609 0.9062609 0.9062609 0.9062609 0.9062609 0.9062609 0.9062609
#[36] 0.9062609 0.9062609 0.9062609 0.9062609 0.9062609
私は間違いをしていると思います。私は、FDRがp値をすべて同じ値に調整することが合理的であるとは思わない。データの大部分は同一であり、元のp値と完全に一致するわけではありません。何がここに間違っているアイデアですか?ありがとう。
期待通りに動作していると思います。 '' p.adj < - sapply(p.adjust.methods、function(meth)p.adjust(temp、meth)) 'を実行すると、' temp < - runif(5、min = 0、max = .005)すべての調整方法。 –