方差分析指的是不同变量之间互相影响从而导致结果的变化

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语言-方差分析的更多相关文章

  1. 实验的方差分析(R语言)

    实验设计与数据处理(大数据分析B中也用到F分布,故总结一下,加深印象)第3课小结--实验的方差分析(one-way analysis of variance) 概述 实验结果\(S\)受多个因素\(A ...

  2. R语言实战(五)方差分析与功效分析

    本文对应<R语言实战>第9章:方差分析:第10章:功效分析 ================================================================ ...

  3. 用R语言的quantreg包进行分位数回归

    什么是分位数回归 分位数回归(Quantile Regression)是计量经济学的研究前沿方向之一,它利用解释变量的多个分位数(例如四分位.十分位.百分位等)来得到被解释变量的条件分布的相应的分位数 ...

  4. 如何在R语言中使用Logistic回归模型

    在日常学习或工作中经常会使用线性回归模型对某一事物进行预测,例如预测房价.身高.GDP.学生成绩等,发现这些被预测的变量都属于连续型变量.然而有些情况下,被预测变量可能是二元变量,即成功或失败.流失或 ...

  5. R语言实战(三)基本图形与基本统计分析

    本文对应<R语言实战>第6章:基本图形:第7章:基本统计分析 =============================================================== ...

  6. R语言书籍的学习路线图

    现在对R感兴趣的人越来越多,很多人都想快速的掌握R语言,然而,由于目前大部分高校都没有开设R语言课程,这就导致很多人不知道如何着手学习R语言. 对于初学R语言的人,最常见的方式是:遇到不会的地方,就跑 ...

  7. R语言实战

    教材目录 第一部分 入门 第一章 R语言介绍 第二章 创建数据集 第三章 图形初阶 第四章 基本数据管理 第五章 高级数据管理 第二部分 基本方法 第六章 基本图形 第七章 基本统计方法 第三部分 中 ...

  8. 机器学习 1、R语言

    R语言 R是用于统计分析.绘图的语言和操作环境.R是属于GNU系统的一个自由.免费.源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具. 特点介绍 •主要用于统计分析.绘图.数据挖掘 •R内置 ...

  9. 数据分析与R语言

    数据结构 创建向量和矩阵 函数c(), length(), mode(), rbind(), cbind() 求平均值,和,连乘,最值,方差,标准差 函数mean(), sum(), min(), m ...

随机推荐

  1. Hadoop的多节点集群详细启动步骤(3或5节点)

    版本1 利用自己写的脚本来启动,见如下博客 hadoop-2.6.0-cdh5.4.5.tar.gz(CDH)的3节点集群搭建 hadoop-2.6.0.tar.gz的集群搭建(3节点) hadoop ...

  2. 随机模拟的基本思想和常用采样方法(sampling)

    转自:http://blog.csdn.net/xianlingmao/article/details/7768833 引入 我们会遇到很多问题无法用分析的方法来求得精确解,例如由于式子特别,真的解不 ...

  3. 海康录像机 POE 输送距离 实验

    条件:网线 使用亨通  (移动公司使用网线) 测试一:   网线  为130米    白天       摄像头正常录像 电压      3,7号线                 19.6V 测试二: ...

  4. HDU 5384 Danganronpa (AC自己主动机模板题)

    题意:给出n个文本和m个模板.求每一个文本中全部模板出现的总次数. 思路:Trie树权值记录每一个模板的个数.对于每一个文本跑一边find就可以. #include<cstdio> #in ...

  5. 【BUG】&quot;main&quot; prio=5 tid=1 RUNNABLE

    载入超大效果图导致内存不足(GC/ANR) 06-30 11:42:56.624: D/dalvikvm(16264): GC_CONCURRENT freed 1982K, 7% free 4537 ...

  6. linux命令行学习-dig(DNS查询器)

    在web开发中.总要熟悉的就是http协议.而发起一个http開始前最先要经历的一个过程就是DNS解析.简单说就是域名怎样终于解析到实际serverip的过程. 而在研究DNS解析和排除DNS解析类故 ...

  7. POJ 3039 搜索??? (逼近)

    思路: 抄的题解 这叫搜索? 难以理解 我觉得就是枚举+逼近 //By SiriusRen #include <cmath> #include <cstdio> #includ ...

  8. 学大伟业Day解题报告

    预计分数:30+30+0=60 实际分数:30+20+0=50 题解部分全部来自http://www.cnblogs.com/TheRoadToTheGold/p/7723564.html T1htt ...

  9. seq---生成随机数

    seq命令用于产生从某个数到另外一个数之间的所有整数. 语法 seq [选项]... 尾数 seq [选项]... 首数 尾数 seq [选项]... 首数 增量 尾数 选项 -f, --format ...

  10. [Angular & Unit Testing] Automatic change detection

    When you testing Component rendering, you often needs to call: fixture.detectChanges(); For example: ...