美文网首页R语言RR基础知识
[R语言] 单因素方差分析和多重比较

[R语言] 单因素方差分析和多重比较

作者: 半为花间酒 | 来源:发表于2020-08-26 16:31 被阅读0次

    示例数据集如下:


    导入数据作简单可视化

    library(tidyverse)
    test <- rio::import('ANOVA.xlsx')
    boxplot(value ~ group,data = test)
    

    正态性检验

    1. 当分析小于50行的小样本数据时,用Shapiro-Wilk 检验
    2. 当分析大于50行的大样本数据时,用Kolmogorov-Smirnov检验
    by(test, test$group, function(df) shapiro.test(df[,2]))
    

    各组符合正态分布

    方差齐性检验

    bartlett.test(value ~ group,data = test)
    

    各组方差齐

    单因素方差分析

    ANOVA <- aov(value ~ group,data = test)
    summary(ANOVA)
    

    多组之间存在两组,总体均数不等

    多重比较

    1. 事前比较的常用方法有LSD法、Dunnett-t检验
    2. 事后比较的常用方法有SNK法、Turkey法、Scheffe法
    3. 事前比较和事后比较都可以采用的方法有Bonferroni法、Sidak法

    LSD法

    p.adj=”none” 时,为LSD法,p.adj="bonferroni" 时为Bonferroni法

    # install.packages("agricolae")
    library(agricolae)
    res <- LSD.test(ANOVA, 'group', p.adj = 'none')
    res
    plot(res)
    

    可见显著性字母标识


    TukeyHSD法

    tuk <- TukeyHSD(ANOVA)
    tuk
    plot(tuk)
    

    完整代码

    library(tidyverse)
    test <- rio::import('ANOVA.xlsx')
    boxplot(value ~ group,data = test)
    
    # 正态性检验
    by(test, test$group, function(df) shapiro.test(df[,2]))
    
    # 方差齐性检验
    bartlett.test(value ~ group,data = test)
    
    # 单因素方差分析
    ANOVA <- aov(value ~ group,data = test)
    summary(ANOVA)
    
    # 多重比较
    # 1. LSD法
    # install.packages("agricolae")
    library(agricolae)
    res <- LSD.test(ANOVA, 'group', p.adj = 'none')
    res
    plot(res)
    # 2. TukeyHSD法
    tuk <- TukeyHSD(ANOVA)
    tuk
    plot(tuk)
    

    相关文章

      网友评论

        本文标题:[R语言] 单因素方差分析和多重比较

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