R语言差异检验:单因素方差分析
文章目录
- @[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语言差异检验:单因素方差分析相关推荐
- R语言基础数据分析—单因素方差分析
有了试验数据,我们就需要进行数据的处理与分析,而在试验设计中,通常分为单因素试验或者双因素试验.试验中要考察的指标称为试验指标,影响试验指标的条件称为因素,因素所处的状态称为水平,若试验中只有一个因素 ...
- R语言差异检验:t检验
文章目录 @[toc] 单样本t检验 适用条件 具体计算公式 R语言示例 独立样本t检验 适用条件 具体计算公式 R语言示例 配对样本t检验 适用条件 具体计算公式 R语言示例 t检验(student ...
- r语言t检验输出检验统计量_R语言中实现T检验及可视化
T检验,亦称student t检验(Student's t test),主要用于样本含量较小(例如n < 30),总体标准差σ未知的正态分布.T检验是用t分布理论来推论差异发生的概率,从而比较两 ...
- 数据分享|R语言因子分析、相关性分析大学生兼职现状调查问卷数据可视化报告...
全文链接:http://tecdat.cn/?p=31765 随着大学的普及教育,大学生就业形势变得更加困难,很多学生都意识到这个问题(点击文末"阅读原文"获取完整代码数据). 相 ...
- r语言进行go富集分析_R语言-GO富集分析的超几何检验和可视化
Gene Ontology 可分为分子功能(Molecular Function),生物过程(biological process)和细胞组成(cellular component)三个部分.蛋白质或 ...
- R语言Brown-Forsythe检验验证组间方差是否相等实战:执行Brown-Forsythe检验、如果各组间的方差不相等我们该怎么办(进行方差分析)
R语言Brown-Forsythe检验验证组间方差是否相等实战:执行Brown-Forsythe检验.如果各组间的方差不相等我们该怎么办(进行方差分析) 目录 R语言Brown-Forsythe检验验 ...
- R语言Kaplan-Meier绘制生存分析、Log-rank假设检验、Cox回归曲线实战案例:恶性黑色素瘤的术后数据生存分析
R语言Kaplan-Meier绘制生存分析.Log-rank假设检验.Cox回归曲线实战案例:恶性黑色素瘤的术后数据生存分析 目录
- R语言Goldfeld-Quandt检验实战:检验回归模型中是否存在异方差性(heteroscedasticity)、发生了异常差(heteroscedasticity)问题如何解决
R语言Goldfeld-Quandt检验实战:检验回归模型中是否存在异方差性(heteroscedasticity).发生了异常差(heteroscedasticity)问题如何解决 目录
- R语言rms包生存分析之限制性立方样条(RCS, Restricted cubic spline)分析详解实战:拟合连续性自变量和事件风险之间的关系:基于survival包lung数据
R语言rms包生存分析之限制性立方样条(RCS, Restricted cubic spline)分析详解实战:拟合连续性自变量和事件风险之间的关系:基于survival包lung数据 目录
最新文章
- 牛客题霸 NC14 按之字形顺序打印二叉树
- VTK:Utilities之PCAStatistics
- SAP Spartacus Cost Center list的实现原理
- linux mysql udf打包_Linux下MySQL 5.1编写UDF 并运行(Install)获取当前时间的毫秒数...
- Linux 系统的硬链接和软链接详解
- 程序代码传输工具:飞秋官方下载
- MergeSort 归并排序
- c语言数字和字母排序,C# 数字和字母的混合排序
- 不是程序员看不懂的21个梗,当你改错一行代码的时候...
- 2019第十届蓝桥杯B组C++省赛E题迷宫--BFS(倒搜)
- ASP.NET2.0 Person Web Site:将图片以二进制的从数据库读取
- 【大数据部落】R语言电商网站爬虫
- 得力计算机无法开机,得力针式打印机常见问题及解决方法
- Android开发之日期、时间选择器(DatePicker和TimePicker)的功能和用法
- HP ProLiant DL380 Gen9 升级到 ESXi 7.0 U3
- 牛客编程巅峰赛S1第12场 王者B-上上下下(DP)
- PowerPoint 在播放时自动运行宏
- Layman数字土地指南
- linux系统下解压缩
- word或excel图片没有另存为怎么办