R语言单因素、多因素方差分析ANOVA analysis of variance

Python015

R语言单因素、多因素方差分析ANOVA analysis of variance,第1张

@[toc]

假设检验的前提是要满足正态分布和方差齐性

组内平方和SSE:同一组内的数据误差平方和

组间平方和SSA:不同组之间的数据误差平方和

一个分类型自变量

例如四个班级学生的语文成绩,班级是分类型自变量,四个班级是自变量的四个水平

测试班级对成绩的影响

因为p<0.001,说明班级对成绩的影响非常显著

图中跨越0分界线的班级对,有较大可能落在0上,也就是说两个班级之间没有明显差异。其他班级说明都有明显差异。

同一班级在大学三年的三次测试

p<0.001,说明学生成绩在大学三年中有显著差异。球形检验的p-value大于0.05,所以可以认为方差相等。

Mauchly's Test for Sphericity :适用于重复测量时检验不同测量之间的差值的方差是否相等,用于三次以及三次之上。

Sphericity Corrections :球形矫正,当方差不相等时进行矫正,矫正方法有the Greenhouse-Geisser (1959), the Huynh-Feldt (1976), 简称GG和HF。

两个分类型自变量

例如探究 词汇量 话题熟悉度 对学生作文成绩的影响

词汇量和话题熟悉度两个变量对成绩的影响都很显著,交互项对成绩影响不显著。

探究班级和测试次数对学生成绩的影响

班级和测试次数在原始检验中都很显著,然后交叉项不显著。

但是在球形检验中,推翻了方差齐性的假设,所以tests需要使用球形矫正之后的p值,classes不用。

矫正之前tests的p-value = 3.482406e-04,矫正之后的p-value = 0.001左右。

我当Station所在的colunm name就叫Station了哈。。。

tapply(Temper$Temperature,list(Temper$Month,Temper$Station),mean,na.rm=TRUE)

R语言与统计-1:t检验与秩和检验

方差分析适用于多组均数的比较 (在完全随机设计的实验中,两组均数的t检验和方差分析是完全等价的。但t检验只能用于两组的均数比较,对于三组和三组以上的均数比较,就需要用到方差分析。)

可以看到这个数据集只有两个变量,其中治疗是分类变量(因子型),有5个水平。response是数值型变量。要对每种治疗所对应的response的均值进行比较,就只能用方差分析而不能用t检验。

符合正态分布

要比较均值的数据写~左边,分组变量写右边。p=0.9653,方差齐。

写法同上,方差齐。

需要注意的是,如果检验出方差不齐,我们第一步不是立马选择进行非参数检验,而是首先要判断有无异常值存在,因为异常值对方差的影响很大。当然,到这一步才来检验有无异常值是不符合数据分析的流程的,异常值在进行数据初步处理的时候就因该被发现和处理掉。

方差分析包括 单因素方差分析 , 多因素方差分析 , 协方差分析 , 多元方差分析 , 重复测量数据方差分析 。

gplots包的plotmeans函数 对上述结果进行可视化

使用ToothGrowth数据集进行演示

aov函数

不考虑supp和dose之间的交互作用的情况。结果显示两个因素都对小鼠牙齿生长影响显著。

考虑两个因素之间的交互作用:将上面的+换成*。结果显示两个因素都对小鼠牙齿生长影响显著而且两者间的互相影响也不容忽视。

可视化

上述结果已经知道了再五组数据中的均值不全相等,下一步想知道哪些相等哪些不等,就要对这五组进行两两比较。

输出的结果:从左往右依次是:两两比较、两两间的差值、lwr是95%可信线的下限,upr是上限。最后是p值。

将结果可视化:

线段中点是均值,两端是95%置信区间,跨过0说明没有显著差异。

在进行方差分析时,所有混杂因素统称为 协变量 。

检验dose对weight的影响。出生时间gesttime是协变量。

aov后面小括号里写的顺序:结果变量~协变量+自变量。如果要看协变量和自变量之间是否存在交互,在后面写+协变量:自变量。最后是data=数据集。

结果显示两个变量之间不存在交互效应(p=0.17889, >0.05),可以认为它们的斜率是相同的。

因变量不止一个,但是需要将它们作为一个整体同时进行分析。例如:某种药物对患者血红蛋白浓度,红细胞计数,外周血细胞因子水平等多种因素的影响。

使用 manovs()函数 进行性多元方差分析

参考: https://blog.csdn.net/dingming001/article/details/72822270