2016-06-30 2 views
3

うまくいけば、これは愚かな質問ではありませんが、デフォルトの調整方法がRのp.adjustのものであるかどうか調べるのは難しいです。デフォルト方法については、には何もありません。Rのp.adjustメソッドのデフォルトの方法は何ですか?

私はだと思います。これはHolmメソッドですが、それを示すドキュメントは見つかりません。

+3

あなたはそれを持っているp.adjust' 'の最初のラインを見れば、 ' match.arg(メソッド) '、デフォルトは'メソッド= p.adjust.methods'。 'match.arg'の詳細を見てみると、*" ..と は最初の要素を返します "* – user20650

+1

ありがとう、私はそれを見ていないでしょう。 – Chris

答えて

4

あなたはを見れば、あなたが表示されます。

p.adjust.methods 
# c("holm", "hochberg", "hommel", "bonferroni", "BH", "BY", 
# "fdr", "none") 

をので、デフォルトでは、特に指定なし、最初の1である:「ホルム」。


この質問は本当に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(...), ...) 

我々はいくつかの関数の引数はdensity()bw = "nrd0"のように、一つだけのデフォルト値を持っていることを確認します。一部はdensity()

kernel = c("gaussian", "epanechnikov", "rectangular", 
        "triangular", "biweight", 
        "cosine", "optcosine") 

のような値のグループを、持っていながら。例外なく、特定のユーザー入力が見つからない限り、それらのデフォルトの最初の要素が使用されます。

0

答えは「ホルム」のように見える:「ホルム」マニュアルにmethodのためにリストされた最初のオプションであることを

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 

注意。これは通常、デフォルトであることを意味します。

0

おもちゃの例でも確認できます。メソッドを指定しない場合と同じ結果をもたらすのは、「holm」だけです。

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 
関連する問題