基于R语言进行单因素方差分析
在对数据进行基础的统计分析过程中,单因素方差分析(one-way analysis of variance)是比较常用的一种分析手段,一般我们要比较试验观测值的某个因变量(称为“指标”)按照一个分组变量(称为“因素”)分组后, 各组的因变量均值有无显著差异。今天,小编给大家展示的内容就是如何基于R语言进行单因素方差分析。
R包加载及数据加载

由于后续数据分析的需要,将数据转换为长格式:

单因素方差分析
基于aov()函数进行方差分析:

主效应x(分组)的F检验的p值为1.26e-07, 检验水平为0.05情况下则分组效应显著, 各组之间有显著差异。基于箱线图进行初步展示

从箱线图来看,A组和D组之间以及B组和C组之间没有显著差异, A组与B组、C组之间均有显著差异,B组和C组与D组之间有显著差异。
多重比较
为了找到各组两两之间是否有显著差异,可以进行两两的独立两样本t检验,但这样不能利用共同的模型参数,进行多次重复检验也会使得总第一类错误概率变得比较高, 发生过度拟合。为此,可以进行一些调整, 使得报告的检验p值能够控制总第一类错误概率。multcomp包的glht()函数可以对方差分析结果进行多重比较并控制总错误率,一种方法是利用Tukey的HSD(Honest Significant Difference)方法, 程序如下:

Tukey HSD检验的结果显示在0.05水平下, A和D,B和C没有显著差异, A与B、C均有显著差异,B及C和D有显著差异,这与之前箱线图显示结果一致;
方差不相等情形#方差分析模型要求误差项独立同正态分布,这意味着各组的因变量方差相等。 #实际中不同组的因变量可能有不同的方差。 #R中oneway.test()函数可以不要求方差相等,是一种独立两样本t检验的Welch方法推广。

#p值为3.155e-06,说明在0.05水平下极显著, 说明四组有显著差异。#多重比较——进行两两t检验并不使用合并的标准差估计, 使用Holm方法进行p值调整以控制总错误率:

#在0.05水平下, A和D、B和C没有显著差异,A与B、C均有显著差异,B及C和D有显著差异,这与之前箱线图显示结果也一致;
非参数方差分析
#如果各组的因变量(指标)分布严重偏离正态, 则单因素方差分析所依据的F检验会有很大的误差,这时可以使用非参数方法,Kruskal-Wallis检验就是独立两样本比较的Wilcoxon秩和检验的推广。

#Kruskal-Wallis检验p值为0.002,所以在0.05水平下拒绝原假设,认为各组之间有显著差异。
参考:https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/stat-aov.html#stat-aov-1w-multc