R语言-方差分析
方差分析指的是不同变量之间互相影响从而导致结果的变化
1.单因素方差分析:
案例:50名患者接受降低胆固醇治疗的药物,其中三种治疗条件使用药物相同(20mg一天一次,10mg一天两次,5mg一天四次),剩下的两种方式是(drugE和drugD),代表候选药物
哪种药物治疗降低胆固醇的最多?
library(multcomp)
attach(cholesterol)
# 1.各组样本大小
table(trt)
# 2.各组均值
aggregate(response,by=list(trt),FUN=mean)
# 3.各组标准差
aggregate(response,by=list(trt),FUN=sd)
# 4.检验组间差异
fit <- aov(response ~ trt)
summary(fit)
library(gplots)
# 5.绘制各组均值和置信区间
plotmeans(response ~ trt,xlab = 'Treatment',ylab = 'Response',main='MeanPlot\nwith 95% CI')
detach(cholesterol)
结论:
1.均值显示drugE降低胆固醇最多,1time降低胆固醇最少.
2.说明不同疗法之间的差异很大
多重比较药品和服药次数
library(multcomp)
par(mar=c(5,4,6,2))
tuk <- glht(fit,linfct=mcp(trt='Tukey'))
plot(cld(tuk,level=.05),col='lightgrey')
结论:每天复用4次和使用drugE的时候治疗胆固醇效果最好
评估检验的假设条件
library(car)
qqPlot(lm(response ~ trt,data=cholesterol),simulate=T,main='Q-Q Plot',labels=F)
bartlett.test(response ~ trt,data=cholesterol)
# 检测离群点
outlierTest(fit)
结论:数据落在95%置信区间的范围内,说明数据点满足正态性假设
2.单因素协方差分析
案例:怀孕的小鼠被分为4各小组,每个小组接受不同剂量的药物剂量(0.5,50,500)产下小鼠体重为因变量,怀孕时间为协变量
data(litter,package = 'multcomp')
attach(litter)
table(dose)
aggregate(weight,by=list(dose),FUN=mean)
fit2 <- aov(weight ~ gesttime + dose)
summary(fit2)
library(effects)
# 取出协变量计算调整的均值
effect('dose',fit2)
contrast <- rbind('no drug vs drug' = c(3,-1,-1,-1))
summary(glht(fit2,linfct=mcp(dose=contrast)))
library(HH)
ancovaplot(weight ~ gesttime + dose,data=litter)
结论:0剂量产仔20个,500剂量产仔17个
0剂量的体重在32左右,500剂量在30左右
怀孕时间和体重相关
用药剂量和体重相关
结论:小鼠的体重和怀孕时间成正比和剂量成反比
3.双因素方差分析
案例:随机分配60只豚鼠,分别采用两种喂食方法(橙汁或者维C),各种喂食方法中含有抗坏血酸3钟含量(0.5,1,2)
每种处理组合都分配10只豚鼠,牙齿长度为因变量
attach(ToothGrowth)
table(supp,dose)
aggregate(len,by=list(supp,dose),FUN=mean)
aggregate(len,by=list(supp,dose),FUN=sd)
# 将dose转换为因子变量,这样就不是一个协变量
dose <- factor(dose)
fit3 <- aov(len ~ supp*dose)
summary(fit3)
detach(ToothGrowth)
结论:主效应的对豚鼠牙齿影响很大
结论:在0.5~1mg的区间中维C的豚鼠的牙齿长度超过使用橙汁的小鼠,在1~2的区间内同理,当超过2mg时,两者对豚鼠牙齿的影响相同
4.重复测量方差
案例:在一定浓度的CO2的环境中比较寒带植物和非寒带植物的光合作用率进行比较
CO2$conc <- factor(CO2$conc)
w1b1 <- subset(CO2,Treatment == 'chilled')
fit4 <- aov(uptake ~ conc*Type + Error(Plant/(conc)),w1b1)
summary(fit4)
par(las=2)
par(mar=c(10,4,4,2))
with(w1b1,interaction.plot(conc,Type,uptake,type='b',col=c('red','blue'),pch=c(16,18),
main='Interaction plot for plant type and concentration'))
boxplot(uptake~Type*conc,data=w1b1,col=c('gold','green'),
main = 'Chilled Quebec and Mississippi Plants',
ylab="Carbon dioxide uptake rate (umol/m^2 sec)")
结论:魁北克的植物比密西西比州的二氧化碳的吸收率高,随着CO2的浓度体高,效果越明显
5.多元方差分析
案例:研究美国食物中的卡路里,脂肪,糖分是否会因货架的不同而不同
library(MASS)
attach(UScereal)
shelf <- factor(shelf)
y <- cbind(calories,fat,sugars)
aggregate(y,by=list(shelf),FUN=mean)
cov(y)
fit5 <- manova(y ~ shelf)
summary(fit5)
summary.aov(fit5)
找出离群点
center <- colMeans(y)
n <- nrow(y)
p <- ncol(y)
cov <- cov(y)
d <- mahalanobis(y,center,cov)
coord <- qqplot(qchisq(ppoints(n),df=p),d,
main="QQ Plot Assessing Multivariate Normality",
ylab="Mahalanobis D2")
abline(a=0,b=1)
identify(coord$x,coord$y,labels = row.names(UScereal))
结论:在不同的货架上的谷物营养成分不同,有两个产品不符合多元正态分布
library(rrcov)
# 稳健多元方差分析
Wilks.test(y,shelf,method='mcd')
结论:稳健检测对离群点和违反MANOVA不敏感,证明了在不同货架的谷物营养成分不同的结论
R语言-方差分析的更多相关文章
- 实验的方差分析(R语言)
实验设计与数据处理(大数据分析B中也用到F分布,故总结一下,加深印象)第3课小结--实验的方差分析(one-way analysis of variance) 概述 实验结果\(S\)受多个因素\(A ...
- R语言实战(五)方差分析与功效分析
本文对应<R语言实战>第9章:方差分析:第10章:功效分析 ================================================================ ...
- 用R语言的quantreg包进行分位数回归
什么是分位数回归 分位数回归(Quantile Regression)是计量经济学的研究前沿方向之一,它利用解释变量的多个分位数(例如四分位.十分位.百分位等)来得到被解释变量的条件分布的相应的分位数 ...
- 如何在R语言中使用Logistic回归模型
在日常学习或工作中经常会使用线性回归模型对某一事物进行预测,例如预测房价.身高.GDP.学生成绩等,发现这些被预测的变量都属于连续型变量.然而有些情况下,被预测变量可能是二元变量,即成功或失败.流失或 ...
- R语言实战(三)基本图形与基本统计分析
本文对应<R语言实战>第6章:基本图形:第7章:基本统计分析 =============================================================== ...
- R语言书籍的学习路线图
现在对R感兴趣的人越来越多,很多人都想快速的掌握R语言,然而,由于目前大部分高校都没有开设R语言课程,这就导致很多人不知道如何着手学习R语言. 对于初学R语言的人,最常见的方式是:遇到不会的地方,就跑 ...
- R语言实战
教材目录 第一部分 入门 第一章 R语言介绍 第二章 创建数据集 第三章 图形初阶 第四章 基本数据管理 第五章 高级数据管理 第二部分 基本方法 第六章 基本图形 第七章 基本统计方法 第三部分 中 ...
- 机器学习 1、R语言
R语言 R是用于统计分析.绘图的语言和操作环境.R是属于GNU系统的一个自由.免费.源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具. 特点介绍 •主要用于统计分析.绘图.数据挖掘 •R内置 ...
- 数据分析与R语言
数据结构 创建向量和矩阵 函数c(), length(), mode(), rbind(), cbind() 求平均值,和,连乘,最值,方差,标准差 函数mean(), sum(), min(), m ...
随机推荐
- OpenCV中数据转换
在OpenCV中Mat.CvMat和IplImage类型都可以代表和显示图像.IplImage由CvMat派生,而CvMat由CvArr派生即CvArr -> CvMat -> IplIm ...
- win7系统 连接打印机 提示 “正在检查 windows update 需要一段时间”
现象: 在客户端 添加 打印机时,出现 “网络安装打印机 一直在检查 windows update” 提示 处理:等待上述提示结束后,会出现手动添加 提示窗口,在框内选择打印机驱动 .
- 【Henu ACM Round #12 E】Thief in a Shop
[链接] 我是链接,点我呀:) [题意] n个物品,每个物品都有无限个. 第i个物品的价格是一样都,都是ai 让你从中选出恰好k个物品 问你选出的物品的总价值 有多少种不同的可能. [题解] 可以用f ...
- HDU 1429 胜利大逃亡(续)(bfs)
胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...
- css3中关于伪类的使用
目标: css中after伪类,last-child伪类的使用.以及部分css3的属性. 过程: 在制作导航时.常常会遇到在每个li后面加入一个切割符号,到最后一个元素的时候,切割符就会去掉的一种效果 ...
- 移动端meta几个值的设置以及含义
<!-- 为移动设备添加 viewport --> <meta name="viewport" content="width=device-width, ...
- CDQZ 0003:jubeeeeeat
0003:jubeeeeeat 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 256000kB 描述 众所周知,LZF很喜欢打一个叫Jubeat的游戏.这是个音乐游戏,游戏界面是 ...
- Linux下截图技巧
在需要Linux显示图片的场合,最普通的方法,会考虑用数码相,或是用Vmware,或VPc来抓拍,这样以来会比较麻烦,Linux也自带了些工具例如Gimp,ksnapshot这里我介绍一 ...
- EF中执行Sql语句
Entity Framework是微软出品的高级ORM框架,大多数.NET开发者对这个ORM框架应该不会陌生.本文主要罗列在.NET(ASP.NET/WINFORM)应用程序开发中使用Entity F ...
- factor---将素数分解为质数