首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R:交互效应中的特殊对比

R:交互效应中的特殊对比
EN

Stack Overflow用户
提问于 2015-09-11 22:54:18
回答 1查看 2.6K关注 0票数 4

在双向方差分析中,我想在另一个因子(SpeciesA,SpeciesB)的水平内输入一个因子(10度、20度、30度)的对比水平。这假设相互作用效应是显著的,因此不能简单地对温度主效应进行对比。

我曾尝试在EZanova、multcomp和菲尼娅中这样做,但一直无法找到一个有效的语法。我错过了一个允许这样做的包裹吗?

对比系数

Contrast1: 10度与物种A的20度和30度不同吗?物种:温度(2,-1,-1,-1,0,0) Contrast2:与物种B的10度和30度不同吗?物种:温度(0,0,0,2,-1,-1) Contrast3:对物种A的温度为10度,B为20度和30度?物种:温度(2,0,0,0,1,-1 )

代码语言:javascript
运行
复制
species<-rep(c("speciesA","speciesB"),each=12)
temp<-rep(rep(c("10","20","30"),each=4),2)
y<-rnorm(24,5,3)
(result<-anova(lm(y~species*temp)))
EN

回答 1

Stack Overflow用户

发布于 2015-09-12 18:06:45

是基地的一部分-R。请参阅?contrasts页面。我将说明第一个要求的对比;另外两个应该是非常直接的。我假设您希望单独计算这些对比度p值,因此我使用how.many参数将对比度构造限制为单个比较。否则,您将得到5个对比,因为在默认情况下,contrasts函数试图构建一组正交对比的生成集:

代码语言:javascript
运行
复制
set.seed(123)
species <- rep(c("speciesA","speciesB"),each=12)
temp <- rep(rep(c("10","20","30"),each=4),2)
y<-rnorm(24,5,3)

intvar <- interaction(species, temp)  # create an interaction variable
?contrasts

需要知道哪些级别需要正确地排列对比度值:

代码语言:javascript
运行
复制
> levels(intvar)
[1] "speciesA.10" "speciesB.10" "speciesA.20" "speciesB.20" "speciesA.30"
[6] "speciesB.30"

因此,这应该为A物种之间的10与20或30个角度形成对比:

代码语言:javascript
运行
复制
 contrasts(intvar, how.many=1) <- c(2,0,-1,0,-1,0)
 anova(lm(y~intvar) )
#------------
Analysis of Variance Table

Response: y
          Df  Sum Sq Mean Sq F value Pr(>F)
intvar     1   0.013  0.0129  0.0015 0.9695
Residuals 22 190.306  8.6503      

您似乎还处于学习R的早期阶段,因此我建议您学习构建数据仓库,将其作为data=-arguments传递给回归函数,而不是在工作空间中处理“松散”对象,并且请不要养成使用attach的坏习惯。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32533236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档