使用R语言进行单(双)因素方差分析

9.1 先了解一些术语

方差分析: ANOVA, 协方差分析:ANCOVA (analysis of covariance ), 多元方差分析: muti-variate ANOVA, 多元协方差分析:MANCOVA

9.2 ANOVA 模型拟合

R语言中使用 aov() 函数 拟合 ANOVA模型, 结果和回归模型中 lm() 函数一样

aov()函数

R 表达式中常见的特殊符号:

R 常见研究设计的表达式:

  • 单因素ANOVA: y ~ A
  • 协变量的单因素ANOVA: y ~ x + A
  • 双因素: y ~ A + B

注意: 因子的顺序很重要

9.3 one-way ANOVA

library(multcomp)
attach(cholesterol) # 加载数据
table(trt)
cholesterol
aggregate(response, by = list(trt), FUN = mean) # 求各组均值
aggregate(response, by = list(trt), FUN = sd)# 求标准差fit <- aov(response ~ trt) # 检验组间差异
summary(fit)
install.packages('gplots')
library(gplots)
plotmeans(response ~ trt, xlab = 'treatmeat', ylab = 'response', main = 'mean plot with 95% CI')
detach(cholesterol) # detach 数据

9.3.1 多重比较 – 就是组内再比较

使用TukeyHSD() 函数可以实现多重比较

TukeyHSD(fit) #多重比较
par(las = 2) # 旋转轴标签
par(mar = c(5,8,4,2)) # mar设置下,左,上,右的边界
plot(TukeyHSD(fit))

说明: 图中置信区间包含0的代表不显著

multcomp包中的glht()函数更好进行多重比较

library(multcomp)
par(mar = c(5,4,6,2))
tuk <- glht(fit, linfct = mcp(trt = 'Tukey'))
tuk
plot(cld(tuk, level = 0.05), col = 'lightgray')

9.3.2 评价检验的假设条件 – 使用car包中的QQ图

library(car)
qqPlot(lm(response ~ trt, data = cholesterol),simulate = T, main = 'qq plot', labels = T)
# 注意: 这个qqPlot的P大写

点落在95% CI说明符合正态分布

9.4 单因素协方差ANCOAVA分析 –

**使用multcomp包中的litter数据 – **dose是自变量, weight是因变量,gesttime是协变量

data(litter, package = 'multcomp')
attach(litter)
table(dose)
aggregate(weight, by = list(dose), FUN = mean)# 按dose求weight的mean
fit <- aov(weight ~ gesttime + dose)## 注意协变量放在前面
summary(fit)

同ANOVA一样, 随后进行多重比较

library(multcomp)
contrast <- rbind('no drug vs. drug' = c(3,-1,-1,-1))
summary(glht(fit, linfct = mcp(dose = contrast)))
#contrast 定义 dose的第一组和其他三组比较
# 结果显示 第一组与其余三组的mean有显著差异

9.4.1 评价检验的假设条件

因为ANOVA和ANCOVA都需要数据服从正态分布,所以要检验假设条件

library(multcomp)
fit2 <- aov(weight ~ gesttime * dose, data = litter)
summary(fit2)

可以看到,gesttime :dose 不显著, 表明 时间和幼崽的出生体重的关系不依赖于药物剂量的水平

9.4.2 visualize results

使用HH包中的ancova可视化

install.packages('HH')
library(HH)
ancova(weight ~ gesttime + dose, data = litter)
  • ancova(weight ~ gesttime + dose, data = litter)
  • ancova(weight ~ gesttime*dose, data = litter)

前者斜率相同,后者斜率不同

9.5 双因素方差分析

很重要 我的实验就是这个

ToothGrowth# R中base安装的数据:两种饮食下各三种处理, 2x3的实验设计

attach(ToothGrowth)
The following object is masked from litter:dose> table(supp, dose)dose
supp 0.5  1  2OJ  10 10 10VC  10 10 10
> aggregate(len, by = list(supp, dose), FUN = mean)Group.1 Group.2     x
1      OJ     0.5 13.23
2      VC     0.5  7.98
3      OJ     1.0 22.70
4      VC     1.0 16.77
5      OJ     2.0 26.06
6      VC     2.0 26.14
> aggregate(len, by = list(supp, dose), FUN = sd)Group.1 Group.2        x
1      OJ     0.5 4.459709
2      VC     0.5 2.746634
3      OJ     1.0 3.910953
4      VC     1.0 2.515309
5      OJ     2.0 2.655058
6      VC     2.0 4.797731
> dose <- factor(ToothGrowth$dose)
> fit <- aov(len ~ supp * dose)
> summary(fit)Df Sum Sq Mean Sq F value   Pr(>F)
supp         1  205.4   205.4  15.572 0.000231 ***
dose         2 2426.4  1213.2  92.000  < 2e-16 ***
supp:dose    2  108.3    54.2   4.107 0.021860 *
Residuals   54  712.1    13.2
---
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

从结果可以看出, 主效应和交互效应都非常显著

下一步就是可视化了 – 有三种可视化方法

  • 使用interaction.plot()

  • gplots包中的plotmeans()函数

  • HH包中的interaction2wt()函数

  1. 使用interaction.plot()
interaction.plot(dose, supp, len, type = 'b',col = c('red', 'blue'), pch = c(12, 18),main = 'interaction between supp and dose')

  1. gplots包中的plotmeans()函数
library(gplots)
plotmeans(len ~ interaction(supp, dose, sep = ' '),connect = list(c(1,3,5),c(2,4,6)),col = c('red', 'green'),main = 'interaction plot with 95% CI',xlab = 'treatment and dose combination')
## connect()参数  定义 X轴的位置

  1. HH包中的interaction2wt()
library(HH)
interaction2wt(len ~ supp*dose)

**可以看出HH包中的interaction2wt函数画出的图最好用,包含的信息更多 **

使用R语言进行单(双)因素方差分析相关推荐

  1. r语言中的多因素方差分析_R中的因素

    r语言中的多因素方差分析 In this tutorial, we'll move on to understanding factors in R programming. One operatio ...

  2. 基于spss的多元统计分析 之 单/双因素方差分析 多元回归分析(1/8)

    实验目的: 1.掌握单样本t检验.两样本t检验.配对样本t检验.单因素方差分析.多元回归分析的基本原理: 2.熟悉掌握SPSS软件或者R软件关于单因素.多因素方差分析.多元回归分析的基本操作: 3.利 ...

  3. 数学建模【统计模型及应用(单-双因素方差分析、一-多元线性回归分析、牙膏价格问题、方差分析与回归分析的SPSS实现)】

  4. R语言实战笔记--第九章 方差分析

    R语言实战笔记–第九章 方差分析 标签(空格分隔): R语言 方差分析 术语 组间因子,组内因子,水平:组间因子和组同因子的区别是,组间因子对所有测试对象进行分组,而组内因子则把所有测试对象归为同一组 ...

  5. R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA)、使用HH包中的interaction2wt函数为任何阶的双因素方差分析可视化主效应和交互作用图、箱图显示主效应

    R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA).使用HH包中的interaction2wt函数为任何阶的双因素方差分析可视化主效应和交互作用图(Main ef ...

  6. R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA)、在双因素方差分析中,受试者被分配到由两个因素交叉分类形成的组(Two-way factorial ANOVA)

    R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA).在双因素方差分析中,受试者被分配到由两个因素交叉分类形成的组(Two-way factorial ANOVA) ...

  7. R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA)、使用interaction.plot函数在双因素方差分析中可视化交互作用(Interaction)

    R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA).使用interaction.plot函数在双因素方差分析中显示(可视化)交互作用(Interaction) 目 ...

  8. R语言双因素方差分析

    R语言双因素方差分析 条件: 各个样本是相互独立的随机: 各个样本来自正态总体: 具有方差齐性: 用途: 检验两个或多样本均数间的差异有无统计学意义:注:本均数的比较可以采用 t检验或 F检验,两个以 ...

  9. R语言统计篇:双因素方差分析

    今天介绍双因素方差分析(Two-way ANOVA). 此方法用于检验两个分类变量(自变量)与一个连续变量(因变量)之间的关系. 比方说,如果一个分类变量有两个组别,另外一个分类变量有三个组别,那么一 ...

  10. 【统计模型】ToothGrowth数据集双因素方差分析

    目录 ToothGrowth数据集双因素方差分析 一.研究目的 二.数据来源和相关说明 三.描述性分析 3.1 样本描述 3.2 样本均值 3.3 箱线图 四.数学建模 五.结论与建议 5.1 结论 ...

最新文章

  1. LeetCode 报错解决 heap-buffer-overflow Heap-use-after-free Stack-buffer-overflow Global-buffer-overflow
  2. UA MATH563 概率论的数学基础1 概率空间2 可列状态空间
  3. 移动conda文件夹
  4. HTML time元素
  5. 单变量微积分笔记8——最值问题和相关变率
  6. NoUniqueBeanDefinitionException: No qualifying bean of type ‘XXXX‘ available: expected single matchi
  7. 午间一乐:no zuo no die,唱起来
  8. bootstrap组件——导航条
  9. 清华大学鲍橒计算机1999,鲍橒从“最强大脑”到“盲棋第一人”
  10. 理解表现和结构相分离
  11. JS事件—unload、beforeunload
  12. C++实现方针顺时针旋转
  13. slg游戏客户端框架简析
  14. 求三角形的外接圆圆心个半径
  15. 快慢指针判断链表中是否存在环以及查找环的起始位置
  16. 使用认知UX设计原则对认知可及性的adhd阅读障碍观点
  17. 精算与金融建模行业解决方案白皮书,不要错过!
  18. 库卡机器人bco运动_库卡机器人四种启动方式说明——库卡机器人
  19. Windows系统信息页面OEM信息自定义编辑方法
  20. 《西虹市首富》文章相关代码分享

热门文章

  1. 支持中文编程、汉语编程的国产C语言编程工具 - 习语言4717版发布
  2. Linux_Centos7在安装Mysql常见错误依赖时失败——error: Failed dependencies:mariadb-libs is obsoleted
  3. 拿下我人生中第7个Offer,社招面试心得
  4. HTML菜鸟教程学习笔记
  5. 声音存储空间计算公式_音频中文件大小计算公式(转)
  6. 未将引用设置到对象的实例
  7. 金融数据分析(十)人均国内生产总值的增长率
  8. 微信服务号使用微信支付
  9. 新版眼保健操图解(转)
  10. python docx 图片_python-docx设置图片大小和对齐方式