文章目录

  • @[toc]
  • 方差分析介绍
  • 适用条件
  • 分类
  • R语言
  • 单因素方差分析示例
    • 数据集
    • 示例
    • 多重比较
    • 评估检验的假设条件

t检验可以解决单样本、双样本时的均数比较。当要比较的组多于两个时,t检验方法就难以满足这种需求,此时就需要使用方差分析来进行参数检验。

它比较的是组间差异。

方差分析介绍

方差分析(Analysis of Variance,简称ANOVA),又称“变异数分析”,是R.A.Fisher发明的,用于两个及两个以上样本均数差别的显著性检验。

适用条件

  • 独立性
  • 正态性
  • 方差齐性

方差分析对样本独立性要求较高。

对正态分布是稳健的,样本正态性不会太大影响方差分析结果。

方差齐性方面,一般而言,只要最大/最小方差之比小于3,分析结果都是稳定的。

分类

  • 单因素ANOVA
  • 双因素ANOVA
  • 协方差分析
  • 多元方差分析
  • 重复测量方差分析

R语言

方差分析在R语言中用aov函数实现。

格式:
aov(formula,data=dataframe)

formula为表达式。表达式可以使用的特殊符号如下:

符号 用法
~ 分隔符号,左边为响应变量,右边为解释变量。例如,用A、B、C预测y,代码为y~A+B+C
: 表示变量的交互项。例如用A、B和A与B的交互项来预测y,代码为y~A+B+A:B
* 表示所有可能的交互项。
^ 表示交互项达到某个次数。代码y(A+B+C)^2可展开为yA+B+C+A:B+A:C+B:C
. 表示包含除了因变量外的所有变量。例如,若一个数据框包含变量y、A、B和C,代码y~.可展开为y ~A+B+C

单因素方差分析示例

出于组间差异性检验的目的,为了方便仅展示单因素方差分析示例。
单因素方差分析即一个自变量一个因变量的方差分析。自变量为分类变量,因变量为连续变量。

数据集

所使用数据集multcomp包中cholesterol数据集。
数据集中,50名患者分别接受降低胆固醇药物治疗(trt)五种疗法中的一种疗法。其中三种治疗条件使用药物相同,分别是20mg一天一次、10mg一天两次、5mg一天四次。剩下的两种方式(drugD和drugE)代表候选药物。问哪种药物疗法降低胆固醇(因变量)最多。药物之间药效是否存在差异。

示例

#载入包
library(multcomp)
#绑定数据集
attach(cholesterol)
#查看各组样本大小
table(trt)
trt1time 2times 4times  drugD  drugE 10     10     10     10     10
#查看各组均值
aggregate(response,by=list(trt),FUN=mean)Group.1        x
1   1time  5.78197
2  2times  9.22497
3  4times 12.37478
4   drugD 15.36117
5   drugE 20.94752
#查看各组标准差
aggregate(response,by=list(trt),FUN=sd)Group.1        x
1   1time 2.878113
2  2times 3.483054
3  4times 2.923119
4   drugD 3.454636
5   drugE 3.345003
#检验组间差异(ANOVA)
fit <- aov(response~trt)
#查看拟合情况
summary(fit)Df Sum Sq Mean Sq F value   Pr(>F)
trt          4 1351.4   337.8   32.43 9.82e-13 ***
Residuals   45  468.8    10.4
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#绘制各组均值及其置信区间图形
#载入gplots
library(gplots)
#绘图
plotmeans(response~trt,xlab = 'Treatment',ylab = 'Response',main='Mean Plot\nwith 95% CI')
#解除绑定
detach(cholesterol)


由上图可见各组药物药效之间95%置信区间的差异。

置信区间与假设检验是互补关系。置信区间回答量的问题,即总体均数范围在哪里。
假设检验回答质的问题,即总体均数之间是否存在差异,以及在统计上确认这种差异的把握有多大。

多重比较

由ANOVA模型可知,五种药物疗法效果不同。具体差异需要进行多重比较。

  • R自带的函数TukeyHSD()函数提供各组均值差异的成对检验。

    • TukeyHSD(fit)查看具体数值
    • plot(TukeyHSD(fit))差异可视化
  • multcomp包glht()函数提供多重均值比较更为全面的方法,即适用于线性模型,也适用于广义线性模型。

以 multcomp包glht()函数为例做展示

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

图中,有相同字母的组说明均值差异不显著。

评估检验的假设条件

  • 独立性
    由实验设计环节进行控制
  • 正态性

使用car包qqplot()函数。要求用lm()拟合

#载入包
library(car)
#调用qqplot函数
qqPlot(lm(response~trt,data = cholesterol),simulate=TRUE,
+        main='Q-Q Plot',labels=FALSE)

由图可知数据落在95%置信区间范围,说明满足正态性假设。

  • 方差齐性

用Bartlett球形检验

bartlett.test(response~trt,data=cholesterol)Bartlett test of homogeneity of variancesdata:  response by trt
Bartlett's K-squared = 0.57975, df = 4, p-value =
0.9653
#P大于0.05,说明方差齐性

方差齐性对离群点非常敏感。可利用car包中outlierTest()函数来检测离群点

library(car)
outlierTest(fit)
No Studentized residuals with Bonferroni p < 0.05
Largest |rstudent|:rstudent unadjusted p-value Bonferroni p
19 2.251149           0.029422           NA
#没有证据说明胆固醇数据中含有离群点(当p>1时将产生NA)

R 语 言 小 白 速 通 R语言小白速通 R语言小白速通
懂 点 R 语 言 懂点R语言 懂点R语言
欢 迎 分 享 收 藏 关 注 欢迎分享收藏关注 欢迎分享收藏关注

R语言差异检验:单因素方差分析相关推荐

  1. R语言基础数据分析—单因素方差分析

    有了试验数据,我们就需要进行数据的处理与分析,而在试验设计中,通常分为单因素试验或者双因素试验.试验中要考察的指标称为试验指标,影响试验指标的条件称为因素,因素所处的状态称为水平,若试验中只有一个因素 ...

  2. R语言差异检验:t检验

    文章目录 @[toc] 单样本t检验 适用条件 具体计算公式 R语言示例 独立样本t检验 适用条件 具体计算公式 R语言示例 配对样本t检验 适用条件 具体计算公式 R语言示例 t检验(student ...

  3. r语言t检验输出检验统计量_R语言中实现T检验及可视化

    T检验,亦称student t检验(Student's t test),主要用于样本含量较小(例如n < 30),总体标准差σ未知的正态分布.T检验是用t分布理论来推论差异发生的概率,从而比较两 ...

  4. 数据分享|R语言因子分析、相关性分析大学生兼职现状调查问卷数据可视化报告...

    全文链接:http://tecdat.cn/?p=31765 随着大学的普及教育,大学生就业形势变得更加困难,很多学生都意识到这个问题(点击文末"阅读原文"获取完整代码数据). 相 ...

  5. r语言进行go富集分析_R语言-GO富集分析的超几何检验和可视化

    Gene Ontology 可分为分子功能(Molecular Function),生物过程(biological process)和细胞组成(cellular component)三个部分.蛋白质或 ...

  6. R语言Brown-Forsythe检验验证组间方差是否相等实战:执行Brown-Forsythe检验、如果各组间的方差不相等我们该怎么办(进行方差分析)

    R语言Brown-Forsythe检验验证组间方差是否相等实战:执行Brown-Forsythe检验.如果各组间的方差不相等我们该怎么办(进行方差分析) 目录 R语言Brown-Forsythe检验验 ...

  7. R语言Kaplan-Meier绘制生存分析、Log-rank假设检验、Cox回归曲线实战案例:恶性黑色素瘤的术后数据生存分析

    R语言Kaplan-Meier绘制生存分析.Log-rank假设检验.Cox回归曲线实战案例:恶性黑色素瘤的术后数据生存分析 目录

  8. R语言Goldfeld-Quandt检验实战:检验回归模型中是否存在异方差性(heteroscedasticity)、发生了异常差(heteroscedasticity)问题如何解决

    R语言Goldfeld-Quandt检验实战:检验回归模型中是否存在异方差性(heteroscedasticity).发生了异常差(heteroscedasticity)问题如何解决 目录

  9. R语言rms包生存分析之限制性立方样条(RCS, Restricted cubic spline)分析详解实战:拟合连续性自变量和事件风险之间的关系:基于survival包lung数据

    R语言rms包生存分析之限制性立方样条(RCS, Restricted cubic spline)分析详解实战:拟合连续性自变量和事件风险之间的关系:基于survival包lung数据 目录

最新文章

  1. 牛客题霸 NC14 按之字形顺序打印二叉树
  2. VTK:Utilities之PCAStatistics
  3. SAP Spartacus Cost Center list的实现原理
  4. linux mysql udf打包_Linux下MySQL 5.1编写UDF 并运行(Install)获取当前时间的毫秒数...
  5. Linux 系统的硬链接和软链接详解
  6. 程序代码传输工具:飞秋官方下载
  7. MergeSort 归并排序
  8. c语言数字和字母排序,C# 数字和字母的混合排序
  9. 不是程序员看不懂的21个梗,当你改错一行代码的时候...
  10. 2019第十届蓝桥杯B组C++省赛E题迷宫--BFS(倒搜)
  11. ASP.NET2.0 Person Web Site:将图片以二进制的从数据库读取
  12. 【大数据部落】R语言电商网站爬虫
  13. 得力计算机无法开机,得力针式打印机常见问题及解决方法
  14. Android开发之日期、时间选择器(DatePicker和TimePicker)的功能和用法
  15. HP ProLiant DL380 Gen9 升级到 ESXi 7.0 U3
  16. 牛客编程巅峰赛S1第12场 王者B-上上下下(DP)
  17. PowerPoint 在播放时自动运行宏
  18. Layman数字土地指南
  19. linux系统下解压缩
  20. word或excel图片没有另存为怎么办

热门文章

  1. 生成python脚本
  2. 教您如何在Starbucks(星巴克)点咖啡
  3. 刷新居家饮品体验,Onecup与奈雪的茶合作拓宽新战场
  4. React学习笔记(五)之父子组件传递参数
  5. redis活跃非活跃连接数统计及client list说明
  6. 湖南科技大学计算机学院刘红杨,湖南科技大学新闻网
  7. 在线文档协同办公-开箱即用demo
  8. vue2项目引入ts实操记录(一)
  9. Python基础知识、基本概念、下载python和pycharm、列表、元组、字典等等
  10. Java内存的一点理解, 静态方法和实例方法的区别及使用场景