美文网首页
R非参数多重比较之一

R非参数多重比较之一

作者: 余绕 | 来源:发表于2021-06-22 16:30 被阅读0次

    对于多组数据间比较差异,我们常会想到使用方差分析(ANOVA)来实现。不过由于ANOVA的前提假设条件比较严格,要求数据必须满足正态性、方差齐性等,而很多情况下我们的数据并不符合方差分析的条件。通常情况下,我们可以考虑转换数据,例如,使用log转换等或许可以使非正态分布的原始数据转变为正态分布类型(当然,我们需要确保转换后的数据能够被合理解释,否则将无意义);另一种合适的选择是使用非参数的检验方法,替代ANOVA。
    在R语言中,常见ANOVA的非参数替代方法例如:

    单因素方差分析(单因素ANOVA) => Kruskal-Wallis检验,kruskal.test();Friedman检验,friedman.test();

    head(chao1)
    
    image.png

    查看整体差异

    #Kruskal-Wallis Test,可使用 ?kruskal.test 查看帮助
    kruskal.test(chao1~site, data = chao1)
    

    p值远低于0.05水平,说明具有显著差异。

    以下用Wilcoxon秩和检验继续探究两两差异。当分组水平较多时,多次的Wilcoxon秩和检验容易提升I类错误的风险,因此推荐引入p值校正过程。

    ##此时若想继续探寻两两分组间的差异,可使用 Wilcoxon 秩和检验,如果分组较多,可以使用循环来完成
    #继续在上述 Kruskal-Wallis 检验的基础上,探究两两分组间差异,一个示例如下
    group <- levels(chao1$site)
    group1 <- NULL
    group2 <- NULL
    median1 <- NULL
    median2 <- NULL
    p <- NULL
     
    for (i in 1:(length(group) - 1)) {
        for (j in (i + 1):length(group)) {
            group1 <- c(group1, group[i])
            group2 <- c(group2, group[j])
            group_ij <- subset(chao1, site %in% c(group[i], group[j]))
            group_ij$site <- factor(group_ij$site, levels = c(group[i], group[j]))
            
            wilcox_test <- wilcox.test(chao1~site, data = group_ij, alternative = 'two.sided', conf.level = 0.95)
            p <- c(p, wilcox_test$p.value)
            median1 <- c(median1, median(subset(group_ij, site == group[i])$chao1))
            median2 <- c(median2, median(subset(group_ij, site == group[j])$chao1))
        }
    }
     
    result <- data.frame(group1, group2, median1, median2, p)
    result$padj <- p.adjust(result$p, method = 'BH')   #推荐加上 p 值校正,这里使用 Benjamini 方法校正 p 值
    result
    #write.table(result, 'Wilcoxon.txt', sep = '\t', row.names = FALSE, quote = FALSE)
       
    
    image.png

    示例结果如下,展示两组比较的组名、中位数、Wilcoxon检验p值以及Benjamini校正后的p值。这样,我们就获得了两组间的差异了。你可以在后续根据p值(或校正后p值)以及中位数(非参数方法比较的普遍是中位数的差异,而非均值差异)数值,手动标注显著性“abc”或者“*”等,不再多说。

    参考: 小白鱼的生统笔记(微信公众号)

    相关文章

      网友评论

          本文标题:R非参数多重比较之一

          本文链接:https://www.haomeiwen.com/subject/vzqmyltx.html