7

階乗 ANOVA を実行した後、TukeyHSD事後検定を行いました。TukeyHSD出力から調整された P 値の一部は0.0000000です。これらの P 値は本当にゼロになるのでしょうか? または、これは丸めの状況であり、私の真の P 値は 1e-17 のようなもので、丸められて0.0000000.

TukeyHSD()指数を含む出力 P 値を与える R の関数のオプションはありますか?

ここに私の出力のスニペットがあります:

TukeyHSD(fit)

  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = lum ~ cells * treatment)

$`cells:treatment`
                    diff         lwr          upr     p adj
NULL:a-KR:a     -266.5833333 -337.887800 -195.2788663 0.0000000
WT:a-KR:a       -196.3333333 -267.637800 -125.0288663 0.0000000
KR:ar-KR:a        83.4166667   12.112200  154.7211337 0.0053485
NULL:ar-KR:a    -283.5000000 -354.804467 -212.1955330 0.0000000
WT:ar-KR:a      -196.7500000 -268.054467 -125.4455330 0.0000000
KR:e-KR:a       -219.0833333 -290.387800 -147.7788663 0.0000000
NULL:e-KR:a     -185.0833333 -256.387800 -113.7788663 0.0000000
WT:e-KR:a        -96.1666667 -167.471134  -24.8621996 0.0003216
4

1 に答える 1

10

編集: Tukey p 値の解決については、以下の警告を参照してください!!

dd <- data.frame(y=c(1:10,1001:1010),f=rep(c("A","B"),each=10))
fit <- aov(y~f,data=dd)

出力された p 値はゼロです。

(tt <- TukeyHSD(fit))
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = y ~ f, data = dd)
## 
## $f
##     diff      lwr      upr p adj
## B-A 1000 997.1553 1002.845     0

しかし、shows の (省略された) 出力を見ると、str()さらに多くの情報があります。

str(tt)

## List of 1
##  $ f: num [1, 1:4] 1.00e+03 9.97e+02 1.00e+03 2.62e-14
##   ..- attr(*, "dimnames")=List of 2
## 

自分で値を抽出できます。

tt$f[,"p adj"]
## [1] 2.620126e-14

または、コメントに記載されているように、print(tt,digits=15)動作します...

警告

私はもう少し深く掘り下げることにし、TukeyHSD.aov()それが依存しているのコードを掘り下げることに気付きましptukey()た。その「例」セクションで、「精度は約 8 桁を超えない可能性がある」と警告されています。2.62e-14特に、t 統計量が約 30 を超えると、p 値は...で最大 (最小値?) になります。

zval <- 10^seq(1,6,length=100)
pval <- ptukey(zval,2,18,lower.
par(las=1,bty="l")
plot(zval,pval,log="xy",type="l")

ここに画像の説明を入力

肝心なのは、この小さな p 値をまったく区別できないということです。戦略を再考する必要があるかもしれません...

于 2013-05-09T21:41:33.330 に答える