希望这不是一个愚蠢的问题,但我很难找到R中p.adjust
的默认调整方法。?p.adjust
中没有关于默认方法的内容。
我认为这是Holm方法,但我找不到显示该文档的文档。
答案 0 :(得分:4)
如果你看?p.adjust
,你会看到:
p.adjust.methods
# c("holm", "hochberg", "hommel", "bonferroni", "BH", "BY",
# "fdr", "none")
因此默认情况下,没有特别说明,是第一个:" holm"。
我认为这个问题与R如何获得默认函数参数值有关。我将展示一些我熟悉的功能:
density(x, bw = "nrd0", adjust = 1,
kernel = c("gaussian", "epanechnikov", "rectangular",
"triangular", "biweight",
"cosine", "optcosine"),
weights = NULL, window = kernel, width,
give.Rkern = FALSE,
n = 512, from, to, cut = 3, na.rm = FALSE, ...)
ksmooth(x, y, kernel = c("box", "normal"), bandwidth = 0.5,
range.x = range(x),
n.points = max(100L, length(x)), x.points)
loess(formula, data, weights, subset, na.action, model = FALSE,
span = 0.75, enp.target, degree = 2,
parametric = FALSE, drop.square = FALSE, normalize = TRUE,
family = c("gaussian", "symmetric"),
method = c("loess", "model.frame"),
control = loess.control(...), ...)
我们看到一些函数参数只有一个默认值,如bw = "nrd0"
中的density()
;有些人有一组价值观,比如
kernel = c("gaussian", "epanechnikov", "rectangular",
"triangular", "biweight",
"cosine", "optcosine")
density()
中的。嗯,无一例外,除非找到特定的用户输入,否则将使用这些默认值的第一个元素。
答案 1 :(得分:0)
答案似乎是“holm”:
set.seed(1)
ps <- runif(20, max=.2)
def <- p.adjust(ps)
bon <- p.adjust(ps, method="bonferroni")
hol <- p.adjust(ps, method="holm")
hoc <- p.adjust(ps, method="hochberg")
hom <- p.adjust(ps, method="hommel")
bh <- p.adjust(ps, method="BH")
by <- p.adjust(ps, method="BY")
non <- p.adjust(ps, method="none")
lst <- list(bon, hol, hoc, hom, bh, by, non)
for(i in 1:6){
print(def==lst[[i]])
}
# [1] FALSE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE
# [10] TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE
# [19] TRUE TRUE
# [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
# [11] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
# [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [10] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [19] FALSE FALSE
# [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [10] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [19] FALSE FALSE
# [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [10] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [19] FALSE FALSE
# [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [10] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# [19] FALSE FALSE
请注意,“holm”是文档中method
列出的第一个选项。这通常意味着它是默认值。
答案 2 :(得分:0)
即使使用玩具示例,您也可以查看它。 &#39;冬青&#39;与你没有指定方法相比,它是唯一能给你相同结果的人。
a <- c(0.01, 0.01, 0.001, 0.1)
p.adjust(a, n = 100)
[1] 0.99 0.99 0.10 1.00
p.adjust(a, method = "holm", n = 100)
[1] 0.99 0.99 0.10 1.00# Same as above when no method specified
p.adjust(a, method = "hochberg", n = 100)
[1] 0.98 0.98 0.10 1.00
p.adjust(a, method = "hommel", n = 100)
[1] 0.98 0.98 0.10 1.00
p.adjust(a, method = "bonferroni", n = 100)
[1] 1.0 1.0 0.1 1.0
p.adjust(a, method = "BH", n = 100)
[1] 0.3333333 0.3333333 0.1000000 1.0000000
p.adjust(a, method = "BY", n = 100)
[1] 1.0000000 1.0000000 0.5187378 1.0000000
p.adjust(a, method = "fdr", n = 100)
[1] 0.3333333 0.3333333 0.1000000 1.0000000