我想对有关植物附生植物密度的数据进行ANCOVA分析。首先,我想知道两个坡度(一个N和一个S)之间的植物密度是否存在任何差异,但是我还有其他数据,例如海拔,冠层开放度和寄主植物的高度。我知道我的协变量必须是两个斜率(N和S)。我建立了在R中运行的模型,尽管我不知道它是否运行良好。我也想知道如果使用符号+
或会有什么区别*
。
model1 <- aov(density~slope+altitude+canopy+height)
summary(model1)
model1
我想对有关植物附生植物密度的数据进行ANCOVA分析。首先,我想知道两个坡度(一个N和一个S)之间的植物密度是否存在任何差异,但是我还有其他数据,例如海拔,冠层开放度和寄主植物的高度。我知道我的协变量必须是两个斜率(N和S)。我建立了在R中运行的模型,尽管我不知道它是否运行良好。我也想知道如果使用符号+
或会有什么区别*
。
model1 <- aov(density~slope+altitude+canopy+height)
summary(model1)
model1
Answers:
基本工具是lm
; 请注意,这aov
是的包装lm
。
特别是,如果您有一些分组变量(因子)和连续的协变量,则该模型y ~ x + g
将拟合主效应ANCOVA模型,而y ~ x * g
将拟合包含与协变量交互作用的模型。aov
将采用相同的公式。
请特别注意上Note
的帮助aov
。
至于+
VS *
,russellpierce几乎涵盖它,但我建议你看看?lm
和?formula
最特别是手册的第11.1节介绍与R(或者你可以在网上找到它自带的R如果你还没有想出如何在计算机上找到它;最简单的方法是在R或RStudio中找到“帮助”下拉菜单。
anova
(您很快就会发现您给它们的顺序是否错误,因为如果这样做,某些SS会为负值)
我建议阅读和阅读使用R by Field的发现统计信息。他在ANCOVA上有一个不错的部分。
要在R中运行ANCOVA,请加载以下软件包:
car
compute.es
effects
ggplot2
multcomp
pastecs
WRS
如果您使用lm
或aov
(我使用aov
),请确保在使用aov
或之前先使用“对比度”功能设置对比度lm
。R默认情况下使用非正交对比,这会弄乱ANCOVA中的所有内容。如果要设置正交对比度,请使用:
contrasts(dataname$factorvariable)=contr.poly(# of levels, i.e. 3)
然后运行您的模型
model.1=aov(dv~covariate+factorvariable, data=dataname)
要查看模型,请使用:
Anova(model.1, type="III")
确保您Anova
在此处而不是大写字母“ A” anova
。这将使用III型SS给出结果。
summary.lm(model.1)
将给出另一个摘要,并包括R-sq。输出。
posth=glht(model.1, linfct=mcp(factorvariable="Tukey")) ##gives the post-hoc Tukey analysis
summary(posth) ##shows the output in a nice format.
如果要测试回归斜率的均匀性,则还可以包括IV和协变量的交互项。那将是:
model=aov(dv~covariate+IV+covariate:IV, data=dataname)
如果交互作用项很重要,则说明您没有同质性。
这是补充文件 @Butorovich建议的过程 http://goo.gl/yxUZ1R。另外,我的观察是,当协变量为二进制时,使用summary(lm.object)将给出与Anova(lm.object,type =“ III”)生成的IV估计相同的IV估计。
ASK QUESTION
顶部的并在此处提问。然后,我们可以为您提供适当的帮助。
我们使用回归分析来创建模型,以描述预测变量对响应变量的影响。有时,如果我们有一个类别变量,其值是“是/否”或“男性/女性”等,则简单的回归分析会为该类别变量的每个值提供多个结果。在这种情况下,我们可以通过将分类变量与预测变量一起使用并比较分类变量每个级别的回归线来研究分类变量的影响。这种分析称为协方差分析,也称为ANCOVA。
示例
考虑R
内置数据集mtcars
。在其中,我们观察到该字段am
表示传输类型(自动或手动)。它是具有0和1值的分类变量。汽车的每加仑英里值(mpg
)除了马力(hp
)值以外,还可以取决于它。我们研究的价值的影响am
上之间的回归mpg
和hp
。这是通过使用aov()
函数及其后的anova()
函数比较多元回归来完成的。
输入数据
创建包含的字段的数据帧mpg
,hp
并am
从所述数据集mtcars
。在这里,我们将其mpg
作为响应变量,hp
预测变量和am
分类变量。
input <- mtcars[,c("am","mpg","hp")]
head(input)
当我们执行以上代码时,它会产生以下结果:
am mpg hp
Mazda RX4 1 21.0 110
Mazda RX4 Wag 1 21.0 110
Datsun 710 1 22.8 93
Hornet 4 Drive 0 21.4 110
Hornet Sportabout 0 18.7 175
Valiant 0 18.1 105
ANCOVA分析
我们创建一个回归模型hp
,将预测变量和mpg
响应变量纳入考虑范围am
和hp
。
类别变量与预测变量之间具有交互作用的模型
创建回归模型1
result1 <- aov(mpg~hp*am,data=mtcars)
summary(result1)
当我们执行以上代码时,它会产生以下结果:
Df Sum Sq Mean Sq F value Pr(>F)
hp 1 678.4 678.4 77.391 1.50e-09 ***
am 1 202.2 202.2 23.072 4.75e-05 ***
hp:am 1 0.0 0.0 0.001 0.981
Residuals 28 245.4 8.8
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
该结果表明,马力和传输类型均对每加仑英里数有显着影响,因为两种情况下的p值均小于0.05。但是,由于p值大于0.05,所以这两个变量之间的相互作用并不显着。
类别变量和预测变量之间没有交互的模型
创建回归模型2
result2 <- aov(mpg~hp+am,data=mtcars)
summary(result2)
当我们执行以上代码时,它会产生以下结果:
Df Sum Sq Mean Sq F value Pr(>F)
hp 1 678.4 678.4 80.15 7.63e-10 ***
am 1 202.2 202.2 23.89 3.46e-05 ***
Residuals 29 245.4 8.5
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
该结果表明,马力和传输类型均对每加仑英里数有显着影响,因为两种情况下的p值均小于0.05。
比较两个模型
现在,我们可以比较两个模型,以得出变量之间的交互作用是否确实不重要的结论。为此,我们使用anova()
功能。
anova(result1,result2)
Model 1: mpg ~ hp * am
Model 2: mpg ~ hp + am
Res.Df RSS Df Sum of Sq F Pr(>F)
1 28 245.43
2 29 245.44 -1 -0.0052515 6e-04 0.9806
当p值大于0.05时,我们得出结论,马力和传输类型之间的交互作用不显着。因此,在自动和手动变速模式下,每加仑的行驶里程将以类似的方式取决于汽车的马力。