匠人府分享 http://blog.sciencenet.cn/u/meiweipingg

博文

Steel.Dwass test in R: Kruskal-Wallis post hoc test

已有 18155 次阅读 2016-5-8 11:22 |个人分类:R语言|系统分类:科研笔记| test, 参数检验, Wallis, 非参数检验, Kruskal

引子:非参数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  




https://blog.sciencenet.cn/blog-651374-975780.html

上一篇:如何作 " 协方差分析 (ANCOVA)" 之 R (或 RStudio)应用篇
下一篇:Excel与Origin,R等软件对同一数据,进行y=a*x^b拟合时结果不一样
收藏 IP: 133.45.210.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-22 20:09

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部