R 3.4.3版本怎么安装tukey testHSD

出自 MBA智库百科()
  (Tukey)于1953年提出一种能将所有各对平均值同时比较的方法,这种方法现在已被广泛采用,一般称之为“HSD检验法”,或称“W法”。
  采用图凯检验法时,只要计算一个数值,就能借以完成所有各对平均值之差的比较。这个数值称为HSD,由以下公式给出:
  其中的q值与α,实验中平均值的个数k以及误差自由度n-k有关,可由附表E查出。任何一对平均值之差只要超过HSD值,就表明这一对平均值之间的差别是显著的。
  注意,统计量HSD要求所有样本的容量都相等,即要求。
  为了对生产某种化合物的6种方法作比较,进行了一项实验,得到的数据列于下表。感兴趣的变量是这种化合物中固体物质的含量百分比。每种方法都有8个观察值。假定在显著性水平α=0.05之下,通过方差分析所算出的F是显著的。现在,产生的合乎逻辑的问题恰好就是什么地方出现了显著差别的问题。
          方差分析表
  解:图凯检验法能为这个问题提供答案。
  在把图凯的HSD方法应用于上表中的数据之前,我们先把各对平均值之差的绝对值列成下表。下表中行和列中的样本处理平均值均按由大到小的数值顺序排列,下表中给出相应的差值。
          诸平均值之差的绝对值
-1.503.387.88 9.7510.50
-1.886.388.25 9.00
-4.506.377.12
  如果选择α=0.05,便可从附表E查出q0.05,6,42 = 4.22(自由度可在40与60之间作内插)。从上表可找到MSE=2.23,于是,算出:
  当我们将上表中各种平均值之差同2.23比较时,发现只有以下几对平均值之差不显著:
  其余差值都是显著的。
杨厚学主编.应用统计分析.西南交通大学出版社,2009
本条目对我有帮助15
&&如果您认为本条目还有待完善,需要补充新内容或修改错误内容,请。
本条目由以下用户参与贡献
(window.slotbydup=window.slotbydup || []).push({
id: '224685',
container: s,
size: '728,90',
display: 'inlay-fix'
评论(共3条)提示:评论内容为网友针对条目"HSD检验法"展开的讨论,与本站观点立场无关。
发表评论请文明上网,理性发言并遵守有关规定。
以上内容根据网友推荐自动排序生成《R语言实战》第三部分第九章-方差分析复习笔记有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。当包含的变量时解释变量时,我们关注的重点通常会从预测转向组间差异的分析,这种分析法称为方差分析()。换一句话说:方差分析就是通过检验各总体的均值是否相等来判断分类型自变量对数值型因变量是否有显著影响。1 术语以焦虑症治疗为例,现有两种治疗方案:认知行为疗法(CBT)和眼动脱敏再加工法(EMDR)。我们招募10位焦虑症患者作为志愿者,随机分配一半的人接受为期五周的CBT,另外一半接受为期五周的EMDR,设计方案下表所示。在治疗结束时,要求每位患者都填写状态特质焦虑问卷(STAI),也就是一份焦虑度测量的自我评测报告。在这个实验设计中,治疗方案是两水平(CBT、EMDR)的组间因子。之所以称其为组间因子,是因为每位患者都仅被分配到一个组别中,没有患者同时接受CBT和EMDR。表中字母s代表受试者(患者)。STAI是因变量,治疗方案是自变量。由于在每种治疗方案下观测数相等,因此这种设计也称为均衡设计(balanced design);若观测数不同,则称作非均衡设计(unbalanceddesign)。单因素方差分析():指对单因素试验结果进行分析,检验因素对试验结果有无显著性影响的方法,是两个比较的引伸,它是用来检验多个平均数之间的差异,从而确定因素对试验结果有无显著性影响的一种。单因素组内方差分析及重复测量方差分析:在上述的实例中,假如只对CBT的效果感兴趣,则需将10个患者都放在CBT组中,然后在治疗五周和六个月后分别评价疗效,设计方案如下表所示。此时,时间(time)是两水平(五周、六个月)的组内因子。因为每位患者在所有水平下都进行了测量,所以这种统计设计称单因素组内方差分析;又由于每个受试者都不止一次被测量,也称作重复测量方差分析。协方差分析():假设招募患者时使用抑郁症的自我评测报告,比如白氏抑郁症量表(BDI),记录了他们的抑郁水平,那么你可以在评测疗法类型的影响前,对任何抑郁水平的组间差异进行统计性调整。本案例中,BDI为协变量,该设计为协方差分析(ANCOVA)。协方差分析是关于如何调节协变量对因变量的影响效应,从而更加有效地分析实验处理效应的一种统计技术,也是对实验进行统计控制的一种综合方差分析和回归分析的方法。协方差是用来度量两个变量之间“协同变异”大小的总体参数,即二个变量相互影响大小的参数,协方差的绝对值越大,二个变量相互影响越大。多元方差分析():当因变量不止一个时,以上述实验为例,为增强研究的有效性,可以对焦虑症进行其他的测量(比如家庭评分、医师评分,以及焦虑症对日常行为的影响评价),此时称作多元方差分析。多元协方差分析():在多元方差分析的基础上,如果引入协变量,则称作多元协方差分析。以下两个图表,引自能够比较好的说明各种术语,向原作者表示致意。2 ANOVA模型拟合ANOVA模型拟合采用aov()函数,语法如下:aov(formula, data = dataframe)
其中formula为表达式,表达式在之前的章节中遇到过,这里总结复习一下,R表达式中的符号意义如下:基于上述符号,对于不同种方差分析R中常用研究设计表达式如下:其中,小写字母表示定量变量,大写字母表示组别因子,Subject是对被试者独有的标识变量。此外,当因子不止一个时,以上表达式中因子出现的顺序也非常重要。在具体实际操作当中,样本大小越不平衡,效应项的顺序对结果的影响越大。,越基础性的效应越需要放在表达式前面。首先是协变量,然后是主效应,接着是双因素的交互项,再接着是三因素的交互项。在R语言当中,car包中的Anova()函数(不要与标准anova()函数混淆)提供了使用类型Ⅱ或类型Ⅲ方法的选项,而aov()函数使用的是类型I方法。3 单因素方差分析单因素方差分析主要比较分类因子定义的不同组别的因变量均值。以multcomp包中的cholesterol数据集为例,研究哪种药物疗法降低胆固醇最多。&install.packages("multcomp")
& library(multcomp)
载入需要的程辑包:mvtnorm
载入需要的程辑包:survival
载入需要的程辑包:TH.data
载入需要的程辑包:MASS
载入程辑包:‘TH.data’
The following object is masked from ‘package:MASS’:
& attach(cholesterol)
& head(cholesterol)
trt response
& table(trt)
1time 2times 4times
& aggregate(response,by=list(trt),FUN = mean)
4times 12.37478
drugD 15.36117
drugE 20.94752
& aggregate(response,by=list(trt),FUN = sd)
1time 2.878113
2times 3.483054
4times 2.923119
drugD 3.454636
drugE 3.345003
& fit_91 &- aov(response ~ trt)
& summary(fit_91)
Df Sum Sq Mean Sq F value
32.43 9.82e-13 ***
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
& library(gplots)
Error in library(gplots) : 不存在叫‘gplots’这个名字的程辑包
& install.packages("gplots")
& library(gplots)
载入程辑包:‘gplots’
The following object is masked _by_ ‘.GlobalEnv’:
The following object is masked from ‘package:stats’:
& plotmeans(response ~ trt, xlab = "Treatment", ylab = "Responese", main = "Mean Plot\nwith 95% CI")
从输出结果看ANOVA对治疗方式(trt)的F检验非常显著(p&0.0001),说明五种疗法的效果不同。顺便提一句,方差分析主要依靠F分布()为概率分布的依据,利用平方和与自由度()所计算的组间与组内均方(Mean of square)估计出F值,若有显著差异则考量进行或称多重比较。gplots包中的plotmeans()函数可以用来绘制带有置信区间的组均值图形,默认置信区间为95%。ANOVA仅仅表明五种药物疗法效果不同,但是并没有告知哪种疗法与其他疗法不同。多重比较TukeyHSD()函数提供了对各组均值差异的成对检验。& TukeyHSD(fit_91)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = response ~ trt)
2times-1time
3.4282 0.1380949
4times-1time
6.5092 0.0003542
drugD-1time
9.5482 0.0000003
drugE-1time
15.832 0.0000000
4times-2times
3.1092 0.2050382
drugD-2times
6.1482 0.0009611
drugE-2times
11.7832 0.0000000
drugD-4times
2.9672 0.2512446
drugE-4times
8.5022 0.0000037
drugE-drugD
5.5632 0.0030633
& par(las=2)
& par(mar=c(5,8,4,2))
& plot(TukeyHSD(fit_91))
从结果可以看出,1time和2times的均值差异不显著,而1time和4times间的差异非常显著,从图形的角度,置信置信区间包含0的疗法说明差异不显著。multcomp包中的glht()函数提供了多重均值更为全面的方法。& par(mar=c(5,4,6,2))
& tuk &- glht(fit_91, linfct = mcp(trt="Tukey"))
& par(las = 1)
& plot(cld(tuk, level = .05),col = "red")
注意,记得par(las = 1)函数将轴标签旋转回来。同样的,我们对于结果的信心依赖于做统计检验时数据满足假设条件的程度。单因素方差分析中,我们假设因变量服从正态分布,各组方差相等。使用Q-Q图来检验正态性假设:& library(car)
& qqPlot(lm(response ~ trt, data=cholesterol),
simulate=TRUE, main="Q-Q Plot", labels=FALSE)
qqPlot()要求用lm()拟合,从结果上看,数据落在95%的置信区间内,满足正态性假设。此外,R还提供了一些可用来做方差齐性检验的函数,比如bartlett.test()函数()、fligner.test()函数(Fligner-Killeen检验)以及HH包中的hov()函数( )。考虑到,方差齐性分析对离群点非常敏感,可利用car包中的outlierTest(0函数检测离群点。& outlierTest(fit_91)
No Studentized residuals with Bonferonni p & 0.05
Largest |rstudent|:
rstudent unadjusted p-value Bonferonni p
19 2.251149
4 单因素协方差分析单因素协方差分析(ANCOVA)扩展了单因素方差分析(ANOVA),包含一个或多个定量的协变量。以multcomp包中的litter数据集为例,四组怀孕小鼠接受不同剂量(0、5、50或500)的药物处理,怀孕时间为协变量,产下幼崽的体重均值为因变量。& data(litter,package = "multcomp")
& attach(litter)
& table(dose)
& aggregate(weight, by = list(dose), FUN = mean)
0 32.30850
5 29.30842
50 29.86611
500 29.64647
& fit_93 &- aov(weight ~ gesttime + dose)
& summary(fit_93)
Df Sum Sq Mean Sq F value
8.049 0.00597 **
2.739 0.04988 *
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
我们不难发现,协方差分析同样使用aov()函数,但是formula中的变量顺序是将协变量放到实际实际水平变量前面。另外,使用aggregate()函数求均值时,由于均值收到协变量的影响,需要用effects包中的effects()函数计算去除协变量效应后的组均值。& library(effects)
载入程辑包:‘effects’
The following object is masked from ‘package:car’:
& effect("dose",fit_93)
dose effect
32.72 30.60
结果表明:(a)怀孕时间与幼崽出生体重相关;(b)控制怀孕时间,药物剂量与出生体重相关。控制怀孕时间,确实发现每种药物剂量下幼崽出生体重均值不同。多重比较使用multcomp包中的glht()函数,mcp参数由rbind(c(3,-1,-1,-1))给出,意思为用量为0的和其它三组用量不为0的作比较,也可以使得c(1,-1,0,0)得到用量0和用量5的做比较。代码及结果如下:& library(multcomp)
& comtrast &- rbind("no drrug vs. drug" = c(3, -1, -1, -1))
& summary(glht(fit_93,linfct = mcp(dose = comtrast)))
Simultaneous Tests for General Linear Hypotheses
Multiple Comparisons of Means: User-defined Contrasts
Fit: aov(formula = weight ~ gesttime + dose)
Linear Hypotheses:
Estimate Std. Error t value Pr(&|t|)
no drrug vs. drug == 0
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)
最后用HH保重的ancova()函数绘制因变量、协变量和因子之间的关系图。代码和结果如下:&library(HH)
载入需要的程辑包:lattice
载入需要的程辑包:grid
载入需要的程辑包:latticeExtra
载入需要的程辑包:RColorBrewer
载入需要的程辑包:gridExtra
载入程辑包:‘HH’
The following object is masked _by_ ‘.GlobalEnv’:
The following objects are masked from ‘package:car’:
logit, vif
The following object is masked from ‘package:gplots’:
& ancova(weight ~ gesttime + dose, data = litter)
Analysis of Variance Table
Response: weight
Sum Sq Mean Sq F value
134.30 134.304
Residuals 69 .685
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
结果表明,在不同的剂量下,重量随着怀孕时间增加而增加。,还可以看到0剂量组截距项最大,5剂量组截距项最小。由于你上面的设置,直线会保持平行,若用ancova(weight ~ gesttime*dose),生成的图形将允许斜率和截距项依据组别而发生变化,这对可视化那些违背回归斜率同质性的实例非常有用。ANCOVA的假设验证除了正态性和同方差性,还需要进行回归斜率检验。本例中,假定四个处理组通过怀孕时间来预测出生体重的回归斜率都相同。ANCOVA模型包含怀孕时间×剂量的交互项时,可对回归斜率的同质性进行检验。交互效应若显著,则意味着时间和幼崽出生体重间的关系依赖于药物剂量的水平。& fit_932 &- aov(weight ~ gesttime*dose, data = litter)
& summary(fit_932)
Df Sum Sq Mean Sq F value
8.289 0.00537 **
2.821 0.04556 *
gesttime:dose
1.684 0.17889
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
5 双因素方差分析与单因素协方差分析类似,双因素方差分析的区别就在于他们有交互效应,这个与协方差分析中后面的回归斜率检验有些许类似,区别在于交互效应是否显著。以基础安装中的ToothGrowth数据集为例,随机分配60只豚鼠,分别采用两种喂食方法(橙汁或维生素C),各喂食方法中抗坏血酸含量有三种水平(0.5mg、1mg或2mg),每种处理方式组合都被分配10只豚鼠。其中牙齿长度为因变量。& attach(ToothGrowth)
The following object is masked from litter:
& table(supp, dose)
& aggregate(len, by = list(supp,dose), FUN = mean)
Group.1 Group.2
& aggregate(len, by = list(supp,dose), FUN = sd)
Group.1 Group.2
0.5 4.459709
0.5 2.746634
1.0 3.910953
1.0 2.515309
2.0 2.655058
2.0 4.797731
& dose &- factor(dose)
& fit_96 &- aov(len ~ supp*dose)
& summary(fit_96)
Df Sum Sq Mean Sq F value
15.572 0.000231 ***
& 2e-16 ***
4.107 0.021860 *
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
结果表明这是一个均衡设计,aggregate()函数获得各单元的均值和标准差。summary()函数的结果表明主效应和交互效应都非常显著。双因素方差分析可视化有以下三种方法:& interaction.plot(dose, supp, len, type="b",
col=c("red","blue"), pch=c(16, 18),
main = "Interaction between Dose and Supplement Type")
& library(gplots)
& plotmeans(len ~ interaction(supp, dose, sep = " "),
connect = list(c(1,3,5),c(2,4,6)),
col = c("red", "darkgreen"),
main = "Interaction Plot with 95% CIs",
xlab = "Treatment and Dose Combination")
& library(HH)
& interaction2wt(len~supp*dose)
三种绘图方法中,我更推荐HH包中的interaction2wt()函数,因为它能展示任意复杂度设计(双因素方差分析、三因素方差分析等)的主效应(箱线图)和交互效应。6 重复测量方差分析所谓重复测量方差分析,即测试对象会被重复测量其结果,打个比方就很容易明白了,比如,两个人在同一年中各月的身高变化,这里就包含了一个因变量(身高),一个组间因子(人,有两个,所以是两个水平),一个组内因子(时间,12个月,就是12个水平),此时,对这两个人来说(测试对象),他们每个人要测试12次,即组内因子的水平数,所以叫重复测量方差分析。 书中实例是研究生命系统的生理和生化过程如何响应环境因素的变异,对美国北方和南方牧草类植物Echinochloa crus-galli的寒冷容忍度研究结果进行了分析,比较了在某浓度二氧化碳的环境中,对寒带植物与非寒带植物的光合作用率。#将conc转换成因子变量
& CO2$conc &- factor(CO2$conc)
#去除寒带植物的数据
& w1b1 &- subset(CO2, Treatment == 'chilled')
#aov拟合,formula带Error
& fit_97 &- aov(uptake ~ conc*Type + Error(Plant/(conc)),w1b1)
#显示拟合结果
& summary(fit_97)
Error: Plant
Df Sum Sq Mean Sq F value
60.41 0.00148 **
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Error: Plant:conc
Df Sum Sq Mean Sq F value
52.52 1.26e-12 ***
15.30 3.75e-07 ***
Residuals 24
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#设置坐标轴旋转
& 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 (umon/m^2 sec)")
从以上任意一幅图都可以看出,魁北克省的植物比密西西比州的植物二氧化碳吸收率高,而且随着CO2浓度的升高,差异越来越明显。本例使用了传统的重复测量方差分析。该方法假设任意组内因子的协方差矩阵为球形,并且任意组内因子两水平间的方差之差都相等。但在现实中这种假设不可能满足,于是衍生了一系列备选方法:使用lme4包中的lmer()函数拟合线性混合模型(Bates,2005) 使用car包中的Anova()函数调整传统检验统计量以弥补球形假设的不满足(例如Geisser-Greenhouse校正) 使用nlme包中的gls()函数拟合给定方差-协方差结构的广义最小二乘模型(UCLA,2009) 使用多元方差分析对重复测量数据进行建模(Hand,1987)。 7 多元方差分析多元方差分析(MANOVA)用于应对因变量(结果变量)不止一个时的情形。以MASS包中的UScereal数据集为例,研究美国谷物中的卡路里、脂肪和糖含量是否会因为储存架位置的不同而发生变化;其中1代表底层货架,2代表中层货架,3代表顶层货架。卡路里、脂肪和糖含量是因变量,货架是三水平(1、2、3)的自变量。& library(MASS)
& attach(UScereal)
& shelf &- factor(shelf)
& y &- cbind(calories, fat, sugars)
& aggregate(y, by = list(shelf), FUN = mean)
Group.1 calories
60..380317
& fit_98 &- manova(y ~ shelf)
& summary(fit_98)
Df Pillai approx F num Df den Df
122 0.0001015 ***
Residuals 62
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
需要注意的是,shelf需要因子化,manova()传入的formula参数~号左边的y必须用cbind()函数进行合成。从结果上看,F值显著,三个组的营养成分测量值不同。在多元检验是显著的前提下,可以使用summary.aov()函数对每一个变量再做单因素方差分析。单因素单因素多元方差分析有两个前提假设,一个是多元正态性,一个是方差-协方差矩阵同质性。第一个假设即指因变量组合成的向量服从一个多元正态分布。多元正态性可以由QQ图检验,理论补充及代码如下:#若有一个p*1的多元正态随机向量x,均值为μ,协方差矩阵为Σ,那么x与μ的马氏距离的平方服从自由度为p的卡方分布。Q-Q图展示卡方分布
& center &- colMeans(y)
& n &- nrow(y)
& p &- ncol(t)
& cov &- cov(y)
& p &- ncol(y)
& d &- mahalanobis(y,center,cov)
& coord &- qqplot(qchisq(ppoints(n),df = p),
d, main = "Q-Q Plot Assessing Multivariate Normality",
ylab = "Mahalanobis D2")
& abline(a=0, b=1)
& identify(coord$x, coord$y, labels=row.names(UScereal))
警告: 已经找到了最近的点
警告: 已经找到了最近的点
警告: 已经找到了最近的点
警告: 没有点在0.25英尺内
警告: 已经找到了最近的点
警告: 已经找到了最近的点
[1] 62 63 64 65
方差-协方差矩阵同质性即指各组的协方差矩阵相同,通常可用Box’s M检验来评估该假设,不过遗憾的是目前R中并没有Box‘s M函数。mvoutlier包中的ap.plot()函数可以用来检验多元离群点。代码和图形如下:#需要提前按照mvoutlier包
& library(mvoutlier)
载入需要的程辑包:sgeostat
sROC 0.1-2 loaded
& outliers &- aq.plot(y)
Projection to the first and second robust principal components.
Proportion of total variation (explained variance): 0.9789888
& outliers
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
TRUE FALSE FALSE FALSE FALSE FALSE
TRUE FALSE FALSE FALSE FALSE
[23] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
TRUE FALSE
[34] FALSE FALSE FALSE FALSE FALSE FALSE
TRUE FALSE FALSE FALSE
[45] FALSE FALSE FALSE FALSE FALSE
TRUE FALSE FALSE FALSE FALSE FALSE
[56] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
在多元正态性或方差-协方差同质性或担心离群点时,可以使用稳健多元方差分析或非参数多元方差分析,稳健多元单因素方差分析可以通过rrcov包中Wilks.test(y.dataframe,x,method=”mcp”),另外,vegan包中的adonis()函数则提供了非参数MANOVA的等同形式,代码和结果如下:& library(rrcov)
载入需要的程辑包:robustbase
载入程辑包:‘robustbase’
The following object is masked from ‘package:survival’:
Scalable Robust Estimators with High Breakdown Point (version 1.4-3)
& Wilks.test(y,shelf,method = "mcd")
#Windows运行超级慢
& Wilks.test(y, shelf, method = "mcd")
Robust One-way MANOVA (Bartlett Chi2)
Wilks' Lambda = 0.51073, Chi2-Value = 22.8480, DF = 4.8047,
p-value = 0.0003013
sample estimates:
& library(vegan)
载入需要的程辑包:permute
This is vegan 2.4-2
& adonis(y~shelf)
adonis(formula = y ~ shelf)
Permutation: free
Number of permutations: 999
Terms added sequentially (first to last)
Df SumsOfSqs
MeanSqs F.Model
Residuals 62
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Wilks.test()函数在Windows系统下运行超级慢,E31230 16G内存,大约1分28秒,CPU使用率大约15%,回头我可以在Ubuntu系统下测试下做个对比。从结果来看,这两个方差分析的结果都是显著的。再一次验证了货架的不同层对谷物的三种物质的含量是有影响的。 8 用回归来做ANOVA前面提到ANOVA和回归都是广义线性模型的特例,本章所有的设计都可以用lm()函数来进行分析,不过由于回归要求预测变量是数值型,当lm()函数碰到因子时,它会用一系列与因子水平相对应的数值型对照变量来代替因子。如果因子有k个水平,将会创建k–1个对照变量。R提供了五种创建对照变量的内置方法。以第三节的单因素ANOVA问题为例,用lm()函数比较五种降低胆固醇药物疗法(trt)的影响。& library(multcomp)
& levels(cholesterol$trt)
[1] "1time"
"2times" "4times" "drugD"
& fit.aov &- aov(response ~ trt, data = cholesterol)
& summary(fit.aov)
Df Sum Sq Mean Sq F value
32.43 9.82e-13 ***
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
& fit.lm &- lm(response ~ trt, data = cholesterol)
& summary(fit.lm)
lm(formula = response ~ trt, data = cholesterol)
Residuals:
Coefficients:
Estimate Std. Error t value Pr(&|t|)
(Intercept)
5.665 9.78e-07 ***
4.568 3.82e-05 ***
6.637 3.53e-08 ***
10.507 1.08e-13 ***
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 3.227 on 45 degrees of freedom
Multiple R-squared:
0.7425, Adjusted R-squared:
F-statistic: 32.43 on 4 and 45 DF,
p-value: 9.819e-13
不难发现,方差分析所得的F检验的P值与回归得到的P值是一样的,具体原因可以参考这篇文献,。通常,解释变量有连续的,只能用回归分析。在回归分析时的变量对照,可以通过设置contrasts选项来修改lm()中默认的对照方法。fit.lm &- lm(response ~ trt, data=cholesterol, contrasts="contr.helmert")
上面的代码将使用Helmert对照。也可以通过options()函数修改R会话当中的默认对照方法,举个例子:options(contrasts = c("contr.SAS", "contr.helmert"))
9 小结我们回顾了基本实验和准实验设计的分析方法,包括ANOVA/ANCOVA/MANOVA。然后通过组内和组间设计的示例介绍了基本方法的使用,如单因素ANOVA、单因素ANCOVA、双因素ANOVA、重复测量ANOVA和单因素MANOVA及各模型的假设检验。下一章,我们将介绍功效分析,功效分析可以帮助我们在给定置信度的情况下,判断达到要求效果所需的样本大小。7添加评论分享收藏文章被以下专栏收录记录大数据分析和机器学习学习历程和心得

我要回帖

更多关于 tukey test 的文章

 

随机推荐