r library car_第十五讲 R-单因素方差分析2

r library car_第十五讲 R-单因素方差分析2_第1张图片

上一讲,我们讲了方差分析的原理和R实现(xxxxx),但是,在发现至少存在一组与其他组之间存在差异以后,我们如何知道具体是哪两组间存在差异。 方差分析需要满足几个条件,他们的假设检验条件的检验方法是什么?如果数据不满足假设条件,要怎么办?

今天,小编就带大家来一一回答这些问题。

1. 方差分析各组均值之间的两两成对比较

首先,如第十四讲,我们已经完成了如下操作,发现方差分析P值 < 0.05.

# 导入R内自带的PlantGrowth数据集
library(datasets)
data(PlantGrowth)
# 将数据存储在变量my_data中
my_data <- PlantGrowth
# 计算方差分析
res.aov <- aov(weight ~ group, data = my_data)
# 总结分析结果
summary(res.aov) #P = 0.016

在单因素方差分析中,显著的p值表示某些组均值不同,但我们不知道具体哪些组之间不同。这时,可以执行多个成对比较,以确定特定组对之间的平均差异是否具有统计显著性。

我们可以计算Tukey HSD(Tukey Honest Significant Differences,R函数:TukeyHSD()可以实现),以在组均值之间进行多次成对比较。

函数TukeyHD()将之前拟合生成的ANOVA函数作为参数:

TukeyHSD(res.aov)
  Tukey multiple comparisons of means
    95% family-wise confidence level
Fit: aov(formula = weight ~ group, data = my_data)
$group
            diff        lwr       upr     p adj
trt1-ctrl -0.371 -1.0622161 0.3202161 0.3908711
trt2-ctrl  0.494 -0.1972161 1.1852161 0.1979960
trt2-trt1  0.865  0.1737839 1.5562161 0.0120064
  • diff:两组平均值之间的差异
  • lwrupr:置信区间的上下端点为95%(默认值)
  • p adj:调整后的多个比较的p值。

从输出中可以看出,只有trt2与trt1之间的差异显着,调整后的p值为0.012。

2. 检查方差分析的假设检验的条件

如开头讲到,ANOVA需要满足一定的条件:

  • 1. 观察值之间在所研究的因子水平,是相互独立且随机从总体中获得的。
  • 2. 每个因子水平的数据(每一组)均呈正态分布。
  • 3. 每个组的样本的方差之间没有差异。

我们需要对假设数据是正态分布的,并且各组之间的方差是均匀的进行验证。

我们可以通过如下方法来检验。

2.1检查方差假设的同质性(方差齐性)

2.1.1残差与拟合曲线图来检查方差齐性。

在下面的图中,残差和拟合值(每组的平均值)之间没有明显的关系, 因此,我们可以假设方差是同质的。

# 方差齐性检验

plot(res.aov, 1)

r library car_第十五讲 R-单因素方差分析2_第2张图片

该图会自动标出明显的异常只。途中点17、15、4被检测为异常值,这会严重影响方差的正态性和同质性。如果此时出现方差不齐, 会建议删除异常值以满足假设成立。

2.1.2 Levene 检验

也可以使用Bartlett检验Levene检验来检验方差齐性。

我们建议使用Levene检验,该检验对偏离正态分布不敏感。可以使用函数leveneTest()[在car包装中]:

library(car)
leveneTest(weight ~ group, data = my_data)
Levene's Test for Homogeneity of Variance (center = median)
      Df F value Pr(>F)
group  2  1.1192 0.3412
      27               

从上面的输出中,我们可以看到p值>0.05的显着性水平。这意味着没有证据表明各组之间的差异在统计学上有显着差异。因此,我们可以假设不同治疗组中方差同质。

2.2放宽方差假设的同质性

经典的单因素方差分析要求所有组的方差均等。在我们的示例中,方差假设的同质性满足:Levene检验不显着。

在方差齐性被违反的情况下,我们如何继续方差分析呢?

另一个统计学方法(即:Welch one-way test),它不需要满足方差齐性的假说。函数oneway.test()可以实现。

  • 方差不齐情况下的的方差分析

oneway.test(weight ~ group, data = my_data)

  • 方差不齐情况下的成对t检验

pairwise.t.test(my_data$weight, my_data$group,

p.adjust.method = "BH", pool.sd = FALSE)

2.3 检查正态性假设

2.3.1 残差的正态图

在下面的图中,相对于正态分布的分位数绘制了残差的QQ图,并且还绘制了45度参考线。

残差的正态概率图用于检查残差呈正态分布的假设。如果它满足正态性,应该要大致分布在45度参考线上。

plot(res.aov, 2)

r library car_第十五讲 R-单因素方差分析2_第3张图片

当所有点都大致沿着该参考线落下时,我们可以假定为正态。

2.3.2 Shapiro-Wilk检验

此外,我们可以使用Shapiro-Wilk检验检查残差是否符合正态分布。

# 提取残差
aov_residuals <- residuals(object = res.aov )
# Shapiro-Wilk 检验
shapiro.test(x = aov_residuals )

    Shapiro-Wilk normality test
data:  aov_residuals
W = 0.96607, p-value = 0.4379

以上结论显示P > 0.05, 残差符合正态分布( p = 0.6),没有发现违反正态性的迹象。

3. 非参数替代单因素方差分析

注意,单因素ANOVA的非参数替代方法是Kruskal-Wallis 秩和检验,当数据不满足ANOVA假设条件时,我们可以使用该检验

3.1 Kruskal-Wallis 秩和检验

kruskal.test(weight ~ group, data = my_data)

    Kruskal-Wallis rank sum test
data:  weight by group
Kruskal-Wallis chi-squared = 7.9882, df = 2, p-value = 0.01842

3.2 多组之间的两两成对比较

从Kruskal-Wallis检验的输出中,我们知道组之间存在显着差异,但我们不知道具体哪些组是不同的。

可这时,以使用pairwise.wilcox.test() 函数对组别之间进行成对比较,并进行多重检验的更正。

pairwise.wilcox.test(PlantGrowth$weight, PlantGrowth$group,
                 p.adjust.method = "BH")

    Pairwise comparisons using Wilcoxon rank sum test 
data:  PlantGrowth$weight and PlantGrowth$group 
     ctrl  trt1 
trt1 0.199 -    
trt2 0.095 0.027
P value adjustment method: BH 

成对比较显示,只有trt1和trt2显着不同(p <0.05)。

如果您觉得我说的对您有帮助,请点赞让我感到您的支持,您的支持是我写作最大的动力~

ijournal:高颜值的期刊检索网站,助您快速找到理想目标期刊(weixin小程序也上线了哦)

投必得:全专业中英文论文润色编辑助力您的论文快速发表,点击了解业务详情

r library car_第十五讲 R-单因素方差分析2_第4张图片

专栏传送门:

投必得科研软件安装使用手册;投必得:SCI期刊介绍与选择;投必得,教你写论文;投必得统计分析大讲堂;投必得科研生活解忧杂货店

你可能感兴趣的:(r,library,car,做方差分析需要正态性检验吗)