1

全て、

kruskal wallis などのランク順メジアン シフト テストで TukeyHSD に相当するものを実行したいと思います。

X=matrix(c(1,1,1,1,2,2,2,4,4,4,4,4,1,3,6,9,4,6,8,10,1,2,1,3),ncol=2)
anova=aov(X[,2]~factor(X[,1]))
TukeyHSD(anova)
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = X[, 2] ~ factor(X[, 1]))
##
## $`factor(X[, 1])`
## diff lwr upr p adj
## 2-1 1.25 -5.927068 8.427068 0.8794664
## 4-1 -1.35 -7.653691 4.953691 0.8246844
## 4-2 -2.60 -9.462589 4.262589 0.5617125
kruskal.test(X[,2]~factor(X[,1]))
##
## Kruskal-Wallis rank sum test
##
## data: X[, 2] by factor(X[, 1])
## Kruskal-Wallis chi-squared = 1.7325, df = 2, p-value = 0.4205

ここで、対比を分析したいと思います。助けてください。ありがとう。リック

4

2 に答える 2

0

TukeyHSD から出力されるものと同様のコンパクトな文字表示が必要な場合、Kruskal テストでは、ライブラリagricolaeで関数 を使用してそれが可能になりますkruskal。独自のデータを使用する:

  library(agricolae)
print( kruskal(X[, 2], factor(X[, 1]), group=TRUE, p.adj="bonferroni") )
#### ...
#### $groups
####   trt means M
#### 1   2  8.50 a
#### 2   1  6.75 a
#### 3   4  5.10 a

(まあ、この例では、グループは異なるとは見なされず、他の回答と同じ結果になります..)

于 2016-09-22T10:20:13.383 に答える
0

Kruskal-Wallis 検定の後に複数の比較を行う場合は、パッケージのkruskalmc関数が必要です。pgirmessこの関数を実装する前に、マトリックスをデータフレームに変換する必要があります。あなたの例では:

# convert matrix to dataframe
dfx <- as.data.frame(X)

# the Kruskal-Wallis test & output
kruskal.test(dfx$V2~factor(dfx$V1))


    Kruskal-Wallis rank sum test

data:  dfx$V2 by factor(dfx$V1)
Kruskal-Wallis chi-squared = 1.7325, df = 2, p-value = 0.4205

# the post-hoc tests & output
kruskalmc(V2~factor(V1), data = dfx)

Multiple comparison test after Kruskal-Wallis 
p.value: 0.05 
Comparisons
    obs.dif critical.dif difference
1-2    1.75     6.592506      FALSE
1-4    1.65     5.790265      FALSE
2-4    3.40     6.303642      FALSE
于 2015-04-26T06:37:25.370 に答える