|||
引子:非参数ANOVA方法常见为Kruskal-Wallis test,它对应的事后分析或多重比较方法推荐使用Steel-Dwass test。
数据统计分析的前提条件十分重要而且很容易被忽略,比如数据是否正态分布,多组数据间是否方差齐性,等等,满足上述条件,参数检验 OK,否则,使用非参数检验。
可参考另一篇博文:数据统计分析方法选择——多组数据比较
对于参数检验方法要想获取多组变量两两之间的显著性检验,如 1 way ANOVA 的事后分析 Tukey's HSD test, 相对应的非参数检验方法为 Kruskal wallis test 的事后分析 Steel Dwass test。很多高IF的SCI对于非参数 Kruskal wallis test 的事后分析都可能会推荐 Steel Dwass test,相比于其他如 Tamhane's T2 test。
OK, run Steel Dwass test in R or Rstudio.
下述为转载内容。
目的
Steel-Dwass test 事后分析之多重比较
使用方法
Steel.Dwass(data, group)
引数
dat 数据集
group 变量分组
# Steel-Dwass test
Steel.Dwass <- function(data, # Steel.Dwass函数定义之数据集
group) # 变量分组定义
{
OK <- complete.cases(data, group) # 剔除缺省值
data <- data[OK]
group <- group[OK]
n.i <- table(group) # 各组变量频数
ng <- length(n.i)
t <- combn(ng, 2, function(ij) {
i <- ij[1]
j <- ij[2]
r <- rank(c(data[group == i], data[group == j]))
R <- sum(r[1:n.i[i]]) # 检验统计量
N <- n.i[i]+n.i[j]
E <- n.i[i]*(N+1)/2 # 检验统计量的期望值
V <- n.i[i]*n.i[j]/(N*(N-1))*(sum(r^2)-N*(N+1)^2/4) #检验统计量的方差
return(abs(R-E)/sqrt(V)) #返回 t 値
})
p <- ptukey(t*sqrt(2), ng, Inf, lower.tail=FALSE) # 计算 P 値
result <- cbind(t, p) # 计算結果
rownames(result) <- combn(ng, 2, paste, collapse=":")
return(result)
}
使用举例
data <- c(
6.9, 7.5, 8.5, 8.4, 8.1, 8.7, 8.9, 8.2, 7.8, 7.3, 6.8, # 第 1 组数据,11 例
9.6, 9.4, 9.5, 8.5, 9.4, 9.9, 8.7, 8.1, 7.8, 8.8, # 第 2 组数据,10 例
5.7, 6.4, 6.8, 7.8, 7.6, 7.0, 7.7, 7.5, 6.8, 5.9, # 第 3 组数据,10 例
7.6, 8.7, 8.5, 8.5, 9.0, 9.2, 9.3, 8.0, 7.2, 7.9, 7.8 # 第 4 组数据,11 例)
group <- rep(1:4, c(11, 10, 10, 11)) # 定义变量分组
Steel.Dwass(data, group)
检验结果> Steel.Dwass(data, group)
t p
1:2 2.680234 0.036960431
1:3 2.539997 0.053980573
1:4 1.282642 0.574011771
2:3 3.746076 0.001031145
2:4 2.046776 0.170965537
3:4 3.384456 0.003976894
Steel Dwass test 编程引用文献 Reference:
尊重知识版权,请大家查阅源代码 http://aoki2.si.gunma-u.ac.jp/R/Steel-Dwass.html
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-22 20:09
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社